Files
wiki/TASK.md
Wayne Sutton 04d08dbada feat(fork-config): add automated fork configuration with npm run configure
Add a complete fork configuration system that allows users to set up their
forked site with a single command or follow manual instructions.

## New files

- FORK_CONFIG.md: Comprehensive guide with two setup options
  - Option 1: Automated JSON config + npm run configure
  - Option 2: Manual step-by-step instructions with code snippets
  - AI agent prompt for automated updates

- fork-config.json.example: JSON template with all configuration fields
  - Site info (name, title, description, URL, domain)
  - GitHub and contact details
  - Creator section for footer links
  - Optional feature toggles (logo gallery, GitHub graph, blog page)
  - Theme selection

- scripts/configure-fork.ts: Automated configuration script
  - Reads fork-config.json and applies changes to all files
  - Updates 11 configuration files in one command
  - Type-safe with ForkConfig interface
  - Detailed console output showing each file updated

## Updated files

- package.json: Added configure script (npm run configure)
- .gitignore: Added fork-config.json to keep user config local
- files.md: Added new fork configuration files
- changelog.md: Added v1.18.0 entry
- changelog-page.md: Added v1.18.0 section with full details
- TASK.md: Updated status and completed tasks
- README.md: Replaced Files to Update section with Fork Configuration
- content/blog/setup-guide.md: Added Fork Configuration Options section
- content/pages/docs.md: Added Fork Configuration section
- content/pages/about.md: Added fork configuration mention
- content/blog/fork-configuration-guide.md: New featured blog post

## Files updated by configure script

| File                                | What it updates                        |
| ----------------------------------- | -------------------------------------- |
| src/config/siteConfig.ts            | Site name, bio, GitHub, features       |
| src/pages/Home.tsx                  | Intro paragraph, footer links          |
| src/pages/Post.tsx                  | SITE_URL, SITE_NAME constants          |
| convex/http.ts                      | SITE_URL, SITE_NAME constants          |
| convex/rss.ts                       | SITE_URL, SITE_TITLE, SITE_DESCRIPTION |
| index.html                          | Meta tags, JSON-LD, page title         |
| public/llms.txt                     | Site info, GitHub link                 |
| public/robots.txt                   | Sitemap URL                            |
| public/openapi.yaml                 | Server URL, site name                  |
| public/.well-known/ai-plugin.json   | Plugin metadata                        |
| src/context/ThemeContext.tsx        | Default theme                          |

## Usage

Automated:
  cp fork-config.json.example fork-config.json
  # Edit fork-config.json
  npm run configure

Manual:
  Follow FORK_CONFIG.md step-by-step guide
2025-12-20 22:15:33 -08:00

6.2 KiB

Markdown Blog - Tasks

To Do

  • create a ui site config page

Current Status

v1.18.0 deployed. Added automated fork configuration with npm run configure command and comprehensive fork setup guide.

