Inspiration
A bus is ten minutes late. The sun is right on time.
For someone waiting at a stop without shade, a small improvement could change their daily experience. Residents notice these problems because they live with them. They also have ideas: a canopy here, a better place to wait there.
But an idea can be difficult to explain, and a complaint can be easy to overlook.
We built WhatIf around one question: What if people could show their community what a better place could look like—and gather support to take the next step?
What it does
WhatIf turns a photo of a local place into a visual improvement concept and a community proposal.
A resident photographs a problem, describes it, and selects an AI-suggested improvement. They mark the area they want changed, then see a concept alongside the original photo.
The resident reviews the proposal, approves the wording, and publishes it. Other users can support it, and the creator can export a PDF request packet to share with the people responsible for that space.
Our initial focus is shade at public places, such as bus stops. Every generated image is labeled as an AI illustration, and AI review flags uncertainties before the resident decides what to publish.
How we built it
We built the mobile app with Expo, React Native, and TypeScript, starting with a Muse-Generated template and continuing development locally.
A Django REST Framework backend manages proposals, images, community support, and PDF exports. Auth0 provides authentication, while PostgreSQL stores application data.
Our AI pipeline separates scene analysis, image editing, proposal drafting, and review. Provider adapters let us configure services such as Gemini without changing the app’s workflow.
Long-running AI tasks run through a database-backed worker. The mobile app checks their progress, keeping the interface responsive while concepts are generated.
Challenges we ran into
Connecting a phone to a backend running on a laptop required careful tunnel and environment configuration. Windows tooling, Expo development builds, and Auth0 callback URLs also made setup more involved than we expected.
Working across four modules meant we needed a shared API contract so the mobile app, backend, and AI pipeline agreed on the same data.
We also faced a product challenge: an attractive AI image can look more authoritative than it deserves. We addressed that through clear labels, uncertainty flags, and human approval before publication.
Accomplishments that we're proud of
We brought visualization, proposal writing, community support, and export into one coherent workflow.
We gave residents control over the area being edited and the wording being published. We also designed support so each account contributes once to a proposal.
Most of all, we’re proud of giving a small, everyday idea a concrete form that people can discuss.
What we learned
A compelling image starts a conversation. Context, trust, and a clear next step help that conversation move forward.
We learned that responsible AI design belongs inside the user experience, and that shared contracts are essential when a team builds several connected systems under time pressure.
What's next for WhatIf
We want to test WhatIf with residents and community organizations, improve concept quality, and learn what makes a request packet useful to its recipient.
From there, we plan to explore more improvement categories and ways to track proposals after they are shared.
Every neighborhood has someone asking, “What if?” We want to help them take the next step.
Built With
- auth0
- django
- django-rest-framework
- gemini-api
- python
- typescript
Log in or sign up for Devpost to join the conversation.