Backend

Connect Adhara

Gravity ships with zero backend dependencies — everything runs on local JSON files. Adhara is the real system behind it, for when you're ready to scale past one editor on one machine.

Local JSON. No setup, no signup.

Clone Gravity and all of this already works, stored as plain JSON files under data/content/ — nothing to install, nothing to configure, nothing running in the cloud.

Blog & Events

Full editor, drafts, publish state — one JSON file per post or event.

Customer Portal

Register, log in, courses, community, resources, certificates, profile — a real portal, fully local.

Contacts

A simple local contact list for anything you collect from your site.

This is real, working storage, not a demo mode — plenty of sites never need anything more.

What Adhara adds

Local JSON is one file per record on one machine — great until you need more than one editor, more than one server, or data that survives a redeploy. Adhara is EIM's backend platform: a real multi-tenant database, staff accounts with real logins, a CRM, and a hosted admin dashboard your team can use from a browser — no JSON files to hand-edit.

  • Real database — survives redeploys, works across multiple servers
  • Staff accounts — invite teammates instead of sharing one login
  • CRM & leads — every form submission and signup lands in one place
  • Course & community authoring — build content from Adhara's dashboard, not JSON
  • Commerce — products, checkout, and orders

Two levels, one at a time

Level 1 — API key

Content & customer portal

Set three environment variables and Gravity auto-detects Adhara — no code changes, no purchase. This alone unlocks:

  • Blog & event content pulled from Adhara
  • The full customer portal — real accounts, courses, community, certificates
  • Newsletter & form submissions routed into Adhara

Just needs an Adhara workspace and an API key.

Level 2 — Adhara SDK

Staff admin & content management

Logging into /admin as staff, and creating, editing, or deleting blog posts, events, and commerce from Gravity's admin panel, all go through the Adhara SDK — a separate, licensed Python package.

The SDK is not open source and isn't included in this repo. It's sold separately by EIM Global Solutions. Without it, /admin stays locked and Gravity keeps using local JSON for anything that needs it.

Connect in three steps

01

Get your workspace credentials

From your Adhara workspace dashboard, grab your API key (Settings → API Keys), your workspace slug, and your workspace ID (UUID). Don't have a workspace yet? Contact EIM Global Solutions.

02
.env

Add three lines to .env

These are the same three variables everywhere else in Gravity — nothing new to learn.

.env
ADHARA_API_KEY=adhara_pk_...
ADHARA_WORKSPACE=your-workspace-slug
ADHARA_WORKSPACE_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
03
make dev

Restart — that's it

Gravity auto-detects the new variables. Blog, events, and the customer portal switch from local JSON to Adhara immediately — no code changes. Restart with make dev locally, or redeploy if you're already live.

Want staff admin access too?

The three steps above unlock content and the customer portal. To also unlock /admin — staff logins, and creating or editing content from a browser — you'll need a license for the Adhara SDK, which isn't part of this open-source repo.

Get the Adhara SDK →