Forms
Site forms submit to Backpack instead of Webflow.
The module that removes the last Webflow dependency. Once a site is adopted, its forms submit to Backpack and the Webflow project can be retired.
How it works
- Public endpoint:
POST /api/forms/<site>on the console (CORS open, no auth, exempted in middleware). Validates the site is approved, drops honeypot hits (a hidden_gotchafield), caps field counts and sizes. - Storage: the Backpack-Ops/form-submissions data repo, one folder per site, one JSON file per month. It has no Vercel project, so submissions never trigger deploys. Concurrent writes retry on sha races.
- Adoption (“Route forms to Backpack” in the site’s Forms tab): commits
backpack-forms.jsto the site repo and injects a script tag on every page with a form. The shim intercepts Webflow-export form submits in the capture phase (before webflow.js), posts the fields, and drives the native.w-form-done/.w-form-failstates, so the visitor experience is unchanged. - The Forms tab lists submissions (last three months), expandable per row.
Cautions
- Adopting a live client site changes where their submissions land. Get the client’s OK and tell them where to find submissions before adopting; until then their forms keep posting to Webflow.
- Webflow projects must stay alive until their site is adopted.
- Notifications (email on new submission) arrive once the mail server is up.
Verified end to end 2026-07-18 on the sandbox: real browser submit, success state shown, submission stored and listed.