Buy, rent, or sell a vehicle in Rwanda. Compare range, battery, price, and condition across verified dealers and private owners, then book a test drive in Kigali.
Translation pending
CommerceTypeScript · CSSGitHub @voltarisrw-progOnlineOwner 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
Voltaris Mobility — Next.js marketplace frontend
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Rwanda-focused electric vehicle marketplace. Next.js 16 (App Router), TypeScript
strict, Tailwind. 41 routes covering the public marketplace, seller onboarding,
authentication, checkout, and the internal admin surface.Read the full README ↗Rwanda-focused electric vehicle marketplace. Next.js 16 (App Router), TypeScript strict, Tailwind. 41 routes covering the public marketplace, seller onboarding, authentication, checkout, and the internal admin surface.
cp .env.example .env.local # fill in NEXT_PUBLIC_API_BASE_URL
npm install
npm run dev
| Command | What it does |
|---|---|
npm run dev | Development server |
npm run build | Production build |
npm run typecheck | tsc --noEmit, strict + noUncheckedIndexedAccess |
npm run lint | ESLint |
npm test | Vitest — 33 unit tests |
npm run e2e | Playwright, desktop and mobile viewports |
Every endpoint is declared as a typed contract in src/lib/api/ with a
BACKEND DEPENDENCY comment naming the routes. Nothing is mocked or stubbed with
sample data — pages that cannot reach the API render their real error and empty
states, which is why the build prerenders 30 pages against a dead backend without
failing. When the API arrives, only src/lib/api/ should need touching.
src/types/api.ts documents the single assumption made about the response envelope:
the error shape is fixed by the brief, the success shape is assumed to be
{ success: true, data: T }. If it differs, change request() in client.ts only.
Public — homepage, marketplace with URL-driven filters, vehicle detail, enquiry, test drive request and public status tracking, comparison, seller listing flow, dealer directory and profiles, brand directory and profiles, five curated SEO landing pages, editorial index and articles, charging directory.
Account — profile, saved vehicles, saved searches, enquiries, test drives, orders, notifications.
Auth — register, sign in with an MFA branch, sign out, forgot and reset password, email verification.
Checkout — order creation, provider-hosted payment, and a status view that reads reconciled state from the backend.
Admin — dashboard, listing review queue with publish/reject, leads, audit log.
ARCHITECTURE.md — layering, state, caching, backend dependencies, security postureSEO.md — indexation policy, metadata system, structured dataDEVELOPMENT.md — where things go, conventionsENVIRONMENT.md — every variable and why it is or is not publicANALYTICS.md — the event contract and what never leaves the browserDEPLOYMENT.md — pipeline, environments, pre-launch checklistDesign and build: Patrice. The credit renders in the footer and is configured in
src/content/home.ts under credits — add a url to make the name a link, or extend
people to cover more than one contributor.