Build with AI

How to build an invoice and quote builder with Bolt

Build an invoicing app that runs in one browser tab, with the live app rebuilding in front of you after every message. Quotes with line items, discounts and tax in any currency, one click from quote to invoice, statuses the database enforces, a branded PDF and reports, all under your own sign-in and described in plain language.

September 2026 · 49 min read · Updated September 2026

Bolt

$ Build an invoicing app in this project: quotes with line items, discounts, a tax rate and a currency, converted to invoices with one click, documents moved through draft, finalized and archived, clients on file, a branded PDF per document and reports. Every row belongs to my account and nobody else can reach it.

  • Project imported
  • Editors, PDF and reports built
  • Ready to preview
You describe it, Bolt builds it
Start here

What an invoice and quote builder actually is

At its core, this tool does exactly what you need: it manages your client list, calculates totals, turns quotes into invoices, and creates PDFs for your customers. Everything is completely private, linked only to your account, and hidden from the public.

Usually, you have to rent invoicing software. Monthly subscriptions often limit what you can do, charging extra based on how many clients you have, how many invoices you send, or taking a cut of your payments. They might even force their logo onto your documents unless you upgrade. Most other tools restrict you in at least one of these ways.

We keep things simple and all in one place. You can easily add line items, taxes, discounts (fixed or percentage), shipping fees, and choose your currency. Convert a quote to an invoice with a single click. You can easily track the status of any document: Draft, Finalized, or Archived. All your client details, custom fields, and brand colors are saved securely, and you can choose how your final PDF looks from our template gallery.

The biggest difference is how you pay. We don’t charge you per client, per invoice, or for removing our logo. Your only costs are data storage and standard web hosting, which can often be free. Because we don’t process payments or send emails for you, there are no hidden fees: you just download the PDF and get paid however you normally do. We even include a smart feature that helps you easily copy the design of an old invoice on your own AI key.

Perfect math every time

Subtotals, discounts, taxes, and shipping are automatically calculated as you type. Everything is formatted correctly for your chosen currency. Whether you’re looking at your screen or the final PDF, the numbers always match perfectly, saving you from the headaches and errors of manual spreadsheets.

Just your business, nothing else

Your account is entirely yours. Everything you create (clients, invoices, templates) is securely linked only to you. We designed this specifically for freelancers and solo business owners, meaning there are no complicated team roles to manage. You log in and see exactly what you need for your work.

100% private document creation

Your final invoices are created directly on your computer, using your logo, colors, and fonts. Your financial data is never sent to a remote server to be processed. This means your numbers stay completely private and secure, and your documents are generated instantly right in your browser.

What you are building

The parts every invoice builder is built from

These six building blocks give you everything you need to manage your billing effortlessly. Start by creating quotes and invoices with instant calculations, then manage your entire workflow from a single dashboard.

01

Instant calculations for quotes & invoices

Add items with descriptions, quantities, unit prices, and individual discounts. Apply overall document discounts, set tax rates, and add shipping fees: everything recalculates instantly as you type. Quotes include expiration dates and terms, while invoices add due dates, payment methods, and bank details.

02

One-click conversion & revision tracking

Turn any approved quote into an invoice with a single click, keeping all client details, items, and totals connected. Need to make changes? Duplicate a quote to create numbered revisions (like R/1, R/2), while your invoices stay neatly ordered (like INV-1, INV-2).

03

Simple document status & tracking

Keep your workspace clean by marking documents as Draft, Finalized, or Archived. Filter your documents in seconds to find what you need. The system keeps your record-keeping accurate and flexible so you stay in full control of your workflow.

04

Custom branding & print-ready PDFs

Choose from stylish design templates like Professional, Classic, or Ledger. Personalize them with your logo, brand colors, custom fonts, and footers with a live preview as you make changes. Download print-ready PDFs anytime or export your financial reports.

05

Multi-currency support for global clients

Easily select from 30 major currencies for any quote or invoice. All amounts and totals are automatically formatted to match the official standard for that currency, helping you present clean, accurate documents to international clients.

06

Clients, reports & activity log

Store detailed client profiles with contact info, addresses, tax IDs, and private notes. Create custom fields for extra details, view visual dashboards with CSV report exports, and review an activity log to see what was changed and when.

Build vs buy

Own the invoicing or rent it by the month

Most billing services charge you more as your business grows: limiting your clients, taking a cut of your payments, or raising monthly fees. Building your own simple tool gives you full ownership, complete data privacy, and zero recurring fees or hidden limits.

Build your own

Take full control of your invoicing. Enjoy a custom billing tool that belongs entirely to you, running smoothly without expensive software subscriptions. You get clean, professional branding and full freedom without paying third-party fees.

  • No cap on clients, invoices or people who sign in, so the fiftieth client costs what the first one did
  • Your logo on the PDF and nobody else’s, on every design
  • A quote that becomes an invoice without retyping, with revisions numbered from the original
  • Thirty currencies formatted per document, and no conversion you did not ask for
  • Your clients’ names, addresses and amounts in a database you can dump and move
  • Nothing to migrate away from later, because the code and the database are ordinary and yours

Rent traditional software

FreshBooks · Xero · Zoho Invoice · Wave · PandaDoc

Renting gets you up and running immediately with ready-made payment buttons and maintenance handled for you. However, you pay a recurring subscription that grows more expensive as your business scales.

  • Live today, with a Pay now button and a paid status you did not have to build
  • Accounting behind the invoice on the bigger products: expenses, bank feeds, an accountant’s login
  • A monthly price that follows how many clients, invoices or seats you have
  • A free tier that is free because the vendor’s logo is on your PDF, or because it earns on every payment
  • Your design inside the vendor’s templates, and your data inside its export
  • A percentage of every invoice paid through it, on top of the card fee
