Inspiration
After moving house, I joined a private Facebook group where locals would post about events going on, park information but also suspicious behaviour or safety concerns such as roaming animals.
This was fine for a while before I noticed limitations with the lack of detail around where these events were located and if you weren't part of the Facebook group or Facebook at all, you wouldn't know what's going on.
That gave me the idea to create a centralised platform for anyone to view events or concerns in their area without logging in but users with accounts could submit reports and upvote other users' reports for validation.
What it does
- Local Patrol is a community-driven safety reporting platform where residents submit patrol reports with location data and observations.
- Users earn points and advance through ranks (Rookie → Patroller → Guardian), with higher ranks unlocking privileges such as the planned photo upload feature.
- The platform features interactive maps, community upvoting, and basic content moderation.
How we built it
Using Claude Sonnet 3.7. I put together an app design document outlining the specifics of the project before having it split the project up into small quickly-achievable slices of work. This was done before learning that Bolt had a Discuss mode
I used Bolt to parse the slices of work I provided such as scaffolding the app using AstroJS as the framework of choice as I'm familiar with it, can use React components, and also have access to server-side functions/endpoints that pairs nicely with the Netlify deployment without the complexity of something like NextJS. Bolt was primarily used to make changes and fixes along the way, with input from myself where required and also created small test projects in Bolt to then carry over lessons learned and/or code over to my main project.
Supabase is the underlying backend service providing the Database and Authentication layers which easily integrated with Bolt and the migrations it writes.
OpenStreetMap integration makes it possible to layout the reports on a detailed map and using Bolt, I was able to add event listeners and dynamic functionality to the map marker popups.
The design was mostly decided by Bolt to begin with and iterations have been made along the way using Bolt as well, the logo was created with the help of an AI logo design platform "aiicongen.com" that generated a unique icon which I edited in Adobe Illustrator to provide the final design.
Challenges we ran into
- Token management was difficult as Bolt needs a good amount of context to do the job well but sometimes Bolt would consume a lot of tokens to get work done, this provided the challenge of scoping changes to be small and frequent, using the file targeting feature to make sure only relevant files were changes. The discuss mode was also great for deciding what the best approach is before committing to anything.
- Deployment to Netlify missed crucial configuration for the server-side rendering and dynamic API endpoints to work at all, this required stepping back and using Bolt to generate a barebones AstroJS project with Netlify integration to deploy, this allowed me to isolate the problem, leading me to research and implement a configuration file which let Netlify know of the serverless functions. Further deployments to production worked as they should after that.
- Bolt loved to hang onto context of previous discussions sometimes which made it difficult to try to scope changes small without Bolt going about it with far too many changes, this was mostly overcome by using suggestions in the documentation of duplicating the project and resetting the AI context window that way.
Accomplishments that we're proud of
Putting together a project from app design outline to something that works is something I'm extremely proud of as usually coding projects from scratch requires a lot of time and commitment but I was able to get a working project together with just an hour a day, sometimes less.
Now that I have a starting point, I can actually push forward to make further changes that hopefully the local community will use and appreciate.
What we learned
Scoping projects and drilling down the exact pieces of work that need to be done in order to accomplish the overall goal is a big lesson learned in project management.
I've learned how to better interact with AI to get the desired outcomes.
Multiple AI platforms can come together to make an idea a reality.
What's next for Local Patrol
- Polish, polish, and more polish.
- Improving on the basic features and then adding new ones such as photo uploads, achievements/badges.
- Implementing anonymous reporting options.
- Push notifications and real-time updates
- Expanding gamification features and building more sophisticated community social elements.
- Pushing the project out to the local community to gauge feedback and hopefully eventually reach other countries so everyone can be better aware of what's going on around them.
Built With
- astro
- bolt
- bolt.new
- claude
- react
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.