An open source application to create, manage and embed contact forms on static/dynamic sites with no code

Overview

Formify

Formify licence Formify forks Formify stars Formify issues Formify pull-requests

Formify - Create, manage and embed forms on static sites with no code | Product Hunt

Formify is an open source application that lets you create, manage and embed contact forms on any site without writing code.

This project is done as a part of PlanetScale and HashNode hackathon.

How formify works?

  1. Visit formify.vercel.app
  2. Create an account by signing up
  3. Create a form and copy the script
  4. Embed the script on any site
  5. Whenever somebody submits the form you can see the data in the submissions of Formify dashboard

Sample script that get's copied on clicking the code icon

<script src="https://formify.vercel.app/script.min.js"></script>
<script>
  const fields = 'name,email,message'.split(',').filter((f) => f);
  const formURL = 'https://formify.vercel.app/api/forms/submissions?id=<ID-of-the-form>';
  const heading = 'Contact/feedback';
  formifyInit(fields, formURL, heading);
</script>

To embed forms as components on react based sites, use formify-form npm library

import { Form } from 'formify-form';

const App = () => {
  return (
    <div>
      <Form
        formFields={['name', 'email', 'message']}
        formURL="https://formify.vercel.app/api/forms/submissions?id=<ID from formify>"
        formTitle="Share your feedback"
      />
    </div>
  );
};

Video demo

To see all the above instructions lively, check this demo video below.

FormEasy video demo

Tech stack used in formify

  • NextJS
  • TypeScript
  • PlanetScale MySQL database
  • Prisma ORM
  • Tailwind CSS

To get started with formify setup locally

  1. Clone the repo
git clone https://github.com/Basharath/Formify.git
  1. Install the dependencies
cd Formify
npm install
  1. Set the environment variables as given in .env.example and rename the file to .env
PLANETSCALE_PRISMA_DATABASE_URL=mysql://<USERNAME>:<PLAIN_TEXT_PASSWORD>@<ACCESS_HOST_URL>/<DATABASE_NAME>?sslaccept=strict
JWT_PRIVATE=<Secret key>
SERVER=<URL of the site>
NEXT_PUBLIC_GOOGLE_CLIENT_ID=<Google auth client ID>
  • To get PLANETSCALE_PRISMA_DATABASE_URL sign up and create a database on planetscale.com and get the connection URL for Prisma.
  • Put any secret text for JWT_PRIVATE which is used to sign JWT tokens
  • SERVER is the URL of the site you will be creating. This is used to give the location for the script source.
  • To get NEXT_PUBLIC_GOOGLE_CLIENT_ID visit Google cloud credentials and create a new credentials for the website and get the client ID.
  1. After all the above environment variables are set, run the below command(s).
npx prisma db push
npx prisma generate # This runs automatically in the previous command

This pushes the Prisma schema to the database and generates schema types to use with the Prisma client

  1. Once all the above steps are done, start the dev server by running the following command
npm run dev

Formify app starts running locally with your set database and other details

License

Formify is distributed using the MIT License. Check the License details.

You might also like...

⚡ Pcode lets you create and share beautiful images 🎉 of your source code 🚀

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: ya

Jul 14, 2022

This repository store the source code of a chat application built in NextJS.

This repository store the source code of a chat application built in NextJS.

This repository store the source code of a chat application built in NextJS. The code was built in alura's React event, and here I styled the code to make it unique and creative!

Mar 31, 2022

An application that has a frontend (user interface) that allows you to create, read, update or delete (CRUD) products using an API in which you can also create, read, update or delete products.

An application that has a frontend (user interface) that allows you to create, read, update or delete (CRUD) products using an API in which you can also create, read, update or delete products.

CRUD app with React and Firebase 9 An application that has a frontend (user interface) that allows you to create, read, update or delete (CRUD) produc

Sep 28, 2021

⚛️ 🚀 A progressive static site generator for React.

⚛️ 🚀 A progressive static site generator for React.

You are viewing the docs for v7 of React Static. You can browse all historical versions via Github branches! React Static A progressive static-site ge

