Docs and guides for using Basilform

Basilform receives submissions from your existing website forms, stores them in your dashboard, and can notify you or your customers by email.

What Basilform does

Basilform acts as the backend for forms on your website.

You create a form (think of it as "project") on Basilform and we provide you with a unique endpoint URL. You then add that URL to your website form's action attribute and your form is ready to accept submissions

All submissions are stored in your Basilform dashboard. You can also configure email notifications, redirects and auto-responses, but more on that later.

Form

The visible fields on your website, such as name, email, message, file upload, or a dropdown.

Endpoint URL

The Basilform URL your form sends submissions to. It looks like https://basilform.com/_/{your_form_id}.

Submission

One completed form entry. Basilform stores submitted fields, uploaded files, and useful spam metadata.

Plugin

An optional feature you can install on a form, like email notifications, redirects, CAPTCHA, or auto-responses.

You keep control of the design. Basilform does not host or style your form. Your website keeps its HTML and CSS; Basilform only handles receiving and managing submissions.

Quick start

  1. Create an account

    Sign up, verify your email address, and open the Forms dashboard.

    Sign up if you haven't
  2. Create a form endpoint

    Click New form, give it a name you will recognize, and Basilform creates a unique endpoint URL.

    Create a form
  3. Install the endpoint

    Copy the form URL and put it in your website form's action attribute.

    You will find instructions in your form's homepage. Look for this button:

  4. Submit a test entry

    Send one test submission from your website and confirm it appears in the Basilform dashboard.

    You only have a limited submissions in the free plan. Feel free to delete the test submission after you're done testing.

Install your form

The only required change is setting your form's action to the Basilform URL and using method="POST".

<form action="https://basilform.com/_/{your_form_id}" method="POST">
  <label>
    <span>Email</span>
    <input type="email" name="email" />
  </label>

  <label>
    <span>Message</span>
    <textarea name="message"></textarea>
  </label>

  <button type="submit">Send</button>
</form>
Make sure to replace {your_form_id} with your own endpoint ID.
Every field needs a name. Basilform uses the name attribute as the label in your dashboard and CSV exports.
Use any normal HTML field. Text inputs, email inputs, textareas, selects, checkboxes, radio buttons, and file inputs work.
Add files with multipart encoding. If your form accepts files, add enctype="multipart/form-data".
We strongly recommend adding a honeypot field to your form. This provides an extra layer of spam protection. Read more here.

Common form examples

Use these as starting points. Make sure to replace {your_form_id} with your own endpoint ID.

Contact form
<form method="POST" action="https://basilform.com/_/{your_form_id}">
  <label>
    <span>Email</span>
    <input type="email" name="email" placeholder="Email" />
  </label>
  <label>
    <span>Name</span>
    <input type="name" name="name" placeholder="Your name" />
  </label>
  <label>
    <span>Message</span>
    <textarea name="message"></textarea>
  </label>
</form>
Waitlist
<form method="POST" action="https://basilform.com/_/{your_form_id}">
  <label>
    <span>Email</span>
    <input type="email" name="email" placeholder="[email protected]" />
  </label>

  <button type="submit">Join Waitlist</button>
</form>
Feedback form
<form method="POST" action="https://basilform.com/_/{your_form_id}">
  <label>
    <span>Name</span>
    <input type="text" name="name" placeholder="Your name" />
  </label>

  <label>
    <span>Email</span>
    <input type="email" name="email" placeholder="[email protected]" />
  </label>

  <label>
    <span>Rating</span>
    <select name="rating">
      <option>Excellent</option>
      <option>Good</option>
      <option>Average</option>
      <option>Poor</option>
    </select>
  </label>

  <label>
    <span>Feedback</span>
    <textarea name="feedback"></textarea>
  </label>

  <button type="submit">Send Feedback</button>
</form>
Job application with files
<form method="POST" action="https://basilform.com/_/{your_form_id}" enctype="multipart/form-data">
  <label>
    <span>Full Name</span>
    <input type="text" name="name" placeholder="Your full name" />
  </label>

  <label>
    <span>Email</span>
    <input type="email" name="email" placeholder="[email protected]" />
  </label>

  <label>
    <span>LinkedIn Profile</span>
    <input type="url" name="linkedin" placeholder="https://linkedin.com/in/..." />
  </label>

  <label>
    <span>Resume</span>
    <input type="file" name="resume" accept=".pdf" />
  </label>

  <label>
    <span>Cover Letter</span>
    <input type="file" name="cover_letter" accept=".pdf" />
  </label>

  <button type="submit">Apply</button>
</form>
Net Promoter Score (NPS)
<form method="POST" action="https://basilform.com/_/{your_form_id}">
  <label>
    <span>How likely are you to recommend us to a friend or colleague? (0-10)</span>
    <input type="number" min="0" max="10" name="nps_score" />
  </label>

  <label>
    <span>What is the primary reason for your score?</span>
    <textarea name="reason"></textarea>
  </label>

  <label>
    <span>What could we improve?</span>
    <textarea name="improvements"></textarea>
  </label>

  <button type="submit">Submit Survey</button>
</form>

Viewing and managing submissions

You can view and manage your form's submissions through the dashboard.

Inbox and Spam

Clean and likely-spam submissions appear in the inbox. Submissions classified as spam appear in the Spam view.

