ArthKosh is a modern, open-source personal finance management application built with Next.js, TypeScript, and Prisma. Track your income, expenses, set budgets, achieve financial goals, and gain insights into your spending patterns.
- Multi-Account Management: Support for bank accounts, wallets, credit cards, and investments
- Transaction Tracking: Record income, expenses, and transfers with categories and tags
- Budget Planning: Set monthly/quarterly/yearly budgets per category with overspending alerts
- Goal Setting: Track savings goals with progress visualization
- Smart Analytics: Interactive charts for income vs expenses, category breakdowns, and net worth tracking
- Data Import/Export: CSV import/export for easy data migration
- Authentication: Secure login with Google OAuth and email magic links
- Responsive Design: Mobile-first design with dark/light theme support
- Node.js 18+
- npm or yarn
- SQLite (or PostgreSQL for production)
-
Clone the repository
git clone https://github.com/yourusername/arthkosh.git cd arthkosh
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Configure your
.env
file:DATABASE_URL="file:./dev.db" NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_SECRET="your-secret-key" GOOGLE_CLIENT_ID="your-google-client-id" GOOGLE_CLIENT_SECRET="your-google-client-secret" EMAIL_SERVER_HOST="smtp.example.com" EMAIL_SERVER_PORT="587" EMAIL_SERVER_USER="your-email" EMAIL_SERVER_PASSWORD="your-password" EMAIL_FROM="noreply@example.com"
-
Set up the database
npx prisma migrate dev npx prisma generate
-
Start the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
- Frontend: Next.js 15 with App Router, TypeScript, TailwindCSS
- Backend: Next.js API routes with Prisma ORM
- Database: SQLite (development) / PostgreSQL (production)
- Authentication: NextAuth.js with Google OAuth and email providers
- Charts: Recharts for data visualization
- Styling: TailwindCSS with shadcn/ui components
arthkosh/
βββ src/
β βββ app/ # Next.js App Router pages
β β βββ api/ # API routes
β β βββ auth/ # Authentication pages
β β βββ dashboard/ # Dashboard with charts
β β βββ accounts/ # Account management
β β βββ transactions/ # Transaction CRUD
β β βββ budgets/ # Budget management
β β βββ goals/ # Goal tracking
β βββ components/ # Reusable UI components
β β βββ charts/ # Chart components
β β βββ dashboard/ # Dashboard widgets
β β βββ layout/ # Layout components
β β βββ providers/ # Context providers
β βββ lib/ # Utility functions
β βββ types/ # TypeScript type definitions
βββ prisma/ # Database schema and migrations
βββ public/ # Static assets
βββ docs/ # Documentation
npm run dev
- Start development servernpm run build
- Build for productionnpm run start
- Start production servernpm run lint
- Run ESLintnpm run format
- Format code with Prettier
- ESLint: Code linting with Next.js and TypeScript rules
- Prettier: Code formatting
- Husky: Git hooks for pre-commit checks
- TypeScript: Strict type checking
- Prisma: Type-safe database client
- Migrations: Version-controlled database schema changes
- Seed Data: Sample data for development
- Push your code to GitHub
- Connect your repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on every push
docker build -t arthkosh .
docker run -p 3000:3000 arthkosh
- Build the application:
npm run build
- Start the production server:
npm run start
- Set up a reverse proxy (nginx/Apache)
- Configure environment variables
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Run tests:
npm run lint && npm run build
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
- Mobile App: React Native companion app
- Advanced Analytics: Machine learning insights
- Multi-Currency: International currency support
- Investment Tracking: Portfolio management
- Bill Reminders: Automated payment notifications
- Tax Reports: Year-end tax summaries
- API Access: Public API for integrations
- Collaboration: Shared household finances
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Discussions
- Documentation: GitHub Wiki
This project is licensed under the Creative Commons Zero v1.0 Universal License - see the LICENSE file for details.
- Next.js - React framework
- Prisma - Database toolkit
- TailwindCSS - CSS framework
- Recharts - Chart library
- NextAuth.js - Authentication
- Version: 0.1.0
- Status: Active Development
- Last Updated: 03 September 2025
Made with β€οΈ by Samarth Sharma