How is FluentCommunity built under the hood? Is it using CPTs or separate SQL tables (outside of wordpress post table) to store the objects like Groups, etc?
Here is a list of some separate DB tables:
`wp_fcom_chat_messages`,
`wp_fcom_chat_threads`,
`wp_fcom_chat_thread_users`,
`wp_fcom_media_archive`,
`wp_fcom_meta`,
`wp_fcom_notifications`,
`wp_fcom_notification_users`,
`wp_fcom_posts`,
`wp_fcom_post_comments`,
`wp_fcom_post_reactions`,
`wp_fcom_spaces`,
`wp_fcom_space_user`,
`wp_fcom_terms`,
`wp_fcom_term_feed`,
`wp_fcom_user_activities`,
`wp_fcom_xprofile`;
Performance gains are not really coming from custom database because at the end it's going to be the same single database that the wp instance uses. Most definitely posts are not saved under wp post types, this is not happening with any other community solution on WordPress either. The speed is so good here because it has little to do with WordPress, nothing within fcom is following theme's code, it's a single page application that doesn't care about any other plugins on the same wp instance. It's not loading other plugins everywhere like any other plugin does, it's only using wp api for user authentication. What you should be worried about is getting fcom displayed within the entire site the way it's shown on portal. They can make page templates to get their header, menu and sidebars on any page, but not on archives (without diving deep into the plugin of according archive post type). Even blog post types would never be styled properly along with fcom if fcom wouldn't work on specific themes for archives. But maybe unified style is not their goal, which I hope the other way around. As far as I understand.
What I understood is that fcommunity in theory what it does is that when you enter the portal is a "single load" and when the user moves between the different parts such as spaces and groups these are not loaded as different single pages but only the parts that are needed are loaded, so as an Ajax function.