chetan / snoopforms

The Open-Source Typeform Alternative

Home Page:https://snoopforms.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logo

snoopForms

Finally, good open-source forms!
Website & Hosted version | Join Discord community

License Join snoopForms Discord Github Stars Hacker News Product Hunt


About snoopForms

snoopForms-architecture

Spin up forms in minutes. Pipe your data exactly where you need it. Maximize your results with juicy analytics.

What is snoopForms?

With snoopForms you can build complex multi-page forms in minutes using either our built-in No Code Builder or our React library. All form submissions are automatically sent to the snoopForms platform for processing and analysis. You can view the submission within the platform or you can easily configure pipelines to send your data to other systems, services or databases.

Features

  • React Lib & No Code Builder to build & integrate forms rapidly.
  • 100% compliant with all privacy regulations (self-hosted).
  • (next) Put your data to work with integrations.
  • (next) Juicy analytics out of the box.
  • (always) smooth Developer Experience comes first.

Built With

Cloud vs. self-hosted

We offer you a ready hosted and maintained version of snoopForms on snoopforms.com. It is always up to date and offers a generous free plan. If you want to try snoopForms, or save yourself the hassle and stress of self-hosting, this is the place to start.

The version of snoopForms you'll find in this repository is the same version that runs in the cloud, and you can easily host it yourself on your servers. See the readme below for the deployment instructions.

(In the future we may develop additional features that aren't in the free Open-Source version)

Get started with development

This repository is a monorepository using Turborepo and pnpm. It contains the snoopForms server application, the react library and other helper packages like database or UI library.

How to run locally

To get the project running locally on your machine you need to have the following development tools installed:

  • Node.JS (we recommend v16)
  • pnpm
  • Docker (to run PostgreSQL / MailHog)
  1. Clone the project:
git clone https://github.com/formbricks/snoopforms.git

and move into the directory

cd snoopforms
  1. Install Node.JS packages via pnpm. Don't have pnpm? Get it here
pnpm install
  1. To make the process of installing a dev dependencies easier, we offer a docker-compose.yml with the following containers:
  • a postgres container and environment variables preset to reach it,
  • a mailhog container that acts as a mock SMTP server and shows received mails in a web UI (forwarded to your host's localhost:8025)
docker-compose -f docker-compose.dev.yml up -d
  1. Create a .env file based on .env.example and change it according to your setup. If you are using a cloud based database or another mail server, you will need to update the DATABASE_URL and SMTP settings in your .env accordingly.
cp .env.example .env
  1. Make sure your PostgreSQL Database Server is running. Then let prisma set up the database for you:
pnpm dlx prisma migrate dev
  1. Start the development server:
pnpm dev

You can now access the app on https://localhost:3000. You will be automatically redirected to the login. To use your local installation of snoopForms, create a new account.

For viewing the confirmation email and other emails the system sends you, you can access mailhog at https://localhost:8025

Deployment for Production Setup

The easiest way to deploy snoopForms on your own machine is using Docker. This requires Docker and the docker compose plugin on your system to work.

Clone the repository:


git clone https://github.com/formbricks/snoopforms.git && cd snoopforms

Create a .env file based on .env.example and change all fields according to your setup. You need to uncomment the right line for the DATABASE_URL for the database connection to work. Also you need to configure the SMTP settings for the signup process with verification emails to work. If you don't have a mail server for sending email, you need to disable email verification (EMAIL_VERIFICATION_DISABLED=1) and password reset (PASSWORD_RESET_DISABLED=1).

Copy the .env.example file to .env and edit it with an editor of your choice.


cp .env.example .env

Start the docker compose process to build and spin up the snoopForms container as well as the PostgreSQL database.

docker compose up -d
# (use docker-compose if you are on an older docker version)

You can now access the app on https://localhost:3000. You will be automatically redirected to the login. To use your local installation of snoopForms, create a new account.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Make your changes
  4. Commit your changes (git commit -m 'Add some AmazingFeature')
  5. Push to the branch (git push origin feature/AmazingFeature)
  6. Open a pull request

License

Distributed under the AGPLv3 License. See LICENSE for more information.

About

The Open-Source Typeform Alternative

https://snoopforms.com

License:GNU Affero General Public License v3.0


Languages

Language:TypeScript 94.8%Language:JavaScript 2.8%Language:CSS 1.1%Language:Shell 0.8%Language:Dockerfile 0.5%