Ecommerce Template
Modern ecommerce template built with Next.js 16, React 19, Drizzle, Better Auth, Supabase, and Stripe.
The reference for real‑estate rentals in Burkina Faso. Find your apartment, house or commercial space in Ouagadougou.
AI translation
La référence de la location immobilière au Burkina Faso. Trouvez votre appartement, maison ou local commercial à Ouagadougou.
CommerceTypeScript · JavaScriptGitHub @saliftankoanoOnlineOwner 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
Property platform for Burkina Faso: a Next.js website, authenticated API, and operations dashboard with Supabase, Clerk, and Mobile Money payments.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Roogo's public property website, owner/agent workspace and staff operations dashboard for Burkina Faso. This Next.js repository also owns the authenticated API and database migrations used by the Roogo mobile app.Read the full README ↗Roogo's public property website, owner/agent workspace and staff operations dashboard for Burkina Faso. This Next.js repository also owns the authenticated API and database migrations used by the Roogo mobile app.
The mobile app is a client of this backend. Server rules, not client prices or browser-return parameters, decide payment ownership, price, status and fulfillment.
Backend PR #29 and mobile PR #29 add clear failure explanations and recovery that preserves an unresolved or already-paid deposit.
The feature covers customer-initiated reservations, rent, listings, boosts, hosted payments and 3D visits. Owner payouts, refunds and a notification inbox are outside its scope.
NEEDS_SUPPORT means money was collected but the reservation is unconfirmed. Retain the reference and offer support, not another payment.Database prerequisites executed and verified on Roogo on 2026-09-09; feature release still pending.
| Migration | Status | Database responsibility |
|---|---|---|
| 070 | Executed | Failure fields, delivery claims, cooldown and send boundaries |
| 071 | Executed | Atomic property reservation/finalization |
| 072 | Executed | Single-use listing payments, durable consumption and atomic amenities |
See the execution ledger for the exact project, UTC times, checksums and verification. Applying SQL does not deploy the PR's API/screens or prove push/SMS delivery. These applied files are now immutable; future database changes require a new migration.
Open release blocker: mobile can become trapped after reopening an old successful payment link without its original listing draft. This documentation/migration task did not fix that review finding. Backend deployment, the mobile fix/release and native/provider acceptance checks remain in ROADMAP.md.
npm install
npm run dev
npm test
npx tsc --noEmit --incremental false
npm run lint -- --max-warnings=0
The development server listens on port 3000. See .env.example and CLAUDE.md for configuration and architecture. Keep Clerk, Supabase service-role, payment and messaging credentials server-side; never place them in mobile EXPO_PUBLIC_* variables.
Current production migration history records only 070–072: older schema existed without a history table. Do not run an unrestricted supabase db push or mark 001–069 applied by assumption. Older history needs a separate audit before adopting a full CLI migration baseline.
free_success_fee: 0 XOF at submission; one fee equal to 50% of the listed
monthly rent is stored and collected from the first rent Roogo receives.upfront_package: the selected pack, monthly-rent commission, and add-ons are
paid before the listing is created; no deferred success fee is stored.daily_free: daily inventory is submitted without the monthly success fee.All monthly free_success_fee submissions require explicit acceptance. Later
rent collection is enabled by default when a monthly agreement becomes active;
the owner can opt out for future unpaid installments, and the 7% collection fee
applies only to rents paid through Roogo. See docs/SYSTEM.md for settlement,
opt-out, and idempotency details.
Use this section as the source of truth when testing payments locally.
roogo-web/.env.local) controls payment provider mode:
PAWAPAY_LOCAL_MODE=sandbox|liveDEV_PRICING_OVERRIDE=true|falseroogo/.env.local) controls mobile UI pricing display + backend target:
EXPO_PUBLIC_API_URL=http://<YOUR_LOCAL_IP>:3000EXPO_PUBLIC_DEV_PRICING_OVERRIDE=true|falseDEV_PRICING_OVERRIDE changes pricing response used for payment amount calculation in local testing.roogo-web and mobile app packager).Backend (roogo-web/.env.local):
PAWAPAY_LOCAL_MODE=sandbox
DEV_PRICING_OVERRIDE=false
Result:
Backend (roogo-web/.env.local):
PAWAPAY_LOCAL_MODE=sandbox
DEV_PRICING_OVERRIDE=true
Result:
Backend (roogo-web/.env.local):
PAWAPAY_LOCAL_MODE=live
DEV_PRICING_OVERRIDE=true
Result:
Backend (roogo-web/.env.local):
PAWAPAY_LOCAL_MODE=live
DEV_PRICING_OVERRIDE=false
Result:
In roogo/.env.local:
EXPO_PUBLIC_API_URL=http://<YOUR_LOCAL_IP>:3000
EXPO_PUBLIC_DEV_PRICING_OVERRIDE=true
Notes:
EXPO_PUBLIC_API_URL must point to your local backend when testing from a physical device.EXPO_PUBLIC_DEV_PRICING_OVERRIDE changes what user sees in mobile UI, but payment environment still comes from backend PAWAPAY_LOCAL_MODE.