JetEngine 3.9.0 Free Download — Nulled FAQ
JetEngine 3.9.0 for structured WordPress catalogs: custom fields, developer relations and native Gutenberg listings. Includes the GPLHub-sourced main ZIP, dated add-on bundle, real test evidence and a repeatable staging fixture.
JetEngine v3.9.0 Free Download
Test record: 2026-10-16 · WordPress 7.1.3; PHP 8.4.26; MySQL 8.4.11; Twenty Twenty-Five 1.5; Gutenberg. Isolated lab with synthetic data. External HTTP, email, payments and analytics disabled. Main plugin tested; add-ons inventoried only. Saved query presets tested, no AJAX faceting claim.
JetEngine 3.9.0: a Gutenberg catalog built and tested
JetEngine is a WordPress plugin for building structured content with custom post types, fields, relationships and dynamic listings. It suits catalogs, directories and other sites where a standard post needs richer data and a reusable layout. This page combines the GPLHub-sourced JetEngine 3.9.0 download with a practical Gutenberg test and the exact limits of that test.
We tested JetEngine 3.9.0 by building a small developer-and-product catalog in a private WordPress installation. The final fixture contains four developers, nine synthetic products, a one-to-many relationship, seven saved queries and a Gutenberg product-card listing. Eighteen recorded assertions passed. Separate authenticated HTTP requests confirmed the pages rendered the expected card counts, including two empty states.
The exercise concentrates on the work a catalog actually needs: choosing records, reading custom fields, relating products to developers and deciding which labels to show. It also includes deliberately incomplete data. One product has no price metadata row, and one developer has no children. These cases make the result more informative than an activation-only check.

Recorded environment and test boundaries
| Component | Recorded value |
|---|---|
| JetEngine | 3.9.0 |
| WordPress | 7.1.3 |
| PHP | 8.4.26 |
| Database | MySQL 8.4.11 |
| Theme | Twenty Twenty-Five 1.5 |
| Editor and rendering | Native Gutenberg blocks and JetEngine Listing Grid |
The lab used a separate PHP runtime and database. Email delivery, payments, external HTTP and analytics were disabled. All products and developers are invented test records. We did not submit payments, contact demo destinations or send tracking events. The main package was activated; the seven add-on ZIPs in the separate bundle were inventoried, not functionally exercised here.
What changed in JetEngine 3.9.0
Crocoblock dates JetEngine 3.9.0 to 13 October 2026. Its published changelog highlights the following additions and interface changes:
- Nested repeaters and additional dynamic tags for repeater content.
- An Async Listings module and an Admin Pages module.
- A File query option in Query Builder.
- Listing interface changes for Bricks.
- Interface improvements for advanced date fields and repeater subfields.
Start with two post types and explicit field names
Create Developers and Products in JetEngine, enable their editor and REST support for Gutenberg, and add product fields for version, price, support state, featured state and demo URL. The fixture uses lab_version, lab_price, lab_support, lab_featured and lab_demo. A developer has a region field. Keeping these keys consistent matters because listings, query clauses and visibility conditions refer to the same stored values.
- Create a one-to-many relation with Developers as the parent and Products as the child.
- Enable controls on both sides so the relationship can be inspected from either record.
- Create Aster Labs, Boreal Works and Cinder Studio, then assign products through the relation.
- Add Empty Works without any products, and Aster Missing Price without writing lab_price metadata.
The final relation stored four children for Aster Labs, three for Boreal Works, two for Cinder Studio and zero for Empty Works. Every product had exactly one parent. We checked both directions through JetEngine relation methods instead of assuming that a similarly named text field represented a real relationship.

