Inspiration
So, were from New York, concrete jungle, and there seems to be not that many green spaces to go to to relax or anything like that, google maps will show you the park, but not if its worth going to, or if there's any niche spots that are better than the rest of the park or any free activities to do there, like for example, Bouldering Project Gowanus, had a deal where if it was your first time there you could get a free day pass, you cant see that on google maps.
What it does
TOUCH GRASS is a map of 26,000+ real green spaces and nature spots across 55 US metros. Zoom out and you get a coverage heat map of official park/tree data, zoom in to see specific locations on the map: public gardens, parks, places to go rock climb, places to bird watch, all filterable by category, vibe park size, amenities, and accessibility. It does this by first giving you a quiz to determine your preferences, then sending you to a page with a dating app like swiping mechanic where you can swipe to save a location down then go back to it to get directions from google maps, most of our data is taken from Overpass, but the main goal is for people to submit their own spots that they submit with a location and a photo, then it sits in a review queue, until two people confirm its legit, also any user can report soemthign free to do at any given location to 'put people on'
How we built it
Next.js (App Router) + TypeScript + Tailwind + shadcn/ui on Base UI primitives, Supabase for Postgres/Storage/RPC, Leaflet + OpenStreetMap for the map, deployed on Vercel. No traditional auth, moderation runs through narrow security definer Postgres functions (confirm/flag/tip-confirm) so the anon key can't touch anything it shouldn't, while submissions and reads stay wide open. Data comes from three places: official city open-data portals (Socrata), OpenStreetMap's Overpass API for the bulk of spot coverage, and direct community submissions. Claude was used to figure out and plan out how we would do this, also to help find the tools we would need to excecute this properly, and was also used to debug with regards to vercel and supabase since we were new to using these (Sonnet 5).
Challenges we ran into
Overpass's public API rate-limits and times out on dense cities, so a chunk of our metro-expansion runs failed silently and needed retry passes with longer backoffs. A stale migration once got applied directly to prod and clobbered an earlier security fix, briefly reopening an anon write hole, thankfully coderabbit spotted it before anyone actually used it. Real photo coverage from OSM tags is genuinely sparse (~4% of rows), and we made an early call to never fake it with stock/placeholder images, so most spots fall back to a location-preview map instead of a photo. Reddit's bot protection blocks the automated citation-discovery script we built for it entirely (BORING). the schema and UI are real and working, the live-fetch step just isn't functional yet. And the swipe screen looked great on mobile but embarrassingly empty on desktop until we gave it a real side panel.
Accomplishments that we're proud of
Having ~26000 locations loaded across 55 major cities in the us, not faking any photos, everything here was sourced from an open data feed, and getting the swiping mechanic to work properly on both pc and mobile. And a codebase that passes lint, typecheck, and build clean after a weekend of fast iteration. Also just being able to have it work on mobile without it corrupting and frying itself
What we learned
How thin public data APIs really are at scale (Overpass, Reddit, Wikimedia all rate-limit or block you eventually). Also how there are so many parks near me that I can go to that I didnt know about, also learned how vercel and supabase works
What's next for TOUCH GRASS
Getting Reddit citations working for real (proper API access instead of unauthenticated scraping), expanding our coverage to more cities, making a proper login screen and account making, flushing out the ui/ux more
Built With
- base-ui
- coderabbitai
- framer-motion
- javascript
- leaflet.heat
- leaflet.js
- lucide-react
- nextjs
- node.js
- npm
- openstreetmap
- overpass-api
- postgresql
- postgrest
- react
- react-leaflet
- shadcn
- socrata
- sonner
- supabase
- tailwindcss
- typescript
- vercel
- vercel-analytics
- wikimedia-commons


Log in or sign up for Devpost to join the conversation.