Chainlog — Launch Checklist

Last Updated: 2026-02-21
Status: Pre-launch MVP


âś… Completed (This Session)

UI Polish

  • Better empty states with icons and improved copy
  • Loading skeletons for dashboard, changelog list, and entry detail pages
  • SubscribeButton component with “coming soon” modal
  • Entry cards with better typography, hover effects, relative dates
  • Hero section on public changelog page
  • Sticky headers with backdrop blur
  • Consistent footer with feed links
  • Mobile-responsive improvements
  • Fixed back links to use /changelog route
  • Settings page placeholder (shows “coming soon” sections)

đź”´ Blockers (Must Fix Before Launch)

Critical

  • Demo tenant issue: Public changelog returns 404 if no “demo” tenant exists
    • Fix: Add DEFAULT_TENANT_SLUG env var or seed demo tenant
    • Location: apps/web/src/app/changelog/page.tsx line ~35

High Priority

  • Clerk configuration: App needs Clerk publishable key to work
    • Without it, auth doesn’t work and dashboard is inaccessible
    • Set NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY

🟡 Should Have (Before Public Launch)

Functionality

  • Email subscriptions (currently shows “coming soon”)
    • Need: Email provider integration (Resend/SendGrid)
    • Need: Confirmation flow
    • Need: Unsubscribe handling
  • Team management UI
  • Mobile sidebar collapse (hamburger menu)

Data & Content

  • Seed initial taxonomy values (What/Why/Impact)
  • Create sample changelog entries for demo
  • Add favicon/og-image

Polish

  • Pagination for entries (currently hard limit of 50)
  • Date range picker for filtering
  • Sort options on public changelog

🟢 Nice to Have (Post-Launch)

Features from Spec

  • Configurable taxonomy (5-axis system)
  • Entry versioning / audit trail
  • Full-text search (currently ILIKE)
  • REST API for entries
  • API key management
  • Webhook delivery
  • Custom domain verification
  • Entry templates
  • Bulk operations
  • Entry analytics

Polish

  • Markdown editor with preview (currently plain textarea)
  • Custom branding (apply brand_colors)
  • Dark mode toggle
  • Keyboard shortcuts

🚀 Deployment Checklist

Environment Variables

DATABASE_URL=postgresql://...
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_...
CLERK_SECRET_KEY=sk_...
DEFAULT_TENANT_SLUG=demo  # Optional: fallback tenant

Database

  • Run migrations: pnpm db:migrate
  • Seed demo tenant and sample entries

Vercel

  • Set environment variables
  • Deploy from main branch
  • Test public changelog at /changelog
  • Test dashboard at /dashboard

Architecture Notes

Current Stack

  • Framework: Next.js 14 (App Router)
  • Database: PostgreSQL (Neon) + Drizzle ORM
  • Auth: Clerk
  • Styling: Tailwind CSS + shadcn/ui
  • API: Server Actions (no REST API yet)

File Structure

apps/
  web/           # Next.js frontend + dashboard
  api/           # Standalone API (partial, uses new taxonomy)
packages/
  database/      # Shared Prisma schema (not used by web)

Key Files

  • Schema: apps/web/src/lib/db/schema.ts
  • Public changelog: apps/web/src/app/changelog/page.tsx
  • Dashboard: apps/web/src/app/dashboard/page.tsx
  • Entry form: apps/web/src/components/dashboard/entry-form.tsx

Git Status

Branch: vercel-fix
Commits added:

  1. 74e6dc2 - UI polish: better empty states, loading skeletons, and visual improvements
  2. 84cb75c - Add settings page placeholder with coming soon sections

Ready to merge to main and deploy.