Free WPForms Alternative — WordPress Form Builder Plugin
FieldZip: drag & drop builder, entries in YOUR database, conditional logic, multi-page forms, uploads, calculations, surveys, signatures, webhooks — and Stripe with 0% platform fee. Every WPForms tier, free.
What it is
FieldZip is the whole suite with the gates removed. Entries land in three dedicated tables in your own database — the same dual-write architecture WPForms uses in its paid version (a JSON document per entry plus a searchable per-field table) — with an admin screen for searching, starring, notes, unread state and CSV export, plus scheduled exports and GDPR retention auto-delete (an Elite-tier feature elsewhere). Payments connect to Stripe with your own API keys, so a platform fee is structurally impossible: the money goes from your customer to your Stripe account, full stop. Coupons included; totals are always recomputed server-side, so a tampered hidden field can't change what gets charged.
The builder is a dependency-free single-page app: click fields into the canvas, drag to reorder, and configure everything in one panel — 30+ field types including phone, address, date/time, file upload, a canvas signature pad, star rating, Likert matrix, NPS and repeaters. Conditional logic runs live in the browser and is re-evaluated on the server (hidden fields are wiped from the submission — the classic value-injection hole, closed). Multi-page forms get a progress bar; the same form can render as a conversational one-question-at-a-time page or on its own standalone URL. A safe formula engine (tokenizer → shunting-yard → RPN, no eval) powers calculation fields.
Around the core: multiple conditional notifications with smart tags, webhooks to any URL with custom headers, survey reports with pure-CSS charts, save & resume links, abandonment capture, user journey timelines on each entry, form locker (scheduling, passwords, entry limits, members-only), user registration and front-end post submission mapped from fields, and layered spam protection that needs no external service — honeypot with a randomized name, an HMAC-signed time trap that survives page caching, keyword blocklists and per-IP rate limits, with Cloudflare Turnstile (unlimited and free) as the recommended captcha.
FieldZip vs WPForms — feature by feature
WPForms prices are first-year (renewals are double): Basic $49.50/yr → $99 · Plus $99.50 → $199 · Pro $199.50 → $399 · Elite $299.50 → $599. Sources: wpforms.com/pricing and their official Lite-vs-Pro page, Sep 2026. Fluent Forms (the most generous free rival) also gates multi-step, uploads and calculations, and takes 1.9% on Stripe.
| Feature | FieldZip (free) | WPForms |
|---|---|---|
| Entries stored in YOUR WordPress database | ✓ | Paid — Basic $49.50/yr. Lite emails submissions only; "Lite Connect" backs them up to WPForms' cloud where you can't read them until you buy a license. |
| Entry management: search, star, notes, unread, CSV export | ✓ | Paid — Basic $49.50/yr |
| Stripe payments platform fee | 0% — your own API keys, nothing in between | 3% of EVERY transaction on Lite, Basic and Plus (on top of Stripe's 2.9% + 30¢); removed only at Pro $199.50/yr |
| Smart conditional logic (fields, notifications, webhooks) | ✓ + server-side re-check | Paid — Basic $49.50/yr |
| Multi-page forms with progress bar | ✓ | Paid — Basic $49.50/yr |
| File uploads | ✓ | Paid — Basic $49.50/yr |
| Phone, Address, Date/Time, Website, Password, Hidden, HTML fields | ✓ all field types | Paid — Basic $49.50/yr (famous 1-star review: "impossible to insert a simple phone field without paying") |
| Multiple + conditional email notifications | ✓ | Paid — Basic $49.50/yr (Lite: single notification) |
| Calculations (formula fields) | ✓ safe parser, no eval | Paid — Pro $199.50/yr |
| Coupons for payment forms | ✓ | Paid — Pro $199.50/yr |
| Surveys: Likert, NPS, star rating + report charts | ✓ | Paid — Pro $199.50/yr |
| Signature field | ✓ canvas pad, no library | Paid — Pro $199.50/yr |
| Save & resume later | ✓ | Paid — Pro $199.50/yr |
| Form abandonment capture | ✓ | Paid — Pro $199.50/yr |
| User journey (pages visited before submit) | ✓ | Paid — Pro $199.50/yr |
| Form locker: schedule, password, entry limits, members-only | ✓ | Paid — Pro $199.50/yr |
| Conversational forms + standalone form pages | ✓ | Paid — Pro $199.50/yr |
| User registration + front-end post submission | ✓ | Paid — Pro $199.50/yr |
| Webhooks (any URL, any method, custom headers) | ✓ | Paid — Elite $299.50/yr (it's a plain HTTP POST) |
| Entry automation: scheduled CSV export + retention auto-delete | ✓ | Paid — Elite $299.50/yr |
| Spam: honeypot, time-trap, keyword filter, rate limit | ✓ all local, cache-safe | Basic filtering paid — Basic $49.50/yr |
| Captcha: Turnstile / hCaptcha / reCAPTCHA | ✓ | Free |
| Drag & drop builder, unlimited forms & submissions | ✓ | Free |
| Upsell banners in your admin | None | Persistent "Upgrade to Pro" menu, locked fields in the builder, cross-sells |
| Mailchimp / Salesforce / Zapier bridges | — (by design: webhooks reach anything; account-based SaaS bridges omitted) | Paid — Plus $99.50 to Elite $299.50/yr |
| Price | Free forever (MIT) | $49.50–$299.50 first year, $99–$599 every renewal |
Server requirements & dependencies
- WordPress 6.0 or newer (tested on WordPress 7.1)
- PHP 7.4 or newer
- Pretty permalinks for standalone form pages (Settings → Permalinks)
- Optional: your own Stripe API keys for payments, a Cloudflare Turnstile key for captcha
- Nothing else: no accounts, no license keys, no platform fees, no upsells
How to install
2. FieldZip → Add New. Click field types into the canvas, drag to reorder, click a field to edit it — conditional logic, formulas and options live in the right panel. Ctrl+S saves.
3. Embed anywhere with [fieldzip id="1"], or share the standalone page at /fieldzip/your-form/. Every form also works as a conversational one-question-at-a-time page (Form settings → Display mode).
4. Taking payments? Add your own Stripe keys under FieldZip → Settings — you keep 100% of every transaction. Coupons live on the same screen.
5. Watch entries arrive under FieldZip → Entries (search, star, notes, CSV export) and survey stats under Survey Reports.
The prompt — build it yourself
Paste this into Claude and you'll get this product. This is the actual spec that produced the code above.
Research phase: three parallel agents inventoried WPForms' pricing tiers, all ~40 addons and the technical architecture, plus the free-tier competitors. The findings that shaped the build: WPForms Lite still doesn't store entries locally in 2026 (its "Lite Connect" holds them on WPForms' cloud until you pay), the 3% Stripe fee applies through the Plus tier, and pure-local features like webhooks and scheduled exports are priced at Elite ($299.50 first year, $599 renewal). The architecture worth copying was documented too: forms as JSON documents, entries as a JSON blob plus a denormalized per-field search table, and a fixed processing-hook lifecycle. The market gap: nobody — not even generous Fluent Forms — ships entries + conditional logic + multi-page + uploads + calculations + 0% payment fee, all free.
The build: one session, 23 files. Form definitions are single JSON documents in a custom post type (no schema migrations, versionable). Entries dual-write to a JSON column and a per-field table so the list screen can search without parsing JSON. The builder is a vanilla-JS single-page app — palette, canvas, options panel — that serializes the whole form to one AJAX save with a server-side field-type whitelist. The calculation engine is a real tokenizer → shunting-yard → RPN evaluator on both sides (JS live preview, PHP authority);
eval() appears nowhere. Conditional logic evaluates to a fixpoint so cascades work (hiding a trigger hides its dependents), and the server wipes values of logic-hidden fields before validating — the classic payment-manipulation hole, closed by construction. Stripe integration uses the visitor's own site's keys with a two-phase flow: the server recomputes the order total from the form definition, creates the PaymentIntent, and after the browser confirms, verifies the intent's status AND amount before completing the entry.Verified in testing, end to end: 12/12 calculation-engine unit tests (plus hostile inputs like
system("ls") and 1; DROP TABLE x all returning harmless zeros); logic cascade (choosing "No" hides the follow-up, which empties and hides its own dependent); a real submission through the multi-page form with a coupon (15.00 ticket → 13.50 stored, coupon usage counted); a tampered client-side total of $0.01 overruled by the server's 36.00 recomputation; a mocked Stripe confirm rejected when the paid amount didn't match the entry; honeypot spam silently accepted-but-quarantined with the reason logged; required/email validation errors per field; file uploads enforcing extension AND real MIME (a fake .pdf was refused by content inspection, a .js upload by the allowlist, a valid PDF accepted); webhook delivery captured by a real HTTP receiver — labeled JSON payload with the custom header intact; save & resume links that prefill the form; abandonment entries; user registration (working password, subscriber role) with the password verifiably absent from the stored entry; front-end post submission landing as pending; CSV export; NPS/star aggregates on the survey report; and headless-Chromium checks that the conditional field and pages 2–3 are actually hidden by the live JS. Three fixes along the way: name values rendered "First, Last" instead of "First Last"; entries stayed pending_payment when Stripe wasn't configured; and non-blocking webhook requests were lost at PHP shutdown, so they became short-timeout blocking calls. Reviews
Used Free WPForms Alternative — WordPress Form Builder Plugin? A star rating takes two seconds and helps others.
More builds
License: MIT — free for personal and commercial use, no warranty. Software is provided as is; review the code before running it in production (it's short enough to actually read).