All projects
UI Design • Database Design • Development

Midnight Archive

The web home of Obscurity Shroud, a trilogy of urban fantasy novels set in the hidden corners of Sydney. Pairs a chapter reader built around careful typography with a shared lore browser, illustrations, and optional atmosphere, alongside reader accounts, chapter discussion and reactions. Includes an author dashboard for editing, publishing, and moderation.

Next.js
TypeScript
TailwindCSS
Prisma
Supabase

Why it exists

Obscurity Shroud is a trilogy of urban fantasy novels set in Sydney. Midnight Archive gives it a home built around the prose: chapters stay in the author's order and the story stays linear, while lore, illustrations and atmosphere sit around the text instead of turning the novel into a game.

What it does

  • A trilogy overview, book pages and a chapter reader with careful typography, optional lore notes, and previous and next navigation within and between books.
  • A shared lore browser for characters, locations, factions and events, linked from the story text, with lore that can be gated by reading progress so readers discover the world as the protagonist does.
  • Reader accounts that save and resume reading position across devices.
  • Optional chapter discussion and reactions, with spoiler boundaries, private reports and author moderation.
  • An author dashboard for book details, ordered chapter blocks (including pasted Markdown), publication states, release times and shared lore entries, with aggregate reading analytics.

How it's built

  • Next.js App Router, React and strict TypeScript, with chapters stored as typed content blocks for prose, illustrations, annotations and lore references.
  • Supabase Postgres with row-level security. Authors save through guarded RPCs that validate input, require an explicit publication review, and reject stale saves by comparing revisions.
  • Reading progress uses owner-scoped tables with compare-and-increment revisions, so a stale tab can't overwrite newer progress.
  • Sitemaps, canonical and Open Graph metadata and series JSON-LD are built only from published, publicly visible content, never drafts.