Render a reusable product card with native Gutenberg blocks
The product card is a JetEngine Listing item whose view is Blocks. A core Group block holds native Dynamic Field blocks for the product title, price, version and support state. A page then uses JetEngine Listing Grid with that listing selected and Custom Query enabled. No custom shortcode or replacement query renderer supplies the product cards.
For the price field, we configured the native fallback text Price not set. A fallback affects presentation after a record has been selected; it does not create a missing metadata row or change which records a numeric query can return. That distinction is visible in the missing-price test below.
The screenshot layout uses a persisted block-theme header, footer and Additional CSS for readable spacing. The presentation changes do not supply product values or alter the query results. The catalog content remains editable as real Gutenberg blocks.
Test 1: saved queries filter and sort the real records
We saved separate Posts Query definitions in JetEngine Query Builder and selected them from the Gutenberg Listing Grid. The all-products query limits results to published Products and orders titles ascending. The support preset adds an equality clause for lab_support = active. The price preset orders lab_price as a numeric metadata value, descending.
| Query | Observed result |
|---|---|
| All products, title A–Z | 9 cards |
| Support equals active | 6 cards |
| Numeric price, descending | 8 cards: 99, 79, 59, 49, 39, 29, 19, 9 |
| Support equals expired | 0 cards and native empty message |
| Aster Labs related products | 4 cards |
| Empty Works related products | 0 cards and native empty message |
| Price metadata does not exist | 1 card: Aster Missing Price |
The links above the lab listing select these saved query presets. They are useful for checking query behavior, but they are not an AJAX faceted-filter interface. We did not install or test JetSmartFilters, and the main JetEngine download should not be presented as proof that live faceting was exercised.


Test 2: missing metadata behaves differently from a zero price
Aster Missing Price has no lab_price row. It appears in the unfiltered listing, where its Dynamic Field displays Price not set. A separate NOT EXISTS meta query returns exactly this product. The price-sorted query excludes it, while retaining all eight products that have stored numeric prices.
In this configuration, sorting by a named metadata key requires a matching price metadata row. The underlying WordPress query joins the price metadata before ordering its numeric value. A record with no matching row falls outside that result set. It is not silently treated as a product priced at zero. Adding a display fallback does not change the join.
Decide how a real catalog should handle this before launch. You may require a price for published items, display incomplete records in a separate queue, or deliberately design a query that includes missing values. Our test validates the observed exclusion and fallback; it does not claim that the chosen sort implements every possible missing-price policy.

Test 3: an empty relationship must stay empty
The relationship presets use JetEngine's native Related Items macro in the dynamic Post In setting. The macro reads a developer ID from the lab_developer_id query parameter and returns that developer's child product IDs. Aster Labs returned four items. Empty Works returned none.
An empty inclusion list can be dangerous if a query implementation treats it as no restriction. In the installed package, the Related Items macro supplies PHP_INT_MAX when there are no related IDs. The resulting inclusion constraint matches no lab product. We checked the relation method, the saved query, the Gutenberg grid and the actual HTTP page: Empty Works showed zero cards and the configured native empty message.
During setup, our first selector name, lab_developer, collided with the registered custom-post-type query variable and caused a WordPress 404. We corrected our fixture to use lab_developer_id in the macro and navigation, then repeated both relationship requests over HTTPS. This was a fixture configuration mistake, not a demonstrated JetEngine defect.


