Running costs of a SaaS

Last updated:

My attempt at answering the age-old question: how much does it cost to start and run a (bootstrapped) software company?
service description cost / unit
Hexadecimal I monitor all my websites using Hexadecimal. Since servers that perform uptime and certificate checks are separated from the rest of the infrastructure, I will still be notified if Hexadecimal goes down. $16 / month
Fastmail Business email. Snappy web interface and support requests don't go to /dev/null. $5 / month
GoatCounter Open source, privacy-respecting web analytics. €5 / month
Sendgrid Transactional email. Generous free plan, but I have had a few problems in the past. $0 / month
Cloudflare Domain registration and DNS servers for the root domain, subdomains, and a status page. I use CNAME flattening so that Netlify can point to the root domain. Caveat: you can't change name servers (NS records) once your domain is administered by Cloudflare Registrar, which is bummer. Switched from iwantmyname and namesilo (they're both fine). $16.06 / year
Netlify The site you're on is hosted on Netlify. They handle certificate renewals and the whole asset pipeline. The static site is comprised of plain old HTML and CSS files, with sprinkles of JavaScript for interactivity (I use nanoc to generate a static site). Result: fast web pages that load in less than 500ms, on average. The website works fine on potatoes^H^H^H low-powered phones, and I get the accessibility and SEO out of the box, although I don't support ancient browsers. $0 / month
Redis Cloud Managed Redis hosting, since AWS ElastiCache doesn't allow outside access to the cluster (technically, you can connect either via SSH tunnel or a proxy NAT instance, but it is too duct tapey). $10 / month
Sentry Exception tracking. I used to rely on logs for error tracking (e.g., "fatal OR exception OR error") but got tired of dumb bots hitting the same (nonexistent) endpoints, which kept triggering false alerts. $0 / month
AWS EC2 1 app server (t3.small) and 4 background job servers (t3a.micro) distributed globally. Elastic IP attached to all instances. The daily cost also incorporates mysterious EC2-Other category and snapshots for app server. I am using $5000 credit from the Stripe Atlas to cover my monthly bill (on top of the free tier). Once I run out of credits, I will probably spread my compute instances across multiple VPS providers. AWS' billing is pretty opaque, their UI leaves a lot to be desired (it gets better though), and bandwidth charges are preposterous (although I'm confident that they won't shut you down, because algorithms decided that you're a fraud). If you're just starting out and want to rent a virtual machine, consider VPS providers first. $2.04 / day
AWS RDS Managed Postgres hosting. db.t3.micro with Multi-AZ failover. Backups are retained for 10 days. Encryption at rest and in transit. I use a custom parameter group that forces SSL on all connections. $1.07 / day
AWS S3 File storage for customer-uploaded images (logos and favicons for status pages). $0 / month
AWS CloudFront CDN for static assets (for the web app only). $0 / month
Twilio Sending SMS messages. Switched from AWS SNS so that I can have a fixed number. ¯\_(ツ)_/¯
Github Hosting for git repos. I have two different repos: a static site and a Rails app. I configured Netlify to automatically deploy code once I push to the master branch of the repo. I deploy to app/background job servers manually using Capistrano. $0 / month
Notion I use Notion for keeping track of my backlog (kanban board), internal wiki, jotting down article ideas, and everything in between. $0 / month
Stripe Payments Payment processing. Additional 1% for foreign currency conversions. 2.9% + $0.3 / charge
Stripe Billing Recurring subscriptions, payment recovery, revenue analytics, invoices & receipts generation, and partial EU VAT compliance. First $1 million is processed for free. The whole SCA thingie could have been handled better, especially the documentation part. 0.5% / charge
Stripe Atlas They help you to incorporate a Delaware C Corp or LLC, open a bank account, and give you access to a bunch of discounts/credits (e.g. $5000 AWS credit). I went with a C Corporation instead of an LLC because the latter complicates the tax situation for non-US residents. All in all, Atlas has been a pretty good experience. $500 / once
Xero Bookkeeping software. $11 / month
Legalinc Companies formed in Delaware are required to maintain a registered agent in the state. The first year is included in the Stripe Atlas' application fee. $100 / year
Silicon Valley Bank Business checking account that (optionally) comes with Stripe Atlas. Meh. $25 / month
Tarsnap Encrypted backups for all things business (and not only). Storage and bandwidth are priced separately. $0.25 / GB-month + $0.25 / GB
pass Free and open source command line password manager for Unix. Each password lives in a separate GPG encrypted file. Using Git to track changes. I don't have team members, so there is no need to share passwords or keys. Switched from KeePassXC. I use Authenticator iOS app to store 2FA tokens. $0 / month