Skip to main content

Get Started with FastForms

This guide will walk you through creating your first AI-generated form, from sign up to collecting responses.
1

Sign Up or Sign In

Navigate to FastForms and sign up using Clerk authentication. You can sign up with:
  • Email and password
  • Google OAuth
  • GitHub OAuth
All forms you create are tied to your user account. Only you can edit, publish, or delete your forms.
2

Navigate to Form Generator

Once signed in, click Generate Form or navigate to /generate to access the AI form builder.
3

Describe Your Form

Enter a natural language description of the form you want to create. The AI works best with clear, detailed descriptions.
Contact Form:
Contact form with name, email, and message
Event Registration:
Event registration form with full name, email, phone number, 
company name, job title, and dietary restrictions dropdown 
with options: None, Vegetarian, Vegan, Gluten-free
Job Application:
Job application form with applicant name, email, phone, 
cover letter textarea, years of experience (number), 
and employment status (select with Full-time, Part-time, Contract options)
Customer Feedback:
Customer feedback survey with name, email, rating (1-5), 
what did you like (textarea), what could be improved (textarea), 
and would you recommend us (Yes/No radio buttons)
Be specific about field types! Mention “email” for email validation, “textarea” for long text, “dropdown” or “select” for options, and “number” for numeric inputs.
4

Generate the Form

Click Generate Form and wait 2-5 seconds while the AI processes your request.
Form Generation Flow
// User submits prompt
const response = await axios.post('/api/forms/generate', {prompt});

const {formId, slug, title} = response.data;
// Redirects to /forms/{formId} for preview
The AI uses Groq’s LLaMA 3.3 70B model to:
  • Parse your requirements
  • Select appropriate field types
  • Add validation rules
  • Generate unique field IDs
  • Create placeholder text
5

Preview Your Form

You’ll be redirected to a preview page showing your generated form.
The form is in Preview Mode - all fields are disabled. This lets you review the structure before publishing.
The preview shows:
  • Form title
  • All generated fields with labels and placeholders
  • Required field indicators (red asterisk)
  • Field types (text input, textarea, select dropdown, radio, checkbox, etc.)
Example Generated Schema
{
  "title": "Contact Form",
  "fields": [
    {
      "id": "full_name",
      "type": "text",
      "label": "Full Name",
      "required": true,
      "placeholder": "Enter your full name"
    },
    {
      "id": "email_address",
      "type": "email",
      "label": "Email Address",
      "required": true,
      "placeholder": "[email protected]"
    },
    {
      "id": "message",
      "type": "textarea",
      "label": "Message",
      "required": true,
      "placeholder": "Tell us what you need..."
    }
  ]
}
6

Publish Your Form

When you’re satisfied with the form structure, click Publish Form at the bottom.
Publish Action
const response = await axios.patch(`/api/forms/${formId}`);
// Toggles isPublished to true
Once published:
  • A shareable link appears: https://yourdomain.com/f/{slug}
  • The form can now accept responses
  • You can copy the link to share via email, social media, or embed on your website
Unpublished forms are only visible to you. They cannot accept public responses until published.
7

Share Your Form

Copy the shareable link and distribute it to your audience:
  • Email the link directly
  • Post on social media
  • Embed in your website
  • Include in newsletters
  • Generate a QR code
Anyone with the link can submit responses (no login required).
8

View Responses

Navigate to Dashboard to see all your forms. Click on any form to view its responses.
Response Dashboard
// GET /api/forms/{formId}/responses
const response = await axios.get(`/api/forms/${formId}/responses`);

// Returns array of response objects
[
  {
    "data": {"full_name": "John Doe", "email": "[email protected]"},
    "createdAt": "2024-03-15T10:30:00Z"
  }
]
The response page shows:
  • Total number of responses
  • Individual submission data
  • Submission timestamps
  • Export to CSV button

Complete Example Flow

Here’s what happens end-to-end when you create a form:
// 1. User describes form
const prompt = "Contact form with name, email, and message";

// 2. AI generates schema
const generateResponse = await axios.post('/api/forms/generate', {prompt});
// Returns: {formId: "cm3x...", slug: "abc123", title: "Contact Form"}

// 3. User previews form
const formPreview = await axios.get(`/api/forms/${formId}`);

// 4. User publishes form
const publishResponse = await axios.patch(`/api/forms/${formId}`);
// Sets isPublished: true

// 5. Public user submits response
const submitResponse = await axios.post('/api/forms/submit', {
  formId: formId,
  data: {
    full_name: "Jane Smith",
    email_address: "[email protected]",
    message: "Hello, I'd like to get in touch!"
  }
});

// 6. Form owner views responses
const responses = await axios.get(`/api/forms/${formId}/responses`);

Next Steps

AI Form Generation

Learn how to write effective prompts and use advanced field types

Form Management

Publish, unpublish, and delete forms from your dashboard

API Reference

Integrate form generation into your applications

Field Types

Deep dive into all supported field types and options
Pro tip: Keep your form descriptions detailed but concise. The AI works best when you clearly specify field types, options, and requirements upfront.

Build docs developers (and LLMs) love