Version history and feature updates for this portfolio — shipped features, fixes, and experiments, logged by release.
Squashed 41 incremental Drizzle migrations into a single 0000_baseline.sql for a clean install experience. Full smoke test on empty DB confirmed all API routes healthy.
Complete profile pack system: ZIP-based snapshots covering all 68 DB tables, transactional restore with checkpoint/rollback, contract validation, admin UI with dry-run preview, and version history. Ships with two built-in profiles: karanveer (owner) and maya (demo).
DB-backed booking availability with timezone support, work-hours rules, advance-notice limits, and a public availability badge — plus a site-wide maintenance-mode toggle where unauthenticated visitors see a maintenance page and APIs return 503 with Retry-After headers.
Complete profile pack system: ZIP-based snapshots covering all 74 DB tables, transactional restore with checkpoint/rollback, contract validation, admin UI with dry-run preview, and version history. Ships with two built-in profiles: karanveer (owner) and maya (demo).
Squashed 41 incremental Drizzle migrations into a single 0000_baseline.sql for a clean install experience. Full smoke test on empty DB confirmed all API routes healthy.
Full blog system with MDX rendering, auto-generated table of contents, series grouping, reading time, post reactions, comments, newsletter, and RSS. 31 posts migrated from static files.
Portfolio AI assistant upgraded with semantic search over blog posts (Qdrant), live DB query tools, streaming UI with tool-call visibility, and a funnel-event tracking system for conversation analytics.
Portfolio AI assistant upgraded with semantic search over blog posts (Qdrant), live DB query tools, streaming UI with tool-call visibility, and a funnel-event tracking system for conversation analytics.
Portfolio AI assistant with semantic search over content, live DB query tools, streaming UI with tool-call visibility, voice input, session memory, and conversation analytics.
Complete admin panel covering blog posts, projects, skills, timeline, testimonials, AMA, decisions log, roadmap, build updates, changelog, garden notes, thoughts, links, and site settings — all editable without touching code.
Audited all 78 admin mutation routes and replaced revalidateTag(tag, 'max') calls (silently broken in Next.js 16) with bustTag() using inline CacheLifeConfig. All content now invalidates correctly on save.
Added a guided setup wizard for new deployments: creates the admin account, configures site identity, and walks through first-time profile installation. The site locks to /setup until the wizard completes.
Complete admin panel with full CRUD over blog posts, projects, skills, timeline, testimonials, AMA, decisions, roadmap, build updates, changelog, garden notes, thoughts, links, and site settings — plus a guided first-run setup wizard that locks the site to /setup until completed.
Shipped the interactive terminal, the first AI assistant integration, MDX diagram rendering, and the cost calculator as a single phase batch.
Full blog system with MDX rendering, auto-generated table of contents, series grouping, reading time, post reactions, and versioned changelogs per post. 31 posts migrated from static files.
Booking availability API with timezone support, work-hours rules, advance-notice limits, and a public-facing availability badge that shows open-to-work status.
Real-time status page that polls configured services and displays uptime history. Configurable via admin UI, no code changes needed to add/remove services.
Site-wide maintenance mode toggle in the admin navbar. Unauthenticated visitors see a maintenance page; authenticated admins pass through. APIs return 503 with Retry-After headers.
First commit. Next.js App Router foundation, design system, and the core page set that everything since has been built on top of.