Inspiration
Existing maps only display static businesses, roads, and routes. They completely ignore the human elements—lived memories, safety networks, confessions, and dynamic neighborhood cycles. We built Veil Atlas as a zero-surveillance canvas to map the invisible emotional weather of physical locations.
What it does
Veil Atlas structures mapping into 5 anonymous, location-gated layers:
- Now: Ephemeral proximity posts within 500m that expire in 30 minutes.
- Feel: An anonymous barometer logging local moods and pinning confessions.
- Truth: Crowd-sourced safety map documenting harassment, exclusion, and unsafe spots.
- Memory: An ongoing archive of place-bound memories and location-locked Echoes.
- Rhythm: Longitude-aware analytics showing when a neighborhood breathes and is most active.
How we built it
We built the app using Next.js 16 (App Router + Edge API), Tailwind CSS, Leaflet maps with custom SVG 3D holographic clustering, and AWS RDS Aurora PostgreSQL. We set up passwordless database connections using AWS IAM credentials secured by Vercel OIDC identity token exchange.
Challenges we ran into
- Dynamic Map Clustering: Preventing CSS transform keyframe animations from breaking Leaflet's marker layout translations (resolved by applying transitions to child SVGs instead of parent containers).
- Geospatial Processing: Writing raw Haversine SQL equations in Postgres for high-efficiency proximity searches at the Edge.
Accomplishments that we're proud of
- Achieving a complete zero-surveillance model where users are represented by secure hashes without requiring accounts or profile tracking.
- Designing a highly visual, smooth dynamic zoom cluster engine.
What we learned
Setting up federated Vercel-to-AWS OIDC integrations for database connections, and managing geographic coordinate calculations at edge speeds.
What's next for Veil Atlas
Implementing offline-first geospatial syncing and encrypted peer-to-peer relaying.
Built With
- aws-aurora-postgresql
- aws-iam
- leaflet.js
- next.js-16
- react
- tailwind-css
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.