I Built a Form Backend in a Weekend Because Paying $20/Month for Contact Forms is Stupid

Published: (December 30, 2025 at 10:59 AM EST)
2 min read
Source: Dev.to

Source: Dev.to

So here’s the thing

I was helping a friend set up his portfolio site last weekend. Nice design, fast site, Vercel hosting on the free tier—perfect. Then he asked for a contact form. The usual suggestion was to use a form‑backend service, but the pricing was “$20 a month?! Just to save some text?”

When you think about it, we’re paying for essentially a database insert and an email notification. I decided to build my own.

What I built

FormRelay

FormRelay is straightforward: point your HTML form at it, it saves the data, sends you an email, and shows everything in a dashboard. The difference is that you host it yourself—your Supabase database, your Vercel deployment, your data.

Cost comparison

  • Supabase free tier: 50 k users
  • Vercel hobby plan: free
  • Resend free tier: 3 k emails/month

Result: $0/month vs. $20/month.

“But isn’t self‑hosting complicated?”

Ten years ago that was true. Today, with Vercel and Supabase, it’s as simple as:

  1. Fork the repo
  2. Click Deploy
  3. Add a few environment variables

That’s it. The README took longer to write than the deployment itself.

Here’s where I might lose some of you

We’ve gotten too comfortable renting everything. The indie web ethos was about owning your stuff, even if it was messier. Now we subscribe to everything. Not everyone wants to manage infrastructure, but there’s a huge gap between “run your own server rack” and “pay $300 / year for a contact‑form service.” FormRelay aims to fill that gap.

Random things I learned

  • Next.js 15 feels solid after the App Router drama; server actions just work.
  • Supabase offers real‑time updates, auth, and great documentation.
  • The hardest part wasn’t the code; it was writing clear setup instructions.

About the email thing

I used Resend because my domain didn’t include email hosting. Its free tier (3 k emails/month) was perfect. If you already have email for your domain, you can replace Resend with any SMTP server—just plug in the credentials.

Tech stack (if you care)

  • Next.js 15 (App Router)
  • Supabase (PostgreSQL + Realtime + Auth)
  • Tailwind CSS
  • Radix UI
  • Resend for emails (or any SMTP)
  • Lucide icons

Nothing fancy, just reliable tools.

You can use it

  • GitHub:
  • Live demo:

The project is MIT licensed. Feel free to fork, report bugs, or submit pull requests.

The actual point

This isn’t just about saving $20/month; it’s a reminder that we can build many of the tools we rely on. SaaS products provide value—support, maintenance, features—but for something as basic as form handling, a weekend project can replace a costly subscription.

Back to Blog

Related posts

Read more »

My Experimental Portfolio is Live! 🚀

!Saurabh Kumarhttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%...