Post your job free and verified plumbers, electricians, AC technicians and more bid within minutes. Compare real prices, pick your pro, pay directly after the work. .
CommerceTypeScript · HTMLGitHub @XpertServizOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
servigic providers
Translation pending
Loading the full README.
Read the full README ↗The Uber of home services: post a job, verified pros race to bid, money stays safely held until the work is done.
Built per servigic-master-brief-v1.1.md — every phase P1–P11 has code, from the core web marketplace through the Python AI/ML layer to the two Expo mobile apps. See What's real vs. simplified for the honest breakdown of what's fully tested vs. what needed graceful degradation because a real account/credential/device wasn't available in this environment.
/ Next.js web app (this is the P1-P7 core — start here)
ai-service/ Python FastAPI + LangChain + PyTorch microservice (P8/P9)
mobile/ Two Expo React Native apps: customer + pro (P10)
GCC_EXPANSION.md What "first non-PK city live" actually requires (P11)
COMPLIANCE.md Per-market legal checklist starting point (P11)
AWS_MIGRATION.md S3/SQS/ECS swap-in path for when UploadThing/in-process notify() outgrow their free tiers
Next.js 16 (App Router) · TypeScript · Tailwind v4 · Prisma 6 + PostgreSQL · NextAuth v5 (credentials + mobile JWT) · UploadThing · Resend · MapLibre GL + OpenStreetMap · Zod · FastAPI · LangChain · PyTorch · Expo/React Native
Database — either run Postgres locally with Docker, or create a free Supabase project:
docker compose up -d
This starts Postgres on localhost:5432 matching the default DATABASE_URL in .env.
Install & migrate:
npm install
npm run db:migrate # creates tables from prisma/schema.prisma
npm run db:seed # 12 categories, launch cities, admin user
The seed script prints the admin login (phone/password) to the console — or set SEED_ADMIN_PHONE / SEED_ADMIN_PASSWORD in .env first.
Run:
npm run dev
Visit http://localhost:3000.
For the AI service: ai-service/README.md. For the mobile apps: mobile/README.md.
Copy .env.example → .env (already done for local dev) and fill in real values before deploying. Nothing beyond DATABASE_URL is required to run the app locally — every external integration degrades gracefully to a no-op/console-log/heuristic when its env vars are unset, so the core flow is fully testable without any paid accounts.
| Var | Needed for |
|---|---|
DATABASE_URL / DIRECT_URL | Everything — Postgres connection |
AUTH_SECRET | Web session encryption (already generated in .env) |
MOBILE_JWT_SECRET | Mobile app auth tokens (already generated in .env) |
UPLOADTHING_TOKEN | Job photos, KYC docs, payment proof uploads (web + mobile) |
RESEND_API_KEY | Email notifications |
WHATSAPP_CLOUD_API_TOKEN / WHATSAPP_PHONE_NUMBER_ID | WhatsApp dispatch alerts (primary channel per the brief) |
SMS_GATEWAY_API_KEY | SMS fallback channel |
GOOGLE_PLACES_API_KEY | Admin Lead Fetcher only |
AI_SERVICE_URL / INTERNAL_AI_SERVICE_KEY | Job triage, lead qualifier, dispute summarizer, bid-win hint — all hidden in the UI when unset |
STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET | Future international PSP path — not wired to any live booking flow yet, see GCC_EXPANSION.md |
NEXT_PUBLIC_SUPABASE_* | Only needed if you swap the local Postgres for Supabase (also unlocks Realtime — see below) |
Web app (P1–P7) — complete, sellable marketplace:
proxy.ts), 4-preset theme system, working EN/UR/AR language switcher with RTLservigic-landing-prototype.html design contract, with real DB-backed proof/stats sections/pro acquisition pageAI layer (P8) — ai-service/:
SiteSettings.featureFlags toggle in /admin/settings, enforced server-sideML layer (P9) — also in ai-service/:
/admin/analyticsMobile apps (P10) — mobile/apps/{customer,pro}:
mobile/README.md for exactly what's verified (type-checked) vs. what needs a real device to confirmScale & Intl (P11):
GCC_EXPANSION.md)COMPLIANCE.md)AWS_MIGRATION.md) — not implemented because current volume doesn't need it, per the brief's own cost modelEverything above is real, working code — not stubs pretending to be features. The honest caveats:
next build (full type-check + static analysis across 70+ routes) and next lint, both clean. That confirms correctness of types, imports, and control flow — not runtime behavior against real data. Run the app yourself against a real database before showing it to a user.ai-service has no Python runtime in this environment — written correctly against current FastAPI/LangChain/Pydantic v2/PyTorch APIs, but never executed. Install and run it yourself (ai-service/README.md) before trusting it.npx tsc --noEmit, zero errors) but were never run with expo start. See mobile/README.md's "Not verified" section.mobile/README.md).