Inspiration
Walking through our cities, we realized every street corner holds invisible stories that fade with time. We asked: What if we could anchor memories to physical places and bring them to life through AR? We wanted to solve three problems:
Social media keeps us doomscrolling instead of exploring Personal histories disappear because there's no way to preserve them geographically Digital content feels disposable - we wanted discovery to feel earned and magical
The name "ARchive" represents our vision: an archive of human experiences brought to life through augmented reality.
What it does
ARchive transforms cities into interactive storytelling canvases where users hide and discover location-based AR experiences.
Create a Memory:
Record a voice message or generate one with AI (ElevenLabs) Upload an image, 3D model, or GIF Drop a pin on the exact location Set a discovery radius (10m-500m)
Discover Hidden Stories:
Browse mysterious archives showing only titles, approximate location, and distance from you Sort by proximity or popularity Navigate using compass-guided AR interface
The Unlock Experience:
Walk to the physical location When you enter the radius, experience an immersive AR reveal:
Images and 3D models appear anchored to the real world
Voice messages auto-play Hidden text fades in with animations Celebration effects
Engage:
Like and comment on archives Earn discovery badges Build your profile showing archives created and unlocked
How we built it
Frontend: Next.js 14, React, TypeScript, TailwindCSS, Tanstack Query 3D/AR: Three.js, A-Frame, Locar.JS Backend: Node.js API routes, MongoDB Atlas Auth: Auth0 with automatic user sync APIs: ElevenLabs (TTS), Google Maps (geocoding), Locar.JS (AR scenes)
Key Architecture Decisions:
Modular service layer separating business logic from API routes Privacy-first: exact coordinates hidden until physical verification Haversine distance formula for accurate geo-calculations MongoDB geospatial indexes for sub-50ms location queries
Challenges we ran into
GPS Accuracy: Phone GPS is unreliable (±10-50m). A-Frame Mobile Performance: AR scenes lagged on phones. Solution: Draco compression (5MB→800KB models), lazy loading, 2D fallback for unsupported devices. Auth Race Condition: Users could create posts before database sync completed. Solution: Blocking afterCallback in Auth0 handler. Audio File Size: Recordings hit MongoDB limits. Battery Drain: Continuous GPS polling killed batteries.
Accomplishments that we're proud of:
- Full-stack AR app deployed in 24 hours from scratch
- Three.js interactive globe homepage that got genuine "wow" reactions
- Privacy-first architecture — sensitive data never exposed until verified
- Cross-browser AR working on iOS, Android, desktop
- Sub-50ms geospatial queries across thousands of posts
- Emotional impact — tester teared up unlocking their childhood memory
- Zero critical bugs during live demo
What we learned
- Geolocation is messy: Always design with 15m tolerance and clear user feedback.
- A-Frame is production-ready: Browser-based AR can match native quality.
- Audio creates connection: Voice messages feel personal in ways text/images can't.
- Mystery drives exploration: Hiding content until unlock created genuine suspense.
- Privacy is a feature: Anonymous accounts enabled deeply personal stories.
- Modular architecture enables speed: Service layer let us build backend and frontend in parallel.
What's next for ARchive
Video support and animated GIFs in AR
Short-term:
- AR Tours: Pre-planned story routes (historical tours, art walks)
- Time-based unlocks: Archives appearing only at certain times
- Collaborative archives: Multiple users contribute to one location
- Creator monetization: Premium archives, virtual tips
Long-term:
- Native iOS/Android apps with ARKit/ARCore
- Partnerships: Museums, tourism boards, education
- Time Machine mode: Historical photos overlaid on current view
Vision: ARchive becomes the digital preservation layer for human experience, in 50 years, people will unlock stories from generations past, hearing voices of those who walked the same streets.
Built With
- a-frame
- auth0
- elevenlabs-(tts)
- gemini
- google-maps
- locar.js
- mongodb
- nextjs
- node.js
- react
- tailwindcss
- three.js
- typescript
Log in or sign up for Devpost to join the conversation.