/slapform

Form processing service for your static sites!

Primary LanguageJavaScriptMIT LicenseMIT




Site | NPM Module | GitHub Repo

slapform is the official npm module of Slapform, a backend form processing service for contact forms, payment forms, and much more—perfectly suited for static sites!

🌐 Slapform Works in Node AND browser environments

Yes, this module works in both Node and browser environments, including compatibility with Webpack and Browserify!

🦄 Features

  • Submit data via HTML forms, AJAX requests, or our custom npm module
  • Submissions are sent directly to your email
  • Access your submissions stored in our secure cloud server for up to 12 months
  • Spam protection
  • Zapier integration—connect Slapform with any service!

📦 Install Slapform

Option 1: Install via npm

Install with npm if you plan to use Slapform in a Node project or in the browser.

npm install slapform

If you plan to use slapform in a browser environment, you will probably need to use Webpack, Browserify, or a similar service to compile it.

const slapform = new (require('slapform'));

Option 2: Install via CDN

Install with CDN if you plan to use Slapform only in a browser environment.

<script src="https://cdn.jsdelivr.net/npm/slapform@latest/dist/index.min.js"></script>
<script type="text/javascript">
  var slapform = new Slapform(); // The script above exposes the global variable 'Slapform'
</script>

Option 3: Use without installation

You can also use Slapform without installing any additional libraries by using HTML forms or jQuery's AJAX. Please see the section below for details.

🚀 Create a free form

Slapform is free! You just need to create a form.

After creating a form, you will get your form ID that you can use in your forms!

⚡️ Using Slapform

Via the npm module or the CDN

After you have followed the install step, you can start using slapform with your website or software!

slapform.submit({
  // Replace this with the form ID that submissions should be sent to
  form: '{form_id}',
  // The data you want submitted and emailed to you
  data: {
    name: 'Jon Snow',
    message: 'Hello World!'
  }
})
.then(function (response) {
  // This function runs only on success
  console.log('Success!', response);
})
.catch(function (response) {
  // This function runs only on error
  console.log('Fail!', response);
})
.finally(function () {
  // This function runs regardless of success or error
  console.log('This always runs!');
});

Via an HTML form

You can use Slapform without installing this npm module or any other javascript simply by using an HTML form and pointing the action to our endpoint!

<form method="POST"
  action="https://api.slapform.com/{form_id}">
  <input type="email" name="email">
  <textarea type="text" name="message"></textarea>
  <button type="submit">Submit</button>
</form>
<!-- Just copy/paste this on your site and change '{form_id}' to your form ID! -->

🧩 Extending Capabilities

Using Advanced Name Triggers

In addition to sending simple data, you can take advantage of advanced name triggers to submit with your data. These will trigger special events on the server such as webhooks or the ability to process payments.

slapform.submit({
  // Replace this with the form ID that submissions should be sent to
  form: '{form_id}',

  // The data you want submitted and emailed to you
  data: {
    name: 'Jon Snow',
    message: 'Hello World! This is my first Slapform submission.',
    slap_subject: 'My Favorite Message',
    slap_replyto: 'custom@replyto.com'
    slap_debug: false,
    slap_honey: ''
  }
})

For a more in-depth overview of how these triggers work, please see the Slapform name trigger documentation.

📝 What Can Slapform do?

Slapform is a form backend service that you can use to submit data without managing a backend server. Slapform allows you to focus on the fun and productive parts of web development without worrying about building another form processing backend. Slapform works perfect as a Jekyll contact form or a static site contact form.

🗨️ Final Words

If you are still having difficulty, we would love for you to post a question to the Slapform issues page. It is much easier to answer questions that include your code and relevant files! So if you can provide them, we'd be extremely grateful (and more likely to help you find the answer!)

📚 Projects Using this Library

Somiibo: A Social Media Bot with an open-source module library.
JekyllUp: A website devoted to sharing the best Jekyll themes.
Slapform: A backend processor for your HTML forms on static sites.
SoundGrail Music App: A resource for producers, musicians, and DJs.
Hammock Report: An API for exploring and listing backyard products.

Ask us to have your project listed! :)