Documentation

Budget Pulse docs

Everything you need to use, operate, and remix this project. Written for three audiences: end users, the person setting it up, and anyone remixing it as a template.

1. How it works

Budget Pulse is a multi-tenant budget dashboard. Each account belongs to one or more Organizations (workspaces). All budget data is scoped to an organization and isolated from every other organization via database row-level security.

Organizations

When you sign up you either create a new organization or join one by opening an invite link an admin shared with you. You can belong to more than one; the sidebar shows the currently active workspace.

Onboarding

First-time admins go through a 3-step flow: organization basics (industry, size), first data (import CSV or seed sample data), and inviting teammates. It runs once per org and is skippable — you can finish it later from the dashboard prompt.

Dashboard & analytics

The dashboard summarizes total budgeted, spent, and variance for the current period. Analytics breaks the same data down by category, department, and period so you can spot overages fast.

Connect your system (roadmap)

Direct connectors for Salesforce, HubSpot, and QuickBooks are on the roadmap. Each user will authorize their own instance — Budget Pulse won't ship a shared built-in connection. For now, use CSV import.

2. Getting started

Sign up

From the landing page click Sign up. You can use email + password or "Continue with Google". Provide your name and an organization name; you become that organization's first admin.

Complete onboarding

You'll land on /app/onboarding. Fill in industry and company size, then either import a CSV or seed sample data, then optionally invite teammates. When you finish, the workspace is marked as onboarded and you land on the dashboard.

Import your first data

Open Import in the sidebar. Upload a CSV with columns for category, department, budgeted amount, actual amount, and period (e.g. 2026-Q1). Vendor and notes are optional.

Read the dashboard

After import, the dashboard shows top-level totals and variance for the current period. Analytics gives you department- and category-level breakdowns. Use Export to download a CSV of everything visible.

3. Roles & permissions

Three roles, enforced at the database level:

  • Admin — full access, can invite/remove members, change roles, edit organization settings, and edit or delete any budget entry. The last admin cannot be demoted or removed.
  • Member — can read every entry in their organization, create entries, and edit the entries they created; cannot edit other people's rows, delete entries, or manage teammates and settings.
  • Viewer — read-only. Can view the dashboard, analytics, and export, but cannot import or change any data.

Members and viewers do not see the Team or Settings pages, and viewers do not see Import. Server-side row-level security is the source of truth — the UI is filtered, but even a crafted request cannot escalate a member into admin-only tables or let a viewer write.

4. Import & export

CSV import

Column headers are matched case-insensitively. Required: category, budgeted_amount, actual_amount, period. Optional: department, vendor, notes. Invalid rows are reported before commit; nothing is inserted until you confirm.

CSV export

The Export page downloads all budget entries for the current organization as a CSV file, filtered by the same period selector as the dashboard.

5. Remixing this template

If you're remixing Budget Pulse as a starting point for your own project, the short version:

  1. Rebrand. Rename the app in the landing page (src/routes/index.tsx), the sidebar logo in src/routes/app.tsx, and the head metadata in each route.
  2. Backend. A remix creates a fresh Lovable Cloud backend for the new project — the original project's data, users, and secrets do not carry over. Migrations under supabase/migrations/ re-run automatically against the new backend, which recreates the schema, RLS policies, and functions.
  3. Google OAuth. The managed Google provider works out of the box in preview. If you configure your own Google Cloud OAuth credentials, they are per-project and must be redone for the remixed project's URL. See the README for the exact steps.
  4. Verify. Sign up as a new user in the remixed project, confirm the onboarding flow gates correctly, and double-check RLS by trying to read another org's data from a second account.

Full technical detail — schema, RLS, OAuth setup — lives in the README.md at the project root.

6. Known gaps

Things to be aware of before running this in production:

  • Email verification is disabled for faster testing (auto-confirm on). Turn it back on before production.
  • Password reset flow is not built. Only the signup / login forms exist.
  • Team invites don't send email. Creating an invite generates a single-use link (/accept-invite?token=…) that you copy and send to the invitee yourself. It expires after 7 days, only works for the address it was issued to, and is redeemed after that person signs in with a confirmed email.
  • No audit log of edits, deletes, or member changes.
  • No legal pages — Terms and Privacy Policy are not included.