New: Cloudflare Turnstile CAPTCHA is now available. ->
Back to all posts

How to Collect Form Submissions from a Tiiny Host Website

By Forminit in Guides • Published August 4, 2026

Forminit + Tiiny Host

Short answer: Collecting Tiiny Host form submissions is simple. Keep your HTML form exactly as you designed it, add Forminit’s script, and point the form at your Form ID. Forminit then receives, validates and stores every submission, emails you, accepts file uploads and routes the data to other applications, while Tiiny Host keeps serving your site. The Free plan covers one form and 100 submissions per month.


In this guide:

How Tiiny Host and Forminit work together

Tiiny Host is built for effortless static publishing: zip your HTML, CSS and JavaScript, upload, and your site is live. A static website is a set of ready-made files, so handling what visitors submit through a form is a separate job, and Tiiny Host’s own help centre recommends pairing your form with a third-party form processor for exactly that reason.

A form backend is that partner service: it receives, validates, stores and routes what visitors submit. Tiiny Host’s own guide to static website forms lists Getform.io among its recommended options, highlighting file uploads and spam protection. Getform.io is now Forminit, so the pairing in this guide is the one Tiiny Host itself points to. Each side does what it is best at:

JobHandled by
Hosting and serving your siteTiiny Host
Displaying the form, in your designYour HTML on Tiiny Host
Receiving submitted dataForminit
Validating data server-sideForminit
Storing submissions and uploaded filesForminit
Sending email notificationsForminit
Routing data to Sheets, Slack, webhooks and moreForminit

One thing never changes: your design. Forminit is not a form builder. There is no iframe, no widget and no injected styling. You keep your existing HTML form exactly as you built it, and only change where it submits to.

What you need

  • A Tiiny Host website containing an HTML form
  • A free Forminit account
  • A form created in Forminit, and its Form ID
  • Public authentication mode, which is designed for browser-based submissions (no API key, rate-limited to 1 request per 30 seconds per visitor)
  • Access to your website’s HTML source

One rule to remember: never place a private API key in browser-side JavaScript. For a client-side form on Tiiny Host, Public mode and the Form ID are all you need; the Form ID is an identifier, not a secret.

Step-by-step setup

  1. Create a free account at forminit.com.
  2. Create a new form and give it a name. There is no field builder to configure: your fields are defined by the input names in your HTML (step 6).
  3. In Form Settings, set the authentication mode to Public.
  4. Copy your Form ID.
  5. Open your Tiiny Host project files locally.
  6. Update your form’s field names to Forminit’s fi-{blockType}-{name} format.
  7. Add the Forminit script tag and submit handler. Steps 6 and 7 are the wiring: hand your agent the prompt in the next section, or copy the complete example below it.
  8. Review the result (states, labels, privacy checkbox).
  9. Zip the project (with index.html at the root) and upload it to Tiiny Host.
  10. Send a test submission from the live site.
  11. Confirm the submission appears in your Forminit dashboard.
  12. Configure email notifications and review spam protection.

Agent-first: wire the form with one prompt

If you build with ChatGPT, Claude, Cursor or another coding agent (as many Tiiny Host sites are built today), you do not need to write the integration yourself. Paste this prompt together with your project files:

Update the existing HTML form in this project so it submits through Forminit.

Requirements:
- Keep the current design and layout.
- Connect every existing form field to Forminit using the correct Form Block naming format.
- Add loading, success and error states.
- Support file uploads using FormData if the form contains file fields.
- Do not expose a private API key in client-side code.
- Use this Form ID: YOUR-FORM-ID
- Use this integration skill guide:
  https://forminit.com/skills/forminit-html/SKILL.md

The linked skill file is a machine-readable integration guide that gives the agent the exact field naming, script usage and error handling, so the generated code matches the documented behaviour. Re-zip the updated project, upload it to Tiiny Host and send a test submission.

Complete copy-paste example

