Inspiration
Urban legends and local folklore exist everywhere but have no central home. Stories get passed around in random Facebook groups or forgotten entirely. We wanted to build a place where anyone could tie a creepy story to a real location and have the whole world discover it.
What it does
LegendVault is a location-based urban legend social platform. Users can submit urban legends tied to real-world locations, browse a feed filtered by category (Haunted, Cryptid, Paranormal, Disappearance, Cursed), explore an interactive dark map with color-coded location pins, upvote stories, and leave comments. Every legend lives on a map pin somewhere in the world.
How we built it
We scaffolded the frontend using Vercel v0, which generated a production-ready Next.js 14 app with TypeScript, Tailwind CSS, and shadcn/ui in minutes. The backend uses AWS DynamoDB with four tables: legends, users, votes, and comments. We connected the frontend to DynamoDB using the AWS SDK and built API routes in Next.js for fetching, submitting, voting, and commenting. The map is built with Leaflet.js using dark CartoDB tiles. Auth is handled by Clerk, and the app is deployed on Vercel.
Challenges we ran into
Getting DynamoDB connected end-to-end with proper data modeling was the biggest challenge. Designing the table structure with the right partition keys and sort keys to support filtering by category and sorting by upvotes required careful planning. We also had to handle the React 19 peer dependency conflicts from some mapping libraries and resolved it by switching to Leaflet.js.
Accomplishments that we're proud of
We built a fully functional full-stack app with real data in DynamoDB, a live interactive map, a complete submission flow, and a polished dark UI that looks like a real product. The app is live at legendvault.vercel.app and works end-to-end.
What we learned
We learned how to design DynamoDB tables properly for a social application, how to use Vercel v0 to scaffold production-ready frontends incredibly fast, and how the AWS SDK integrates cleanly with Next.js API routes.
What's next for LegendVault
Adding real user authentication tied to submitted legends, a location search feature, notifications when someone comments on your legend, a mobile app, and eventually partnering with tourism boards and ghost tour companies to feature verified legends on the platform.
Built With
- aws-dynamodb
- aws-sdk
- cartodb
- clerk
- leaflet.js
- next.js-14
- openstreetmap
- react
- shadcn/ui
- tailwind-css
- typescript
- vercel
- vercel-v0
Log in or sign up for Devpost to join the conversation.