Skip to main content

API Gaps That Limit Third-Party Plugin Development

I have been evaluating Fluent Community for a possible migration from BuddyBoss, and I'm really impressed with its modern architecture and clean codebase compared to the legacy codebase and technical debt of integrated forks in BuddyBoss. However, Fluent Community still lacks critical developer extensibility APIs, which has me torn.

Given that, I shifted my focus from "should I migrate?" to the pre-requisite "can I extend Fluent Community?" - and in doing so I identified several key gaps in Fluent Community's developer API that, if addressed, would make it significantly easier to build the kinds of plugins and integrations that already exist in the BuddyBoss ecosystem.

Correct me if I missed any existing extension points, but here is what I discovered in my analysis of Fluent Community, and what I propose should be added:

  1. Extend FluentExtendApi::addMetaBox() to support 'user' object type - currently works great for Spaces and Courses but there's no equivalent system for User Profiles.

  2. Add fluent_community/register_profile_nav filter for custom profile tabs - Profiles have navigation tabs, but they're hardcoded and there's no programmatic way to register custom profile nav tabs (like BP's bp_setup_nav()).

  3. Document REST API extension patterns - the framework-based routing is good for core, but it's not clear how third-party plugins should register REST endpoints that integrate with Fluent Community's auth/permissions system.

  4. Create template hierarchy documentation for third-party plugins - There is support for select themes with fallbacks but there's no clear template hierarchy for plugins to add custom templates. Third-party plugins need to render UI that matches Fluent Community's design system

  5. Add fluent_community/register_activity_type for custom feed entities - There is no API to register custom entity types that can post to feeds (e.g., "User posted a review", "Business updated hours"). This limits the types of activities that can integrate with Fluent Community's social stream.

  6. Build widget/block registration system - There is no system for third-party plugins to add widgets to profile sidebars, space pages, or portal areas.

Is there a roadmap for third-party developer APIs or existing extension points that I'm missing? I do appreciate Fluent Community's potential, but it needs to support an expanding plugin ecosystem to truly compete. I'm excited to contribute if I can!

https://github.com/WPManageNinja/fluent-community-docs

Ross FCA

New hooks and filters are added with every release and overall WPMN are very supportive of 3rd party extensions for all of their plugins, and build them with that in mind. There is definitely gaps and the ones you've identified are true. There is some basic docs here but they are not as extensive as forms or cart - https://github.com/WPManageNinja/fluent-community-docs
I can only imagine things will improve as the plugin matures, but there's enough there just now to get started. For things like Custom Profile fields I'm having to come with hacky solution that I can hopefully swap out for native ones when they arrive.
What sort of stuff are you looking to build?

Brandon Meyer

Ross FCAΒ I was hyper-focused in my assessment on gaining feature-parity with the plugins and customizations that I've implemented in BuddyBoss over the years, and what is still missing in Fluent Community. So I'm not saying that Fluent Community doesn't have any developer tools, but the list that I provided represents gaps that make it significantly harder to implement similar features via plugins and customizations in Fluent Community as you kind of alluded to. However, I would also argue that these are areas that are commonly extended in these kinds of platforms, such as the social profiles, activity feed, messaging system, sidebars etc...

Michael Hall

Ross, wanna make a by-donation add on for fluent cart :)

+1

Brandon Meyer

The new profile tab filter included in version 2.1.0 only sets the default tab in profiles, but we still can't register new tabs like `bp_core_new_nav_item()`in the profiles. It's a step in the right direction and demonstrates that they are at least thinking about profile customization opportunities.