Skip to content

Getting Started

FlowForm is a headless, API-first form and workflow engine built with Laravel 13, Filament 4, and PHP 8.3. This guide walks you through installation to your first API call.

Requirements

  • PHP 8.3+
  • Composer
  • Node.js 18+ and npm
  • SQLite (default) or MySQL/PostgreSQL

Installation

Clone the repository and run the setup script:

bash
git clone https://github.com/flowformhq/flowform.git
cd flowform
composer setup

The composer setup command handles everything:

  1. Installs PHP dependencies
  2. Copies .env.example to .env (if needed)
  3. Generates the application key
  4. Runs database migrations
  5. Installs Node dependencies and builds frontend assets

Seed the Database

Seed field types and create an admin user with an API token:

bash
php artisan db:seed

This creates:

  • An admin user (admin@flowform.dev)
  • All built-in field types (text, email, number, textarea, select, checkbox, radio, date, file, heading, paragraph)
  • A Sanctum API token printed to the console

Save the API token from the output. You will need it for authenticated API calls.

API Token: 1|abc123...

Start the Development Server

bash
composer dev

This starts four processes concurrently:

  • Laravel server at http://localhost:8000
  • Queue worker for background jobs
  • Pail log viewer for real-time logs
  • Vite dev server for frontend assets

Access the Admin Panel

Open http://localhost:8000/admin in your browser. Log in with:

  • Email: admin@flowform.dev
  • Password: password

From the admin panel you can create forms, define steps and fields, and view submissions.

Make Your First API Call

List all active forms:

bash
curl http://localhost:8000/api/v1/forms

Get the full schema for a specific form (replace the UUID):

bash
curl http://localhost:8000/api/v1/forms/{uuid}/schema

Create a submission (requires authentication):

bash
curl -X POST http://localhost:8000/api/v1/submissions \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"form_uuid": "your-form-uuid"}'

Running Tests

bash
composer test

This clears the config cache and runs the Pest test suite.

Next Steps

Licensed under CC BY 4.0.