Inspiration
I wanted to build a planner that feels like a game UI but solves a real problem: making fast, practical decisions when time, money, and battery are limited. The "futuristic caveman" theme made the experience memorable while still useful.
What it does
StoneAgeOS generates a tactical plan based on:
- location (auto-detect, place name, or coordinates)
- budget
- battery level
- available time
- mission priorities (food, shelter, safety, charging, comms, workspace, route, tools)
It returns:
- best top choice + alternatives
- travel distance and ETA
- estimated spend and risk level
- weather-aware recommendations
- fallback plan if the first option fails
Users can also search and reopen past plans from History.
How I built it
- Frontend: React + TypeScript + Vite + Tailwind CSS
- Backend: Node.js + Express + TypeScript
- Data/APIs: Google Places API + OpenStreetMap Overpass fallback, OpenWeather + Open-Meteo fallback, Nominatim/Open-Meteo geocoding
- AI: Gemini (with structured JSON schema output)
- Database: MongoDB for plan history persistence
- Deployment: Frontend on Netlify with separate backend service
The backend pipeline is:
- Normalize/validate input
- Geocode location
- Fetch nearby places + weather in parallel
- Score and rank places based on constraints
- Generate narrative + structured response with Gemini
- Save to MongoDB (graceful fallback if DB is unavailable)
Challenges I ran into
- Keeping the response reliable even when third-party APIs fail
- Merging different place data sources and deduplicating results
- Designing a scoring model that balances distance, budget, safety, weather, and user priorities
- Maintaining compatibility between old and new request payload formats
- Making the frontend UX rich but still clear and responsive
What I learned
I learned how to design a resilient AI-assisted system with strong fallbacks, schema-constrained LLM output, and practical production concerns like validation, persistence failure handling, and API timeout management.
What's next
- Real-time traffic/transit-aware routing
- User accounts and cross-device history
- Better personalization from previous plans
- Offline-first emergency mode
Built With
- express.js
- gemini-api
- google-places
- mongodb
- node.js
- open-meteo-api
- openstreetmap-nominatim
- openweather-api
- react
- tailwind-css
- typescript
- vite
Log in or sign up for Devpost to join the conversation.