FreshBooksLite at "$23.00 USD/mo" for "5 Clients", Plus at "$43.00 USD/mo" for "50 Clients", Premium at "$70.00 USD/mo" for "Unlimited" clients, with "Team Members ($11/mo per user)" and a "Yearly Extra 10% Off" toggle

The plainest version of the meter: a price per month, a cap on how many clients you may bill at each tier, and a seat price for anyone else who signs in. A small business with more than five clients lands on Plus, which is the row to read for what renting a mature invoicing product actually costs once it fits. Card payments through it carry their own fee, quoted on the page as 2.9% plus 30 cents.

freshbooks.com · checked September 2026

XeroEarly at "$25 per month" after the promotion with "Send quotes and 20 invoices†", Growing at "$55 per month", Established at "$90 per month", with "No per-user license fees"

The meter here is invoices. The entry plan caps you at twenty a month, counting approving as well as sending, so a business that invoices weekly lands on Growing. What you get for the step up is an accounting system rather than an invoicing tool, which is the honest comparison: Xero is what you rent when you want the ledger too, and this template is what you build when you do not.

xero.com · checked September 2026

Zoho Invoice"$0 for Seamless and Stress-free Invoicing", with "Add up to two users", "Send up to 500 invoices per year" and "Powered by Zoho Invoice" branding

Free, and the meter is the fine print: two users, five hundred invoices a year, and the vendor’s name on every PDF you send. For a freelancer that is a fair trade and this guide says so in the verdict. What the free tier is selling is the paid billing product beside it, and the branding line is how it does that.

zoho.com · checked September 2026

WaveStarter at "$0" with "2.9% + $0.60 per credit card transaction", Pro at "$19 USD/month Billed monthly" or "$190 USD/year Billed annually" to "Remove Wave branding" and "Add logo and brand colors"

Free software that earns on the payment button: every card payment through it carries the fee, and the paid plan is mostly about taking Wave’s name off your invoice and putting your logo on it. Read this row for the shape most free invoicing takes, which is a payment processor with an invoice editor in front of it.

waveapps.com · checked September 2026

PandaDocStarter at "$19 USD" per seat per month billed annually or "$35 USD" monthly, Business at "$49 USD" per seat per month billed annually or "$65 USD" monthly, with quotes from Business only

The quote half of this template, priced by the seat. PandaDoc sells proposals and signatures, and a quote with line items is a Business-tier feature at about fifty dollars a seat on the annual plan. Worth reading if what you actually send is a quote that has to look good, because it is the row where the meter is people rather than documents.

pandadoc.com · checked September 2026

Rule of thumb: if you send a handful of invoices a month and want to be paid by card tonight, rent one, and Wave or Zoho Invoice will do it for nothing but the card fee or their logo on your PDF. If invoicing is part of a product you sell, if your quotes carry revisions and your PDFs carry your brand, or if you bill in several currencies and do not want them converted for you, the software is worth owning, because the caps above are exactly where a growing business pays and your clients’ names and amounts are yours to keep in a database you control. The honest middle case is a business that needs to be paid online. Build this and connect a payment rail, and read the block on choosing how you get paid, because that fee exists whether you rent the software or own it.

No dev needed

Why build with Bolt

Skip the accounting suite and the server engineering. Describe the quotes and invoices you send, the clients you bill and the way your PDF should look, and every document is saved under your own sign-in without you writing server code.

Bolt runs the whole thing in one browser tab, right down to the preview:

The build loop
1

Prompt

Describe the screen or rule you want, in plain language.

2

Preview

Watch the running app rebuild itself in the same tab.

3

Try it

Click through the real app, because the preview is the actual build rather than a mockup.

Refine

Ask for the next change, or fix what’s off.

Loop back to Describe

None of that needs an install or a terminal window, and the whole build happens in the tab GitHub just opened, one request at a time.

One tabruns the whole build

Bolt runs your project inside the browser itself, via StackBlitz’s WebContainers, so the preview you’re looking at is the app actually running, rather than a screenshot or a separate deploy you have to wait on.

Auto-committed to GitHub as you go

Once GitHub is connected, Bolt commits each working change on its own and pulls in anything you changed elsewhere, so the two stay in sync without you typing a git command.

Built-in database or your own Supabase

Ask for a database and Bolt wires up its own managed one with no extra account, or connects a Supabase project you already run yourself.

What it costs

Pay a developer, or do it with AI

Running your own invoicing app requires two simple things: data storage and website hosting, both of which start completely free. The real choice comes down to how you build the app itself: hiring a developer by the hour or creating it yourself with an AI coding assistant.

Hire a developer

Custom build, from scratch
Developer
~$11k-$43k
Supabase (backend)
Free tier · $25/mo (Pro plan)*
Hosting
$0 free tier
AI template import
Per upload on your own key
Build time
~215 hrs of their work

~$11k-$43k for the build, then from $25/mo once real invoices go out

Our ~215-hour estimate, costed against the rate survey linked below, whose bands run from a $45-$75/hr global freelance average up through $100-$150+/hr for senior US developers, before the 20-40% an agency adds, which brackets the range at roughly $50/hr and $200/hr. Most of those hours go on arithmetic that has to be right in thirty currencies, a PDF that has to look like your company, and twelve tables that all have to agree about whose document this is.

Build it with Bolt

From scratch, with Bolt
Bolt
Free (1M tokens/mo) to $25+/month (Pro, from 10M tokens)
Backend (Supabase)
Free tier · $25/month (Pro plan)*
Hosting
Free on Bolt’s own hosting, or Netlify
Your time
~103 hrs

Free for a first look. A real build costs from ~$25/month on Pro once it outgrows the entry token rung, and climbs from there with usage

Bolt bills by tokens, and the sticker price understates what a real build costs: it reloads your whole project as context on every message, so the entry Pro rung (10 million tokens for $25/month) burns down faster than the number implies. Budget for a top-up or a higher rung on a multi-session build, not the $25 floor. Lean on Bolt’s own token-saving tools (clearing context between features, pointing a prompt at specific files) to slow that burn.

