Side projects rarely die from one big bill. They die from ten small ones. A $9 monitoring plan here, a $12 design seat there, a domain for an idea you dropped last year that quietly renewed in March. None of them hurts alone, but together they turn a fun evening project into a cost you resent.
This guide is about the cost side of running a side project while it earns little or nothing. It isn't about what to charge customers. It's about keeping what you pay low, predictable and boring. Twenty dollars a month isn't a magic number. It's a line that forces you to choose what actually earns its place.
One note: vendor plans change often. Every price and limit below was checked on the vendor's own page in October 2026, so check again before you rely on one.
How do you find every bill your side project is costing you?
Set aside one evening and build a single list of every recurring charge tied to the project, including the annual ones. Those are the sneaky part: they don't show up in a normal month, so you forget them until the renewal email arrives.
Where to look
Card and bank statements for the last 12 months. Not one month: twelve. That's the only way to catch yearly renewals.
Your inbox. Search for "receipt," "invoice," "renewal" and "trial ends." Old trials that turned into paid plans live here.
PayPal, other wallets and your phone's subscriptions list. Some tools bill there and never appear on your card statement.
Registrars. List every domain you own with its renewal date and renewal price.
Cloud and hosting dashboards. Open each billing page, including accounts you used once for a test.
Developer accounts. The Apple Developer Program is 99 USD per membership year, while Google Play has a US$25 one-time registration fee (both as of October 2026, check again).
Make it one sheet
A spreadsheet with six columns is enough: tool, what it does, monthly cost, billing cycle (monthly or yearly), next renewal date, and a verdict column with three options: keep, downgrade or cancel. Divide yearly charges by 12 so everything sits in the same monthly unit. Then fill in the verdicts honestly. If you can't remember the last time you opened a tool, it's a cancel. If two tools do the same job, one goes.
What's a sensible cheap stack for a side project?
The cheapest stack is the smallest one: one place to host, one database, one way to send email, and one domain. Every extra service is another bill, another login and another thing that can break on a Tuesday night. It's the same thinking as the two-hour ops budget in our guide to scoping a side project MVP you can ship on weekends: if it needs more babysitting than you have time for, it's too big. That goes for the stack too.
A reasonable default for a small web project:
Hosting: a static or serverless host on its free tier, or its cheapest paid plan once you're charging money.
Database: one managed Postgres or SQLite-style database, not a second one for a staging setup nobody uses.
Email: one transactional email service for sign-in links and receipts.
Domain: one domain, renewed at a price you've actually looked at.
Everything else: free plans, a spreadsheet or nothing, until a real problem shows up.
What do free tiers really include, and what are the gotchas?
Free tiers are genuinely useful, but each one has a catch that matters for side projects: commercial-use rules, pausing, sleeping, expiring data or hard monthly limits. Here's what a few popular ones say as of October 2026 (check again, these change).
Vercel Hobby: free, but not for commercial use
Vercel's fair use guidelines say Hobby teams are restricted to non-commercial personal use only. Their definition of commercial includes any way of requesting or processing payment from visitors, advertising a product or service for sale, and showing ads. Asking for donations doesn't count. So the day you add a checkout button, the free plan's terms no longer fit. Vercel's Hobby docs also say that if you exceed Hobby limits, in most cases you wait 30 days before you can use that feature again. Pro is listed at $20 a month with $20 of included usage credit.
Supabase Free: projects pause when idle
The Supabase pricing page says free projects are paused after one week of inactivity, with a limit of two active projects and a 500 MB database. Automatic backups aren't included on Free. A project with a few occasional users can easily go quiet for that long. Pro starts at $25 a month with daily backups kept for seven days, which on its own is over a $20 budget.
Neon Free: scale to zero and monthly compute
The Neon pricing page says Free compute suspends after five minutes of inactivity and you can't turn that off, so the first request after a quiet spell has to wake it. Free includes 100 CU-hours and 1 GB of storage per project. Running out of compute hours or the 5 GB of egress suspends compute until the next billing period, and going over storage blocks writes. Neon says none of this deletes your data.
Render Free: sleeping web services and an expiring database
Render's free instance docs say plainly not to use free instances for production. A free web service spins down after 15 minutes without traffic and takes about a minute to spin back up. Free Postgres databases expire 30 days after creation, and after a 14-day grace period Render deletes the database and its data. Free Postgres also doesn't support backups.
Netlify Free: a hard credit limit
Netlify's credit-based plan docs say new accounts get 300 credits a month on Free, with a hard limit and no recharge option, and that you'll never be charged on Free. A production deploy costs 15 credits, so 20 production deploys alone would use the whole month before you count bandwidth. Batch small changes.
Cloudflare Workers Free: daily request limits
Cloudflare's Workers pricing docs list 100,000 requests per day on the Free plan and say requests to static assets are free and unlimited. Workers Paid has a minimum charge of $5 a month. For products like Workers KV, going over a free limit makes those operations fail with an error rather than charging you.
Notice the pattern. Free tiers tend to stop or pause, which protects your wallet but can take your app down. Paid usage tends to keep serving and bill you. Pick on purpose.
How do you stop one viral day or a runaway loop from surprising you?
Set a spend limit or budget alert on every service that bills by usage, and learn which ones actually stop spending and which only send an email. That difference matters more than any price.
Alerts versus hard caps
Google Cloud: the budgets and alerts docs warn that an alerts-only budget doesn't automatically cap usage or spending. It sends emails. Because of reporting delays, they recommend setting the budget below the funds you actually have. Spend cap budgets exist for some services.
Vercel Pro: the Spend Management docs say setting a spend amount doesn't stop usage on its own. You have to turn on Pause Production Deployments. Vercel checks every few minutes, so pausing can lag a little.
Cloudflare Workers: the same pricing docs suggest setting a CPU time limit per invocation to prevent accidental runaway bills.
Supabase Pro: the pricing FAQ says spend caps are on by default.
AI API usage limits
If your side project calls an AI model, this is the line most likely to jump. A loop that retries forever or a bot hammering your free demo can turn a $3 month into a much bigger one overnight.
OpenAI: the spend limits guide separates spend alerts, which only notify while traffic continues, from hard spend limits, which make requests fail with a 429 error once you hit them. You can set them for the whole organization or one project. OpenAI notes enforcement isn't instant, so spend can slightly exceed the limit.
Anthropic: the rate and spend limits docs say you can set your own monthly spend limit below your tier's cap from the Billing page in the Console, and requests return an error once you reach it.
Use a separate project or key for the side project, set a hard limit at a number that would annoy you but not hurt you, and add an alert at half of it. A per-user limit in your own code stops one visitor from using everything. If your real question is how to price an AI feature when every user costs you something different, that's covered in our sibling post on how to price an AI product when costs vary per user.
How do you keep annual renewals from catching you out?
Put every annual charge in your calendar 30 days before it renews, with the price and a one-line reason to keep it. That gap gives you time to cancel, switch or move a domain before the money leaves.
Domains: check the renewal price, not just the first-year price. Some registrars price the first year low and the renewal higher. Cloudflare says Cloudflare Registrar charges registration, transfer and renewal at or below what registries and ICANN charge it, with no markup.
Annual SaaS plans: if the tool keeps your access until the term ends, turn off auto-renew right after you buy. Turn it back on only if you still use it when the reminder fires.
Dead projects: give each one a shutdown date. Export the data, delete the database, cancel hosting and decide if the domain stays.
When is it worth paying more?
Pay for the things that protect your users and your reputation, and stay cheap on everything else. Two spends usually earn their place early, plus a domain, which is usually the cheapest trust signal you can buy.
Backups you've actually restored
If real people store data in your app, backups are the first thing worth paying for. Two of the free database tiers above, Supabase Free and Render's free Postgres, don't include automatic backups. A plan with daily backups is cheap next to telling users their data is gone. And a backup only counts once you've restored it, which is the point of this monthly backup restore drill for a solo SaaS.
Email that reaches the inbox
Sign-in links that land in spam make your product look broken. Send from your own domain through a transactional email service with SPF, DKIM and DMARC set up. You often don't need to pay yet: Resend's pricing page lists a free plan with 3,000 emails a month and a cap of 100 a day, with Pro at $20 a month for 50,000 emails (as of October 2026, check again). Just know your daily cap before you email everyone at once.
What does a $20 audit look like in practice? (An invented example)
Everything in this example is made up: the person, the product and the numbers. The prices are illustrative, not quotes from any vendor.
Marta builds Firingnote, a kiln firing log for hobby potters, on weeknights. It has around 40 paying users and makes a little money. She does the audit one Sunday evening and finds this, with yearly charges divided by 12:
App hosting plan: $20.00
Production database: $10.00
Staging database nobody has touched since spring: $10.00
Newsletter tool on a paid tier for 180 subscribers: $15.00
Uptime and error monitoring, paid plan: $9.00
Design tool seat: $12.00
AI API usage, her monthly average: $3.50
Firingnote domain, $15 a year: $1.25
Domain for an old project she dropped, $15 a year: $1.25
Screenshot app on an annual plan she forgot about, $36 a year: $3.00
Total: $85.00 a month.
Here's what she changes. Hosting moves to a $5 a month paid plan that fits her traffic. She stays on a paid plan on purpose, because Firingnote takes payments and she read the free tier's terms. She keeps the $10 production database for its daily backups and runs a test restore. Staging gets deleted. The newsletter moves to a free tier that covers 180 subscribers, monitoring drops to a free plan with one uptime check, and the design seat is cancelled. Auto-renew goes off on the old domain and the screenshot app, so both disappear when their terms end. The AI line stays at about $3.50, but she sets a hard monthly limit of $15 with an alert at $7.50.
New total: $5.00 + $10.00 + $3.50 + $1.25 = $19.75 a month. That's $65.25 a month less, or $783 a year. In a bad month the AI line can reach its $15 cap, which would make that month $31.25. She's fine with that, because it can't go higher unless she raises the cap herself.
What should your monthly 15-minute bill check cover?
Once a month, on the same day, open your sheet and do five things:
Compare this month's card statement with the sheet. Add anything new.
Open each usage-billed dashboard and look at the trend, not just the total.
Check the next 60 days of renewals in your calendar.
Confirm your spend limits and alerts are still on, especially after changing plans.
Ask one question: is any tool here only because I signed up for a trial and never left?
What can you do this weekend?
Pull 12 months of statements, search your inbox and build the six-column sheet.
Cancel or downgrade everything the verdicts say to.
Read the free-tier limits page for every service you keep, including commercial-use terms.
Set hard limits or budget alerts on every usage-billed service and every AI API key.
Put every annual renewal in your calendar 30 days early.
Shut down one abandoned project properly, and book the monthly check as a repeating event.
What traps push side project bills up?
Stacking free trials. Five trials started in one excited weekend become five charges a few weeks later. Start one at a time, with a reminder.
Enterprise tools for ten users. You don't need the observability and feature-flag stack of a 200-person company. Logs and a spreadsheet go a long way.
Forgotten annual renewals. The yearly charge you didn't see coming hurts most.
Keeping dead projects alive. Old databases, hosts and domains for ideas you've moved on from.
Trusting alerts as caps. An email at 100% of budget doesn't stop the spending.
Ignoring free-tier terms. Commercial-use rules and pause policies are part of the price, even when the price is zero.
Quick answers
Is $20 a month realistic for a side project?
For many small web projects, yes. Data-heavy apps, mobile apps with developer fees or heavy AI usage may land higher. The point is to make every dollar a decision rather than a leftover.
Can I use free tiers for a project that makes money?
Sometimes. Vercel Hobby, for example, is non-commercial personal use only, while other free tiers simply have usage limits. Read each service's terms once you start charging.
Should I prepay annually to save money?
Only for things you're sure you'll keep, like the domain of a project with paying users. Monthly often costs a bit more, but it lets you leave the day you stop needing it.
A side project should cost you evenings, not stress. Do the audit once, cap what can run away, put the renewals in your calendar and check the sheet monthly. When it's ready for more people, SideHunt is a friendly place to launch your side project and find its first users.