Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
The fastest way to price a prang. Request repair quotes from nearby panel beaters in minutes.
BusinessTypeScript · PLpgSQLGitHub @CarlofSaintsOnlineOwner 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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Crash · Quote · Claim. The fastest way to price a prang.
An online tool where consumers request repair quotes from nearby panel beaters, plus an authenticated back-office portal where assessors build and issue the quotes. Built with Next.js 16 (App Router), Vercel Blob, Resend, Google Maps and Claude (licence-disc reading).
| Concern | Choice |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack, React 19) |
| Styling | Tailwind CSS v4 + brand tokens (Space Grotesk / Archivo) |
| Data store | Vercel Blob (JSON documents) |
| Media | Vercel Blob (client uploads, which bypass the 4.5MB API limit) |
| Auth | Cookie session (JWT via jose) + bcrypt, role/permission model |
| Resend (branded HTML) | |
| Maps | Google Geocoding API (server only, GEOCODING_API_KEY) |
| Vehicle ID | Claude vision reads the SA licence disc (VIN API upgrade planned) |
| PDF quotes | @react-pdf/renderer |
/ → Price my Prang button → multi-step form:
name, email, insurance/warranty/claim questions, licence-disc photo (read by
Claude), optional 20-second in-browser video (auto-stops at 20s), engine-damage
question, repeatable damage photos (max 15), quotes wanted (1–4) → map of
nearby panel beaters → select → submit. A reference PMP-YYYYMMDD-SURNAME-NN
is generated and confirmation emails go to the consumer and the assessors.
/portal, auth required)view_dashboard).build_quotes).manage_panel_beaters / onboard_self).manage_parts).manage_users).admin · assessor · panel_beater. Defaults live in lib/permissions.ts;
per-user extra permissions can be granted on top.
npm install
cp .env.example .env.local # fill in the values (see below)
npm run dev
See .env.example. Minimum to run locally: SESSION_SECRET, SEED_SECRET,
BLOB_READ_WRITE_TOKEN (link a Vercel Blob store). Maps, Claude and Resend are
optional, and the app degrades gracefully without them (map falls back to a list,
disc reading is skipped, emails are not sent).
With SEED_SECRET set, create the first admin (once):
POST /api/seed
{ "secret": "YOUR_SEED_SECRET", "name": "Carl", "email": "[email protected]", "password": "changeme" }
On Windows run this from cmd.exe (PowerShell aliases
curltoInvoke-WebRequest), or useInvoke-RestMethod.
Then sign in at /login.
Push to GitHub and import into Vercel. Add a Blob store and set the env vars.
Production emails should send from [email protected] (verify the domain
in Resend) via EMAIL_FROM. Point www.pricemyprang.com / .co.za at the
Vercel project when ready.