The ledger is well-trodden: accounts, postings that net to zero, invoices with tax lines, a balance sheet and a profit and loss. An agent builds that in a sitting, and bank CSVs cover the transactions. The weekend goes on what Fina connects to: live bank feeds through Plaid or MoneyKit, Stripe payment links that mark invoices paid through webhooks, and the bookkeeping edge cases around period close, tax and refunds, where a mistake is yours to explain to a tax office. Fina's Business Tier is also young, so the price you pay today may change.
Before you buildFina Free is one personal portfolio with no business features. If you only invoice a few clients, a spreadsheet or a free invoicing tool may be enough before you pay $25 or build anything.
Build me a freelancer bookkeeping workspace to replace Fina Business. Requirements:
- Node.js 22 + TypeScript: Fastify with server-rendered pages (Eta) and a little vanilla JS.
`npm start` serves http://localhost:4860.
- Storage: better-sqlite3 in ./data/books.db. Double-entry: each transaction has two or more postings
that sum to zero, amounts are integer cents, and a trigger rejects an unbalanced entry. Seed a chart
of accounts (assets, liabilities, income, expenses, equity) that I can edit.
- Bank lines come from CSV (a saved column mapper per account) and OFX files. A review queue assigns each
line to accounts, with rules ("description contains Figma" -> Software), splits and transfers;
duplicates are skipped by a hash of date, amount and description.
- Customers and invoices: line items, tax per line, statuses Draft, Sent, Paid, Overdue and Void, a PDF
with `pdfkit`, and email through nodemailer (SMTP settings in .env). Marking an invoice paid posts the
payment to the bank account I choose.
- Stripe: a Payment Link per invoice through the `stripe` SDK (STRIPE_SECRET_KEY in .env). A
/webhooks/stripe endpoint verifies the signature, marks the invoice paid on checkout.session.completed
and posts the entry. It must be idempotent per event id.
- Reports for any date range: profit and loss, balance sheet, trial balance and an invoice status
summary, each as a page and a CSV. Closing a period blocks edits dated inside it.
- Single user, password in .env. No accounts, no telemetry, local-first. Outbound calls: SMTP and Stripe only.
- Out of scope: live bank feeds, multi-currency, payroll, VAT or sales-tax filing, several businesses.
- README: Stripe test mode first, `stripe listen` for local webhooks, backing up the .db file, and a plain
note that this is not tax advice and an accountant should check the first year-end.Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Fina Business.
Extend the bookkeeping workspace in this folder with bills and receipts. Requirements: - Vendors and bills with line items and a due date; entering a bill posts to accounts payable, and paying it posts the payment from a chosen bank account. - Attach PDF or image receipts to any entry; store the files in ./data/receipts under a content hash and show a thumbnail on the entry. - An "unpaid bills" page sorted by due date, and a reminder email 3 days before each due date. - Tests that the books still balance after a bill is paid and then voided. - Update the README.
Add recurring invoices to the bookkeeping workspace in this folder. Requirements: - A schedule per customer (monthly on a day, quarterly, yearly) that creates a Draft invoice from a template; a setting decides whether to create it as Draft or send it straight away. - A scheduler (`node-cron`) that runs daily, creates each due invoice exactly once, and records the run in a log page. - Pause, edit and end a schedule; show the next three issue dates before saving. - Tests for the 31st of the month and for leap years. - Update the README.
Add a cash-flow forecast to the bookkeeping workspace in this folder. Requirements: - Start from the current bank balance, add open invoices on their due dates (moved later by each customer's average days late, from past invoices), and subtract bills and recurring costs. - Show a chart for the next 30 and 90 days (`chart.js`) and a table of the items behind each point. - Let me mark an invoice "unlikely" to drop it from the forecast, and mark a bill as delayed. - Never post anything to the ledger from this page. - Update the README with how the forecast is built.
Add suggestions to the review queue of the bookkeeping workspace in this folder. Requirements: - When rules don't match a bank line, send only its description and amount to an OpenAI-compatible endpoint (LLM_BASE_URL, LLM_API_KEY and LLM_MODEL in .env) with the chart of accounts, and receive an account and a confidence. - Show the suggestion in the queue; I approve or change it, and an approval can create a rule. - Never post automatically, cache answers per description, and list in the README exactly what is sent. - Update the README.
A freelancer pays $25 a month so that bank transactions, invoices and payments land in one place without copying numbers between a bank, Stripe and a spreadsheet. Fina is aimed at people who dislike QuickBooks-style setup, and it keeps personal and business money in the same app.
Estimate · Runs on your laptop or a $5 VPS. Stripe's per-payment fees apply with Fina too. The build is token usage on your agent plan.
Checked 2026-10-19 against Fina Business's docs: 1, 2, 3, 4, 5, 6
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | One personal finance portfolio, transactions in Google Sheets, fast manual entry, smart AI categorization, unlimited custom templates, Fina AI. |
| Premium | $12 | $8.25 | Unlimited bank connections, multiple custom portfolios, unlimited templates, AI categorization, multiple currencies and partner collaboration. |
| Business | $25 | $20 | Everything in Premium plus automated invoice management, Stripe payments, customer account tracking, double-entry bookkeeping, and balance sheet and P&L reports. |
Free covers one personal-finance portfolio with transactions in Google Sheets, manual entry, AI categorization and Fina AI.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Live bank connections that pull transactions in automatically, Stripe payment links tied to invoices, kept in sync by Fina.
About $25 a month on the Business plan, $300 a year (checked 2026-10-19).
Live bank connections that pull transactions in automatically; Stripe payment links tied to invoices, kept in sync by Fina; Several profiles for personal and business money, with budgets and dashboards; Sharing a profile with an accountant or partner; Fina AI categorization and chat over your numbers. If any of those matter to you, keep paying.
Yes: Bigcapital (open source), InvoiceShelf (open source), Beancount with Fava (open source).