Completed

  • Automated fork configuration with npm run configure

  • FORK_CONFIG.md comprehensive guide with two options (automated + manual)

  • fork-config.json.example template with all configuration options

  • scripts/configure-fork.ts for automated updates

  • Updates all 11 configuration files in one command

  • GitHub contributions graph on homepage with theme-aware colors

  • Year navigation with Phosphor icons (CaretLeft, CaretRight)

  • Click graph to visit GitHub profile

  • Configurable via siteConfig.gitHubContributions

  • Theme-specific contribution colors for all 4 themes

  • Mobile responsive design with scaled cells

  • Public /write page with three-column layout (not linked in nav)

  • Left sidebar: Home link, content type selector, actions (Clear, Theme, Font)

  • Center: Writing area with Copy All button and borderless textarea

  • Right sidebar: Frontmatter reference with per-field copy buttons

  • Font switcher to toggle between Serif and Sans-serif fonts

  • Font preference persistence in localStorage

  • Theme toggle icons matching ThemeToggle.tsx (Moon, Sun, Half2Icon, Cloud)

  • Content type switching (Blog Post/Page) updates writing area template

  • Word, line, and character counts in status bar

  • Warning banner about refresh losing content

  • localStorage persistence for content, type, and font

  • Redesign /write page with three-column Cursor docs-style layout

  • Add per-field copy icons to frontmatter reference panel

  • Add refresh warning message in left sidebar

  • Left sidebar with home link, content type selector, and actions

  • Right sidebar with frontmatter fields and copy buttons

  • Center area with title, Copy All button, and borderless textarea

  • Theme toggle with matching icons for all four themes

  • Redesign /write page with wider layout and modern Notion-like UI

  • Remove header from /write page (standalone writing experience)

  • Add inline theme toggle and home link to Write page toolbar

  • Collapsible frontmatter fields panel

  • Add markdown write page with copy option at /write

  • Centralized font-size CSS variables in global.css

  • Base size scale with semantic naming (3xs to hero)

  • Component-specific font-size variables

  • Mobile responsive font-size overrides

  • Open Graph image fix for posts and pages with frontmatter images

  • Dedicated blog page with configurable display options

  • Blog page navigation order via siteConfig.blogPage.order

  • Centralized siteConfig.ts for site configuration

  • Posts display toggle for homepage and/or blog page

  • move home to the top of the mobile menu

  • Fork configuration documentation in docs.md and setup-guide.md

  • "Files to Update When Forking" section with all 9 configuration files

  • Backend configuration examples for Convex files

  • Site branding updates across all AI discovery files

  • Fork documentation added to README.md

  • Blog post updated with v1.9.0 and v1.10.0 features

  • Scroll-to-top button with configurable threshold

  • Scroll-to-top documentation in docs.md and setup-guide.md

  • Mobile menu with hamburger navigation for mobile and tablet

  • Generate Skill feature in CopyPageDropdown

  • Project setup with Vite + React + TypeScript

  • Convex schema for posts, viewCounts, siteConfig, pages

  • Build-time markdown sync script

  • Theme system (dark/light/tan/cloud)

  • Default theme configuration (tan)

  • Home page with year-grouped post list

  • Post page with markdown rendering

  • Static pages support (About, Projects, Contact)

  • Syntax highlighting for code blocks

  • Open Graph and Twitter Card meta tags

  • Netlify edge function for bot detection

  • RSS feed support (standard and full content)

  • API endpoints for LLMs (/api/posts, /api/post)

  • Copy Page dropdown for AI tools

  • Sample blog posts and pages

  • Security audit completed

  • TypeScript type-safety verification

  • Netlify build configuration verified

  • SPA 404 fallback configured

  • Mobile responsive design

  • Edge functions for dynamic Convex HTTP proxying

  • Vite dev server proxy for local development

  • Real-time stats page at /stats

  • Page view tracking with event records pattern

  • Active session heartbeat system

  • Cron job for stale session cleanup

  • Stats link in homepage footer

  • Real-time search with Command+K shortcut

  • Search modal with keyboard navigation

  • Full text search indexes for posts and pages

  • Featured section with list/card view toggle

  • Logo gallery with continuous marquee scroll

  • Frontmatter-controlled featured items (featured, featuredOrder)

  • Featured items sync with npm run sync (no redeploy needed)

  • Firecrawl content importer (npm run import)

  • /api/export endpoint for batch content fetching

  • AI plugin discovery at /.well-known/ai-plugin.json

  • OpenAPI 3.0 spec at /openapi.yaml

  • AGENTS.md for AI coding agents

  • Static raw markdown files at /raw/{slug}.md

  • View as Markdown option in CopyPageDropdown

  • Perplexity added to AI service options

  • Featured image support with square thumbnails in card view

  • Improved markdown table CSS styling

  • Aggregate component integration for efficient stats counting (O(log n) vs O(n))

  • Three aggregate components: pageViewsByPath, totalPageViews, uniqueVisitors

  • Chunked backfilling mutation for existing page view data

  • Aggregate component registration in convex.config.ts

  • Stats query updated to use aggregate counts

  • Aggregate component documentation in prds/howstatsworks.md

Deployment Steps

  1. Run npx convex dev to initialize Convex
  2. Set CONVEX_DEPLOY_KEY in Netlify environment variables
  3. Connect repo to Netlify and deploy
  4. Edge functions automatically handle RSS, sitemap, and API routes

Someday Features TBD

  • Related posts suggestions
  • Newsletter signup
  • Comments system
  • Draft preview mode
  • Image optimization
  • Reading progress indicator