Commit Graph

141 Commits

Author SHA1 Message Date
Wayne Sutton
7064765d91 fix docs sidebar scroll 2026-01-10 00:28:36 -08:00
Wayne Sutton
3287c48357 fix: Hide scrollbars on docs layout while preserving scroll, update about page for dashboard workflow 2026-01-10 00:15:28 -08:00
Wayne Sutton
03bf3e49e5 feat: Added a Sync version control system for tracking changes to posts, pages, home content, and footer. 2026-01-09 23:02:28 -08:00
Wayne Sutton
1323928341 fix: docs css sidebar fixes 2026-01-09 14:54:00 -08:00
Wayne Sutton
7a8a1c61e3 fix: Docs layout CSS conflict fix 2026-01-08 22:58:34 -08:00
Wayne Sutton
cd696416d9 Export as PDF, Core Web Vitals performance optimizations, Enhanced diff code block rendering and blog post example on codeblocks 2026-01-07 23:20:50 -08:00
Wayne Sutton
1257fa220f Canonical URL fix for search engines (GitHub Issue #6) and other seo fixes" 2026-01-07 21:48:41 -08:00
Wayne Sutton
b274ddf3c9 Ask AI header button with RAG-based Q&A with semeantic-search added, config in siteconfig 2026-01-06 21:05:20 -08:00
Wayne Sutton
98916899a3 fix(seo): resolve 7 SEO issues from GitHub Issue #4
SEO improvements for better search engine optimization:

  1. Canonical URL - Added client-side dynamic canonical link tags for posts and pages
  2. Single H1 per page - Markdown H1s demoted to H2 with .blog-h1-demoted class (maintains H1 visual styling)
  3. DOM order fix - Article now loads before sidebar in DOM for SEO (CSS order property maintains visual layout)
  4. X-Robots-Tag - HTTP header added via netlify.toml (index, follow for public; noindex for dashboard/api routes)
  5. Hreflang tags - Self-referencing hreflang (en, x-default) for language targeting
  6. og:url consistency - Uses same canonicalUrl variable as canonical link tag
  7. twitter:site - New TwitterConfig in siteConfig.ts for Twitter Cards meta tags

  Files modified:
  - src/config/siteConfig.ts: Added TwitterConfig interface with site/creator fields
  - src/pages/Post.tsx: SEO meta tags for posts/pages, DOM order optimization
  - src/components/BlogPost.tsx: H1 to H2 demotion in markdown renderer
  - src/styles/global.css: .blog-h1-demoted class, CSS order properties
  - convex/http.ts: hreflang and twitter:site in generateMetaHtml()
  - netlify.toml: X-Robots-Tag headers for public, dashboard, API routes
  - index.html: canonical, hreflang, twitter:site placeholder tags
  - fork-config.json.example: twitter configuration fields

  Closes #4

  Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 11:31:55 -08:00
Wayne Sutton
85c100451a update: semantic search is now Optional configuration 2026-01-05 23:25:42 -08:00
Wayne Sutton
3c9feb071b feat: Make semantic search optional and disabled by default
- Add SemanticSearchConfig interface with enabled toggle to siteConfig.ts
- Default semantic search to disabled (enabled: false) to avoid blocking forks without OPENAI_API_KEY
- Update SearchModal.tsx to conditionally show mode toggle based on config
- Update sync-posts.ts to skip embedding generation when disabled
- Add semantic search toggle to Dashboard config generator
- Update FORK_CONFIG.md with Semantic Search Configuration section
- Update fork-config.json.example with semanticSearch option
- Update docs-semantic-search.md with enable/disable instructions
- Update changelog and documentation

When disabled (default):
- Search modal shows only keyword search (no mode toggle)
- Embedding generation skipped during sync
- No OpenAI API key required

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 22:22:50 -08:00
Wayne Sutton
5a8df46681 feat: Add semantic search with vector embeddings
Add vector-based semantic search to complement keyword search.
  Users can toggle between "Keyword" and "Semantic" modes in the
  search modal (Cmd+K, then Tab to switch).

  Semantic search:
  - Uses OpenAI text-embedding-ada-002 (1536 dimensions)
  - Finds content by meaning, not exact words
  - Shows similarity scores as percentages
  - ~300ms latency, ~$0.0001/query
  - Graceful fallback if OPENAI_API_KEY not set

  New files:
  - convex/embeddings.ts - Embedding generation actions
  - convex/embeddingsQueries.ts - Queries/mutations for embeddings
  - convex/semanticSearch.ts - Vector search action
  - convex/semanticSearchQueries.ts - Result hydration queries
  - content/pages/docs-search.md - Keyword search docs
  - content/pages/docs-semantic-search.md - Semantic search docs

  Changes:
  - convex/schema.ts: Add embedding field and by_embedding vectorIndex
  - SearchModal.tsx: Add mode toggle (TextAa/Brain icons)
  - sync-posts.ts: Generate embeddings after content sync
  - global.css: Search mode toggle styles

  Documentation updated:
  - changelog.md, TASK.md, files.md, about.md, home.md

  Configuration:
  npx convex env set OPENAI_API_KEY sk-your-key

  Generated with [Claude Code](https://claude.com/claude-code)

  Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

  Status: Ready to commit. All semantic search files are staged. The TypeScript warnings are pre-existing (unused variables) and don't affect the build.
2026-01-05 18:30:48 -08:00
Wayne Sutton
83411ec1b2 fix: Write page frontmatter sidebar toggle now works outside focus mode 2026-01-04 11:01:26 -08:00
Wayne Sutton
da19bf8393 update: sync commands copy icons added 2026-01-04 10:08:51 -08:00
Wayne Sutton
0baedee682 fix: fork configuration now updates 14 files, logoGallery uses relative URLs and Search result highlighting and scroll-to-match 2026-01-04 09:24:08 -08:00
Wayne Sutton
ca40d199da fix: AI service links now use local /raw URLs with simplified prompt
- Changed ChatGPT, Claude, and Perplexity links from GitHub raw URLs to local /raw/{slug}.md
  - Simplified AI prompt from multi-line instructions to "Read this URL and summarize it:"
  - URLs now constructed using window.location.origin for consistency
  - Removed unused siteConfig import and getGitHubRawUrl function
  - No longer requires git push for AI links to work (synced content available immediately)

  Updated: src/components/CopyPageDropdown.tsx, changelog.md, task.md, files.md, changelog-page.md
2026-01-03 21:47:46 -08:00
Wayne Sutton
c1f041fc66 fix: updated Netlify headers Content-Type to plain text 2026-01-03 21:02:55 -08:00
Wayne Sutton
f377a3dde2 Raw index.md now includes home.md and footer.md content 2026-01-03 20:46:55 -08:00
Wayne Sutton
cb2875a830 Fix: Footer fix for docs section pages, and Centralized defaultTheme in siteConfig.ts 2026-01-03 16:09:30 -08:00
Wayne Sutton
83265d5e52 update: Centralized defaultTheme in siteConfig.ts 2026-01-03 12:49:21 -08:00
Wayne Sutton
560582928f Docs sidebar group icons via frontmatter 2026-01-03 00:18:10 -08:00
Wayne Sutton
8fe6b53600 feat: Add docsSectionGroupOrder frontmatter field for controlling docs sidebar group order 2026-01-02 23:11:35 -08:00
Wayne Sutton
46a1cdf591 feat: Multi-model AI chat and image generation in Dashboard -fix2 2026-01-01 22:28:38 -08:00
Wayne Sutton
a3897f92c5 feat: Multi-model AI chat and image generation in Dashboard -fix 2026-01-01 22:21:04 -08:00
Wayne Sutton
a9f56d9c04 feat: Multi-model AI chat and image generation in Dashboard 2026-01-01 22:00:46 -08:00
Wayne Sutton
4cfbb2588a feature: Social footer icons in header navigation 2026-01-01 16:06:36 -08:00
Wayne Sutton
2858b6149b Embed YouTube videos and Twitter/X posts directly in markdown
Domain whitelisting for security (only trusted domains allowed)
2026-01-01 14:31:56 -08:00
Wayne Sutton
1eaec05fec feat: add author pages at /author/:authorSlug with clickable author names in posts
Add author archive pages displaying all posts by a specific author, following
  the existing tag pages pattern. Author names in post headers are now clickable
  links that navigate to the author's page.

  Changes:
  - Add by_authorName index to posts table (convex/schema.ts)
  - Add getAllAuthors and getPostsByAuthor queries (convex/posts.ts)
  - Create AuthorPage.tsx component with list/cards view toggle
  - Add /author/:authorSlug route (src/App.tsx)
  - Make authorName clickable in Post.tsx for posts and pages
  - Add author link and page styles (src/styles/global.css)
  - Add author pages to sitemap (convex/http.ts)
  - Update documentation: files.md, TASK.md, changelog.md, changelog-page.md
  - Save implementation plan to prds/authorname-blogs.md
2026-01-01 00:05:10 -08:00
Wayne Sutton
1e759495eb fix: remove homepage intro loading flash by using invisible Suspense fallback and null render during query load 2025-12-31 22:08:10 -08:00
Wayne Sutton
86d97e80eb fix: add ES module compatibility to configure-fork.ts using fileURLToPath 2025-12-31 12:36:55 -08:00
Wayne Sutton
db960ec163 fix left sidebar expand toggle 2025-12-30 21:11:21 -08:00
Wayne Sutton
86e9c4cf5b update: moved footer to footer.md and docs updated 2025-12-30 17:29:11 -08:00
Wayne Sutton
e81c814bc2 fix: post mutation 2025-12-30 15:26:59 -08:00
Wayne Sutton
ac0dfab784 feat: add unlisted frontmatter field to hide posts from listings while keeping direct access 2025-12-30 15:22:46 -08:00
Wayne Sutton
a5c30a1592 fix: docs scroll 2025-12-30 12:24:36 -08:00
Wayne Sutton
6cd9ec116c feat: add CLAUDE.md and skills documentation
Created CLAUDE.md for Claude Code instructions and .claude/skills/ directory with frontmatter, convex, and sync skill files. Updated sync-discovery-files.ts to auto-update CLAUDE.md during sync.
2025-12-30 12:03:06 -08:00
Wayne Sutton
63de46830d update: dashboard requireAuth true 2025-12-30 00:33:39 -08:00
Wayne Sutton
689951d344 feat: markdown sync v2 complete
Complete markdown synchronization system with dashboard UI, sync server, type safety, and security improvements.
2025-12-30 00:29:07 -08:00
Wayne Sutton
02bc3c2973 update: workos logo, blog post images and dashboard docs images upload 2025-12-29 23:12:28 -08:00
Wayne Sutton
e8d09fcce2 feature: new dashboard workos auth for dashboard login, dashboard optional in site config, sync server for dashboard, workos and dashboard docs updated 2025-12-29 22:11:52 -08:00
Wayne Sutton
f6c9478c9d sf auth loading image [skip netlify] 2025-12-29 16:02:00 -08:00
Wayne Sutton
1e055c76fb Update: added stats page public or private option in siteconfig 2025-12-28 22:26:05 -08:00
Wayne Sutton
29d38eeced update: blog post image for Team Workflows with Git Version Control post 2025-12-28 21:52:24 -08:00
Wayne Sutton
c5896fd5ef feat: add blog heading styles to home intro content 2025-12-28 18:09:57 -08:00
Wayne Sutton
6cdb524c3c Newsletter image upload for blog post 2025-12-28 11:43:12 -08:00
Wayne Sutton
e1e64a36ec feat: Add MCP server fork setup instructions and update documentation 2025-12-27 22:54:51 -08:00
Wayne Sutton
eb018f4156 Update package-lock.json with @modelcontextprotocol/sdk dependencies 2025-12-27 22:24:21 -08:00
Wayne Sutton
01ac2a01c7 feat: added HTTP-Based MCP Server on Netlify 2025-12-27 22:18:03 -08:00
Wayne Sutton
d6e76f6e39 update: setup fork config docs and featured image. 2025-12-27 21:05:39 -08:00
Wayne Sutton
434d5bff71 disable newsletter admin on production 2025-12-27 16:14:52 -08:00