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