← Back to Folyo
Behind the scenes

How Folyo is built

Folyo is a small product built with real care. Here's an honest look at the technology, privacy decisions, and security practices behind it — no marketing fluff.

🍁

Built for Canada

  • GST (5%), HST (13% or 15%), QST (9.975%), and PST (BC, MB, SK) built in — not an afterthought
  • Interac e-Transfer support out of the box
  • Canadian address fields (province, postal code)
  • Prices in CAD, USD, EUR, GBP, and AUD
🔒

Privacy by default

  • Analytics via Vercel — no Google, no third-party trackers
  • No cookies used for analytics — no consent banner needed
  • Your data is never sold or shared with anyone
  • Your clients' email addresses are used only to deliver invoices you send
💳

Payments via Stripe

  • Card data never touches Folyo's servers — Stripe handles everything
  • Stripe Connect sends payments directly to your bank account
  • PCI-compliant by default — no card numbers stored anywhere
  • Stripe is trusted by millions of businesses worldwide
🛡️

Security

  • Passwords hashed with bcrypt — we can't see yours
  • All traffic encrypted with TLS (Cloudflare + Let's Encrypt)
  • Rate limiting on all auth endpoints — brute force protected
  • CAPTCHA on signup and password reset (Cloudflare Turnstile)
🗄️

Your data

  • Stored on Neon Postgres (AWS US East 1) — managed, encrypted at rest
  • Continuous point-in-time recovery — restore to any recent moment
  • Invoices are never hard-deleted — only voided, so your records are safe
  • Export your data or delete your account anytime from Settings
⚙️

The stack

  • Next.js 15 + TypeScript — fast, type-safe, and battle-tested
  • Neon Postgres for data storage — reliable, serverless, open source
  • Resend for transactional email (invoice delivery, notifications)
  • Hosted on Vercel — global edge network, auto-scaling

Folyo is built and maintained by a single developer in Canada. If you have questions about how something works, or a concern about your data, reach out directly — you'll get a real answer.