selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

gitforms logo

Self-host gitforms

2.0.0

Free contact forms powered by GitHub Issues

ReleaseSource AvailableOther
Updated7 months ago
LanguageTypescript
Setup difficultyEasy
Stars
164
Port
3000 (HTTP web server)
Requires
GitHub, Node.js
Install with Docker

What is gitforms?

GitForms is a Next.js 14 contact form application that uses GitHub Issues as a free database backend. Every form submission creates a GitHub Issue and triggers an automatic email notification via GitHub's built-in notifications. The project is fully configurable without code changes through JSON configuration files for themes, translations, and form fields. It supports Italian and English with auto-detection, includes rate limiting (3 requests/minute per IP), honeypot spam protection, input sanitization, and optional AI lead classification using Anthropic's Claude Haiku. Deployment options include Vercel, Netlify, Railway, Render, Docker, and AWS Amplify. The license is CC-BY-NC-SA-4.0 (Creative Commons Attribution-NonCommercial-ShareAlike 4.0), which restricts commercial use.

Should you self-host gitforms?

gitforms scores 43/100 on selfhost.directory (how scoring works) and ranks #6 of 6 in Form Builder. It has 164 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is easy: most people get it running in one sitting. It is Other-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Formbricks (72/100, 13 179 stars). It scores higher overall, so compare the two before you pick. See gitforms vs Formbricks side by side.

Features

  • AI lead classificationRequires ANTHROPIC_API_KEY, degrades gracefully if absent
  • Automatic email notifications
  • Configurable without code
  • Customizable form fields
  • Customizable Styling
  • Deploy Anywhere
  • Input sanitization
  • Multilingual support (IT/EN)
  • Rate Limiting
  • React Hook Form + Zod validation
  • Spam Protection
  • Test suite

gitforms README

How to install gitforms

Install gitforms with Docker

Docker Engine
Environment variables
GITHUB_TOKEN, GITHUB_REPO, NEXT_PUBLIC_DEFAULT_LOCALE, NODE_ENV, NEXT_TELEMETRY_DISABLED

Build

docker build -t gitforms .

Run

docker run -p 3000:3000
-e GITHUB_TOKEN=your_token
-e GITHUB_REPO=your_repo
gitforms

Multi-stage Dockerfile with Node 18 Alpine, non-root user, health check

How to configure gitforms

  • ANTHROPIC_API_KEYOptional Anthropic API key for AI lead classification using Claude Haiku

    Optional Anthropic API key for AI lead classification using Claude Haiku

    values: sk-ant-xxxxxxxxxxxx

  • GITHUB_REPOGitHub repository in owner/repo-name format where issues will be created

    GitHub repository in owner/repo-name format where issues will be created

    values: owner/repo-name

  • GITHUB_TOKENGitHub Personal Access Token with repo scope for creating issues

    GitHub Personal Access Token with repo scope for creating issues

    values: ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  • NEXT_PUBLIC_DEFAULT_LOCALEDefault language for the contact form (it, en, or auto-detect)

    Default language for the contact form (it, en, or auto-detect)

    values: it, en

  • NEXT_TELEMETRY_DISABLED1Disable Next.js telemetry

    Disable Next.js telemetry

    values: 1

  • NODE_ENVproductionNode environment (production for Docker)

    Node environment (production for Docker)

    values: production, development

FAQ

Is this the intended use of GitHub Issues?

Honestly, no. GitForms uses GitHub Issues creatively as storage. Best suited for personal projects and prototypes (10-100 submissions/month). For high-traffic commercial sites, consider traditional databases.

Do I need technical knowledge?

Basic knowledge helps but isn't required. If you can deploy to Vercel and create a GitHub token, you can use GitForms. Setup takes 5 minutes.

Can I export my data?

Yes, anytime. Use GitHub's API to export all Issues as JSON, CSV, or any format. You can also migrate to a different system with no vendor lock-in.

What if GitHub changes their API?

GitHub maintains backward compatibility and announces changes months in advance. The Issues API has been stable for over 10 years.

Can I use this for production sites?

Yes. GitForms uses GitHub's stable API with 99.9% uptime. Thousands of sites use GitHub Issues for production workflows.

Is this GDPR compliant?

Yes. You control the data since it's stored in your own GitHub repository. You can delete Issues anytime, and users can request deletion under GDPR.

How do email notifications work?

GitHub automatically emails you when a new Issue is created. No configuration needed. You can customize notification settings in your GitHub account.

Will I hit the rate limit?

Unlikely. 5,000 requests/hour means ~120,000 submissions per day, while most landing pages get 10-100 submissions per month.

What are GitHub's limits?

GitHub free accounts get 5,000 requests per hour and unlimited Issues creation, allowing thousands of form submissions per month at no cost.

More in Form Builder

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…