Jetonomy 1.3.8: FluentCommunity Integration, Space Moderation, and a Friendlier Forum
Jetonomy 1.3.8 just landed, and I want to walk you through what it actually changes if you run a community on WordPress. Two months ago Jetonomy 1.2.0 felt like the moment the plugin grew up. Polls, BuddyPress group forums, LMS adapters. Real product. Then 1.3.6 quietly shipped the things you only notice when they break (rich link previews, per-type email templates, a cleaner Trending block). Then 1.3.7 added the compose-topic block so members can start a discussion from any page on the site. Jetonomy 1.3.8 is the release where the forum stops feeling like a forum and starts feeling like a community.
I want to walk you through what is actually in this release, why each piece exists, and which ones matter for the kind of site you run. The headline feature is the FluentCommunity integration. The under-reported feature, in my opinion, is space-level moderation. Both reshape what it feels like to host a community on WordPress.
Space owners can finally police their own house
Before 1.3.8, the moderation queue lived at the site level. To approve a flagged post or hide a spammy reply you needed the WordPress editor capability. That is fine on a single-space site where the same person who owns WP also owns the community. It falls apart the moment you have multiple spaces with different stewards. A space owner could not police their own room without you handing them an admin role for the entire WordPress install, which most clients are not willing to do for good reason.
1.3.8 ships a queue per space. Space admins and space moderators land on /community/s/:slug/mod/ and see only the flagged posts and replies inside that space. Site admins land on a cross-space dashboard at /community/mod/ that summarises pending flags per space and links into each space’s queue. If you run multiple communities you see them all at once. If you moderate a single space the header link takes you straight to that space’s queue. No back office, no role escalation.
While I was building this, the question that kept guiding the design was, who is on the hook to keep this room civil tonight? The answer is almost never the WordPress site owner. It is the person who created the space and cares about it. They needed tools, not access to wp-admin. That is the framing.
Promote a member from the front end
Tied to the same thread of thinking, space admins can now promote any member to moderator or admin from /community/s/:slug/members/. Each member row carries a role dropdown that PATCHes the change live with inline success and error feedback. Before 1.3.8 you would need to log into wp-admin, find the user, and edit their meta. Now your most engaged regular gets handed the keys in three seconds and stays in the room while you do it. That tiny piece of social UX matters more than it sounds. Promotion is a moment. You want to do it warmly and visibly, not with a wp-admin tab and a stern silence.
When two community plugins start feeling like one product
This is the big one. A growing slice of the customers I talk to run both Jetonomy and FluentCommunity on the same site. They use FluentCommunity for the social feed, the spaces, the activity timeline, the lessons. They use Jetonomy for the forum, the Q and A spaces, the trust levels, the long-form discussion. The two plugins did not know about each other. So your members had two profiles, two notifications, two avatars, and they would ask, are these the same site or two sites?
1.3.8 fixes that. When FluentCommunity is detected, the integration auto-enables. There is no toggle to find. From Settings > FluentCommunity you pair Jetonomy spaces with FluentCommunity spaces. Each pair gets a Discussions tab on the FC space header that links to the Jetonomy forum, plus a sidebar card on the Jetonomy space linking back to the FC feed. The label is configurable. If your community calls it Forum or Q and A or Lounge, rename it once and it updates everywhere the tab appears.
Profiles that don’t feel split-brain
FluentCommunity profile pages now show a Discussions block listing the member’s five most recent topics started and the five topics they follow on the Jetonomy side, with a “View all on forum” link to their Jetonomy profile. On the other side, Jetonomy profile pages show a cross-link to the FluentCommunity profile. The button picks up the name you set in FluentCommunity’s Site Title, so it reads “View on Acme Community” instead of something generic. Navigation between the two profile pages now works both ways. One identity, one bio, one place to look someone up.
Avatars are unified. When a FluentCommunity user has a custom avatar on their FC profile, it is used everywhere on the site, including Jetonomy pages. The “two versions of me” effect is gone. This is small visually and large psychologically. People want to be one person on your site, not two.
Members move with the spaces
When someone joins a paired FluentCommunity space, they are automatically added to the paired Jetonomy space, and vice versa. Sync is add-only on purpose. Leaves do not propagate. The reason is that I did not want a single click in one plugin to silently remove someone from another plugin’s room. Joining is a positive act. Leaving is a careful one. The asymmetry is intentional.
For sites that already had hundreds of members in FluentCommunity before pairing, there is a “Sync existing members now” button on the settings page. One click, capped at 5,000 members per space per run, safe to re-run. It reports pairs processed and members added in both directions. Most paired-space backfills finish in seconds.
Activity broadcast that reads like a feed post
When a new topic is created in a paired Jetonomy space, an announcement feed post appears in the paired FluentCommunity space. Topic title, excerpt, and a discreet “Shared from the forum” attribution link. No duplicated headlines. No shouty CTA. It reads like a normal feed post. The toggle defaults on. Broadcast is one-way (Jetonomy to FluentCommunity only) so FC posts never silently create forum topics. People keep asking me about that direction. The answer is no, on purpose. The forum is the place where members are expected to write the long version. The feed is the place where they are expected to react. Mixing the two writing affordances quietly turns the feed into a place people stop reading.
Privacy is wired in. Topics marked as private in Jetonomy are never broadcast. The FC feed audience can be wider than the private-topic scope, so private content stays on the forum side where the access control was actually defined.
The piece that surprised me with how good it feels in practice is the comment-to-reply bridge. When a member comments on one of the broadcast feed posts on FluentCommunity, the comment is automatically mirrored back as a reply on the original Jetonomy topic, preserving author attribution. Only comments on broadcast feeds round-trip. Native FC feed posts are untouched. Add-only like member sync, so edits and deletes on FC do not propagate. Your forum thread is always the durable record. Members talk where they happen to be, and the forum thread quietly captures the canonical version. That is the dream pattern for a hybrid community and it now works without anyone having to think about it.
One implementation note that matters if you maintain WordPress sites for clients: every write into FluentCommunity goes through FluentCommunity’s own public helpers (addToSpace) and Feed model. No direct SQL. Deactivating FluentCommunity leaves both plugins working independently with their own data intact. The integration is a respectful guest, not a hijacker.
BuddyPress people get the same treatment
The same broadcast pattern landed for BuddyPress in 1.3.8. New Jetonomy topics in a paired space announce themselves in the paired BuddyPress group’s activity stream, and comments on that activity round-trip back as replies on the forum topic. Real HTML paragraphs, a discreet attribution footer, no shouty header. If you have been running Jetonomy as a BuddyPress alternative or complement, this is the moment your group activity stream stops being a graveyard and starts pointing into your real conversations.
Dark mode that doesn’t fall apart on Reign
This one took longer to diagnose than I want to admit. A handful of customers running the Reign theme in dark mode kept reporting that Jetonomy headings would disappear into the panel, hover states would wash out to invisible, and locked-space banners would vanish. The bug only surfaced when a theme rendered the forum inside a dark panel container, and it had nothing to do with the OS-level dark mode setting people kept blaming.
The fix is a small set of changes that add up to a much better life on dark themes. Plugin headings stay readable when the theme renders the forum inside a dark panel. Accent tints (--jt-accent-light and --jt-accent-muted) are now re-derived against the panel background in dark mode, so hover states and muted backgrounds look right on dark themes instead of fading to nothing. Locked-space banners and warning notices stay legible against dark panels. And, importantly, Jetonomy no longer auto-applies dark mode based on the visitor’s operating system preference. Dark mode now follows the theme. That stopped a confusing class of bugs where a visitor’s OS was set to dark, the site theme was set to light, and Jetonomy alone went dark, looking like a broken integration.
If your community runs on Reign, BuddyX, BuddyX Pro, or any theme that ships a dark panel, this is the release where Jetonomy finally looks like it was always supposed to.
A long tail of things that should have always worked this way
Every release has a list like this. The list for 1.3.8 is longer than usual because we spent a focused sprint cleaning up the small stuff that customers run into every day.
- Sort modes work. Oldest, newest, and unanswered now return the right set of topics. The earlier query was merging them into latest. Embarrassing, fixed.
- Space settings merge on save instead of overwriting, so editing one field no longer clears the others.
- Similar-topics widget no longer leaks HTML entities into titles. Sitewide search now ranks results by relevance instead of flat creation order.
- Time picker on scheduled posts uses cross-browser hour and minute selects when the browser does not provide a native picker, and the native date/time picker is restored on browsers that do.
- Online indicator sits on the avatar’s top-right corner, including on the 64px profile-header avatar where it used to drift off the rim.
- Space listing Load More no longer auto-preloads the next page on first render. It waits for a real scroll. Unlimited-scroll-style preloads were turning a single landing visit into three or four extra REST calls per session.
- Share dropdown closes when the page scrolls instead of floating free over the content.
- Profile tabs no longer clip the Drafts tab on mobile.
- Rewrite rules are flushed during activation so community URLs resolve immediately, instead of 404ing until the next page load.
- Profile Drafts rows now navigate to the draft itself so you can edit or publish from one click.
- Long words in user content wrap on mobile instead of pushing the app wider than the viewport. The Jetonomy app width is also clamped to prevent overflow on very small screens.
- TikTok videos render as proper iframes instead of falling back to a caption-only text card. Copy-link now shows visible feedback when the browser blocks clipboard writes.
- Forum members can attach images when creating posts. Upload permissions used to require a higher role than member, which is the kind of default that quietly kills the visual half of a community.
- Voting optimistically shows the correct score when flipping a prior vote (for example up to down) instead of showing a stale delta until the server confirms.
- FluentCommunity broadcast preserves paragraph breaks in the excerpt so long topics read the way they were written.
- FluentCommunity cross-link buttons use the FC site title in their labels for a natural “View on your community” reading.
Polish
- Fourteen translation-ready strings were rewritten to drop em-dashes and other typography that made translations awkward. No string keys changed, so existing translations carry over.
- The Interactivity API now exposes
isLoggedInandloginUrlso blocks and embeds can render the right CTA for anonymous viewers without an extra REST call. - Integration settings pages got section banners and clearer loader-gate documentation, so customers stop asking why a settings tab appears empty when its parent integration is off.
A note on how we tested the FluentCommunity integration
I want to flag the testing posture on this release because it is what gives me the confidence to recommend turning the integration on for a live community. The engineering rule we set was simple. Every write into FluentCommunity goes through FluentCommunity’s own public methods. No direct database writes, no SQL into FC tables, no shortcuts. Member adds use addToSpace. Feed posts go through the Feed model. Comment-to-reply mirroring reads the FC comment via the public API and writes the Jetonomy reply through the same path a normal reply takes. That means if the FluentCommunity team changes a table, renames a column, or adds a hook, our integration stays working as long as their public API stays working. It also means deactivating FluentCommunity does not corrupt anything. Both plugins keep their own data and continue to function independently. The integration is purely additive. We then ran the full broadcast and member-sync flow against three site shapes: Jetonomy alone, FluentCommunity alone, and the two together. The third configuration is what most of you will be on, and it is the one we spent the most time hammering before shipping.
Pro 1.3.8: smaller release, but the right fixes
Pro 1.3.8 is a compatibility release for free 1.3.8 plus a tight cluster of fixes. The headline work this cycle (FluentCommunity integration, BuddyPress group broadcast, space-level moderation, front-end member role management) all shipped in the free plugin. Pro caught up the rest.
- Private message reply gate. Participants can now reply to a conversation regardless of trust level. The old trust-level gate was blocking replies from newer members who had been invited into a conversation by a trusted member. The fix is small. The user-facing impact was big: people would join a thread, hit reply, and watch the form refuse them with no obvious reason.
- Reactions for logged-out visitors are now blocked client-side before the request leaves the browser, instead of firing a REST call that returned an authentication error. Less noise in error logs, faster feedback for the visitor.
- Custom Fields create endpoint no longer fatals when the Slug field is left blank. The endpoint auto-generates a slug from the field label when one is not provided, matching what every customer expected the first time they used it.
- Select, Checkbox, and Radio custom fields render on profile forms without PHP warnings. Empty option arrays used to trigger notices that were surfacing as raw text on the rendered form.
- Custom Badges create endpoint got the same missing-slug fix as Custom Fields.
- Select and Radio custom fields populated through the REST API now display every choice on the form. Plain string lists (for example
["Yes", "No"]) are normalised into the samevalueandlabelpairs the admin form produces, so a third-party tool that creates fields via the API behaves identically to the in-WordPress builder. Existing fields stored in the older shape render correctly without any migration.
None of these are glamorous. Together they are the difference between a Pro release that feels like a polished extension of the free plugin and one that feels like a separate codebase you tolerate for the features.
What this means for you, depending on the kind of community you run
Releases land more usefully when you can map them to your situation. Here is how I would think about 1.3.8.
If you run Jetonomy and FluentCommunity together
Install both 1.3.8 updates and pair your spaces from Settings > FluentCommunity. It is a two-minute job. Turn on member sync and activity broadcast (both default on). Click “Sync existing members now” once. From this point on, your community is one product to your members. Two profiles became one. Two avatars became one. New forum topics show up in the feed where they belong. Comments on those feed posts land on the canonical thread. The plumbing is invisible, which is how good integrations are supposed to feel.
If you run Jetonomy and BuddyPress together
Same story for groups. Pair the spaces, turn on broadcast, watch your group activity stream stop being a place that fills up only when somebody updates a profile. The activity round-trips back as forum replies, which is the right direction for a community where the durable conversation lives in the forum.
If you run Jetonomy alone
The headline for you is space-level moderation and front-end member role management. A 50-space site no longer needs a single overworked WP editor babysitting every flag. The space owners you trusted enough to launch a space now have the tools to keep that space healthy. The dark-mode fixes apply to you too if your theme uses a dark panel for forum content. Every other fix on the long list quietly raises the floor on day-to-day quality.
If you have not adopted Jetonomy yet
The original story behind why we built Jetonomy is on the blog. The short version: WordPress needed a forum plugin built for current-decade community sizes, with proper database tables, trust levels, Q and A spaces, and a real REST API. Two months and a handful of releases later it is the product I wished existed when we were running into the limits of bbPress on client sites. The 1.2.0 update covered the polls, BuddyPress group forums, and LMS adapters that turn it into a full community discussion platform. 1.3.8 is the release where the forum learns to live alongside the rest of your community stack.
Upgrade notes
Upgrading from 1.3.7 does not require any migration. Nothing in your database changes. Drop the update in. If you are running Pro, install free 1.3.8 first, then Pro 1.3.8. The Pro plugin checks for the matching free version on activation and bails with an admin notice if the free version is older.
If you are upgrading from a version older than 1.3.6, you will pick up rich link previews, per-type email templates, the Trending Topics block, the Forum Feed block scoped to a single space, and the compose-topic block from 1.3.7. None of those need configuration to start working.
Where to grab it
Free Jetonomy is on the WordPress.org plugin repository and on GitHub. Pro is in your Wbcom Designs account. Existing Pro license holders get the update automatically through the in-dashboard updater.
And if you are at the stage where you want a community that actually does the work, that members log into voluntarily, that does not need a daily intervention to keep the lights on, that is what we do. Wbcom Designs builds and runs Jetonomy deployments end-to-end, from the first space to the integration plumbing to the moderation playbook. Reach out and we will talk through what your community needs and how 1.3.8 changes the shape of what you can build on WordPress this year.