Navigation

Everyday tools

Freely Forms

A free, open-source form builder that delivers every response as a new row in your own Google Sheet.

Designed and built by me.

  • WebLive

Visit freelyforms.comView repository

Freely Forms home page: "Free forms that write to your Google Sheet" next to a live contact form preview.

What it does

Freely Forms is a free, open-source form builder. You build a form, publish it, and every response arrives as a new row in a Google Sheet you own, instead of in another app’s database.

  • Build: pick fields, write the questions and set the colours, with a live preview of what people will see.
  • Connect Google Sheets: publishing creates a spreadsheet in your Drive, or adds a tab to one you choose.
  • Share or embed: send the link, or paste a short snippet into your website. The form keeps its own styles and adjusts its height to fit.
  • Templates: contact, event registration, feedback, client intake, quote request and order forms, each a real form you can copy and change.

People who fill in a form don’t sign in and don’t need a Google account.

Why it is free

Responses live in your sheet, not in my database. Freely Forms carries each response to the sheet and then lets it go, so the infrastructure stays small and cheap to run. That is why there is no cap on forms or responses and no paid tier to unlock more. Abuse protection still applies, and so do Google’s own limits on a sheet.

Key decisions

One row per response, built to survive edits. Each row gets a submission ID, a timestamp and the form version, then one column per question, so editing the form later doesn’t mix up old answers.

Narrow access to Google. The app asks only for your name and email and Google’s drive.file permission, which covers just the spreadsheets Freely Forms creates or that you pick. It can’t open the rest of your Drive.

No permanent response database. Answers are encrypted as soon as they are accepted and kept only until they are written to your sheet. If delivery is blocked, they wait at most seven days and are then deleted. Answers are written as plain values, so a response can’t run a formula in your sheet.

Public forms on a separate domain. Forms are served from freelyforms.link, which sets no cookies. Spam protection uses Cloudflare Turnstile, rate limits and a hidden honeypot field, and every form has a “Report abuse” link.

How it is built

Freely Forms is a TypeScript monorepo: a React builder and a Cloudflare Workers API, with shared packages for the form schema, the form engine, encryption and the Google integration. The hosted service runs on Cloudflare Workers with D1, Queues and KV. The code, including this website, is public on GitHub under the Apache License 2.0.

Current state

  • Web: live at freelyforms.com. Sign in with Google and start from a blank form or a template.
  • Open source: bug reports and pull requests are welcome. A step-by-step self-hosting guide isn’t written yet.

Details

Platforms
  • Web — live
Role
Designed and built by me.
Category
Everyday tools
Built with
TypeScript, React, Cloudflare Workers
Source
Source available · Repository

More projects

All projects
  • Everyday tools

    Home Heads Up

    A reminder app for Australian households, covering bin days, weather, UV and everyday home tasks.

    • iOSLive
    • AndroidBeta

    Built with Expo · React Native

  • Everyday tools

    KiddoTurn

    A chore chart for kids that pauses chosen games and videos while tasks are overdue, and reopens them once they are done.

    • iOSBeta
    • AndroidBeta
    • WebBeta

    Built with React · Supabase

  • Maps & data

    Pixel Brisbane

    An interactive isometric map of Brisbane, combining buildings, places and useful city data.

    • WebLive