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.
Quick start
-
Create an account
Sign up, verify your email address, and open the Forms dashboard.
Sign up if you haven't -
Create a form endpoint
Click New form, give it a name you will recognize, and Basilform creates a unique endpoint URL.
Create a form -
Install the endpoint
Copy the form URL and put it in your website form's
actionattribute.You will find instructions in your form's homepage. Look for this button:
-
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>
{your_form_id} with your own endpoint ID.
name attribute as the label in your dashboard and CSV exports.
enctype="multipart/form-data".
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.
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.