Test 4: three visibility rules across the actual card blocks
We enabled JetEngine's Dynamic Visibility module and attached conditions to ordinary Gutenberg paragraph blocks inside the listing. FEATURED is shown when lab_featured equals true. SUPPORT AVAILABLE is shown when lab_support equals active. DEMO AVAILABLE is shown when lab_demo contains a value. The conditions use the current listing object so each card reads its own product.
| Rule | Visible | Hidden |
|---|---|---|
| Featured equals true | 3 | 6 |
| Support equals active | 6 | 3 |
| Demo field is populated | 5 | 4 |
The checks rendered the real Gutenberg card blocks for each product and recorded whether each label appeared. Positive and negative records were included for every rule. These labels describe display behavior only. Hiding a block is not an authorization policy and does not protect the underlying record, file or endpoint from access.
Repeat the fixture in a disposable staging site
The accompanying fixture contains PHP seed and verification scripts, normalized JetEngine configuration exports, a generated manifest, the recorded result JSON and a README. The scripts use JetEngine data APIs and generate installation-specific IDs. The JSON files document the fixture; they are not advertised as a vendor one-click import format.
- Install and activate JetEngine 3.9.0 in a disposable WordPress site, with a file and database backup outside the reset scope.
- Set WP_ENVIRONMENT_TYPE explicitly to local, development or staging. The fixture refuses the production environment.
- Run 01-schema.php, 02-seed.php and 05-edge-fixtures.php in separate WP-CLI invocations, then run 03-pages-and-test.php to produce new results and page URLs.
- Optionally run 04-presentation.php for the clean lab header, footer and spacing; it changes only the disposable site's presentation.
- Check the returned frontend URLs as well as the JSON assertions, then restore the pre-test backup when the exercise is finished.
wp --path=/path/to/staging eval-file 01-schema.php
wp --path=/path/to/staging eval-file 02-seed.php
wp --path=/path/to/staging eval-file 05-edge-fixtures.php
wp --path=/path/to/staging eval-file 03-pages-and-test.php > results-new-run.jsonUse the page URLs from your own new run. Do not reuse our numeric object IDs. No credentials, plugin ZIPs or database backup are included in the fixture archive.
Main download, add-on bundle and package provenance
The main download is the GPLHub-sourced JetEngine 3.9.0 ZIP tested here. The separate All Add-ons archive contains seven individual add-on ZIPs and an inventory from the GPLHub package snapshot dated 16 October 2026. Extract the outer bundle first; it is not a single plugin to upload into WordPress. This dated bundle is not a claim to contain every official add-on ever released.
The supplied main archive's SHA-256 is recorded below so the tested bytes can be identified. Successful activation and functional checks do not prove that a third-party archive is identical to a vendor download. No trusted same-version vendor ZIP was used for a byte-for-byte comparison, so the package modification status remains unknown.
41e369aba3d79e377eb68859e5a00b5b8c907aa09a238ad34fd3fae150cedbebWhen ordinary WordPress posts are enough
For a small editorial site with titles, text, images and categories, start with WordPress posts and core Query blocks. Adding a relationship model and multiple query definitions brings configuration work that a simple blog may not need.
JetEngine becomes more useful when records need consistent fields, one developer can own several products, editors need relationship controls, or the same data must appear in several dynamic views. A custom-fields plugin with a theme implementation is another possible approach, but that is a different workflow. This article does not benchmark competing products or claim JetEngine is necessary for every WordPress site.
Practical download and setup FAQ
What does JetEngine nulled mean?
“Nulled” usually describes software whose activation or licence checks have been removed or altered; the word alone does not determine whether a particular use is lawful. GPL-covered code can be studied, modified and redistributed subject to its licence conditions, but this does not grant access to a developer’s account, hosted services, updates or support. We discuss the term here to answer a common search question; the download details separately identify the package source and tested version. Any plugin or theme obtained through an unverified third party can contain unwanted changes or malicious code, whether or not it is labelled “nulled”. Before installing it, you can ask ChatGPT or Claude Code to inspect the extracted source for suspicious behaviour without executing it or sharing credentials. Treat that review as an additional check: AI can miss harmful code or flag harmless code, and a clean result is not a security guarantee.
Exact download record
Source: GPLHub. Package version 3.9.0. Main ZIP: 6703713 bytes. SHA-256:
41e369aba3d79e377eb68859e5a00b5b8c907aa09a238ad34fd3fae150cedbeb
All Addons ZIP: 376715 bytes. SHA-256:
0fa534bc8f5bbf6762ba1c1bf3d4ed73cb55f541a158961091f0336d8b643912
Third-party sourced package. No trusted same-version vendor ZIP baseline was available; activation and functional tests do not establish byte-for-byte vendor authenticity.
Included add-ons and dependencies (7 archives)
- JetEngine - Get attachment file link by ID 1.1.3 (addon)
- JetEngine - Custom visibility conditions 1.1.2 (addon)
- JetEngine - dynamic charts builder 1.1.0 (addon)
- JetEngine - dynamic tables builder 1.2.0 (addon)
- JetEngine - Layout Switcher 1.0.1 (addon)
- JetEngine Post Expiration Period Module 1.1.2 (addon)
- JetEngine - Trim string callback 1.0.3 (addon)
Free package downloads
JetEngine v3.9.0 DownloadJetEngine All Addons DownloadAll addons included in the GPLHub package on 2026-10-16, with duplicate and superseded copies removed. This is a dated GPLHub snapshot, not a claim to include every official addon ever released. Extract the outer All Addons archive first, then install only the individual plugin ZIPs you need.