Aurea Docs
Apps

apps/web

The public-facing Aurea website - Next.js 15, reading journal content from the API over GraphQL.

Overview

apps/web is the public Aurea website. It runs on Next.js 15 (App Router). Journal content is owned by the API (apps/api) and read over GraphQL - there is no CMS runtime in this app (PayloadCMS was removed in plan 09; authoring moved to the dashboard staff console).

  • Port: 3000
  • Package name: @aurea/web

Technology

ConcernLibrary
FrameworkNext.js 15 (App Router, RSC)
ContentAPI GraphQL (apps/api content module) via fetch
Rich textLexical state rendered by a local LexicalRenderer
StylingTailwind CSS 4
UI components@repo/ui

Key environment variables

VariableDescription
INTERNAL_API_URLServer-only API GraphQL endpoint for SSR/ISR journal reads
NEXT_PUBLIC_API_URLBrowser API GraphQL endpoint (contact form)
NEXT_PUBLIC_CMS_MEDIA_BASE_URLPublic R2/CDN base for cover images (host added to remotePatterns)
NEXT_PUBLIC_SITE_URLCanonical URL (e.g. http://localhost:3000)

Journal

Articles are authored in apps/dashboard (/admin/journal) and stored in the API Postgres. The public site reads them via src/app/(frontend)/journal/_lib/get-articles.ts (publishedArticles / publishedArticle) and renders the Lexical body with journal/_components/LexicalRenderer.tsx. Only published, past-dated articles are exposed.

Scripts

bun run dev    # next dev --port 3000
bun run build  # next build
bun run start  # next start --port 3000
bun run test   # vitest (LexicalRenderer parity test)

On this page