* On this template the free-tier line to watch is the pause, not storage. The only file is a logo and the rows are small, but a free project is paused after a week without activity, and a business that invoices at month end leaves it idle for three. Pro, from $25/mo, ends the pause and keeps a daily backup for 7 days, which matters more here than anywhere else in the catalogue, because an invoice is a record you may be required to keep.

Prices and rates from supabase.com, developex.com and bolt.new, checked September 2026.

Plan first

Decide before you build

Six simple choices to consider before customizing your app. Decide how your business will handle team access, currency exchange, invoice sending, legal locking, payment processing, and AI budget limits.

01

Solo owner or team access?

By default, the app is built for a single user. If you have multiple team members who need separate logins or different access levels, it’s best to plan this from the start. Setting up team access early ensures your privacy and data controls stay clean and organized.

02

Single currency or live conversion?

The app supports 30 major currencies without forcing conversion rates. Decide whether you want to bill everything in one primary currency or attach live exchange rates to international invoices so your tax and financial reports stay perfectly accurate for audits.

03

Direct emailing or manual downloads?

You can simply download print-ready PDFs and email them to clients yourself. If you want the app to send invoices automatically, you can connect an email service to deliver documents directly and track their delivery status inside the app.

04

Editable or locked invoices?

By default, documents can be edited anytime. However, accounting laws in many countries require sent invoices to be locked permanently against edits. Decide if finalizing an invoice should freeze it completely to keep your business fully compliant.

05

Bank transfers or instant payment buttons?

The standard setup displays your bank details on the PDF so clients pay manually with zero extra fees. If you prefer adding a "Pay Now" button, you can connect a payment processor, though keep in mind they will charge a small fee per transaction.

06

AI feature setup & spending limits

The built-in AI tool scans uploaded invoice designs and converts them into editable templates. Select your preferred modern AI provider and set cost controls so you can enjoy smart document conversion while keeping your monthly budget predictable.

Approaches

Comparing your build options

A form that adds up a few lines is an afternoon. The hard part is everything behind it: totals that stay right through discounts, tax and shipping in thirty currencies, a quote that becomes an invoice without retyping, statuses the database will not let you skip, and a PDF that looks like your company rather than a spreadsheet. Here are three ways to build the exact same product.

~215 hrsBuilding by hand

A form that adds up three lines is an afternoon. The weeks go on the parts a client never sees: a percentage discount, a tax rate and shipping that agree to the cent in a currency with no decimals, a quote that becomes an invoice without retyping a line, a status the database refuses to skip, and a PDF that looks like your company on every one of five designs.

~160 hrsGeneric UI starter kit

A kit gives you a form, a table and a settings page. It has never heard of a line item, a tax rate or a finalized document, so the arithmetic, the quote-to-invoice step and the PDF, which are the whole product, start from nothing.

~103 hrsAI-powered development with Bolt

You describe a piece and the running app rebuilds in the same tab, and since the preview is the real project, the totals you are checking are the real arithmetic rather than a description of it. The check that matters: download the PDF from the preview and confirm the total on paper matches the total on the screen.

Interactive calculator

Estimate your exact build timeframe

Uncheck features your business doesn’t need. Whether you drop quotes or skip AI template imports, you still get a fully functional billing app with a faster setup time. Use this figure as a helpful starting estimate.

What your invoice builder needs

Your estimate

103 hrs

start to finish

Based on the 7 of 7 features you’ve selected, plus ~26h of groundwork. Toggle any on the left to watch the number move, and open the groundwork row to untick what you have already, such as a database that is already running or going live if you are only building a mock-up for now.

A rough estimate, not a quote. Real time depends on how much you customize and how clean your data is.

Setting up your workspace

Let’s set up the tools you need

Bolt runs in the browser, but it can’t open a .zip file, so the only way in is a GitHub repository. Do that first, then create a Bolt account and a plan. Everything after that is a plain description of what you want.

1

GitHub account

Cost: Free

Bolt has no upload button for a folder or a .zip, and the only way to open a project is to import a repository, so a home for the code has to exist before Bolt does. Sign up and create a private repository, then push your project’s files to it.

Create a free GitHub account
2

Bolt account

Cost: Free

Sign up at bolt.new and connect the GitHub account from the step above. Once it’s linked, you pick a repository to import and land straight in a live preview, with nothing to install.

Sign up for Bolt
3

Bolt subscription

Cost: Free (1M tokens/mo), then from $25/month (Pro)

Free gives you 300,000 tokens a day, capped at 1 million a month, which is enough to try Bolt rather than to finish a real app. Pro starts at $25/month for 10 million tokens (unused ones roll over one extra month), but Bolt reloads your whole project as context on every message, so a multi-session build tends to burn past that entry rung faster than the sticker number implies.

Compare Bolt plans
4

Supabase (database)

Cost: Free to start

Where your project keeps its data. Bolt can wire up its own managed database with no extra account, or connect a Supabase project you already run yourself, and both are Supabase underneath. Ask for one the first time a screen needs to save something real, so you have nothing to set up before you get there.

Connect Supabase to Bolt

The GitHub step comes before Bolt exists for you at all. Everything after it happens inside the browser tab Bolt opens, with no install.

Step by step

Build your invoice builder, one prompt at a time

