Cashence is a modern, full-stack personal finance platform that leverages AI, event-driven architecture, and cutting-edge web technologies to help users manage budgets, track expenses, receive smart financial insights, and maintain financial discipline.
- Secure Authentication β Email/password & OAuth login via Clerk Auth
- Smart Budgeting β Create, edit, and track budgets and spending categories
- AI Insights β Gemini AI provides intelligent financial recommendations and summaries
- Real-time Analytics β Transaction summaries and smart dashboards
- Event-Driven Architecture β Background jobs and workflows powered by Inngest
- Edge Protection β Secure endpoints with Arcjet shielding
graph TD
A["User Interface - Next.js"] --> B["API Routes"]
B --> C["Supabase (Auth + DB)"]
B --> D["Inngest (Background Jobs)"]
B --> E["Gemini AI (Prompt/Response)"]
B --> F["Arcjet (Rate Limiting & Protection)"]
D --> C
E --> B
| Layer | Technology |
|---|---|
| Frontend | Next.js, Tailwind CSS, ShadCN/UI |
| Backend | API Routes (Next.js), Supabase, Inngest |
| AI Services | Gemini AI |
| Database | Supabase |
| Edge Security | Arcjet |
| Styling | Tailwind CSS, ShadCN UI |
- Arcjet is used to prevent abuse and secure APIs from brute force or DDoS attacks.
- All sensitive credentials and tokens must be stored in environment variables.
- Supabase handles secure authentication and access control.
Cashence uses Gemini AI to:
- Summarize user transactions
- Recommend budgeting strategies
- GPT-style chat interface for finance Q&A
- Mobile App with React Native or Flutter
- Multi-user support (shared budgets)
git clone https://github.com/meet2107/Cashence-Ai_Finance_Platform.git
cd Cashence-Ai_Finance_Platformnpm install
# or
yarnCreate a .env.local file and add the following:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
GEMINI_API_KEY=your_gemini_key
ARCJET_TOKEN=your_arcjet_tokenSee .env.example for guidance.
npm run devThen open http://localhost:3000 in your browser.
- Fork the repository
- Create your feature branch:
git checkout -b feature/awesome-feature - Commit your changes
- Push to the branch:
git push origin feature/awesome-feature - Open a pull request!