{"id":339038,"date":"2026-08-20T17:27:48","date_gmt":"2026-08-20T17:27:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pilot-form\/"},"modified":"2026-08-20T18:38:38","modified_gmt":"2026-08-20T18:38:38","slug":"rjappstudio-form-builder","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/rjappstudio-form-builder\/","author":23528029,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"6.1","requires_php":"7.4","requires_plugins":null,"header_name":"RJ App Studio Form Builder","header_author":"RJ App Studio","header_description":"A security-first, drag-and-drop form builder built on a modern, namespaced WordPress architecture.","assets_banners_color":"cbe0fa","last_updated":"2026-08-20 18:38:38","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"rjappstudio","date":"2026-08-20 18:38:38"}},"upgrade_notice":{"1.0.0":"<p>Initial release of RJ App Studio Form Builder.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3657432,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3657611,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3657611,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"rjappstudio-form-builder\/form":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"rjappstudio-form-builder\/form","title":"RJ App Studio Form Builder","category":"widgets","icon":"feedback","description":"Embed a form built with RJ App Studio Form Builder.","textdomain":"rjappstudio-form-builder","attributes":{"formId":{"type":"number","default":0}},"editorScript":"file:..\/..\/assets\/js\/block-editor.js","render":"file:.\/render.php"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3657576,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3657576,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3657576,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3657576,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3657576,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3657576,"resolution":"6","location":"assets","locale":"","width":1440,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3657576,"resolution":"7","location":"assets","locale":"","width":1440,"height":900},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3657576,"resolution":"8","location":"assets","locale":"","width":692,"height":864}},"screenshots":{"1":"The drag-and-drop form builder: field palette, live canvas, and the\nper-field settings panel.","2":"The forms list, with a ready-to-paste shortcode, duplicate, export,\nand import for every form.","3":"The entry manager: filter by form, search, star, mark read or unread,\nand CSV\/JSON export.","4":"A single entry, showing every submitted field for that submission.","5":"Settings: spam protection, rate limiting, CAPTCHA keys, and the\ndefault upload ceiling.","6":"Design: button styling and success-message colours, each with a live\npreview.","7":"Email delivery logs, with recipient, subject, status, and the number\nof send attempts.","8":"A published form on the front end, with responsive multi-column\nfield widths."}},"plugin_section":[],"plugin_tags":[358,3938,2253,601,131785],"plugin_category":[42],"plugin_contributors":[276687],"plugin_business_model":[],"class_list":["post-339038","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form","plugin_tags-drag-and-drop","plugin_tags-form-builder","plugin_tags-forms","plugin_tags-gdpr","plugin_category-contact-forms","plugin_contributors-rjappstudio","plugin_committers-rjappstudio"],"banners":{"banner":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/banner-772x250.png?rev=3657611","banner_2x":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/banner-1544x500.png?rev=3657611","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/icon-256x256.png?rev=3657432","icon_2x":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/icon-256x256.png?rev=3657432","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/screenshot-1.png?rev=3657576","caption":"The drag-and-drop form builder: field palette, live canvas, and the\nper-field settings panel."},{"src":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/screenshot-2.png?rev=3657576","caption":"The forms list, with a ready-to-paste shortcode, duplicate, export,\nand import for every form."},{"src":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/screenshot-3.png?rev=3657576","caption":"The entry manager: filter by form, search, star, mark read or unread,\nand CSV\/JSON export."},{"src":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/screenshot-4.png?rev=3657576","caption":"A single entry, showing every submitted field for that submission."},{"src":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/screenshot-5.png?rev=3657576","caption":"Settings: spam protection, rate limiting, CAPTCHA keys, and the\ndefault upload ceiling."},{"src":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/screenshot-6.png?rev=3657576","caption":"Design: button styling and success-message colours, each with a live\npreview."},{"src":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/screenshot-7.png?rev=3657576","caption":"Email delivery logs, with recipient, subject, status, and the number\nof send attempts."},{"src":"https:\/\/ps.w.org\/rjappstudio-form-builder\/assets\/screenshot-8.png?rev=3657576","caption":"A published form on the front end, with responsive multi-column\nfield widths."}],"raw_content":"<!--section=description-->\n<p>RJ App Studio Form Builder is a contact form plugin built from the ground up around a\nnamespaced, PSR-4, dependency-injected architecture \u2014 not a fork or a\nquick clone of an existing plugin. It ships with:<\/p>\n\n<ul>\n<li>A React-based drag-and-drop form builder (Gutenberg-component powered)<\/li>\n<li>29 field types, including Signature, Address, Name, GDPR Checkbox,\nand reCAPTCHA\/hCaptcha\/Cloudflare Turnstile<\/li>\n<li>A layered submission pipeline: honeypot, time-trap, rate limiting,\ncaptcha verification, and spam scoring \u2014 all extensible via filters<\/li>\n<li>Hardened file upload handling: MIME sniffing, random filenames, and\nexecution-blocked storage<\/li>\n<li>A full entry manager: search, filter, spam folder, trash, star, notes,\nand CSV\/JSON export<\/li>\n<li>Configurable email notifications with an autoresponder, HTML\ntemplates, delivery logs, and automatic retry of failed sends<\/li>\n<li>Conditional logic, multi-step forms with a progress bar, and\nSave &amp; Continue Later<\/li>\n<li>An extensible integration framework (no third-party connectors bundled\nby default \u2014 add your own via <code>pilotform_register_integrations<\/code>)<\/li>\n<li>Native WordPress Privacy (GDPR) export\/erase integration<\/li>\n<li>Shortcode, Gutenberg block, and a <code>pilotform_render_form()<\/code> theme\nfunction for embedding<\/li>\n<\/ul>\n\n<p>Everything above is included and free under the GPL. There are no locked\nfeatures, no license keys, and no upsell prompts in the plugin.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>This plugin's JavaScript and CSS are built with webpack from human-readable\nsource, and that source is included in full inside the plugin package\nitself (not just linked to) \u2014 no separate repository is required to read,\nstudy, or modify it. Each compiled file maps to source as follows:<\/p>\n\n<ul>\n<li><code>assets\/js\/builder.js<\/code> (admin form builder, entries, settings, design\nscreens) is built from <code>resources\/js\/builder\/<\/code> and <code>resources\/css\/builder.css<\/code><\/li>\n<li><code>assets\/js\/block-editor.js<\/code> (Gutenberg block registration) is built\nfrom <code>resources\/js\/block-editor\/<\/code><\/li>\n<li><p><code>assets\/js\/frontend.js<\/code> (public form submission script) is built from\n  resources\/js\/frontend\/ and <code>resources\/css\/frontend.css<\/code><\/p>\n\n<p>webpack.config.js and <code>babel.config.js<\/code> (also included) define the\nbuild. <code>composer.json<\/code> and <code>package.json<\/code> are included for the same\nreason on the PHP dependency and JS tooling side respectively. To rebuild\nevery bundle from source yourself:<\/p>\n\n<p>composer install &amp;&amp; npm install &amp;&amp; npm run build<\/p>\n\n<h3>External services<\/h3>\n\n<p>RJ App Studio Form Builder connects to third-party CAPTCHA providers <strong>only when a site\nadministrator enables that provider<\/strong> for a form. No external request is\nmade otherwise.<\/p><\/li>\n<\/ul>\n\n<p>When you enable Google reCAPTCHA, hCaptcha, or Cloudflare Turnstile:<\/p>\n\n<ul>\n<li>The provider's widget script is loaded in the visitor's browser on\npages that display the protected form, and the visitor's interaction\ntoken is generated by that provider.<\/li>\n<li>On submission, RJ App Studio Form Builder sends the token, the visitor's IP address,\nand your site's secret key to the provider's verification endpoint to\nconfirm the submission is not automated:\n\n<ul>\n<li>Google reCAPTCHA \u2014 https:\/\/www.google.com\/recaptcha\/api\/siteverify<\/li>\n<li>hCaptcha \u2014 https:\/\/hcaptcha.com\/siteverify<\/li>\n<li>Cloudflare Turnstile \u2014 https:\/\/challenges.cloudflare.com\/turnstile\/v0\/siteverify<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>Each provider processes this data under its own terms and privacy policy:<\/p>\n\n<ul>\n<li>Google: https:\/\/policies.google.com\/terms and https:\/\/policies.google.com\/privacy<\/li>\n<li>hCaptcha: https:\/\/www.hcaptcha.com\/terms and https:\/\/www.hcaptcha.com\/privacy<\/li>\n<li>Cloudflare: https:\/\/www.cloudflare.com\/website-terms\/ and https:\/\/www.cloudflare.com\/privacypolicy\/<\/li>\n<\/ul>\n\n<p>All other anti-spam layers (honeypot, time-trap, rate limiting, and spam\nscoring) run entirely on your own server and send nothing externally.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin, go to Plugins &gt; Add New &gt; Upload Plugin and\nchoose the RJ App Studio Form Builder ZIP, or upload the\n   rjappstudio-form-builder folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Go to \"RJ App Studio Form Builder\" in the admin menu to create your\nfirst form.<\/li>\n<li>Embed a form with the <code>[pilotform id=\"123\"]<\/code> shortcode, the RJ App\nStudio Form Builder block, or <code>pilotform_render_form( 123 )<\/code> in a theme\ntemplate.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20composer%20or%20node.js%20to%20run%20the%20plugin%3F\"><h3>Do I need Composer or Node.js to run the plugin?<\/h3><\/dt>\n<dd><p>No. The release package already includes everything the plugin needs to\nrun. Composer and Node.js are only required if you are developing the\nplugin from source.<\/p><\/dd>\n<dt id=\"where%20is%20the%20human-readable%20source%20for%20the%20compiled%20js%2Fcss%3F\"><h3>Where is the human-readable source for the compiled JS\/CSS?<\/h3><\/dt>\n<dd><p>See the \"Source Code\" section above \u2014 the full source ships inside the\nplugin package itself.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20mailchimp%2Fslack%2Fzapier%2Fetc.%20integration%3F\"><h3>How do I add a Mailchimp\/Slack\/Zapier\/etc. integration?<\/h3><\/dt>\n<dd><p>RJ App Studio Form Builder ships the integration architecture (<code>IntegrationInterface<\/code>,\nregistered via the <code>pilotform_register_integrations<\/code> action) without any\nbundled third-party connectors, so you can add exactly the integrations\nyou need without extra dependencies you don't.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20any%20data%20to%20third%20parties%3F\"><h3>Does the plugin send any data to third parties?<\/h3><\/dt>\n<dd><p>Only if you enable an anti-spam CAPTCHA. See the \"External services\"\nsection below for the full details. With CAPTCHA disabled (the default),\nthe plugin makes no external requests.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A security-first, drag-and-drop form builder built on a modern, namespaced WordPress architecture.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/339038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=339038"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/rjappstudio"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=339038"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=339038"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=339038"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=339038"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=339038"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=339038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}