Step 01 starts outside Bolt, because a project has to exist online before Bolt can open it. After that it is all one tab. Clear the context between the unrelated features below: the quote editor and the PDF designs have nothing to say to each other, and each message costs less on a clean slate.

  1. 01

    Create the project online, import it, then add sign-in and the tables

    Bolt has no upload button, so the project has to exist as an online repository first. Nothing in this app is public, so the account and the ownership rule come next, before any screen.

    PromptSet up, connect the database, add sign-in and tables
    This project is an invoicing and quoting app. Set it up as React 18 + Vite + TypeScript with Tailwind, and keep this vocabulary throughout: clients, quotes, invoices, line items, templates, tax rates. Three standing rules for the whole build: every row belongs to the signed-in account and the database enforces that rather than the screen, money is stored as numbers in each document’s own currency and never converted, and any AI key lives in a server-side function. Now connect a database, add sign-up with a full name and company name, login, logout and a profile per account, and build the tables. Clients with name, email, phone, billing and shipping address, tax ID, account number, contact person and notes. Quotes with a number, a status of Draft, Finalized or Archived enforced by a database check and defaulting to Draft, the client’s details, quote and valid-until dates, a tax rate, a discount that is an amount or a percentage, shipping, a currency code, notes, terms and a link to the invoice it became. Invoices with the same shape plus a due date, payment terms in days, payment instructions and bank details. Line items for each. Tax rates, templates with a settings JSON, settings as key and value JSON, and custom fields scoped to quotes, invoices or both with a values table each. Turn on row-level security so each account reaches only its own rows, with explicit checks on insert and update, line items included through the parent document’s owner.

    Keep the repository private. Bolt commits to it automatically as you build, and the environment file naming your database will be in it.

  2. 02

    Clear the context, then get the quote editor adding up in the preview

    The hard centre. Lines that add up as you type, a discount that is an amount or a percentage, tax, shipping and a currency from a list, with a client picked from file. The preview is the running app, so the arithmetic you see is the arithmetic you ship.

    PromptBuild the clients screen and the quote editor
    Build the clients screen with a searchable list and add and edit dialogs for every client field. Then build the quote editor: pick a client to fill their details or type them in, add line items with description, quantity, unit price and an optional per-line discount, and show the subtotal, a document discount as a fixed amount or a percentage, a tax rate from my tax rates, an optional shipping line and the total, recalculating as I type. Let me choose the document’s currency from a list of about thirty common ones and format every amount with the browser’s own number formatting for that currency, converting nothing. Add a quote date, a valid-until date, notes and terms, then a quotes list with search, a status filter and a sort, with the quote number as the address of its detail page.

    Try a percentage discount, a tax rate and shipping on one quote in a currency with no decimals. A cent out here is a cent out on every invoice you ever send.

  3. 03

    Point one prompt at the documents: conversion, revisions, numbering and statuses

    Name the feature rather than letting the prompt range over the whole project. No sent and no paid, because nothing here sends or takes money.

    PromptAdd conversion, revisions, numbering and statuses
    Working on the quote and invoice documents only. Add a Convert to invoice action on a finalized quote that creates an invoice with the same client, lines, discount, tax, shipping and currency, numbers it INV-1, INV-2 and so on, links the two documents both ways and opens the invoice editor with a due date and payment terms in days added. Add a Duplicate action on a quote that creates a revision numbered from the original (R becomes R/1, then R/2) and make the routes handle a number with a slash in it. Then the statuses Draft, Finalized and Archived on both documents, changed from the detail page, with the database refusing any other value. Build the invoices list and editor to match the quote screens.

    Naming the feature keeps the prompt narrow, which Bolt charges you less for and which makes the result easier to check.

  4. 04

    Talk the PDF designs through in Plan Mode before they are written

    This is the largest and most expensive-to-redo screen set in the build. Agreeing which designs exist and how branding reaches all of them before Bolt writes a line is exactly what Plan Mode is for.

    PromptBuild the PDF designs and branding
    Use Plan Mode for this one. I need the PDF generated in the browser with a PDF library and a template gallery with a handful of designs (professional, classic, a ledger style and a couple more), each rendering the document’s header, addresses, line items, totals, notes and terms in its currency. Branding settings: a logo uploaded to a storage bucket limited to 5 MB and image types, primary and accent colours, a font choice and header and footer text, applied to every design with a live preview. A print-ready preview page per document with a Download PDF button. Talk me through how one set of branding settings reaches every design first, then build it.

    Plan Mode costs a message and can save a rebuild. Five designs that each read branding differently is the rebuild it saves.

  5. 05

    Clear the context, then add the AI template analyzer with a log and a ceiling

    The one AI feature: a design rebuilt from an invoice you already use. The function runs on the database side, not in Bolt’s preview, which is where the key has to live anyway.

    PromptAdd the AI analyzer
    Add a server-side function on the database side called analyze-template that requires a signed-in user, accepts an uploaded image or PDF of an existing invoice as a data URL, sends it to my AI provider with the key held in its secrets, and asks the model, through a forced structured tool call, for a layout specification only: colours, typography, header layout, address sections, line-item columns, how totals are shown, footer and decorative elements. It must not read amounts or line items. Before contacting the provider, write a row to an ai_calls table and check the caller’s calls today against a limit read from settings. Save the specification as a custom template rendered by the same preview and PDF code as the built-in designs.

    Bolt may ask for the provider key when it scans the code. Leave that blank and put the key in the function’s secrets, because the function does not run in the preview.

  6. 06
    Destination

    Add the dashboard, reports and settings, then ship it

    The screens around the documents come last. Sign in as a second account in the preview, download a PDF, then publish, to Bolt’s own hosting by default, or to Netlify if you would rather keep the domain there.

    PromptAdd dashboard, reports, settings, demo, and publish
    Build a dashboard with counts and totals by status and the most recent documents, a reports page with cards for Draft, Finalized and Archived, a sortable table of every document with CSV and PDF export, an activity page listing recent changes to quotes, invoices and clients, and a settings page for the company profile, branding, tax rates, custom fields, numbering and the default currency. Add a demo account seeded on sign-in and wiped on sign-out behind a Try the demo button I can remove before launch. Then walk me through the full flow in the preview: sign up a second account and confirm it sees no documents, create a quote in a currency with no decimals, convert it, download the PDF and check the totals match, hit the analyzer limit on purpose and read what the app says, and once it holds up, publish it.