Submission details

Open a submission to inspect fields, download uploaded files, and review spam analysis metadata.

Search

Search matches submitted field values and can include spam when you need to review everything.

CSV export

Export non-spam submissions from a form's settings page. CSV headers come from your submitted field names.

Extend a form with plugins

You can install the following plugins.

Plugin Use it when Plan
Email notifier You want an email when a form is submitted. Free and Pro
Custom redirect You want visitors to land on your own thank-you page. Free and Pro
CAPTCHA You want visitors to pass a Cloudflare Turnstile challenge before the submission is accepted. Free and Pro
Auto responder You want to send a confirmation email to the person who submitted the form. Pro

Plugins are applied on a per-form basis. If you have multiple forms, you'll need to configure plugins for each one separately.

Plans and limits

Feature Free Pro
Forms 2 forms Unlimited forms
Submissions 100 submissions Unlimited submissions
Files per submission 1 file 10 files
CSV export Included Included
Auto responder Not included Included

Basilform warns Free users as they approach the submission limit. Once the limit is reached, new public submissions are rejected until the account upgrades to Pro.

Troubleshooting

I do not see submissions in Basilform.

Confirm the form uses method="POST", the action points to your Basilform endpoint, and each field has a name attribute.

Uploads are not working.

Add enctype="multipart/form-data" to the form and check your plan's file count limit.

My form redirects to an error page.

The endpoint may be incorrect, the account may have reached its submission limit, the upload may be invalid, or CAPTCHA verification may have failed.

My notification or auto responder did not send.

Check that the plugin is installed, the submitted email field is valid for auto responders, and the submission was not classified as spam.

A submission is marked as spam.

Open the submission, review the spam analysis, and manually mark it as not spam if it is legitimate.

Need help? Drop us a line via email and we'll do our best to get back to you quickly.

Frequently asked questions

What exactly does Basilform do?

Basilform acts as the backend for your HTML or static forms. Once you create a form on our platform, you receive a unique endpoint URL. Simply point your HTML form's action attribute to this URL, and you can instantly collect submissions without writing a single line of server-side code.

Do I need any backend coding knowledge to use Basilform?

Not at all. You only need basic access to your website's HTML to update the form's action attribute with the URL provided by Basilform. No server-side programming or database management is required.

How quickly can I get a form up and running?

You can go live in seconds. The entire process - from signing up to generating your unique form URL - takes about one minute.

Can I use Basilform with my existing website?

Yes. Basilform is designed to integrate seamlessly with any existing static or HTML-based website.

Where do my form submissions go once they are collected?

All submissions are securely stored in your Basilform dashboard for easy management. Additionally, you can enable our Email Notifications plugin to receive submissions directly in your inbox the moment they are sent.

Does Basilform support file uploads?

Yes, we support file uploads. The Free plan includes support for 1 file per submission, while our PRO plan allows for up to 10 files per submission.

Is my form data secure?

Absolutely. We prioritize your data security by hosting all information on Hetzner's secure infrastructure and maintaining daily backups to ensure your submissions are never lost.

Can I customize the look and feel of my forms?

You have 100% control over the design. Basilform is a “headless” service - we do not inject any pre-built UI or styles. You retain full control over your HTML/CSS, so your forms will look exactly how you want them to.

Are there limits on how many submissions I can receive?

The Free plan includes a limit of 100 submissions per month across all your forms, and we will proactively notify you as you approach that limit. If you need more capacity, our PRO plan offers unlimited submissions.

How do I get started with the integration?

Integration is simple: it requires adding just one line of code to your existing HTML. You can find a step-by-step installation guide tailored to your specific form directly within your Basilform dashboard.

Advanced topics

HTML form contract

Submit forms to https://basilform.com/_/{form_slug} with method="POST". Regular forms can use default URL encoding. File upload forms should use enctype="multipart/form-data".

Honeypot spam field

Add this optional hidden field to improve spam detection. Keep it empty.

<input type="text" name="bf_hp_email" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px">

Redirect behavior

Without a custom redirect, successful submissions go to /_/success and failures go to /_/error. With a custom redirect plugin, Basilform appends success=true or success=false. Failure redirects can also include error_message.

CAPTCHA flow

The CAPTCHA plugin uses Cloudflare Turnstile. When installed, submissions are stored as pending until verification succeeds. Pending sessions expire after the configured CAPTCHA window, which defaults to 10 minutes.

Rate limits and file limits

Public submissions are rate limited by form slug and IP address. The default is 10 submissions per 10 minutes. The default per-file size limit is 10 MB. Free forms accept 1 file per submission; Pro forms accept 10 files per submission.

Spam classification

Submissions can be classified as clean, likely spam, or spam. Spam submissions are separated into the Spam view and notification emails are suppressed. CAPTCHA can reduce the spam score after a successful verification.

Auto responder details

Auto responders require a submitted field containing a valid recipient email address. The subject is limited to 200 characters, body to 4000 characters, from name to 30 characters, and recipient field name to 120 characters.

Search and export behavior

Search matches submitted field values and returns up to 100 results. CSV export includes clean and likely-spam submissions, excludes spam submissions, and uses submitted field names as headers.

Security note. Do not collect secrets, passwords, API keys, or highly sensitive information through public forms. Treat uploaded files carefully before opening them.