Security, without the adjectives
Skeptical? Good.
Which companies receive what, what is and is not encrypted, what we cannot promise, and how to check us instead of believing us.
Good. Don't type anything real yet.
Hand a stranger's website your finances? You shouldn't, not on a promise from a landing page. So here is a ladder. Each rung asks for a little more trust than the one before, and you only climb when the last one checked out.
-
Run the math without us Quarterly tax, runway and 1099 vs W-2 calculators that work in your browser. Type a number and nothing is sent anywhere. Open your browser's network tab and watch. Costs you: nothing. No account, no email.Open the calculators
-
Click around the real app on made-up numbers The demo is the actual app with a fictional freelancer in it. There is no account behind it and it is blocked from calling our database, which an automated test checks on every change. Costs you: nothing. No account, no email.Open the demo
-
Check who gets what Pick what you would do, and the map shows which companies receive anything, and exactly what. It also lists what we cannot promise. Costs you: two minutes of reading.Follow the data
-
Start with two numbers Cash you have today, and what a lean month costs. That is enough for your runway. Round them if you like. Add real transactions only once you are comfortable. Costs you: an email address. No credit card.Start free
Follow your data.
Pick what you would do. The map shows which companies receive anything, and exactly what. Green means data goes there. Dashed means nothing does.
Signing up and entering your numbers
This is the only path where your records are stored. Here is the whole route.
You
Your browser
Where you type
You enter transactions, clients and invoices.
Your bank
Never connected
You import a CSV or type numbers in. We hold no bank login, so there is none to lose.
Nothing sentOur side
Vercel
Serves the app's files
Sends your browser the app. Your records never pass through it.
Page requests onlyOur server functions
Encrypt and decrypt
Names, emails, notes and invoice text are encrypted here with a key per user before they are stored. The master key lives only in this server environment.
Receives your dataSupabase
Sign-in and the database
Your account and records. Row-level security means your login can only read your own rows. Amounts and dates are stored as plain values, protected by those access rules and disk encryption.
Receives your dataCompanies we use
Groq
AI model behind Lance
Not involved unless you ask Lance something.
Nothing sentResend
Delivers email
Not involved unless you press send on an email.
Nothing sentPostHog and Sentry
Usage counts and error reports
Which screens get used. Never amounts, balances, client names or your email. Error reports carry technical context only.
No financial valuesWhat we hold, and what we never will.
What we hold, because you typed it in
- Encrypted with your own keyClient names and emails, your name and profile answers, invoice titles, notes and line item text, your payment instructions and tax registration number, saved templates, who you emailed and the subject, and everything you ask Lance.
- Stored as ordinary valuesAmounts, dates, balances, invoice status and tax rates. These are protected by access rules and the database host's disk encryption, not a per-user key. Our privacy policy says so in plain words.
What we never hold
- Your bank password.No live bank connection exists in the product today.
- Your card number.The payment provider takes it. We never receive it.
- Permission to move money.Lance can read and draft. It cannot send, change an invoice or move money.
- A way to email from your address.Mail goes out as "Your Name via FreelanceCFO" with your address as the reply address, and the screen says so.
Don't trust this page. Check it.
- Watch the demo's network tab.
Open the demo, press F12, pick Network, and click through every screen. Filter for "supabase". You should see no requests. That is the block described above, visible from the outside.
- Read the app's security headers yourself.
Run this in a terminal. It prints the transport and framing rules the app sends on every page. These are the app's headers; this marketing site sends fewer.
curl -sSI https://app.freelancecfo.online/ | grep -iE 'strict-transport|content-security|x-frame|x-content-type' - Read the privacy policy for what it admits.
It names every company that processes your data, including the AI provider, and lists which fields are not encrypted. A policy that only flatters is a policy to distrust. Read it.
- Check the providers, not us.
The table below links each company's own security or data page. Supabase and Vercel publish SOC 2 Type 2 attestations. Groq documents that it does not retain inference data by default.
- Test the exit before you commit.
Start with rounded numbers on a throwaway address if you like. To delete everything, use Request deletion in Settings, which opens an email to us. We process requests within 30 days, and deleting an account removes the key that makes your encrypted fields readable.
What we can't promise.
Every product that processes your data on a server could write the sentence "your data is safe". None of them can prove it. Here is the fine print, up front.
- We hold the key.The master key sits in our server environment, because that is how the app reads your fields back to you. Someone who broke into that environment could read encrypted fields. A key you hold alone would be safer and would also break Lance and invoices. We chose the working product and are telling you.
- Amounts and dates are not field-encrypted.They rely on access rules and disk encryption at the database host.
- We have no audit of our own.FreelanceCFO has no SOC 2 report. The infrastructure we run on does. No third party has audited our own code or practices.
- Lance history is kept.Deleting a Lance conversation hides it from you. We keep the record until you close your account. Conversations flagged as attempts to misuse Lance can be reviewed by our staff, and each review is logged.
- Deleting an account is a request.It is a button that opens an email, not an instant wipe. We process it within 30 days.
- We are a small team.If you need a vendor with a security questionnaire and an enterprise contract, we are not that yet.
Every company that can touch your data.
| Company | What it does | What it receives, and when | Check them yourself |
|---|---|---|---|
| Supabase | Database and sign-in | Your account and your records when you sign up. Sensitive fields arrive already encrypted. | Their security page |
| Vercel | Serves the app and this site | Page requests, such as which page and your IP address. Not your records. | Their trust center |
| Groq | AI model behind Lance and CFO Insights | Only when you use Lance or generate an insight: your question or financial summary, and the records read to answer it. | Their data page |
| Resend | Delivers email | Only when you press send, or ask for a tax reminder or a calculator result by email: the address, subject and message. | Our policy |
| PostHog | Usage counts | Which screens and features are used. Never amounts, balances, client names or your email. No cookie on this site, and nothing sent if your browser sends Do Not Track or Global Privacy Control. | Our policy |
| Sentry | Error reports | Technical context when something breaks. | Our policy |
| Upstash | Abuse limits | Counters that stop spam and repeated requests. | Our policy |
| Payment provider | Takes your card when you upgrade | Your card details, directly. We never receive them. | Our policy |
| Plaid | Bank connections | Nothing. The bank connection is switched off, and there is no way to link a bank today. | See the FAQ |
Written from the app's code and its privacy policy, last reviewed October 2026. If anything here stops being true, that is a bug, and you can tell us at support@contact.freelancecfo.online.