Authentication & security

Protecting your app: sign-in, user data, and AI keys

Your invoicing app manages sensitive information: client addresses, tax IDs, billing histories, and private API keys. Here are the essential security steps to review before launching.

Use your system’s built-in login

When users create accounts, log in, or reset passwords, let your backend system handle all the account security automatically. A dedicated user profile is created for every new sign-up. Stick with this standard setup without modifying it. Building custom login logic from scratch often creates hidden security flaws that you won’t notice until an unauthorized stranger accidentally gains access to your private financial records.

Every account keeps its own private data

The system comes with strict privacy rules configured across all your data tables. Every rule enforces the exact same boundary: client lists, quotes, invoices, itemized rows, visual templates, and personal settings belong exclusively to the account that created them. No other user can view or edit another person’s documents. Because there are no complex team roles, every user manages their own completely private business books.

Document statuses are strictly protected

The app allows only three official document states: Draft, Finalized, or Archived. These boundaries are enforced directly at the database level rather than just on the screen, meaning the system automatically rejects any attempt to invent unsupported statuses like "sent" or "paid." While this rule keeps your workflow clean and consistent, it does not automatically lock finalized invoices against editing, which remains a separate choice for your business.

Secure your AI features and set spending limits

The feature that sends uploaded invoice documents to your AI provider requires users to be fully logged in before it works. This double-layer check stops random visitors on the web from discovering your app’s address and spending your money. However, signing in only verifies who is using the tool: it does not limit how many documents they can upload. Treat unmonitored usage as a financial risk and set clear usage limits early.

Keep company logos public and documents private

The app includes one public storage folder designed specifically for company logos, accepting image files up to 5 MB. Anyone with the direct image link can view it, which is necessary for logos to render properly on printed invoices. Do not store anything else here. Scanned customer invoices, signed legal contracts, or confidential client paperwork must always be kept in a separate, password-protected private storage folder.

Keep AI secret keys hidden and protect client data

Your AI secret key must stay hidden on the server and never be sent to a user’s web browser, where tech-savvy users could easily steal it. Additionally, remember that using the AI analyzer sends actual invoice images to a third-party service. Since real invoices contain customer names, addresses, and payment totals, try to use blank templates or sample files whenever possible, and carefully review your AI provider’s privacy policies.

Remove demo buttons and add live project keys

The starter template includes a "Try the demo" button on the main page. This button signs visitors into a shared temporary account filled with sample documents, which are deleted when they log out. Before launching your app publicly, remove this demo button completely, replace the placeholder development keys with your real production account keys in your environment setup, and only then invite real customers to sign up.

Enable automatic daily backups before taking real payments

The free tier does not save automatic backups, which means your live database is the only existing copy of your business records. Upgrading to the $25/month plan enables automatic daily backups stored safely for seven days. You should activate this upgrade before sending your first paid invoice to a client, as financial records are legally required to be preserved safely for tax and accounting audits.

PromptCheck who can see what
Review the access rules (row-level security policies) on every table. For each one, tell me in simple terms who can view, add, edit, and delete records, confirm that people can only reach their own data while the right roles can reach more, and flag anything left open that shouldn’t be.

Paste this into the chat before launch so Bolt checks nobody can see data they shouldn’t.

One rule outranks everything above it: the database service key and the AI provider key stay on the server, and neither one ever goes into the app a browser downloads or into a repository. Should either leak, assume it has been used, look at what your provider says was spent with it, and issue a new one the same day.

Workflow rules

What speeds the build, and what slows it

Speeds the build

  • Using Plan Mode to talk a change through before Bolt writes any code
  • Pointing a prompt at specific files or functions instead of the whole project
  • Clearing Bolt’s context between unrelated features, so each prompt has less to process
  • Checking the live preview after each change, since it’s the running app itself
  • Reading the automatic GitHub commits later as a real history, not just a backup

Slows the build

  • Asking for a whole app in one prompt instead of one screen or rule at a time
  • Leaving context loaded from a finished feature while starting an unrelated one
  • Editing the repository directly on GitHub and expecting Bolt to pick it up before its next 30-second check
  • Approving several prompts in a row without checking the live preview after each one
Before you open Bolt

GitHub: the way in, not just a backup

Bolt can’t open a .zip file, so the only way to start a project is to import a GitHub repository. Every other tool in this set treats GitHub as optional, but Bolt treats it as step one.

Why this comes before Bolt

There’s no upload button for a folder or a .zip. Opening a project in Bolt means pointing it at a repository that already exists on GitHub, so a home for the code has to exist first.

Create a free account, then a repository

Sign up, then create a new, private repository for your project and push your files to it. Keep it private, and never commit secret keys or passwords.

Create a free GitHub account

Import it into Bolt

On bolt.new, connect your GitHub account, choose the repository from the list, and click “Import repository”. The project opens straight into a live preview.

After that, it stays in sync on its own

Bolt commits each working change back to that repository automatically, and checks GitHub every 30 seconds for anything pushed from outside it. A commit is a snapshot with a short note, like “added the home page,” and Bolt writes those notes for you.

Version control and GitHub, Bolt docs

It’s also how you leave, if you ever want to

The repository Bolt is syncing is a real, ordinary codebase: clone it, hand it to someone else, or keep working on it directly on GitHub whenever you’re away from the browser tab.

Going live

Where to host your application

Hosting gives your app a home on the internet so anyone can open it via a web link. Choose a service below to make your site live. (Your database, logins, and business records are stored separately in Supabase, covered below).

