Inspiration
We noticed that the problem with finding parking in big cities is not actually about space as there's plenty of it. It's about access. Private driveways sit empty and unused, while drivers drive around aimlessly looking for parking. So we built Curbside to connect commuters with homeowners that have available parking space.
What it does
Curbside is a peer-to-peer parking marketplace. Drivers can browse nearby spots on an interactive map, compare prices in real time, and book a guaranteed spot. Hosts list their driveways or private spaces, place a pin on an embedded map, upload photos, and set their own pricing.
How we built it
Curbside is built on Next.js with the App Router and TypeScript for the frontend, styled with Tailwind CSS and shadcn/ui for a clean, modern marketplace feel. Our backend runs entirely on Supabase which handling our Postgres database, Google OAuth authentication, file storage for spot images, and row-level security policies. Maps are powered by Mapbox GL JS and react-map-gl, with form validation handled by react-hook-form and zod. The app is deployed on Vercel.
Challenges we ran into
We ran into two big challenges. One was a driver_id mismatch that happens when someone books a spot, you save their user ID to the database, but when you later try to fetch their reservation, that same ID does not work. The bug is that the ID used when saving the booking did not match the ID needed when fetching the same booking. Another problem we ran into was with the coordinate order in Mapbox following a (longitude, latitude) format instead of the usual (latitude, longitude) format.
Accomplishments that we're proud of
We're proud that we managed to create a fully functional two-sided marketplace in the 12 hours that we were allocated. We're also genuinely proud of how polished the UI feels on our website.
What we learned
We came in with the understanding that we'd build one application, but we were really building two. One for the drivers and one for the hosts. This made debugging much more difficult as fixing a problem on one side often caused problems for the other.
What's next for Curbside
The next version of Curbside is in your pocket. A mobile app is the obvious next step as parking decisions happen on the go, not at a desk.
Built With
- auth
- css
- gl
- javascript
- mapbox
- next.js
- postgresql
- react
- react-hook-form
- react-map-gl
- shadcn/ui
- storage
- supabase
- tailwind
- typescript
- vercel
- zod
Log in or sign up for Devpost to join the conversation.