Changelog
v1.0.0
Section titled “v1.0.0”7 June 2026
Breaking changes
Section titled “Breaking changes”- Package renamed —
formtress-jsis now published as@formtress/js. The old package is deprecated but will continue to work for existing installs.Terminal window # Beforenpm install formtress-js# Afternpm install @formtress/js
New features
Section titled “New features”- Server SDK — new
@formtress/serverpackage for server-side spam filtering. Check submissions for spam before storing or acting on them.import { Formtress } from '@formtress/server'const formtress = new Formtress({ apiKey: 'ftk_...' })const result = await formtress.filter({ip: '1.2.3.4',headers: Object.fromEntries(request.headers),fields: [{ name: 'email', value: 'test@gmail.com', type: 'email' },],blockFreeEmailProviders: true,}) - Filter API endpoint —
POST /public/api/v1/filterreturns a spam score without storing any data. Supports rate-limiting, bot detection, and content analysis. - Type exports — full TypeScript support for
FilterField,FilterOptions,FilterResult,FormtressOptions, andFormtressError. - PostHog analytics — filter API usage is tracked (spam vs clean, scores, rate limits) with zero user data logged.
v0.2.4
Section titled “v0.2.4”21 May 2026
Changes
Section titled “Changes”- Added support for file uploads
v0.2.0
Section titled “v0.2.0”25 March 2026
Breaking changes
Section titled “Breaking changes”submitFormAPI changed — theformIdparameter is replaced byurl. Passform.action(or the full endpoint URL directly) instead of a bare Form ID.// BeforesubmitForm({ formId: 'abc123', data: new FormData(form) })// AftersubmitForm({ url: form.action, data: new FormData(form) })SubmitResult.redirectremoved — the return value no longer includes aredirectfield. Handle redirects in your own success handler if needed.SubmitResult.statusadded — the HTTP status code is now returned alongsideokandmessage.
Changes
Section titled “Changes”- Forms now connect to Formtress via the standard HTML
actionattribute (https://app.formtress.com/api/f/your-form-id) rather than adata-ftattribute. This means forms work without JavaScript by default. - The Webflow script is now purely progressive enhancement — it detects forms whose
actionpoints to Formtress and intercepts them to show Webflow’s native success/error states. Without the script, the form still submits successfully. - The
data-ftattribute is no longer used or required.
v0.1.x
Section titled “v0.1.x”Initial releases. Forms were connected via data-ft="your-form-id" on the form element. The Webflow script intercepted all tagged forms and posted to the Formtress endpoint.