Expensasaurus is an open-source personal finance management app built with Next.js and Appwrite, featuring expense, income, and budget tracking with optional read-only Splitwise synchronization.

Stars

129

7-day growth

No data

Forks

970

Open issues

0

License

MIT

Last updated

2026-07-14

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It offers a self-hosted alternative to commercial expense trackers with a modern stack and direct Splitwise integration, appealing to privacy-conscious users and developers.

Who it is for

  • Developers looking to learn or extend a Next.js + Appwrite full-stack application
  • Individuals who want to self-host their own expense tracking tool
  • Splitwise users seeking to centralize personal budgets and transactions
  • Tech-savvy users comfortable with setting up cloud backends

Use cases

  • Tracking daily personal expenses and incomes across multiple categories
  • Setting and monitoring monthly budgets with predefined spending limits
  • Syncing Splitwise transactions for a unified financial overview
  • Storing and attaching receipts or documents to transactions via Appwrite bucket

Strengths

  • Full-stack implementation using Next.js and Appwrite for rapid development and scalability
  • Built-in Splitwise API integration for read-only sync reduces manual data entry
  • Rich budget categories (food, transportation, housing, etc.) and custom attributes
  • Clear local setup instructions with environment variable configuration

Considerations

  • Requires manual creation of an Appwrite project, database, collections, and bucket – no one-click deploy
  • Limited documentation beyond basic setup; no user authentication details or deployment guides
  • Splitwise integration is read-only and requires an API key with email restriction

README quick start

DEMO: https://www.youtube.com/watch?v=LAi9S0MFdrg&t=7s

Local Setup

  • Make a project on Appwrite
  • Make a database (copy database ID)
  • Make 3 collections (copy their IDs) for expenses, budgets, incomes.
  • Make a bucket (copy ID)
  • Make a .env file containing.
NEXT_PUBLIC_APPWRITE_PROJECT_ID=
NEXT_PUBLIC_APPWRITE_ENDPOINT= (you get this when creating your project on appwrite)
NEXT_PUBLIC_DATABASE_ID=
NEXT_PUBLIC_EXPENSES_COLLECTION_ID=
NEXT_PUBLIC_INCOMES_COLLECTION_ID=
NEXT_PUBLIC_BUDGETS_COLLECTION_ID=
NEXT_PUBLIC_BUCKET_ID=
SPLITWISE_API_KEY=
SPLITWISE_ALLOWED_EMAIL=
  • Make relevant indexes.
Keeping these interfaces/types in mind. (these are attributes).

Transaction -> expenses / incomes.
Budget -> budget

export interface Transaction {
    amount: number;
    category: string;
    currency: string;
    date: string;
    description: string;
    tag: string;
    title: string;
    userId: string;
    attachments?: string[];
}

export type Budget = {
    title: string;
    description: string;
    userId: string;
    food?: number;
    transportation?: number;
    travel?: number;
    housing?: number;
    healthcare?: number;
    education?: number;
    personal?: number;
    insurance?: number;
    savings?: number;
    investments?: number;
    business?: number;
    utilities?: number;
    other?: number;
    amount: number;
    entertainment?: number;
    startingDate: string;
    endDate: string;
    currency: string;
}

  • Install dependencies
  • yarn dev

Application Workflow

Screenshot

Description

Finance Budget ultimate agent to track expenses, manage budgets, and achieve your financial goals with financial api

Related repositories

Similar projects matched by category, topics, and programming language.

TanStack
Featured
TanStack GitHub avatar

router

TanStack Router is a type-safe, data-driven React router with built-in caching, prefetching, and nested layouts, while TanStack Start extends it into a full-stack SSR framework.

Web DevelopmentFrontend Frameworks
14,861
vercel-labs
Featured
vercel-labs GitHub avatar

scriptc

scriptc compiles ordinary TypeScript into small, fast native executables without needing Node.js, V8, or any JavaScript runtime in the binary.

Developer ToolsCode Quality & Build
1,985
Jakubantalik
Featured
Jakubantalik GitHub avatar

thinking-orbs

A React component library that renders six hand-tuned animated thought orb loading indicators on a plain 2D canvas, with two purpose-tuned sizes and automatic theme detection for AI and agent UIs.

AI & Machine LearningAI Agents
1,191