Hydrogen
Commerce primitives for you and your coding agents. Add cart, products, money, and accounts to the framework you already use.
Demo: demand-first offtake + embedded finance for Northern-Nigeria perishable-crop smallholders. Farmer (USSD), Agent (PWA), Buyer (web) — live.
Translation pending
CommerceTypeScript · CSSGitHub @ismailquadriOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A functional demo of a demand-first offtake + embedded-finance platform for
Northern-Nigeria perishable-crop smallholders. One live run shows the full loop
across three actors, updating live across screens:
• /phone — Farmer (Musa / Hauwa): feature-phone USSD in Hausa + SMS inbox
• /agent — Agent (Ibrahim): installable PWA — register, enrol + advance, grade, aggregate
• /buyer — Buyer (Mrs. Okafor): post demand, watch supply fill live, fund escrow
• /admin — Presenter: impact metrics (income uplift, loss avoided, GMV, revenue split) + Reset demo
• / — launcherRead the full README ↗A functional demo of a demand-first offtake + embedded-finance platform for Northern-Nigeria perishable-crop smallholders. One live run shows the full loop across three actors, updating live across screens:
/phone — Farmer (Musa / Hauwa): feature-phone USSD in Hausa + SMS inbox/agent — Agent (Ibrahim): installable PWA — register, enrol + advance, grade, aggregate/buyer — Buyer (Mrs. Okafor): post demand, watch supply fill live, fund escrow/admin — Presenter: impact metrics (income uplift, loss avoided, GMV, revenue split) + Reset demo/ — launcherSimulated & labeled: USSD/telco, payment settlement, and NDFR verification are mocked for the demo. Production runs over Africa's Talking + a licensed PSP.
Single Next.js (App Router, TypeScript) app. Thin /api/* route handlers validate
with zod, call isolated src/domain/* services (pricing, finance, escrow, USSD, metrics —
all unit-tested, money in integer kobo), and persist via Prisma + Postgres. Every
mutation publishes a Server-Sent Event; all open surfaces refetch within ~1–2s
(polling fallback if SSE drops).
src/domain/* pure business logic (TDD) src/app/api/* thin adapters + publish()
src/realtime/hub SSE publish/subscribe src/lib/useAppState live client state
prisma/schema data model src/domain/seed deterministic demo cast
docker compose up -d # Postgres on host port 5433
cp .env.example .env # DATABASE_URL points at localhost:5433
npx prisma migrate deploy # apply migrations (non-destructive)
npm install
npm run seed # load the demo cast
npm run dev # http://localhost:3000
Open /buyer, /agent, and /phone in three windows side by side to see live sync.
Fully self-contained; works with venue wifi down.
docker compose up -d
npx prisma migrate deploy && npm run seed
npm run build
npm start # production server on :3000
During the pitch, use the Reset demo button on /admin to return to a clean cast
between runs (this uses the app's own reset — always available).
*347*55# → 1 (sell) → tomato → 12 baskets → hears the fair
price (₦5,000) vs the middleman glut price (₦3,000) → 1 (accept).Expected ledger for the run above: Musa ₦57,000 (advance + net payout ₦17,000), agent ₦1,200 (2% commission), platform ₦1,800 (3% fee, advance recouped).
npm test # domain unit tests (no DB)
npm run test:e2e # hero-path integration test — drives the real handlers against Postgres
The e2e test resets via the app's own seed module and asserts the full ledger settles.
DATABASE_URL to the Neon string.DATABASE_URL="<neon-url>" npx prisma migrate deploy
DATABASE_URL="<neon-url>" npm run seed
postinstall runs prisma generate
automatically during the build. Deploy and verify the hero flow on the live URL.npm run db:resetdb:reset runs prisma migrate reset, which drops and recreates the database.
Prisma's CLI refuses this when invoked by an AI coding agent, so run it yourself from a
normal shell when you want a full wipe. For day-to-day resets (including during the demo),
use the Reset demo button on /admin — it re-seeds without touching migrations.