HostBest forNotesFree tier
VercelOne-click deploysLink the repository once and each push goes live on its own. The routing file Vercel expects ships in the template, which is what lets a bookmarked invoice open on the invoice instead of the sign-in page. Hobby is for personal use only, and billing clients is a business by definition, so Pro at $20/user/mo is the plan.Pro from $20/user/mo (Hobby is non-commercial)
NetlifyDrag-and-drop or GitEither link the repository or drag the built folder onto the page, and the app is live within a minute. Take the redirect rule Netlify suggests, because without it a bookmarked invoice address opens a not-found page after sign-in.Free tier
Cloudflare PagesA team in more than one countryServes the app from wherever the person opening it is, which matters for an accountant on another continent more than for a freelancer at one desk. The front end is a small static folder, and the PDF is drawn in the browser, so the host never sees an amount.Generous free tier
GitHub PagesNot this appPublishes for free from a GitHub project, and it is here so you can cross it off: the free tier wants a public repository, and the code that bills your clients sits beside an environment file naming your database.Free from a public repo only
Firebase HostingTeams already on GoogleA short setup, then a single command each time you release, with the routing rewrite declared in its own config file. Pick it if your business already runs on Google accounts, since it offers an invoicing app nothing else on this list does not.Free Spark tier
AWS Amplify HostingTeams already on AWSPublishes from the AWS console, and needs the routing rewrite in place before a saved invoice address will resolve. Worth choosing only when your other bills already come from AWS, because a static folder is indifferent to where it is served from.Free tier (build + hosting)
SurgePublish from the terminalA single terminal command puts the built folder online with no repository involved, which is fine for showing a partner the editor before launch and wrong for the address you sign in to every month end.Free, unlimited publishing
DigitalOcean App PlatformDigitalOcean usersBuilds and serves the static folder from an account a business may already pay for, so the database and the app sit with two suppliers rather than three.Free: 3 static sites, 1 GB/mo transfer

Two questions decide this, and neither is about speed. Does the plan permit commercial use, because an app that bills clients is a business and Vercel’s Hobby tier is not for one. And does a saved link to one invoice open that invoice after sign-in, which takes one routing rule on each of these hosts, with Vercel’s already in the template. Nothing on this app is public, so a search engine has nothing to index and that is fine. The host serves one small static folder, and every amount comes from your database.

The landing page’s Try the demo button signs any visitor into one shared account, and it ships turned on. The button logs a stranger into a fixed demo account, seeds it with sample clients and documents, and wipes them when they leave, which is right for a showroom and wrong for the address your clients see on a PDF. Before you launch, remove the button and its automatic sign-in as the code’s own comments describe, then open the landing page in a private window and confirm the only way in is your own account.

Database & backend

Keep your data in Supabase

Clients, quotes, invoices, lines, templates and settings in Postgres, a logo in one public bucket, accounts for the people who bill, and the single function that carries an uploaded design to your AI provider with the key held beside it and nowhere else.

ServiceBest forNotesFree tier
SupabaseData, auth, the logo and the analyzerTwelve tables in Postgres with the ownership rule written into their access policies, accounts from its auth service, one public bucket for logos with a 5 MB limit, and one edge function with the provider key in its secrets. Create a free project, hand over the URL and publishable key, push the migrations, deploy the function and set the key, and it is connected. The line to watch is the pause rather than storage: a free project sleeps after a week without activity, and a business that invoices at month end is idle for three.Free tier, then usage-based
Getting paid

How you collect payments from clients

By default, this app doesn’t handle transactions directly. Your bank details and payment instructions appear clearly on the invoice, allowing clients to pay via standard bank transfer, which costs you $0 in fees. For many businesses, this is the easiest and most cost-effective way to start. If you prefer adding a direct "Pay Now" button to your invoices, you can connect a payment provider, though each provider charges a small fee per transaction.

Stripe InvoicingA Pay now link on a PDF or a page"0.4% Per paid invoice" on Starter or "0.5% Per paid invoice" on Plus with quotes, on top of "2.9% + 30¢ per successful transaction for domestic cards", with "no fixed fees or setup costs"

Two fees stacked: a slice of the invoice for the invoicing product and the ordinary card fee for the payment, and nothing per month. The right shape for an app that already makes the invoice and only needs a link a client can pay through, which is what this template would be asking for.

stripe.com · checked September 2026

Square InvoicesA business that already takes cards in person"Get invoicing features included in any Square plan", with online and invoice card payments at "3.3% + 30¢" on "Square Free" and "2.9% + 30¢" on "Square Plus" at "$49/mo. per location"

Invoicing comes free with the account, and the meter is the card fee, which drops when you pay for the location plan you would buy for the till anyway. Worth it when the same business already runs a Square reader, because the money then lands in one place.

squareup.com · checked September 2026

PayPal InvoicingClients who already have a PayPal account"3.49% + fixed fee" for a PayPal or Venmo payment and "2.99% + fixed fee" for a card, with the fixed fee at "0.49 USD", plus "1.50%" on international payments and an optional "Invoicing Subscription 14.99 USD per month"

The highest percentage of the three and the one many small clients already trust, so the question is who your clients are rather than what it costs you. International payments carry an extra one and a half percent, which matters for the reader billing in several currencies.

paypal.com · checked September 2026

A percentage has no size until you multiply it by your own month, so do that first. Twenty invoices of $500 paid by card in a month, $10,000 in all, costs roughly $336 through Stripe (the card fee, the 30 cents on each, and the 0.4% for the invoice), about the same through Square on the free plan, and roughly $309 through PayPal at its card rate. Bank details printed on the PDF cost nothing and arrive when the client gets round to it. Whichever you pick, the paid status and the reconciliation are yours to build, because the template has neither.

AI workflows

Add AI capabilities in one simple step

Securely route your AI API keys through a lightweight serverless function. The template has one already, the analyzer that rebuilds a PDF design from an invoice you upload. Use simple prompts to automatically cap what it can spend, draft line items from a plain description, write the overdue reminder, and turn a supplier’s invoice into a document you can edit.

Log every analyzer call and put a ceiling on it

The analyzer requires a login and then trusts it completely: nothing records what a call cost and nothing stops an account uploading all day. Build this before anything else below, because everything below spends money too, and pick a current model while you are in there.

