- Move mobile nav controls to left side (hamburger, search, theme) - Add sidebar TOC to mobile menu when page has sidebar layout - Hide desktop sidebar on mobile since accessible via hamburger - Standardize mobile menu typography with CSS variables - Use font-family inherit for consistent fonts across menu elements
9.6 KiB
Markdown Blog - Tasks
To Do
- fix netlify markdown bug
- add MIT Licensed. Do whatevs.
- add mcp
- https://www.npmjs.com/package/remark-rehype
- https://github.com/remarkjs/remark-rehype
- https://github.com/remarkjs/remark-rehype
- https://remark.js.org/
- https://unifiedjs.com/explore/package/rehype-raw/
- - add markdown html https://gist.github.com/pierrejoubert73/902cc94d79424356a8d20be2b382e1ab
Current Status
v1.24.2 deployed. Mobile menu redesigned with sidebar integration and typography standardization.
Completed
-
Blog page view mode toggle (list and card views)
-
Post cards component with thumbnails, titles, excerpts, and metadata
-
View preference saved to localStorage
-
Default view mode configurable in siteConfig.blogPage.viewMode
-
Toggle visibility controlled by siteConfig.blogPage.showViewToggle
-
Responsive grid: 3 columns (desktop), 2 columns (tablet), 1 column (mobile)
-
Theme-aware styling for all four themes
-
Raw markdown files now accessible to AI crawlers (ChatGPT, Perplexity)
-
Added /raw/ path bypass in botMeta edge function
-
Sitemap now includes static pages (about, docs, contact, etc.)
-
Security headers added to netlify.toml
-
Link header pointing to llms.txt for AI discovery
-
Preconnect hints for Convex backend
-
Fixed URL consistency in openapi.yaml and robots.txt
-
Write conflict prevention: increased dedup windows, added heartbeat jitter
-
Visitor map styling: removed box-shadow, increased land dot contrast and opacity
-
Real-time visitor map on stats page showing live visitor locations
-
Netlify edge function for geo detection (geo.ts)
-
VisitorMap component with dotted world map and pulsing dots
-
Theme-aware colors for all four themes (dark, light, tan, cloud)
-
visitorMap config option in siteConfig.ts to enable/disable
-
Privacy friendly: no IP addresses stored, only city/country/coordinates
-
Documentation updated: setup-guide, docs, FORK_CONFIG, fork-config.json.example
-
Author display for posts and pages with authorName and authorImage frontmatter fields
-
Round avatar image displayed next to date and read time on post/page views
-
Write page updated with new frontmatter field reference
-
Documentation updated: setup-guide.md, docs.md, files.md, README.md, AGENTS.md
-
PRD created: prds/howto-Frontmatter.md with reusable prompt for future updates
-
GitHub Stars card on Stats page with live count from repository
-
CopyPageDropdown AI services now use raw markdown URLs for better AI parsing
-
ChatGPT, Claude, and Perplexity receive /raw/{slug}.md URLs instead of page URLs
-
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
-
Sidebar navigation anchor links fixed for collapsed/expanded sections
-
Navigation scroll calculation with proper header offset (80px)
-
Expand ancestors before scrolling to ensure target visibility
-
Removed auto-expand from scroll handler to preserve manual collapse state
-
Collapse button event handling improved to prevent link navigation
-
Heading extraction updated to filter out code blocks
-
Sidebar no longer shows example headings from markdown code examples
-
Mobile menu redesigned with left-aligned navigation controls
-
Hamburger menu order changed (hamburger, search, theme toggle)
-
Sidebar table of contents integrated into mobile menu
-
Desktop sidebar hidden on mobile when sidebar layout is enabled
-
SidebarContext created to share sidebar data between components
-
Mobile menu typography standardized with CSS variables
-
Font-family standardized using inherit for consistency
Deployment Steps
- Run
npx convex devto initialize Convex - Set
CONVEX_DEPLOY_KEYin Netlify environment variables - Connect repo to Netlify and deploy
- 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