DevCongress Community is an open-source event operations app for running DevCongress meetups. It helps organizers publish events, manage CFP and speaker follow-up, import attendance, collect feedback, and prepare live quiz sessions.
The app is a Vue 3 + Vite frontend served by a Bun/Hono API, with Cloudflare and Supabase support being introduced gradually as the prototype moves toward production use.
Key capabilities:
- Public meetup pages, archive pages, CFP entry, and post-event feedback forms
- Organizer workflows for event publishing, talk review, speaker access, attendance, media, feedback, and quiz setup
- Luma CSV attendance import with monthly event-window checks and attendance summaries
- Supabase-backed organizer auth and public data paths where production persistence is already active
- Cloudflare Pages and Worker deployment path with same-origin
/api/*routing
For the full system shape, see Architecture and Implementation Notes.
pnpm install
cp .env.example .env.local
pnpm seed
pnpm devThe local Vite server starts the Vue app and same-origin Hono API, usually at http://localhost:5173.
See Local Development for environment variables, Supabase notes, seed data, and troubleshooting.
pnpm dev # Start local dev server
pnpm seed # Reset JSON mock data
pnpm typecheck # Run Vue/TypeScript checks
pnpm build # Typecheck and build production assets
pnpm start # Serve the built app with Bun
pnpm test # Run Vitest tests
pnpm verify:public-api # Verify public meetup API contractStart with the centralized Documentation Map if you are unsure where to go next.
| Guide | Description |
|---|---|
| Community Guide | Public event, CFP, archive, feedback, and quiz flows |
| Organizer Guide | Event operations, talks, speakers, attendance, feedback, and quiz hosting |
| Document | Description |
|---|---|
| Architecture | App shape, route groups, API surface, persistence, realtime, and auth strategy |
| Implementation Notes | Entry points, module breakdown, constants, and key flows |
| Local Development | Setup, scripts, seed data, environment variables, and troubleshooting |
| Auth | Supabase organizer auth, local fallback, roles, sessions, and security notes |
| Deployment Plan | Cloudflare Pages/Workers, Supabase, and production rollout notes |
| Public Meetup API | Read-only meetup API contract for devcongress.org integration |
| Document | Description |
|---|---|
| Environment Variables | Local and production configuration reference |
| Routes | Public, organizer, and API route map |
| Patterns | Naming, folders, data access, UI tokens, and anti-patterns |
| Technical Debt | Production-readiness and contributor planning backlog |
| Decisions | Architecture decision records |
| Changelog | Feature-level project history |
| Feature | Status | Description |
|---|---|---|
| Event Publishing | Active | Create, publish, and expose meetups to the public API |
| Luma Attendance | Active | Import Luma CSV exports and review attendance insights |
| Feedback | Active | Route feedback and event-scoped post-event forms |
| Quiz | Preview | Live quiz flow, builder, and rollout limits |
- Frontend: Vue 3, Vite 6, TypeScript, Pinia, Tailwind CSS
- API: Hono served through Vite in development and Bun in production
- Persistence: JSON mock DB today, Supabase/Postgres migration path underway
- Media: Supabase Storage for meetup cover and photo uploads
- Testing: Vitest, vue-tsc, public API verification script
- Deployment: Cloudflare Pages, Cloudflare Workers, Supabase
Contributions are welcome. Read CONTRIBUTING.md before opening a pull request, and update the relevant file under docs/ when a feature, workflow, route, or architecture boundary changes.
Do not commit real secrets. Use .env.local for local credentials and keep server-only keys out of browser-prefixed variables.
If you find a vulnerability, follow SECURITY.md.
This project is available under the MIT License.