PromptLog every analyzer call and put a ceiling on it
Open the analyze-template function. Make the model name a setting I can change without a deploy, and set it to a current model on my provider’s price list that accepts images and structured tool calls. Add an ai_calls table that records every model call (which account, which task, which model, tokens in and out, a cost estimate, success or failure) and write to it from the function, successful or not. Then add a ceiling: a limit per account per day and a total across the whole app, both settings I can change without a deploy, checked before the function contacts the provider and returning a friendly “you have reached today’s limit” rather than an error. Do not let the browser send the limit or the cost. Then add a small usage panel to settings showing calls and estimated spend this month.

Draft the line items from a plain description

Most quotes start as a sentence in your head: three days of design, a print run of five hundred, delivery. Let a model turn that into lines with quantities and your usual prices, and keep yourself as the one who presses save.

PromptDraft the line items from a plain description
Add a “Draft from description” box at the top of the quote editor. It sends my description and my last twenty finalized quotes’ line items to the ai function and gets back suggested lines with a description, quantity and unit price each, drawn from prices I have used before where they match. Fill the editor with the suggestions marked as drafts for me to edit or delete, never save anything until I do, and keep the totals recalculating as I change them.

Write the overdue reminder

The app knows the due date and the amount, and it knows the template sends nothing. A drafted reminder you paste into your own email is the version of this that stays honest about that.

PromptWrite the overdue reminder
Add an “Overdue” filter to the invoices list for finalized invoices past their due date, and a “Draft reminder” action on each that sends the client’s name, the invoice number, the amount, the currency, the due date and how many days late it is to the ai function and gets back a short, polite reminder in my company’s voice, with a firmer version for anything more than thirty days late. Show it in a box I can edit and copy, and record in the activity feed that a reminder was drafted, since this app does not send email.

Turn a supplier’s invoice into a document

The analyzer reads the look of an invoice and deliberately not its contents. A second function that reads the lines off a received invoice or a spreadsheet, with you confirming every figure, is the feature that saves the retyping.

PromptTurn a supplier’s invoice into a document
Add a second function called read-invoice that requires a signed-in account, accepts an uploaded image, PDF or CSV of an invoice or a price list, sends it to the ai function and asks for the line items (description, quantity, unit price), the currency, the tax rate and the client details it can find, each with a confidence. Show the result as a prefilled draft quote or invoice with every figure the model was unsure about highlighted for me to confirm, and never save until I do. Log it and count it against the same ceiling as the analyzer.

Summarize the month in plain words

The reports page has the numbers. A paragraph that says what happened, in each currency separately because nothing here converts, is what you actually forward to a partner or an accountant.

PromptSummarize the month in plain words
Add a “Summarize this month” button on the reports page that gathers the documents finalized in the selected period, grouped by currency with no conversion between them, and asks the ai function for a short summary: what was invoiced, what was quoted and not yet invoiced, the largest clients by amount, and anything unusual compared with the previous period. Show it in a box I can edit and copy, and make clear which currency each figure is in.

Pick a lighter model for the high-volume prompts above and save a stronger one for wherever the reasoning actually matters. That is the same token-budget logic as the rest of this page, applied to the app’s own AI calls instead of the build itself. When Bolt flags a missing secret, add the key through its secrets settings instead of pasting it into the chat, and keep every AI feature behind one server-side function so there’s only one key to manage.

Ready-made option

Get a head start with our template

None of the steps above is compulsory, because the same app already exists, built: the editors add up, quotes become invoices, the PDF carries your brand and the analyzer rebuilds a design from an upload. Your time goes on your tax rates, your currencies and your logo.

Invoice & Quote Builder

The exact invoice builder this guide builds, packaged so you can open it, point it at your own backend, and make it yours from there. An invoicing and quoting workspace that takes a quote all the way to paid. You build line items with discounts, tax, and any currency, keep your clients on file, and export a clean PDF from a polished template branded with your own logo, colors, and fonts.

React 18ViteTypeScriptTailwind CSSSupabase
Out of the box

The key benefits of starting with a template

Document editors, instant conversions, status tracking, PDF templates, and financial reporting are ready right out of the box. Simply complete three quick setup steps before launching to your clients.

Building the core from scratch

~103 hrs

Opening the template, already built

~1 hr

Pay Once, Own Forever. Build exactly what your team needs without renting a monthly SaaS subscription, paying per-seat fees, or dealing with platform lock-in.

Automatic, error-free calculations

Create quotes and invoices with line items, individual item discounts, overall document discounts, custom tax rates, and shipping costs, all updating automatically as you type. Currency formatting (including zero-decimal currencies) is already configured so your financial numbers stay 100% accurate every single time.

One-click workflow & revision history

Convert finalized quotes directly into invoices with a single click, keeping all client details and line items connected. Keep your document history neat with numbered quote revisions, sequential invoice numbers, and clear tracking statuses (Draft, Finalized, and Archived) to manage your workflow effortlessly.

Custom-branded PDF document gallery

Choose from several clean document styles customized with your company logo, brand colors, custom fonts, and personalized headers or footers. Enjoy instant live previews as you edit, download print-ready PDFs anytime, and export clean financial reports for your records.

Complete data privacy & smart AI import

Enjoy complete account privacy with built-in security rules that ensure every client record, quote, invoice, and setting belongs exclusively to you. No unauthorized users can ever view your books. Plus, an integrated AI tool lets you upload an existing invoice design and instantly convert it into a matching template.

Three quick tasks before going live

Before opening your app to real clients, complete three simple setup checks: remove the public demo sign-in button, connect your live production keys instead of sample seller credentials, and set your preferred AI model with a spending cap. All three are quick administrative settings, not software development tasks.

Customer story

From founders who build on our templates

