Gravity Gravity Docs

Gravity

Gravity is an open-source, Python-native front-end web framework — FastAPI routing, Uvicorn/Gunicorn serving, JWT auth scaffolding, a CSS design-token system, and five swappable themes, ready the moment you clone it. No Node.js, no build step.

It is the front end. It doesn't store real data, send email, or run a CRM on its own — for that, connect Adhara, EIM's managed backend platform, or build your own backend on the routing, auth, and security scaffolding already here. See Backend & Adhara for the honest tradeoffs of each path.

This documentation is written for two audiences at once: a human reading it on the site, and an AI coding agent that's cloned the repo and is reading the same .md files directly from docs/gravity/. Nothing here is duplicated or reworded between the two — one set of files, one source of truth.

Where to start

  • Getting Started — install the prerequisites, clone the repo, get a local server running. Start here if you're setting up for the first time.
  • Architecture — the stack, the directory structure, and how a request actually flows from browser to response. Start here if you're about to make a change and want to know where things live.
  • Features — what's actually built in: routing, theming, auth, the Visual Editor, storage backends, deployment targets.
  • Backend & Adhara — what Gravity does and doesn't do on its own, what Adhara adds, and what building your own backend actually involves.
  • Deployment — shipping to Vercel, Google Cloud Run, Cloudflare Containers, or Azure Container Apps, and the Uvicorn-vs-Gunicorn tradeoff.
  • Authentication — the two independent auth systems (admin, customer portal) and how each one actually checks a request.

Further reading

For AI coding agents

If you're an agent that's been pointed at this repo (or this URL) to build something with Gravity: read Getting Started and Architecture first — together they cover how to run it locally, how a request flows through the app, and where each kind of change belongs (a new page, a new API route, a new storage backend). If the change is a new page, also read the repo's AGENTS.md — title/SEO/Open Graph and the sitemap are generated automatically for a page that follows the normal pattern, and it covers the couple of things that aren't (does this page belong in the sitemap, and don't hardcode brand strings/images that should come from site config instead). docs/gravity/*.md in the repo is the same content you're reading now; grep it directly rather than fetching this site if you already have the repo cloned. The repo's README.md and .env.example are the authoritative, actively-maintained references for the full environment-variable list — this documentation deliberately doesn't duplicate that table, since it would go stale the moment a new one is added.