The problem
Campaign operations involve different roles, distributed teams, and information moving between administrative and field workflows. A useful platform has to connect those responsibilities while preserving access boundaries.
My role
I work across product architecture and application engineering for Civicore. The CV identifies the platform in my SaaS portfolio; the current repository and recent engineering records document its web, backend, administration, and mobile work.
The implementation
The documented web architecture uses Next.js, Clerk authentication, Supabase, and Prisma. Separate application and administration surfaces connect to role-based workflows. The Flutter mobile work includes account access and onboarding, with role-aware application behavior.
Important decisions
- Treat roles and data permissions as product architecture.
- Keep administrative responsibilities distinct from ordinary member workflows.
- Connect mobile onboarding to the same account and access model.
- Make operational records useful across web and mobile surfaces.
What the work demonstrates
Civicore is a live platform and illustrates end-to-end product delivery across multiple application surfaces. Its official website and application are linked above. Development continues, with no election results, public adoption totals, or proposed capabilities presented as verified outcomes here.
The visual model is a simplified view of application responsibilities, using no citizen or campaign data.