blog
Next.js blog app with MDX content, Supabase-backed auth/data, and an RSS feed, deployed at blog.albertonline.org.
Overview
blog is the Next.js blog application for albertonline.org. It renders MDX
content alongside Supabase-backed authentication and data, generates an RSS
feed, and shares the monorepo's Sentry and PostHog observability projects
(tagged app=blog). It's the personal/public-writing surface of the suite,
separate from the main web product.
Stack
- Next.js (Turbopack) + React
- MDX content (
@next/mdx,next-mdx-remote,gray-matter,remark/rehypeplugins) - Supabase (auth + database) via
@repo/db/@repo/auth @repo/design-system,@repo/analytics,@repo/observability(shared UI, PostHog, Sentry)- Drizzle ORM (schema via
@repo/db) - Vitest (unit) + Playwright (E2E)
Develop
pnpm -F blog dev # http://localhost:3004 (Turbopack)
pnpm -F blog dev:ts # dev server + watched typecheck
pnpm -F blog build # production build (Turbopack)
pnpm -F blog start # serve the production build on :3004
pnpm -F blog check-types # tsc --noEmitUses Supabase for auth and the database. Run supabase init / supabase link once, then
supabase db pull to sync the schema locally — see the app README for the full setup flow.
Database scripts proxy to @repo/db:
pnpm -F blog db:generate
pnpm -F blog db:push
pnpm -F blog db:migrate
pnpm -F blog db:studioTest
pnpm -F blog test # vitest run
pnpm -F blog test:watch # vitest watch mode
pnpm -F blog test:coverage # vitest with coverage
pnpm -F blog test:e2e # playwright test
pnpm -F blog test:e2e:ui # playwright UI modeBuild & deploy
pnpm -F blog buildDeployed on Vercel (albertonline-org-blog) at
blog.albertonline.org; production deploys
trigger on push to main via the Vercel Git integration.
Structure
src/— app routes, components, and MDX content pipelinesrc/scripts/rss— RSS feed generation (pnpm build-rss)src/db/seed.ts— database seed script (pnpm db:seed)e2e/— Playwright end-to-end teststests-examples/— sample Playwright specs
See the apps overview and the monorepo overview.