Dec 27, 2022

simple static website generator

mkweb mkweb is a simple static website generator for NodeJS Features: Simple and fast Templates (currently hard coded to "template.html") Markdown wit

Nov 6, 2022

A custom ESLint rule to allow static deps in React Hooks ⚛️

eslint-plugin-react-hooks-static-deps A custom ESLint rule to allow static deps in React Hooks ⚛️ Motivation react-hooks/exhaustive-deps is a really n

Apr 5, 2022

A static gallery website.

AZGallery A static gallery website. https://gallery.alynx.one/ Usage Copy config.example.json to config.json and modify it, then run node build.js or

Dec 25, 2022

HTML CSS & React - Client side dynamic e-commerce website (stripe integrated)

HTML CSS & React - Client side dynamic e-commerce website (stripe integrated)

Furniture E-Commerce Project Description React front-end full operating dynamic and responsive E-Commerce shop including payment connection (stripe) B

Dec 27, 2022

A react native component that lets you build a dynamic expandable chips list.

A react native component that lets you build a dynamic expandable chips list.

React Native Expandable Chips List A react native component that lets you build a dynamic expandable chips list. Installation Run npm install react-na

Sep 23, 2022
Owner
Basharath
Tech enthusiast
Basharath
This hook allows you to isolate and manage the state within the component, reducing rendering operations and keeping the source code concise.

React Hook Component State This hook allows you to isolate and manage the state within the component, reducing rendering operations and keeping the so

Yongwoo Jung 2 May 15, 2022
A React application for AddressBook to manage contacts on web. It will use JSON-server to create backend apis.

Available Scripts In the project directory, you can run: npm install To install all related packages npm start Runs the app in the development mode. O

null 1 Jan 10, 2022
TryShape is an open-source platform to create shapes of your choice using a simple, easy-to-use interface. You can create banners, circles, polygonal shapes, export them as SVG, PNG, and even as CSS.

Create, Export, Share, and Use any Shapes of your choice. View Demo · Report Bug · Request Feature ?? Introducing TryShape TryShape is an opensource p

TryShape 148 Dec 26, 2022
Further split the React Native code based on Metro build to improve performance, providing `Dll` and `Dynamic Imports` features

React-Native Code Splitting Further split the React Native code based on Metro build to improve performance, providing Dll and Dynamic Imports feature

Wuba 126 Dec 29, 2022
Build forms in React, without the tears 😭

Build forms in React, without the tears. Visit https://formik.org to get started with Formik. Organizations and projects using Formik List of organiza

Formium 31.7k Jan 5, 2023
📋 React Hooks for forms validation (Web + React Native)

English | 繁中 | 简中 | 日本語 | 한국어 | Français | Italiano | Português | Español | Русский | Deutsch | Türkçe Features Built with performance and DX in mind

React Hook Form 32.4k Dec 29, 2022
How to submit HTML forms to Google Sheets. (Updated for 2021 Script Editor)

Submit a HTML form to Google Sheets How to submit a simple HTML form to a Google Sheet using only HTML and JavaScript. Updated for Google Script Edito

Levi Nunnink 314 Jan 6, 2023
Single function to create, manage, compose variants, for any CSS-in-JS libraries.

Build-variants Single function to create, manage, compose variants, for any CSS-in-JS libraries. Motivation Before diving into the implementation deta

Alexis Mineaud 3 Jan 2, 2023
Tina is an open source editor that brings visual editing into React websites. Tina empowers developers to give their teams a contextual and intuitive editing experience without sacrificing code quality.

Tina is an open-source toolkit for building content management directly into your website. Community Forum Getting Started Checkout the tutorial to ge

Tina 8.2k Jan 1, 2023
This web application aim to produce an contest notifier utility and a modern open-source compiler.

This web application aim to produce an contest notifier utility and a modern open-source compiler. The current features of the application include : Code Runner , Upcoming and Ongoing Contests.

ABHAY GUPTA 6 Dec 3, 2022