How to build an invoice and quote builder with Lovable
Build a working invoicing app in a browser tab, message by 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, with Lovable designing the tables and the ownership rules in the same chat that builds the editor.
Lovable
$ Build an invoicing app: I build quotes with line items, discounts, a tax rate and a currency, turn a quote into an invoice, move documents through draft, finalized and archived, keep my clients on file, export each document as a branded PDF, and see reports. Everything belongs to my account and nobody else can see it.
- Quote editor adding up in the preview
- Invoices, PDF and reports built
- Ready to preview
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.
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.
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.
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).
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.
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.
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.
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.
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 · PandaDocRenting 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
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
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
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
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
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.
Why build with Lovable
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.
Lovable turns that work into a conversation: describe a screen or a rule in plain language and watch it appear in the live preview, in the same tab:
Prompt
Say what you want to add or change, in plain language.
Watch
The live preview rebuilds in the browser as Lovable writes the code.
Try it
Click through the real app, with real buttons, forms and data rather than a mockup.
Refine
Select what’s off and describe the fix, or ask for what’s next.
None of that requires a computer science background or writing code, and the whole build happens in one browser tab, one request at a time.
Data & backendhandled automatically
Connect your database in a single step, right from the chat. Lovable builds the tables, sets up the logins, writes the server-side functions, and turns on live updates, each one an ordinary request in plain language, not a separate tool to learn.
Click to point instead of describing where
Select any element in the live preview with Lovable’s Select elements tool, and your next message applies to exactly that piece.
Full ownership and complete privacy
The app and the records in it are yours. Every change is saved automatically, and the repository Lovable syncs to GitHub is private on every plan, with no technical setup and not one Git command.
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 Lovable
From scratch, with Lovable- Lovable
- Free (30 credits/mo) to $25+/month (Pro, from 100 credits)
- Backend (Supabase)
- Free tier · $25/month (Pro plan)*
- Hosting
- $0 on a Lovable subdomain
- Your time
- ~103 hrs
Free to try the idea, ~$25-$50+/month on Pro while you build a real one, then whichever credit tier you keep using
Lovable bills by credits, so what you pay tracks what you build: importing the pre-built template can fit inside the Free plan’s 30 credits a month, while a full from-scratch build burns through Free fast and usually needs Pro. Pro’s entry rung is $25/month (or $250/year, roughly $21/month effective) for 100 credits, the bottom of a ladder where 200 credits runs $50/month (or $500/year, about $42/month), and a multi-session build often lands on that rung or higher rather than the entry price.
* 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 docs.lovable.dev, checked September 2026.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
You describe a screen or a rule and watch the running app change in the same tab, while Lovable designs the tables and the ownership rules behind it. The check that matters: sign in to the preview as a second account and confirm the first account’s invoices are nowhere.
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.
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.
Let’s set up the tools you need
Nothing gets installed, because the whole workspace is a browser tab. Three things to sort out before step 01, and a fourth worth adding once the project matters to you. After that, you build by describing what you want.
Lovable account
Nothing to download. Sign up with an email, Google, or GitHub account and you land straight in the chat where you describe what to build.
Sign up for LovableLovable subscription
Lovable bills by build credits, so the plan you need follows what you build. Free gives you 5 credits a day, capped at 30 a month, which is enough to try it rather than to finish an app. Pro is $25/month for 100 credits ($250/year, about $21/month), and that is the bottom rung: a build spread over several sessions usually lands on 200 credits at $50/month, or higher.
Compare Lovable plansSupabase project
Where your app keeps its data. Connect your own Supabase project from the chat, or let Lovable create one for you. Either way it designs the tables, adds the logins, and wires the screens to them from there.
Connect Supabase to LovableGitHub connection
Not needed to build anything, since Lovable keeps its own history of every change. Link a GitHub account and it also keeps a private repository in sync, so a copy of the real code exists outside the browser tab. Worth doing before the project is one you would hate to lose.
Set up GitHub syncOnly the first three are needed to start, and none of it touches your computer. From here, you describe what you want and Lovable builds it in the browser.
Build your invoice builder, message by message
Everything below happens in one browser tab. Send a message, watch the preview rebuild, click through what changed, then send the next. One thing about the order: sign-in and the ownership rules come first, because every document in this app belongs to somebody and a rule added later has to be retrofitted onto twelve tables.
- 01
Set the ground rules, connect Supabase, and add sign-in with the tables
Nothing in this app is public, so the account and the ownership rule come before any screen. Send the rules in the first message and let Lovable design the tables around them.
PromptSet the rules, connect the backend, design the tablesBefore we build anything else, note the ground rules for this project: it is an invoicing and quoting app, the vocabulary throughout is clients, quotes, invoices, line items, templates and tax rates, 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 this project to Supabase and add sign-up with a full name and company name, login, logout and a profile per account. Then design 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 with description, quantity, unit price and a per-line discount. 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.
Say the ownership rule in the first message. Left unsaid, an assistant will reasonably filter by user in the screen, and then one forgotten filter shows another company’s invoices.
- 02
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.
PromptBuild the clients screen and the quote editorBuild 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, in the preview. If the total is off by a cent, send a follow-up about rounding before building anything on top.
- 03
Turn a quote into an invoice, and give both a lifecycle
Converting without retyping, revisions of a quote, sequential numbers and the three statuses. No sent and no paid, because nothing here sends or takes money.
PromptAdd conversion, revisions, numbering and statusesAdd 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.
- 04
Bookmark, then ask for the PDF designs and the branding
What the client receives. A handful of PDF designs generated in the browser with your logo and colours on all of them and a live preview. Bookmark first, because this is the screen you will iterate on most.
PromptBuild the PDF designs and brandingBookmark the current version first. Then generate the PDF in the browser with a PDF library and build 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. Add 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. Add a print-ready preview page per document with a Download PDF button.
Expect several follow-up messages on the designs. Select the element in the preview to point at what should move rather than describing where it sits.
- 05
Add the AI template analyzer, with a log and a ceiling
The one AI feature: a design rebuilt from an invoice you already use. It reads the layout and not the amounts, and every call is capped from the first one.
PromptAdd the AI analyzerAdd a server-side function called analyze-template that requires a signed-in user, accepts an uploaded image or PDF of an existing invoice, sends it to the AI provider 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, returning a friendly message when it is hit. Save the specification as a custom template in the gallery, rendered by the same preview and PDF code as the built-in designs.
Say that it extracts a layout and not the contents. A model asked to read amounts off a scan will do so confidently and wrongly.
- 06Destination
Add the dashboard, reports and settings, try it as a second account, and publish
The screens around the documents, then a second account in the preview, a downloaded PDF, and publish from the same tab.
PromptAdd dashboard, reports, settings, demo, and publishBuild 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 whole thing 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. When it holds up, publish it.
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.
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 Lovable 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.
What speeds the build, and what slows it
Speeds the build
- One small request per message, such as a field, a screen or a rule, rather than the whole app at once
- Connecting your database before building screens that need real data, not after
- Using Select elements to point at the exact thing that should change, instead of describing its location in words
- Bookmarking a known-good version before a redesign or a change to the data model
- Reading each response before sending the next request, so small mistakes don’t stack up
Slows the build
- Asking for an entire app in one message instead of one screen at a time
- Building screens for data your database does not hold yet
- Describing which button or section to change instead of selecting it
- Skipping bookmarks, then scrolling far back through history to undo a bad change
- Approving several messages in a row without previewing what actually changed
Connecting GitHub (Optional)
Every change in Lovable is saved automatically without any technical setup. You only need to link GitHub if you want a private copy under your own control or plan to hand the codebase over to external developers.
What Git actually is
A recorder for a project: every change becomes a version you can go back to, and nothing is ever overwritten. GitHub is the service that keeps those versions online.
Lovable already saves every change
A new version is created each time Lovable changes your project. No save button, no Git command, and the full history is there to scroll back through.
Version history, Lovable docsReverting undoes the code, not your data
One click restores an earlier version of your code and redeploys it, but nothing already written to your database rolls back with it. A UI or logic change is safe to undo. A change that touched real records is not.
Bookmark before a big change
Before a redesign or a change to your data model, bookmark the version you are on: one click back instead of a long scroll through history.
Connecting it, if you want to
Open your project settings, pick GitHub, and authorise the account. Lovable creates a private repository and keeps it in sync both ways: changes in Lovable reach GitHub, and anything pushed to that branch comes back in. Free on every plan.
GitHub integration, Lovable docsIt’s also how you leave, if you ever want to
The synced repository is a standard Vite and React project: clone it, hand it to a developer, or deploy it yourself.
Deployment, hosting, and ownership, Lovable docsWhere 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).
| Host | Best for | Notes | Free tier |
|---|---|---|---|
| LovableBuilt in | Publishing from the chat | The project you have been previewing publishes itself, with nothing to configure and no account to open anywhere else. Free on any plan at a lovable.app address. Paid plans put it on your own domain: buy one through Lovable and the DNS is done for you, or point one you already own at it using the two records the setup screen shows. Certificate issued automatically either way. | Free on a lovable.app subdomain · own domain on paid plans |
One button, and the app you have been previewing is live.
Hosting it somewhere else
Only for a setup Lovable does not offer: a host you already pay for, or the exported code on your own account. None of it is needed to go live.
| Host | Best for | Notes | Free tier |
|---|---|---|---|
| Vercel | One-click deploys | Link 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) |
| Netlify | Drag-and-drop or Git | Either 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 Pages | A team in more than one country | Serves 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 Pages | Not this app | Publishes 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 Hosting | Teams already on Google | A 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 Hosting | Teams already on AWS | Publishes 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) |
| Surge | Publish from the terminal | A 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 Platform | DigitalOcean users | Builds 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.
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.
| Service | Best for | Notes | Free tier |
|---|---|---|---|
| Supabase | Data, auth, the logo and the analyzer | Twelve 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 |
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.
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
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
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.
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.
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.
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.
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.
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.
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.
You bring no key and pick no provider: Lovable manages an API key per project, and if you do not name a model it chooses one from what you describe. Match the model to the job: fast and cheap for anything that runs on every record, stronger only where the reasoning matters. Send every feature above through that one integration.
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.
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.
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 ThomasFounder & CEO, Hado.aiCommon 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. Everything happens in a browser tab: you describe what you want in the chat, and Lovable writes and previews the code. The setup section above covers the handful of things you connect first: an account, a plan, and your own Supabase project.
A sketch on the Free plan is fine for testing an idea, with no real backend behind it. A project connected to your own Supabase account is the one you can actually launch, with real logins, real data, and your own domain.
Build credits reset every day (Free) or on your billing cycle (paid plans). If you run out mid-session, the app you’ve built stays exactly as it is. You either wait for the reset or move up a credit tier to keep going right away.
References
Sources checked September 2026- 01Pricing (Lite, Plus, Premium, per-user seats), FreshBooks. freshbooks.com
- 02Pricing plans (Early, Growing, Established), Xero. xero.com
- 03Pricing (free plan and its limits), Zoho Invoice. zoho.com
- 04Pricing (Starter, Pro, payment fees), Wave. waveapps.com
- 05Pricing (Starter, Business, per seat), PandaDoc. pandadoc.com
- 06Invoicing pricing (per paid invoice), Stripe. stripe.com
- 07Payments pricing (card and bank transfer fees), Stripe. stripe.com
- 08Invoices pricing (plans and card fees), Square. squareup.com
- 09Business fees (invoicing transactions), PayPal. paypal.com
- 10API pricing (current per-token rates), OpenAI. developers.openai.com
- 11Pricing (Pro plan, pause, backups), Supabase. supabase.com
- 12Web developer hourly rates 2026 (freelance and agency benchmarks). developex.com
- 13Row Level Security, Supabase docs. supabase.com
- 14Sign up, Lovable. lovable.dev
- 15Subscription plans (Free, Pro, Business), Lovable docs. docs.lovable.dev
- 16Connect Supabase, Lovable docs. docs.lovable.dev
- 17GitHub integration, Lovable docs. docs.lovable.dev
- 18Deployment, hosting, and ownership, Lovable docs. docs.lovable.dev
- 19Version history and reverting, Lovable docs. docs.lovable.dev
- 20Preview toolbar (Select elements), Lovable docs. docs.lovable.dev
- 21AI features and model selection, Lovable docs. docs.lovable.dev
- 22Custom domains, Lovable docs. docs.lovable.dev
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. Lovable is a product of Lovable Labs. Verify current capabilities and pricing before relying on them.