Sitenna CMS
A custom content-management app that drives the Sitenna site — no off-the-shelf CMS.

A purpose-built content-management app for the Sitenna platform. Authorized editors manage every piece of the public site — news, categories, media, team, products, partners, stats, industries — and each save regenerates just the affected static pages on the live site.
The problem
Off-the-shelf CMSes are heavy and fight the content model. Sitenna needed editors to own the whole marketing site — copy, imagery, team, news — with a publishing flow that keeps the static site fast and current.
The approach
A second Next.js 16 app writes content to Firestore and media to Firebase Storage through the Admin SDK, behind an authenticated 'authorized editors only' login. The content schema is vendored into both the CMS and the site and kept identical by parity tests, so the two apps never drift. On save, the CMS calls the site's revalidate endpoint to rebuild the changed pages.
What editors manage
News articles with status and category workflows, a media library with drag-and-drop uploads and copy-URL, team and advisory-board profiles, products, partners, industries and sectors, plus system tooling: messages, users, an audit log, and a recently-deleted recovery view.
Highlights
- Next.js 16 + React 19 admin app, gated behind Firebase Auth
- Firestore + Firebase Storage via the Admin SDK (all reads and writes server-side)
- Publish flow calls the site's /api/revalidate + revalidateTag — changed pages rebuild in seconds
- Shared content schema vendored into both apps, kept in lockstep by parity tests
- Full editorial surface: news, media, team, products, partners, industries, stats
- Audit log, soft-delete recovery, and role-gated users


