Skip to content

EvanSchleret/FormForge

FormForge banner

FormForge

Deterministic dynamic forms for Laravel.

Important

This README is intentionally lightweight. For complete, chaptered documentation, go to: formforge.schleret.ch

Packagist Version Packagist Downloads License PHP >= 8.2 Laravel 12.x | 13.x

What FormForge Is

FormForge is a backend form engine for Laravel (non-UI):

  • deterministic form schema
  • immutable form revisions
  • strict server-side validation
  • built-in HTTP API
  • scoped routes and owner-aware authorization
  • submission exports (CSV/JSONL)
  • GDPR retention/anonymization tools

Install

composer require evanschleret/formforge
php artisan formforge:install
php artisan migrate

Quick Start (Code-First)

<?php

declare(strict_types=1);

use EvanSchleret\FormForge\Facades\Form;

Form::define('contact')
    ->title('Contact')
    ->version('1')
    ->text('name')->required()
    ->email('email')->required()
    ->textarea('message')->required();

Form::sync();

$submission = Form::get('contact')->submit([
    'name' => 'Ada',
    'email' => 'ada@example.com',
    'message' => 'Hello',
]);

HTTP API (Optional)

Enable and configure endpoints in config/formforge.php, then use routes under:

  • /api/formforge/v1

Main endpoint groups:

  • schema
  • submission
  • upload
  • resolve
  • draft
  • management

For scoped tenant/context URLs, use formforge.http.scoped_routes.

Common Commands

php artisan formforge:list
php artisan formforge:describe contact
php artisan formforge:http:routes
php artisan formforge:http:options
php artisan formforge:sync

Full Documentation

Use the full docs for setup patterns, scoped routes, policies, automation resolvers, exports, and GDPR:

License

MIT

About

Laravel backend form engine with deterministic schemas, immutable revisions, strict validation, scoped HTTP API, automations, exports (CSV/JSONL), and GDPR-ready retention tools.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors