Admin
WebModeration panel for posts and accounts.
- ADMIN
- Publishes a post or moves it back to draft
- Deletes posts
- Never edits other people's content
A reusable fullstack template: GraphQL API, admin panel, web portal and native mobile app, with an end-to-end local demo.
Prepare the demo
bun run demo:setup
Start the API and the web apps
bun dev
Three clients talk to a single GraphQL API, the only piece that touches the data.
Images do not go through the API: it signs the URL and the client uploads (PUT) and reads (GET) straight from storage.
Each user type has its own application, sharing the same design tokens and the same GraphQL contract.
Moderation panel for posts and accounts.
Workspace for the people who publish.
Expo app for iOS and Android.
No URL: it runs on your simulator or device with a development client, not in Expo Go.
Postgres, Redis and a local S3 run in Docker Compose. Three commands get login and posts working across the three applications.
They are generated on your machine and never published here. To learn how to get them, see the local fixture guide:
docs/operations/local-dev-fixture.md
Gets everything ready: environment variables, Docker Compose, migrations and sample data.
bun run demo:setup
Starts the API, admin, portal and this landing.
bun dev
Starts the mobile app. It needs a development client installed.Optional
bun run dev:mobile
A Bun and Turborepo jey. A single tokens package themes Mantine on web and Unistyles on mobile, in light and dark.
The jey ships with navori: an orchestrator that splits the work across specialized agents, with skills, quality gates and hooks that stop destructive actions. It is versioned in the repo, not on your machine.
Reusable procedures the agents apply depending on the task.
Nothing is called done without evidence.
Rules that run on their own, without relying on anyone to remember them.
Each host gets its own configuration generated from the same navori.config.json; on Pi, implementer, reviewer and scout run.