Ledgerly

A personal finance app for balances, budgets and bills, private to each member: sign in as a second member and none of the first one's money is visible. Recurring bills post themselves daily and an over-budget check flags spending as it happens.

Members sign up and manage only their own money.

Ledgerly on desktopLedgerly on a phone

What's inside

Dashboard with balances and a spending donut. Transactions grouped by day. Monthly budgets and recurring bills.

Tables

  • admin name
  • member name, photo
  • account member_id, name, kind, balance, institution
  • budget member_id, category, monthly_limit
  • bill member_id, name, amount, day_of_month, category, active
  • transaction member_id, account_id, bill_id, title, amount, category, date, note, …

Roles

  • member Member, consumer
  • admin Team, staff

Pages

  • /dashboard Home (member)
  • /transactions Activity (member)
  • /budgets Budgets (member)
  • /insights Insights (member)
  • /team Team & access (admin)

Components

  • DashboardScreen Home: total balance, account card stack, AI teaser, spending donut, budgets, upcoming bills, recent activity
  • TransactionsScreen Activity: searchable, filterable transactions grouped by day, swipe-to-delete rows and a bottom-sheet editor
  • BudgetsScreen Budgets: monthly category limits with a left-to-spend summary, plus recurring bills, each with a sheet editor
  • InsightsScreen Insights: AI 'Explain my month' with loading, fallback and tip, plus month stats, monthly spending bars and category breakdown
  • LedgerlyAuth Sign-in / sign-up: soft-grey page, headline and account card-stack preview beside a white form card, Google sign-in and demo account shortcuts
  • TeamHeader Team & access page heading with plain-language privacy note; also applies the app's type, radius and motion overrides and lets member rows wrap on phones

Rules on every write

  • budget A budget limit must be greater than zero.
  • bill Day of month must be between 1 and 31.
  • transaction Amount must be non-zero and the date no more than 1 day in the future.

How its workflows run

Each one is a server workflow in your project: it runs on its trigger, with retries, and its runs show in the builder's log.

  1. Create today's recurring bill transactions

    On a schedule: schedule daily 06:00 over bill. Then: Look up bill, then Create transaction.

  2. Flag transactions that push a category over budget

    When a row changes: transaction created. Then: Look up budget, then Update transaction.

  3. Notify the member when a category is over budget

    When a row changes: transaction updated, when alert is over. Then: Notify.

Set it up

It starts a new project, with its data, roles and sign-in ready.

  1. Start the project

    Use the button above, or ask your coding agent with the Appbricx MCP server connected (quickstart).

  2. Sign in as each role

    The demo logins open each role's home. Change what you like in plain words or in the contract.

  3. Deploy

    When dev looks right, deploy. Production gets a snapshot first, so you can roll back.

Use it with your coding agent

The agent creates the project, builds it and signs in as each role.

Prompt
Start a new Appbricx project from the Ledgerly template (slug "ledgerly") with use_template. Call it "My Ledgerly", then sign in as each role, verify it and tell me what to change first.
MCP call
{
  "tool": "use_template",
  "arguments": {
    "slug": "ledgerly",
    "name": "My Ledgerly"
  }
}
CLI
appbricx templates use ledgerly --name "My Ledgerly"

Make it yours in plain words.