Prefer to wire it by hand, or want to see exactly what the agent produces? The example below is a full contact form with a subject dropdown, an optional file upload, a privacy checkbox, and loading, success and error states. It works when saved inside an index.html file and uploaded as part of a Tiiny Host ZIP project. Replace YOUR-FORM-ID with your own.

<form id="contact-form" enctype="multipart/form-data">
  <label for="name">Full name</label>
  <input id="name" name="fi-sender-fullName" type="text" autocomplete="name" required />

  <label for="email">Email</label>
  <input id="email" name="fi-sender-email" type="email" autocomplete="email" required />

  <label for="subject">Subject</label>
  <select id="subject" name="fi-select-subject" required>
    <option value="">Choose a subject</option>
    <option>General enquiry</option>
    <option>Quote request</option>
    <option>Support</option>
  </select>

  <label for="message">Message</label>
  <textarea id="message" name="fi-text-message" required></textarea>

  <label for="attachment">Attachment (optional)</label>
  <input id="attachment" name="fi-file-attachment" type="file"
         accept=".pdf,.doc,.docx,.jpg,.jpeg,.png" />

  <label>
    <input name="fi-checkbox-privacy" type="checkbox" value="accepted" required />
    I have read the privacy notice and agree to this data being used to answer my request.
  </label>

  <button type="submit" id="submit-button">Send message</button>
  <p id="form-result" role="status" aria-live="polite"></p>
</form>

<script src="https://forminit.com/sdk/v1/forminit.js"></script>
<script>
  const FORM_ID = "YOUR-FORM-ID";
  const forminit = new Forminit();

  const form = document.getElementById("contact-form");
  const button = document.getElementById("submit-button");
  const result = document.getElementById("form-result");

  form.addEventListener("submit", async (event) => {
    event.preventDefault();

    button.disabled = true;
    button.textContent = "Sending…";
    result.textContent = "";

    const formData = new FormData(form);
    const { data, error } = await forminit.submit(FORM_ID, formData);

    button.disabled = false;
    button.textContent = "Send message";

    if (error) {
      result.textContent = error.message;
      return;
    }

    form.reset();
    result.textContent = "Thank you. Your message has been received.";
  });
</script>

Notice what is missing: no server address of your own, no email script, no database and no API key. Forminit’s script handles FormData serialisation, error responses and file uploads, and automatically captures UTM parameters and advertising click IDs for attribution. The full reference is in the HTML documentation.

Behind the field names: typed Form Blocks

Each fi- field name maps to a typed Form Block, and each type is validated on the server before storage: email format, E.164 phone numbers, URLs, ISO dates and country codes, rating ranges. Beyond the basics, blocks cover numbers and budgets, dropdowns, radio choices, checkboxes, ratings, dates, countries and files.

Typed blocks are what keep the rest of the pipeline reliable. Submissions arrive with a consistent structure, CSV exports have clean columns, webhooks and integrations receive predictable payloads, and malformed data is rejected before it enters your workflow.

Adding file uploads

Forminit can accept file uploads directly from a form hosted on Tiiny Host, on the Free plan included. The total file payload can be up to 25 MB per submission, across more than 50 supported MIME types: documents, images, spreadsheets, audio, video and archives. Files are stored with the submission and downloadable from the dashboard. See the file upload documentation.

Using an agent? One line covers it:

Add an optional file upload field to the form (fi-file-attachment, PDF/DOC/JPG/PNG),
and a multiple-files variant using fi-file-attachments[] where noted.

By hand, a single file field looks like this:

<input
  type="file"
  name="fi-file-attachment"
  accept=".pdf,.doc,.docx,.jpg,.jpeg,.png"
/>

Multiple files use the documented [] naming convention:

<input
  type="file"
  name="fi-file-attachments[]"
  multiple
/>

Two rules matter here. First, a file-upload form must submit FormData with multipart/form-data encoding; JSON submissions cannot include files. Second, keep the two limits distinct: 25 MB is the per-submission upload cap, while 100 MB is the Free plan’s total file storage (1 GB on Pro, 5 GB on Business).

Typical uses: a CV and cover letter on a job application, a project brief or quote-request attachment, a screenshot on a support form, a property document, a design asset or an event document.

