why we built it
- TPW helps nonprofits bring rehabilitation programs into California state prisons.
- Reporting one course meant filling out another form. Twelve courses meant doing it twelve times.
- TPW needs clear, consistent numbers to show funders what these programs deliver.
what commonwork does
- Keep courses, schedules, and reports together.
- Copy a course instead of starting over. Add weekly sessions to a calendar.
- Report hours and how many people began and completed a course. Use exact numbers or a from–to estimate.
- Edit reporting fields: rename questions, choose text/number/date, set required answers, and drag them into order.
- Give organizations their own view. Let TPW see reports across the coalition.
- Turn submitted reports into charts, CSV downloads, and printable reports.
how we built it
- React and shadcn/ui for the interface.
- Cloudflare Workers and D1 for the app and saved data.
- Cloudflare Builds deploys changes from GitHub.
the hard parts
- Keeping drafts separate from submitted reports.
- Showing missing numbers and estimates without pretending they are exact.
- Changing field types without breaking saved answers or report calculations.
what we learned
- Making reporting easier starts with removing repeated work.
- Clear definitions matter as much as charts. Program enrollments are not necessarily unique people.
what works today
- Course editing, recurring schedules, configurable fields, and reports.
- Database saves checked on the live app, including reloads and separate demo sessions.
- Demo numbers and organizations are fictional; facility names are real. The demo switcher previews organization views.
what comes next
- Test the workflow with TPW and its member organizations.
- Support approved follow-up data for three-year return-to-prison outcomes. Attendance alone does not prove reduced recidivism.
Log in or sign up for Devpost to join the conversation.