Changelog

Last updated on 2026-09-03

v1.0.0 -- September 3, 2026

Initial release of the Full-Stack Blog CMS Kit.

Public Blog (11 routes)

  • Home feed with featured posts, category filters from Supabase
  • Article page with view count incrementing via RPC function
  • Public comment submission (no auth required, creates pending comment)
  • Category listing with post counts from aggregate queries
  • Category detail with filtered posts
  • Tag detail with filtered posts
  • Author profile with bio, social links, and published posts
  • Search with category filters
  • About page with author team from the database
  • Newsletter archive from newsletter_issues table
  • RSS feed from published posts
  • Sitemap preview

Admin CMS (14 routes)

  • Dashboard with KPIs from database aggregates (posts, views, subscribers, pending comments)
  • Post list with status filters, search, and bulk actions
  • New post editor with Novel rich text editor, category/tag selection, SEO sidebar
  • Edit post with pre-filled data
  • Analytics dashboard with pageview trends, post performance, subscriber growth (Recharts)
  • Comment moderation queue with approve/reject/spam and bulk actions
  • Author management
  • Tag CRUD
  • Category CRUD
  • Media library with Supabase Storage upload and alt text editing
  • Subscriber management with search, export, growth stats
  • Scheduled posts queue
  • Site settings (blog name, description, logo, SEO defaults)

Authentication (4 routes)

  • Email/password login and registration
  • Google and GitHub OAuth via Supabase Auth
  • Password reset with email verification
  • OAuth callback and email confirmation handlers
  • Automatic profile creation with author role via database trigger

Infrastructure

  • 11 Supabase database tables with migrations
  • Public/private RLS policies (public read for blog, role-based write for admin)
  • Helper functions: is_blog_admin(), is_blog_editor_or_above(), is_blog_author_or_above()
  • Database triggers: profile auto-creation, updated_at, view counting (increment_post_views RPC), reading time calculation
  • Supabase Storage bucket (blog-assets) for featured images and media
  • Three Supabase client types (browser, server, admin)
  • Next.js middleware protecting only /admin/* routes (blog routes fully public)
  • 10 Server Action files covering all CRUD operations
  • Mapper layer (lib/queries.ts) converting snake_case DB rows to camelCase types
  • Static analytics data for traffic sources and engagement metrics
  • Seed data: 5 authors, 6 categories, 18 tags, 15 posts, 20 comments, 12 media items, 18 subscribers, 5 newsletter issues, 30 days pageview data

Technical

  • Next.js 16 with App Router
  • React 19
  • Tailwind CSS v4 with oklch tokens
  • shadcn/ui components
  • Novel (Tiptap-based) rich text editor
  • TypeScript throughout
  • ESLint clean (zero errors, zero warnings)
  • Production build clean (29 routes)
  • WCAG AA accessibility
  • Light and dark mode