Skip to content

Changelog

7 June 2026

  • Package renamedformtress-js is now published as @formtress/js. The old package is deprecated but will continue to work for existing installs.
    Terminal window
    # Before
    npm install formtress-js
    # After
    npm install @formtress/js
  • Server SDK — new @formtress/server package 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 endpointPOST /public/api/v1/filter returns 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, and FormtressError.
  • PostHog analytics — filter API usage is tracked (spam vs clean, scores, rate limits) with zero user data logged.

21 May 2026

  • Added support for file uploads

25 March 2026

  • submitForm API changed — the formId parameter is replaced by url. Pass form.action (or the full endpoint URL directly) instead of a bare Form ID.
    // Before
    submitForm({ formId: 'abc123', data: new FormData(form) })
    // After
    submitForm({ url: form.action, data: new FormData(form) })
  • SubmitResult.redirect removed — the return value no longer includes a redirect field. Handle redirects in your own success handler if needed.
  • SubmitResult.status added — the HTTP status code is now returned alongside ok and message.
  • Forms now connect to Formtress via the standard HTML action attribute (https://app.formtress.com/api/f/your-form-id) rather than a data-ft attribute. This means forms work without JavaScript by default.
  • The Webflow script is now purely progressive enhancement — it detects forms whose action points to Formtress and intercepts them to show Webflow’s native success/error states. Without the script, the form still submits successfully.
  • The data-ft attribute is no longer used or required.

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.