FamilyFi is a modern, collaborative personal finance and budgeting application designed for dual-income households. It helps families track income, manage recurring and variable expenses, and reach savings goals together in real-time.
- 👨👩👧👦 Collaborative Household Management: Sync budgets across multiple family members with a shared Household ID.
- 💰 Income Tracking: Manage both fixed and variable income streams.
- 📋 Dual-Mode Expenses:
- Fixed Templates: Automation for recurring monthly bills (Rent, Utilities, Netflix).
- Variable Spending: Quick entry for day-to-day purchases with categorization.
- 🎯 Smart Savings Goals: Set targets, track progress, and allocate monthly surpluses to specific goals.
- 📅 Global Date Filtering: Seamlessly toggle between monthly views to analyze historical data.
- 🌓 Advanced Dark Mode: Premium, eye-friendly design with system-sync and manual toggle (Tailwind v4 powered).
- 🔒 Secure Authentication: Robust signup and onboarding flow powered by Supabase Auth and RLS.
- Framework: Next.js 15 (App Router)
- Database / Auth: Supabase
- Styling: Tailwind CSS v4
- State Management: Zustand
- Data Fetching: TanStack Query v5
- Icons: Lucide React
- Charts: Recharts
- Node.js 18+
- A Supabase account
-
Clone the repository:
git clone https://github.com/yourusername/familyfy.git cd familyfy -
Install dependencies:
npm install # or yarn install -
Environment Setup: Create a
.envfile in the root and add your Supabase credentials:NEXT_PUBLIC_SUPABASE_URL=your-project-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
-
Database Setup: Copy the contents of
schema.sqland run it in the SQL Editor of your Supabase dashboard to set up tables and RLS policies. -
Run the app:
npm run dev
src/features: Domain-specific logic, components, and hooks (Expenses, Income, Goals, Auth).src/services: Supabase API interaction layers.src/store: Global state management with Zustand for themes, dates, and user profiles.src/components/shared: Reusable UI components and Layouts.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Built with ❤️ for families who want to master their money.