A fantastic out-of-the-box solution that handles all our billing needs without monthly fees or client limits. Setup took minimal effort, and it easily matches 99% of paid invoicing platforms on the market. Highly recommended!
Jeevan ThomasJeevan ThomasFounder & CEO, Hado.ai
Got questions?

Common questions

Not as shipped. The template has a Send to client button that explains an email service has to be connected first, and nothing else behind it. Finalizing an invoice changes its status and sends nothing. You download the PDF and send it however you already send things, and adding a real send is the third decision above.

No. There is no payment link, no card form and no paid status, only payment instructions and bank details printed on the invoice. Taking money is a decision above and a block of its own, because the moment a payment rail is connected the app is handling money rather than describing it.

Each document has its own currency from a list of thirty, and every amount on it is formatted for that currency, down to currencies with no decimals. Nothing is converted between currencies, on purpose, because a conversion needs a rate and a date, and the template has neither. Reports total documents across currencies as plain numbers, which is worth knowing before you read one.

A tax rate per document, chosen from the rates you save in settings, plus a discount per line and a discount per document as an amount or a percentage. It does not know any country’s tax rules, so you set the rates and you decide which one applies to which client. Anything more, such as several rates on one invoice, is a change to the editor and the PDF together.

One thing. You upload a picture or a PDF of an invoice you already use, and a model returns a layout description (colours, typography, where the header and totals sit, which columns the lines have) that becomes a design in your gallery. It does not read the amounts or the lines off the invoice. The default model it calls has left the provider’s price list, so set a current one, and the first AI prompt adds the log and the ceiling the template lacks.

No. Say what the tables hold, who owns a row, how people sign in and what the one function does, and your AI coding tool writes each of them. What is left for you is a free Supabase project for it to point at and an AI key placed in the function’s secrets, so the records and the key both end up somewhere you own.

A database plan and a host, both starting free, plus a few cents each time somebody uploads a design for the analyzer. Supabase Pro at $25/mo is worth it from the first real invoice, because it adds daily backups and ends the free tier’s pause after a week of inactivity, and a business that invoices at month end is idle for three.

Only the account that made them. A client, a quote, an invoice, a line and a setting each carry the account that owns them, and the database checks that on every read and write rather than leaving it to the screen. The template ships no roles or teams, so two people who bill from the same company either share a login or wait for the team feature you build.

A Try the demo button on the landing page that signs in to a fixed account, seeds it with sample clients and documents, and wipes them again on sign-out. It is for showing the app off, and the code marks it for removal before you launch, because a public button into a shared account is not something you want on a billing tool.

It keeps its status and its number. Draft, Finalized and Archived are the only three states, so a finalized invoice is not locked by the database and can still be edited or archived from its page. If you want finalizing to freeze a document, that is a rule to add deliberately, and the fourth decision above is where to think about it.

Nothing here is proprietary. Clients, quotes, invoices and their lines sit in plain PostgreSQL tables, so a routine dump carries every one of them to any other Postgres host, and the reports page exports the document table as CSV whenever you like and the PDFs are already files on your disk.

Yes. Any of the hosts above will serve the app on a domain you already own, with the certificate handled for you, in a few clicks. Do it before the first client sees a PDF, because the address on a sign-in screen your clients never see matters less than the name in the PDF footer, and both should be yours.

No. You describe what you want in the chat and Bolt writes the code and shows it running in the same tab. The one extra step Bolt asks for that other browser tools don’t is a GitHub account, since that’s how a project gets in. The setup section above covers it.

Bolt only opens projects from a GitHub repository, and it offers no upload button for a folder. Once it’s imported, Bolt keeps the two in sync automatically, so the extra step up front replaces a manual export later.

Free resets daily, and a paid plan’s monthly allotment resets on your billing cycle (unused Pro tokens also roll over one extra month). If you hit the cap mid-session, what you’ve built stays exactly as it is. You wait for the reset or buy more tokens to keep going right away.

References

Sources checked September 2026
  1. 01Pricing (Lite, Plus, Premium, per-user seats), FreshBooks. freshbooks.com
  2. 02Pricing plans (Early, Growing, Established), Xero. xero.com
  3. 03Pricing (free plan and its limits), Zoho Invoice. zoho.com
  4. 04Pricing (Starter, Pro, payment fees), Wave. waveapps.com
  5. 05Pricing (Starter, Business, per seat), PandaDoc. pandadoc.com
  6. 06Invoicing pricing (per paid invoice), Stripe. stripe.com
  7. 07Payments pricing (card and bank transfer fees), Stripe. stripe.com
  8. 08Invoices pricing (plans and card fees), Square. squareup.com
  9. 09Business fees (invoicing transactions), PayPal. paypal.com
  10. 10API pricing (current per-token rates), OpenAI. developers.openai.com
  11. 11Pricing (Pro plan, pause, backups), Supabase. supabase.com
  12. 12Web developer hourly rates 2026 (freelance and agency benchmarks). developex.com
  13. 13Row Level Security, Supabase docs. supabase.com
  14. 14Pricing (Free, Pro, Teams), Bolt. bolt.new
  15. 15Version control and GitHub, Bolt docs. support.bolt.new
  16. 16Connect Supabase, Bolt docs. support.bolt.new
  17. 17What is Bolt Cloud?, Bolt docs. support.bolt.new
  18. 18Netlify deployment (and Bolt hosting by default), Bolt docs. support.bolt.new
  19. 19Maximizing token efficiency, Bolt docs. support.bolt.new

This guide is general information. Third-party prices, plan limits, payment fees and market rates are quoted from the sources above and were last checked on the date shown. Vendors change them without notice, so confirm before you budget. What one analyzed design costs depends on the model you point the function at and your provider’s rates on the day, so measure it on your own account before you budget for it. Build hours and the cost estimates derived from them are our own estimates, not quotes. Bolt is a product of StackBlitz. Verify current capabilities and pricing before relying on them.