Public-facing forms that let users collect testimonials from their customers without requiring auth.
What's needed
Backend:
forms DB entity and migrations (see architecture doc for schema — headline, description, questions JSONB, branding fields, thank you page config)
- Forms CRUD under
/api/v1/projects/{id}/forms
- Public submission endpoint
POST /api/v1/public/forms/{slug}/submit (no auth)
- Public form page
GET /f/{slug} (serves the form)
Frontend:
- Form builder page in dashboard (create/edit forms per project)
- Public form page rendered by the dashboard or server-side
Context
This is the primary way users collect testimonials. Without forms, testimonials can only be added manually through the API. The form system is the core value prop — "give someone a link, get a testimonial back."
Part of v0.1 milestone.
Public-facing forms that let users collect testimonials from their customers without requiring auth.
What's needed
Backend:
formsDB entity and migrations (see architecture doc for schema — headline, description, questions JSONB, branding fields, thank you page config)/api/v1/projects/{id}/formsPOST /api/v1/public/forms/{slug}/submit(no auth)GET /f/{slug}(serves the form)Frontend:
Context
This is the primary way users collect testimonials. Without forms, testimonials can only be added manually through the API. The form system is the core value prop — "give someone a link, get a testimonial back."
Part of v0.1 milestone.