Forms you can build on Tiiny Host

  • Contact and enquiry forms for portfolios, personal sites, agencies and small businesses: name, email, service, budget, message.
  • Job application forms: contact details, role selection, CV, cover letter, portfolio URL, availability date.
  • Quote and project brief forms: budget, deadline, project type, requirements, attachments.
  • Event registration and RSVP forms: guest details, attendance choice, dietary requirements, dates, optional documents.
  • Feedback and survey forms: ratings, multiple-choice answers, comments, contact details.
  • Support and document intake: account information, issue details, screenshots or PDFs.
  • Lead-generation landing pages: campaign leads with UTM parameters and advertising click IDs captured automatically for attribution.
  • Webflow exports. Tiiny Host publishes a guide to self-hosting exported Webflow sites. When a Webflow site is exported, Webflow’s native form processing no longer receives submissions; connecting the exported form to Forminit restores the form backend while preserving the exported design.

Can I collect Tiiny Host form submissions for free?

Yes. Forminit’s Free plan currently supports one form and up to 100 submissions per month, including file uploads, 100 MB of file storage, email notifications, built-in server-side validation, spam protection, redirections and an unlimited submission archive. No credit card is required, and the Free plan is a permanent plan, not a trial.

Upgrade when the project needs more: additional submissions, forms or file storage, Google Sheets, Zapier, webhooks, the REST API, CSV export, analytics, and Slack or Discord notifications arrive with Pro; autoresponders, custom email sending and team workspaces with Business. Current details are on the pricing page.

Are Tiiny Host form submissions GDPR-compliant?

The responsibilities split the same way the technical work does: Tiiny Host hosts the page, Forminit processes the form data, and you, as the website owner, decide what to collect and why.

On the processor side, the facts are documented on the Forminit GDPR page: Forminit is a London-based company registered with the UK ICO, complies with both EU GDPR and UK GDPR, stores form data encrypted in transit and at rest on AWS servers in Ireland (EU), and provides a Data Processing Agreement.

One clarification matters more than any feature list: connecting a form to a GDPR-compliant processor does not automatically make the entire website GDPR-compliant. As the site owner you should also collect only the data you genuinely need, display an appropriate privacy notice, explain the purpose and lawful basis for collection, set a suitable retention policy, obtain consent where consent is the correct basis, avoid loading unnecessary third-party tracking or CAPTCHA scripts, and honour access and deletion requests.

A generic starting point for a privacy notice (adapt it for your site; this is not legal advice):

We use the information submitted through this form to respond to your request. Form submissions are processed by Forminit and stored on EU-hosted infrastructure. Please read our Privacy Policy for information about retention and your data-protection rights.

Integrations and automation

Everything after the submission arrives is configuration, not code:

GoalForminit feature
Receive an email for every submissionEmail notifications
Save leads in a spreadsheetGoogle Sheets
Connect to 8,000+ applicationsZapier
Notify a team immediatelySlack or Discord
Send data to a private systemSigned webhooks
Retrieve submissions programmaticallyREST API
Download and analyse dataCSV export
Send confirmation messagesAutoresponder

Concrete examples: add each new lead to a Google Sheet, create a HubSpot or Salesforce contact through Zapier, add subscribers to Mailchimp or Brevo, notify a Slack channel when a high-value enquiry arrives, create a Trello card for each support request, trigger an SMS workflow through Zapier, feed submissions into Airtable or Notion, or send the validated payload to your own API with a signed webhook.

Troubleshooting

The button does nothing. Check that the Forminit script tag loads (view the browser console for errors) and that your script runs after the form exists in the page.

“Form not found” or an authentication error. Confirm the Form ID is correct and the form is set to Public mode. Do not place a private API key in the browser.

The submission succeeds but fields are missing. Check the fi-{blockType}-{name} naming format and make sure every input has a name attribute.

Files are not uploaded. Submit FormData (not JSON) with multipart/form-data, check the file size against the 25 MB per-submission cap and the accepted types, and use the [] suffix for multiple-file inputs.

The updated form is not visible on Tiiny Host. Rebuild the ZIP with index.html at the root level, re-upload or update the Tiiny Host project, and clear your browser cache.

Spam submissions. Forminit’s built-in protection is on by default. If volume grows, add authorised domains so only your site can submit, a honeypot field, or a CAPTCHA (Cloudflare Turnstile is free and privacy-friendly; reCAPTCHA and hCaptcha are also supported). Note that CAPTCHA services have their own privacy implications, which matters if you chose Forminit partly for EU data handling.

Frequently asked questions

Does Tiiny Host collect form submissions itself?

No, Tiiny Host focuses on hosting and serving your static site, and its help centre recommends pairing your form with a third-party form processor. Forminit fills that role: connect your existing form and submissions are received, validated, stored and emailed to you.

Why does my HTML form not work on Tiiny Host?

A static site serves your form but does not include a server to receive what visitors submit. The fix is straightforward: point the form at a form backend endpoint like Forminit’s, keep your design unchanged, and submissions start arriving in your dashboard and inbox.

Can I add a contact form to a Tiiny Host website?

Yes. Keep your existing HTML form, add Forminit’s script and submit to your Form ID. Submissions are then validated, stored in a dashboard and emailed to you. No Tiiny Host plugin and no server code are required.

Can I collect Tiiny Host form submissions for free?

Yes. Forminit’s Free plan includes one form and up to 100 submissions per month, with file uploads, 100 MB of file storage, email notifications, built-in validation, spam protection and an unlimited submission archive. No credit card is required.

Can a Tiiny Host form upload files?

Yes. Forminit accepts file uploads directly from a form hosted on Tiiny Host, up to 25 MB per submission across more than 50 file types, including on the Free plan. The form must submit FormData with multipart/form-data encoding, because JSON submissions cannot include files.

Where are Forminit submissions stored?

In a searchable dashboard inbox, with retention that is unlimited on every plan. You can filter, star and status-track submissions, add internal notes and export to CSV on paid plans. Uploaded files are stored with each submission and accessible via download links.

Is Forminit hosted in the EU?

Form data is encrypted and stored on AWS servers in Ireland, within the EU. Forminit is a UK company registered with the ICO, complies with both EU GDPR and UK GDPR, and provides a Data Processing Agreement. See the Forminit GDPR page for details.

Can I send Tiiny Host submissions to Google Sheets?

Yes, on the Pro plan and higher. Forminit’s native Google Sheets integration writes each new submission to a spreadsheet as a row with column mapping. Zapier, Slack, Discord, webhooks and the REST API are also available on paid plans.

Can I use Forminit with an AI-generated Tiiny Host website?

Yes. If you built your site with ChatGPT, Claude or another coding agent, paste the integration prompt from this article together with your Form ID, and the agent can wire your existing form to Forminit. Forminit also publishes a machine-readable HTML integration skill for AI tools.

Do I need PHP, Node.js or a server?

No. The integration is client-side: your HTML form plus a small script submitting to Forminit’s endpoint in Public mode, which needs no API key. There is no server, database, serverless function or email script to build or maintain.

Can I connect more than one form?

Yes. The Free plan includes one form; the Pro plan allows 5 forms, Business 15, and Volume has no form limit. Each form has its own Form ID, submissions inbox, notifications and settings, so separate pages or sites can use separate forms.

Can I use the same approach with a Webflow export?

Yes. When a Webflow site is exported and hosted on Tiiny Host, Webflow’s native form processing no longer receives submissions. Point the exported form at Forminit instead: the design is preserved and the submission handling is restored.

Wrap-up

Tiiny Host keeps static publishing refreshingly simple, and Forminit completes the pairing with the submission side: storage, validation, notifications, files and integrations. You keep your custom form design, start on the Free plan, and the same setup grows into file collection, spreadsheet syncs, team notifications and business automations as the project does.

Create a free Forminit form, copy your Form ID and connect your Tiiny Host website. Get started at forminit.com.

Further reading