Civic 311
Community Civic · React + Node (Express) · 11 @molecule/* packages
SeeClickFix-like civic issue reporter with photo + map pin, status workflow, duplicate detection, and watch areas — including a built-in subscription tier (Free / Pro / Team) backed by Stripe
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (16)
- Landing
/ - Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Explore
/explore(signed in) - ReportIssue
/report(signed in) - MyReports
/my-reports(signed in) - ReportDetail
/reports/:id(signed in) - WatchAreas
/watch-areas(signed in) - Notifications
/notifications(signed in) - Settings
/settings(signed in) - Pricing
/pricing - About
/about - Terms
/terms - Privacy
/privacy
Data model (6 tables)
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- issues — id, reporter_id, category, description, status, photo_url, x, y, …
- issue_events — id, issue_id, kind, actor_id, text, from_status, to_status, created_at
- confirmations — id, issue_id, user_id, created_at
- watch_areas — id, user_id, name, x, y, radius, created_at
- notifications — id, user_id, kind, issue_id, message, read_at, created_at
API (7 handlers)
- \_seed
api/src/handlers/_seed.ts - \_test
api/src/handlers/_test.ts - issues
api/src/handlers/issues.ts - notifications
api/src/handlers/notifications.ts - photos
api/src/handlers/photos.ts - users-me
api/src/handlers/users-me.ts - watch-areas
api/src/handlers/watch-areas.ts
Subscription tiers
free / pro / team — gated by: maxOpenIssues, maxWatchAreas, photoAttachments, duplicateDetection, watchAreaAlerts, exportHistory
Built from 11 @molecule/* packages
@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-uploads@molecule/api-uploads-s3@molecule/app-billing-react@molecule/app-shell-layout-react
Required secrets
DATABASE_URLPostgreSQL connection stringSTRIPE_SECRET_KEYStripe secret API key (sk_test_... in test mode)STRIPE_WEBHOOK_SECRETStripe webhook signing secret (whsec_...)
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing