Move lighter. Spend smarter.
Nimbly is a people-first app for smarter everyday spending, starting with groceries.
It highlights deals, surfaces clearances, and nudges you toward better timing without guilt, pressure, or finance jargon.
Nimbly isn't about extreme budgeting.
It's about moving smart, consistently.
- π€ Meet Savvy
- β¨ What Nimbly does
- π± Why Nimbly exists
- π― Goals
- π Quick Start
- π Project Structure
- πΈ Screenshots
- π§ Project Status
- π οΈ Tech stack
- π§ Philosophy
- π¬ Contributing
Savvy is your in-app guide.
Savvy keeps an eye on prices, notices patterns, and gives you a heads-up when there's a better move to make.
No lectures.
No judgment.
Just the right info at the right time.
- Surfaces grocery deals and clearances
- Helps you spot better buying opportunities
- Encourages smarter timing on everyday purchases
- Keeps the experience fast, light, and human
Groceries are getting expensive.
Everyday spending decisions are getting harder.
Most tools either shame you or overwhelm you.
Nimbly exists to help everyday people:
- spend smarter on essentials
- make better decisions without stress
- build healthier money habits over time
Small wins. Real relief.
- Help people spend less on everyday groceries
- Reduce decision fatigue around shopping
- Build clarity instead of guilt
- Turn small savings into long-term stability over time
Small, repeatable wins. Long game.
Unix/Mac:
chmod +x scripts/setup.sh
./scripts/setup.shWindows:
scripts\setup.batThis will automatically:
- Check dependencies (Docker, Node.js)
- Set up environment files
- Build and start containers
- Seed the database
- Install web dependencies
If you prefer manual setup:
# 1. Start backend
docker-compose up -d
# 2. Seed database
docker-compose exec api python -m api.seed
# 3. Install web dependencies
cd web && npm install
# 4. Start web app
npm run dev- API: http://localhost:8000
- API Docs: http://localhost:8000/docs
- Web App: http://localhost:3000 (after running
npm run dev)
See api/README.md for detailed backend setup and docs/testing.md for testing guide.
nimbly/
βββ api/ # FastAPI backend
β βββ tests/ # Backend test suite
β βββ auth.py # Authentication endpoints
β βββ receipts.py # Receipt endpoints
β βββ insights.py # Insight generation
β βββ parser.py # Receipt parsing (OCR, extraction)
β βββ models.py # Database models
β βββ schemas.py # Pydantic schemas
β βββ database.py # Database configuration
β βββ config.py # App configuration
β βββ utils.py # Utility functions
β βββ seed.py # Database seeding
β
βββ web/ # Next.js web app (Phase 1 β
)
β βββ app/ # Pages and routes
β β βββ auth/ # Authentication (sign up, sign in)
β β βββ dashboard/ # Dashboard home
β β βββ receipts/ # Receipt list, detail, upload
β β βββ insights/ # Insights feed
β β βββ deals/ # Deals page
β β βββ profile/ # User profile
β β βββ not-found.tsx # 404 page
β βββ components/ # React components
β β βββ ui/ # Base UI components (shadcn/ui)
β β βββ navigation/ # Sidebar, bottom nav
β β βββ app-layout.tsx # Main layout
β β βββ theme-provider.tsx
β β βββ ...
β βββ lib/ # Utilities
β βββ api.ts # API client
β βββ utils.ts # Helper functions
β
βββ mobile/ # React Native mobile app (Phase 1 π§)
β βββ app/ # Expo Router pages
β βββ components/ # Mobile components
β βββ lib/ # Utilities
β
βββ docs/ # Documentation
β βββ requirements.md # Feature requirements
β βββ design.md # System design
β βββ tasks.md # Implementation tasks
β βββ phases.md # Development phases
β βββ visuals.md # Visual design system
β βββ tone.md # Voice and tone guide
β βββ testing.md # Testing guide
β βββ CHANGELOG.md # Version history
β
βββ scripts/ # Helper scripts
β βββ setup.sh/.bat # Automated setup
β βββ dev.sh/.bat # Start dev environment
β βββ test.sh/.bat # Run tests
β βββ README.md # Scripts documentation
β
βββ uploads/ # Receipt file storage
βββ docker-compose.yml # Docker configuration
βββ Dockerfile # API container definition
βββ .env.example # Environment variables template
βββ CONTRIBUTING.md # Contribution guidelines
βββ README.md # This file
Phase 0 (Backend Foundation): β Complete
- Magic link authentication
- Receipt upload and parsing (OCR)
- Price history tracking
- Insight generation (4 types)
- Comprehensive error handling
- Structured logging
- Docker deployment
- Test suite
Phase 1 (Web App): β Complete
- Email/password + social authentication
- Receipt upload (drag-and-drop + file picker)
- Receipt list and detail views
- Insights feed with 4 insight types
- Professional UI with Sage/Amber colors
- Light/dark mode with theme toggle
- Collapsible sidebar with state persistence
- Responsive design (desktop + mobile web)
- Loading, empty, and error states
Phase 1 (Mobile App): π§ Next Priority
- React Native with Expo
- Camera integration for receipts
- Same features as web app
- Timeline: 2-3 weeks
Phase 2 (Infrastructure & Understanding): π Planned
- Async processing (Celery + Redis)
- Scalable storage (MinIO/S3)
- LLM integration (Gemini 2 Flash)
- Advanced insights (5 new types)
- Performance optimization
See docs/roadmap.md for complete development plan.
- API: FastAPI
- Database: PostgreSQL
- Web app: Next.js (shadcn/ui + Framer Motion)
- Mobile app: React Native
- Infra: Docker
Move fast. Stay aware. Don't get played.
That's Nimbly.
We welcome contributions! See CONTRIBUTING.md for guidelines.
Built with π for everyday people trying to get by.











