A lot of small business websites don’t need a “backend” in the traditional sense: no server to maintain, no database administrator, no monthly bill that grows quietly. They need a few specific jobs done reliably. An enquiry reaches a person. A booking lands in a calendar. A payment gets taken. A review gets requested.

Most of those jobs can be done on free tiers, or very close to free, if you choose carefully. This is the list I actually reach for, written for business owners deciding what to ask for and for other designers who want to stop quoting servers for brochure sites.

A note on prices: free tiers change. Everything below was free or close to it when I wrote this, but check the current limits before you build a business on one.

The principle: rent the hard parts, own the glue

Email delivery, payments, spam detection and calendars are hard problems solved well by specialist services. Don’t rebuild them. What you own is the small piece of glue between your website and those services, and the data that belongs to your business.

That keeps the monthly cost near zero and means any single provider can be swapped out later.

Hosting: static first

For most small business sites I build static pages: plain HTML generated at build time and served from a CDN. There’s nothing to patch, nothing to hack and nothing to scale.

  • Cloudflare Pages. What this site runs on. Free hosting with a generous build allowance, and it can run small server functions next to the pages when you need them.
  • Netlify and GitHub Pages. Both solid free options for static sites. Netlify also has built-in form handling.

Where it breaks: if the site needs to change per visitor (logins, dashboards), static pages alone aren’t enough. Add functions for the dynamic parts rather than abandoning static for the whole site.

Forms that reach a person

The most important backend on a small business site is the enquiry form. It’s also the one most often broken without anyone noticing.

Free or nearly free options:

  • A serverless function plus an email API. This is what our own forms do: a Cloudflare Pages Function receives the form and sends it through Resend, which has a free tier. It’s under a hundred lines of code, and the email arrives with the reply-to set to the customer.
  • Hosted form services. Formspree, Web3Forms and Netlify Forms all accept a plain HTML form and email you the results, with free tiers suitable for low volumes.
  • Tally. A free form builder that’s pleasant to fill in and can send results to email, Google Sheets or Notion. Good for longer intake forms.

Here’s the shape of a minimal form handler as a Cloudflare Pages Function. It drops obvious spam and emails the rest:

// functions/api/enquiry.ts
export async function onRequestPost({ request, env }) {
  const form = await request.formData();
  // A hidden field only bots fill in.
  if (form.get('company_website')) return new Response('Rejected', { status: 400 });
  const email = String(form.get('email') || '');
  const message = String(form.get('message') || '').slice(0, 2000);
  const sent = await fetch('https://api.resend.com/emails', {
    method: 'POST',
    headers: { Authorization: `Bearer ${env.RESEND_API_KEY}`, 'Content-Type': 'application/json' },
    body: JSON.stringify({ from: env.FROM, to: [env.TO], reply_to: email, subject: 'New enquiry', text: message }),
  });
  return sent.ok ? Response.redirect(new URL('/thanks/', request.url), 303) : new Response('Not sent', { status: 502 });
}

Spam protection that costs nothing:

  • A honeypot field hidden from people but visible to bots.
  • A timing check: a person takes more than a few seconds to fill in a form; a bot doesn’t.
  • A link limit: real enquiries rarely contain more than two links.
  • Cloudflare Turnstile, a free and mostly invisible alternative to CAPTCHAs.

Where it breaks: email-only forms have no record if an email is lost. For anything important, also save each submission somewhere (see the next section).

A database without a database bill

When a site needs to remember things, such as bookings, credits, approvals or a list of products, these are my go-to options:

  • Google Sheets with Apps Script. Underrated. A Google Sheet can act as a simple database, and Apps Script can publish a small web endpoint that adds rows. Owners can see and edit their data in a tool they already understand. Fine for hundreds of rows a day, not thousands a minute.
  • Airtable. A friendlier spreadsheet-database with forms and automations. The free plan is enough to prove an idea.
  • Cloudflare D1 and KV. D1 is a SQL database that runs next to Cloudflare functions. The Good Walks client portal uses it for households, bookings and walk credits. The free tier covers most small businesses comfortably.
  • Neon or Supabase. Hosted Postgres with free tiers. Supabase adds logins and file storage. Free projects can pause or sleep when idle, so check how that affects your users.

Where it breaks: the moment your data includes anything sensitive, such as health information, children’s details or payment data, the cheapest option is rarely the right one. Use a platform built for that data, or budget for doing it properly.

Bookings without building a booking system

Don’t build a calendar. Embed one.

  • Cal.com is open source with a free plan, and can be self-hosted.
  • Calendly has a free tier for a single kind of appointment.
  • Google Calendar appointment schedules are included with some Google accounts and work well for simple consultations.
  • Square Appointments has a free plan for individuals and handles payments as well.

I’ve written a separate guide on choosing a booking platform when the free tools stop being enough.

Payments without a shopping cart

  • Stripe Payment Links and Square online checkout links let you take a payment with a link: no monthly fee, only transaction fees. Put one on a page, in an email or in a QR code.
  • Stripe Checkout with a small function covers deposits, packs and subscriptions when a link isn’t flexible enough.

Where it breaks: reconciling payments to bookings by hand. Once you’re matching more than a handful of payments a week, a booking platform with built-in payments pays for itself.

Automations: the cheapest staff member you’ll hire

Small automations save the most time for the least money:

  • Review requests after a job is marked complete.
  • Lead follow-up if a quote hasn’t been accepted after a few days.
  • Enquiry routing to the right person or a shared inbox.

Tools: Zapier and Make both have free tiers for low volumes. n8n can be self-hosted for free. Apps Script triggers handle anything that starts in Google Workspace. Cloudflare Cron Triggers run scheduled jobs next to your functions.

Measurement for free

  • Google Search Console shows which searches you appear for and which pages get clicked.
  • Cloudflare Web Analytics counts visits without cookies or a consent banner.
  • A thank-you page after each form is the simplest conversion tracking there is: count visits to it.

For designers: how to sell this

Clients don’t buy “a serverless function”. They buy “enquiries that can’t get lost” and “no monthly server bill”. Describe the job, not the stack, and include the glue in your care plan so it’s maintained. The risk with free tiers isn’t cost, it’s that nobody notices when something changes. That’s what clients are paying you to notice.