Mirobody
The canonical registry of human health — roughly two thousand standardized indicators, clinical and lifestyle, resolved into one language.
Compare Singapore hospitals, A&E departments, polyclinics and GPs. Live estimated wait times, nearest facilities, polyclinic appointment reminders.
Translation pending
HealthTypeScript · CSSGitHub @KeyanIsCoolOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Singapore healthcare wait times — compare A&E, polyclinics and GPs
Translation pending
Loading the full README.
Read the full README ↗Compare Singapore healthcare wait times — public hospital A&E, polyclinics, private hospitals, and GPs. Built as a mobile-first, SEO-friendly utility.
Not medical advice. In an emergency, call 995.
# 1. Install
npm install
# 2. Configure environment
cp .env.example .env
# 3. Create and seed the database
npm run db:push
npm run db:seed
# 4. Run the dev server
npm run dev
Open http://localhost:3000.
| Command | What it does |
|---|---|
npm run dev | Dev server |
npm run build | Prisma generate + Next.js production build |
npm run start | Start production server |
npm run lint | Next ESLint |
npm run typecheck | TypeScript check |
npm run db:push | Apply schema to database |
npm run db:seed | Seed demo facilities and articles |
See .env.example. Required:
DATABASE_URL — SQLite (file:./dev.db) locally; PostgreSQL in prod.NEXT_PUBLIC_SITE_URL — Fully qualified site URL for canonical/OG/sitemap.ADMIN_USER / ADMIN_PASS — HTTP Basic credentials for /admin.NEXT_PUBLIC_ADSENSE_CLIENT — Optional AdSense publisher ID. Ads collapse gracefully when empty.Visit /admin and sign in with ADMIN_USER/ADMIN_PASS. Includes:
Admin and /api are blocked in robots.txt.
app/ # Next.js App Router routes & pages
components/ # Reusable UI (FacilityCard, FilterBar, FacilityMap, etc.)
lib/ # DB, geo, time, queries, abuse, notifications
lib/data-sources/
official/ # Future official API adapters (placeholder)
crowd/ # Crowd-report aggregator
prisma/ # Schema & seed
public/ # Static assets
Every data source normalizes to the shape in lib/data-sources/types.ts. Add a new source by implementing DataSourceAdapter — the UI, API, and sitemap pick it up automatically.
DATABASE_URL to a hosted Postgres (Vercel Postgres, Supabase, Neon). Change schema.prisma provider to postgresql and run prisma db push.The build runs prisma generate && next build.
Reminder table + /api/reminders) but a background worker to actually send them is a deployment concern (Vercel Cron + email provider / Web Push).public/icon.svg is a placeholder; add 192/512 PNGs before shipping.prefers-reduced-motion honouredPrivate project. Facility names and addresses belong to their respective operators.