Skip to content

dmanjunath/lasagna

Repository files navigation

Lasagna Dashboard

Lasagna

How it works · Features · Screenshots · Tech Stack · Quick Start · Self-Hosting


You want to manage your finances and get help. You don't want companies to sell your data or use it to train AIs. Enter LasagnaFi, a tool to help you keep your finances private while sharing anonymized data to get tailored financial insights. The AI sees numbers and patterns, never your name, account numbers, or any other personally identifiable details.

LasagnaFi is not a budgeting app, in fact if you're just looking for budgeting this is the wrong app. Lasagna is meant to give you extremely personalized insights across Debt Payoff, Retirement, Taxes and Portfolio Composition.


How it works

1. Connect your data sources Connect bank accounts via Plaid or enter balances manually. All accounts, holdings, and transactions live in a private database. Never shared with AI providers.

2. The dashboard shows you personalized info The dashboard show you a comprehensive financial snapshot, not just spending like most budgeting apps, but debt payoff, taxes, retirement and portfolio composition. See Features below for a full list of all functionality.

2. You ask a question Ask anything in plain English: "Am I saving enough for retirement?" or "Should I pay down debt or invest?" Lasagna pulls the relevant numbers from your database and assembles context for the AI.

3. The AI gets anonymous context Before anything reaches the AI, identifying information is stripped. It sees balances, allocations, and spending patterns, never your name, which bank you use, or account numbers.

4. You get a real answer AI responds with personalized, actionable advice based on your actual numbers. You can drill down, follow up, and ask anything.


Features

Dashboard

Your complete financial picture at a glance. Net worth over time, cash, investments and savings balances, monthly income and spending, goals progress, and action items.

Actions

Action items generated across every area of your finances, prioritized by urgency. Covers spending patterns, debt, tax opportunities, portfolio imbalances, and behavioral insights. Grouped by urgency with one-tap navigation to the relevant page.

Financial Priorities (Your Lasagna Layers)

The financial journey everyone goes through, from stabilizing your finances to financial independence. The system figures out where you are and tells you what to focus on next.

Retirement Planning

Interactive retirement modeling with age and spending sliders, FIRE number calculation, portfolio projection charts, and a retirement readiness meter. Pulls directly from your live account balances.

Monte Carlo Simulations

Stochastic simulations modeling your probability of success across retirement. Fan charts (p5–p95), spaghetti charts, final value histograms, and historical backtesting against every market period since 1928, including 2008, the Great Depression, and stagflation.

Portfolio Analysis

Aggregate all holdings across accounts. Drill down by asset class, sub-category, or individual ticker. Interactive donut, bar, and treemap charts. Blended historical return calculations with 175+ tickers mapped to asset categories.

Spending Tracker

Monthly expense breakdown by category with 6-month trend charts and full transaction history (searchable, filterable, paginated). Synced automatically via Plaid or entered manually.

Debt Management

Complete debt overview with APRs, avalanche vs. snowball payoff comparison, days-to-debt-free timeline, and total interest savings calculation. Syncs payoff dates and interest rates directly from Plaid where available.

Tax Strategy

Tax optimization recommendations based on your specific situation: Roth conversion opportunities, 0% LTCG bracket harvesting, HSA optimization, asset location, and 401k contribution gap analysis. Upload tax documents for AI-assisted extraction and analysis, zero data retention.

Goals

Track financial goals with progress bars, preset templates, inline editing, and completion tracking.

AI Chat

Ask anything about your finances in plain English. 12 specialized financial tools let the AI read your accounts, run projections, and give personalized recommendations. All using anonymous data. Your conversation history stays in your database, not the AI provider's.


Screenshots

Dashboard Actions
Dashboard Actions
Your Layers Retirement Plan
Your Layers Retirement
Retirement (Advanced)
Retirement Advanced
Portfolio Analysis Spending Tracker
Portfolio Spending
Debt Management Tax Strategy
Debt Tax Strategy

Tech Stack

Layer Technology
Frontend React 19, Vite, Tailwind CSS, Recharts, Vega-Lite, Framer Motion
Backend Hono (Node.js), TypeScript
Database PostgreSQL 16, Drizzle ORM
Auth Custom JWT (bcrypt + sessions)
AI OpenRouter (model-agnostic)
Banking Plaid API
Deployment Docker, GCP Cloud Run, Cloudflare Pages

Quick Start

Prerequisites

  • Node.js >= 20
  • pnpm >= 9
  • PostgreSQL (or Docker)

With Docker (recommended)

git clone https://github.com/dmanjunath/lasagna.git
cd lasagna

cp .env.example .env
# Fill in: ENCRYPTION_KEY, and optional Plaid/OpenRouter credentials
# (see .env.example for all variables)

docker compose up

The app will be available at http://localhost:5173.

Without Docker

pnpm install

# Start a local PostgreSQL instance, then:
pnpm db:push      # apply schema
pnpm db:seed      # load sample data (optional)

pnpm dev          # API on :3000
pnpm dev:web      # Web on :5173 (separate terminal)

Seed Sample Data

pnpm db:seed --preset=negative   # debt climber, $-60k net worth
pnpm db:seed --preset=100k       # early builder, $100k
pnpm db:seed --preset=750k       # accumulator, $750k
pnpm db:seed --preset=1.8M       # pre-retiree, $1.8M
pnpm db:seed --preset=4M         # high net worth, $4M

Self-Hosting

Environment Variables

Variable Description Required
DATABASE_URL PostgreSQL connection string Yes
ENCRYPTION_KEY 32-byte hex key for encrypting Plaid tokens (openssl rand -hex 32) Yes
PLAID_CLIENT_ID Plaid API client ID Optional
PLAID_SECRET Plaid API secret Optional
PLAID_ENV sandbox, development, or production Optional
OPENROUTER_API_KEY OpenRouter key for AI chat Optional

Plaid is required only if you want live bank account syncing. Without it, you can still use the app by entering balances manually. The AI chat feature requires an OpenRouter API key.

Deployment

pnpm build           # builds all packages
pnpm typecheck       # type-check everything
pnpm lint            # lint
pnpm --filter @lasagna/core test   # unit tests

Deployments

This repo powers three separate deployments:

URL Package Description
lasagnafi.com packages/landing Marketing landing page (Astro)
app.lasagnafi.com packages/web Hosted app
demo.lasagnafi.com packages/web Read-only demo (set VITE_DEMO_MODE=true)

Cloudflare Pages configuration: Each deployment is a separate Cloudflare Pages project pointing to the same GitHub repo, with different build settings:

Deployment Build command Output dir Env vars
lasagnafi.com pnpm --filter @lasagna/landing build packages/landing/dist PUBLIC_VIDEO_URL (optional)
app.lasagnafi.com pnpm --filter @lasagna/web build packages/web/dist standard
demo.lasagnafi.com pnpm --filter @lasagna/web build packages/web/dist VITE_DEMO_MODE=true

Demo user: Run pnpm db:seed-demo to create demo@lasagnafi.com / lasagna123.

Production API CORS: Set CORS_ORIGIN=https://app.lasagnafi.com,https://demo.lasagnafi.com.


Contributing

Issues and PRs are welcome. Please open an issue first for significant changes.


Disclaimer: Lasagna is a personal finance tool, not licensed financial advice. All projections and recommendations are for informational purposes only.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors