Inspiration
After 20 years in state prison, Marcus walks out into New York.
The last time he was free, there were no smartphones. No apps, no QR codes, no passwords.
Now everything runs on systems he doesn’t understand.
There is no clear starting point.
No single place telling him what to do first.
Just fragmented information spread across different offices, websites, and programs, each expecting him to figure it out on his own.
Within hours, the problems stack.
He needs food, shelter, and a way to get back on his feet, but every step depends on something else.
To get a job -> he needs stability
To get stability -> he needs housing
To get housing -> he needs money, time, and the right place at the right time
And every wrong step costs him hours he doesn’t have.
So he walks. Misses offices. Waits in lines. Sleeps outside.
New York spends over $400,000 a year to keep one person incarcerated, but almost nothing on what happens when they leave.
Many people leave without a valid ID, which blocks access to housing, benefits, and work.
The help exists, but it is scattered across dozens of systems with no guide connecting it.
So people guess.
And when you are guessing under pressure, you fall behind fast.
So we asked:
What if someone like Marcus did not have to guess?
What it does
FreshStart turns a fragmented system into a clear, step-by-step plan.
Users answer a few simple questions such as location, ID status, food, and shelter, and receive a personalized roadmap:
- Real locations
- Exact next steps
- What to bring and expect
The system prioritizes urgency:
- Survival first (food and shelter)
- Skips what the user already has
- Adapts for parole and constraints
From there, the roadmap goes deeper. Based on the user's situation, the app generates targeted follow-up questions that unlock additional personalized tasks, surfacing resources and next steps that a generic plan would miss. A chatbot provides real-time, context-aware guidance throughout.
Additional features built:
Resources tab — live NYC Open Data integration filtered by borough and stated needs, so every resource shown is local and relevant
Community forum — a space for returning citizens to share experiences, ask questions, and support each other through the reentry process
Federal employee mode — custom roadmap generation, if federal employees are assisting in the re-entry they can create a custom plan for individuals in their care.
How we built it
Frontend: React 19, TypeScript, React Router, and Vite, with Tailwind CSS for a clean, accessible UI
Backend: Supabase (PostgreSQL + Edge Functions) for data, auth, and server-side logic
AI layer: Google Gemini API (via Supabase Edge Functions) for follow-ups and adaptive guidance
Other: Lightweight UI enhancements like canvas-confetti and Material Symbols icons
At the core is a roadmap engine that converts user inputs into a prioritized, personalized action plan.---
Challenges we ran into
- Accuracy: Ensuring locations and steps reflect real, current NYC resources
- AI consistency: Adding validation and fallback logic
- Integration: Combining the roadmap engine, live API data, AI layer, and community features into one cohesive system
Accomplishments that we are proud of
- Fully personalized plans with no two users receiving the same output
- Dynamic prioritization based on real needs
- Context-aware chatbot responses
- Simple, human-centered user experience
What we learned
- The problem is not lack of resources, but lack of access
- Existing systems are fragmented and difficult to navigate
- Small UX decisions, such as question order, have significant impact
- AI is most effective when supporting a structured system
What’s next for FreshStart
- Expand beyond New York City, starting with other high-need urban areas
- Enable access before release through partnerships with reentry coordinators inside facilities
- Add multilingual support
- Continue simplifying the experience to reduce friction for first-time smartphone users
Built With
- gemini
- github
- javascript
- react
- supabase
- tailwindcss
- typescript
- vite
Log in or sign up for Devpost to join the conversation.