No internet connection
  1. Home
  2. Talkyard

Idea

By @IvanTheGeek
    2026-11-05 18:11:35.527Z

    Worked for 12s

    Research findings: Cross-posting and federated discussions in Talkyard

    I haven't found an existing Talkyard feature that synchronizes a topic and its replies between two independent forums. I searched the Talkyard source repository and its public support forum for cross-posting, federation, remote forums, and ActivityPub.

    What you're proposing is more sophisticated than ordinary cross-posting: one logical discussion appearing in multiple independently administered communities, with replies from either community visible in the others.

    That's a feature worth distinguishing from Talkyard's existing multi-site hosting.

    What I could establish

    Capability Finding
    Multiple forums on one Talkyard installation Supported
    Shared forum and embedded blog comments Supported within a site
    Link from one forum to a topic on another Possible using ordinary links
    Copy a topic to another forum No verified built-in cross-post action
    Automatically synchronize replies between forums No implementation found
    Federate discussions with another Talkyard server No implementation found
    ActivityPub federation No implementation found

    Talkyard explicitly advertises that one installation can host many communities, and that a forum's accounts can also work for its embedded blog comments. But those features don't establish cross-site topic synchronization. talkyard.io

    1. Your two use cases are technically different

    Case A: Your forum and Magnus's support forum

    Ivan the Geek

    Your Talkyard category

    Talkyard Support

    Magnus's forum

    Proposed federated discussion

    One logical topic

    Replies, authors, timestamps, and moderation metadata exchanged across sites

    This requires communication between independently operated Talkyard installations, along with trust, identity mapping, and authorization.

    It would be a genuine federation feature.

    Case B: Ivan the Geek, Hardwareology, and Cheddar forums

    If all three are hosted by the same Talkyard deployment, you could potentially implement a simpler form of cross-posting entirely inside Talkyard.

    For example, a topic could have one canonical discussion record but multiple placements:

    Topic Visible in
    OpenWrt hardware evaluation Ivan the Geek + Hardwareology
    CheddarBooks architecture Ivan the Geek + Cheddar
    General Talkyard improvement Ivan the Geek + Talkyard category

    Instead of copying posts, both forum views could reference the same underlying discussion.

    That would avoid synchronization conflicts, duplicated posts, and delayed updates.

    However, Talkyard would need changes to its site-level data access, permissions, topic placement, and rendering logic. Merely hosting the sites in the same containers doesn't make their topics shared.

    2. A relevant existing Talkyard discussion

    I found a support-forum discussion titled “Comment section being equal to a forum” from March 2021.

    The user wanted a podcast episode's comment section to be the same discussion thread visible in their forum. forum.talkyard.io

    That's conceptually related to your idea of one discussion appearing in multiple places, although it concerns embedded comments and a forum rather than federation between independent forums.

    Talkyard already has mechanisms for connecting embedded discussions to forum topics. That may provide reusable UI concepts, but it doesn't solve cross-site identity and synchronization.

    I did not find a clearly documented Magnus proposal for two-way federation between independent Talkyard forums in the public discussions searched.

    3. There is an existing federation ecosystem worth considering

    This problem has already received attention in ActivityPub-based forum software.

    For example, NodeBB has been developing federated cross-posting, including discussions about synchronizing content between remote communities.

    A 2025 discussion explored how different forum platforms represent cross-posts, and 2026 discussions describe the social and moderation challenges of sharing discussions across instances. SocialHub +1

    There is also a proposed specification, FEP-d36d: Sharing Content Across Federated Forums, which addresses shared content between federated communities. fep

    This is worth studying before designing a Talkyard-specific protocol.

    4. What I would propose for Talkyard

    I'd separate the functionality into two features.

    Feature 1 — Shared topic placements

    A topic can appear in multiple categories or sites hosted by the same Talkyard installation, without duplicating its replies.

    Feature 2 — Federated topic sharing

    An administrator or authorized user can propose sharing a topic with another Talkyard installation. The receiving community accepts or rejects it. Once accepted, the two instances exchange permitted posts and replies.

    For the federated version, I would establish these rules:

    • Each post has one originating authority and a globally unique identity.

    • Replies retain their original authorship and parent relationships.

    • Replication is idempotent, so retries don't create duplicates.

    • Each community retains independent moderation and visibility controls.

    • Private content is never federated without explicit authorization.

    • Deleted or edited posts have defined propagation behavior.

    • Federation relationships can be revoked without corrupting historical discussions.

    The identity federation we've been discussing would help authenticate authors, but it would not by itself authorize another forum to publish or replicate their content.

    5. How this fits your event-sourced architecture

    This could be modeled as an extension rather than a traditional database synchronization mechanism.

    For example:

    TopicShareProposed
    TopicShareAccepted
    TopicFederationEstablished
    PostPublished
    PostFederated
    RemotePostReceived
    RemotePostAccepted
    TopicShareRevoked
    

    Each forum would maintain its own local projection of the shared discussion.

    That would align with your event-sourcing approach, although Talkyard itself is not built around this event model, so integration would require an adapter or modifications.

    6. My recommendation

    For your immediate needs, I'd start by proposing shared topic placements within one Talkyard installation, because it's simpler to implement and would be useful for your Hardwareology and Cheddar communities.

    Then design cross-instance federation as a separate feature, ideally using existing ActivityPub conventions rather than inventing an entirely new protocol.

    The most interesting architectural question is whether you want one shared discussion with a single authoritative copy of every post, or separate discussions that exchange replies while maintaining independent moderation.

    I favor one authoritative origin per post, with each participating forum maintaining its own view. That provides a cleaner model for authorship, edits, deletion, synchronization, and recovery.

    The official resources are Talkyard source repository and Talkyard development and support forum.

    I would treat the current status as not implemented, but architecturally feasible, with the intra-installation sharing feature being the simpler starting point.

    • 1 replies
    1. I
      @IvanTheGeek
        2026-11-05 18:19:30.309Z

        Worked for 14s

        Yes, a Talkyard plugin system could be an excellent way to implement cross-forum discussions. And I found something particularly interesting: Magnus has already documented an architectural decision to use WebAssembly (WASM) for Talkyard plugins.

        However, there's an important distinction: I found evidence of a planned plugin architecture, but not confirmation that Talkyard currently has a working, general-purpose plugin system.

        1. What Magnus has actually said about plugins

        In Talkyard's architectural decisions, Magnus has a section titled Use WebAssembly for plugins.

        His reasoning includes:

        • WASM plugins could survive a future rewrite of the Talkyard server in another programming language.

        • Plugins could be written in languages that compile to WASM, including Rust and AssemblyScript.

        • WASM could potentially run in browsers and different server runtimes.

        • The small binary size and lack of a required garbage collector are attractive properties.

        That's a genuine architectural decision, not just a casual suggestion. GitHub

        I also found a September 2021 discussion where Magnus explicitly said Talkyard did not yet have a plugin system and most functionality was built in. That's historical evidence, not proof of its status in 2026. Hacker News

        And Talkyard's current developer information page still invites people interested in plugins and chatbots to start a discussion, rather than pointing to an established plugin SDK or installation process. forum.talkyard.io

        So I would currently classify plugin support as planned or exploratory, not verified as implemented.

        2. More importantly, I found an existing extension mechanism: webhooks

        While inspecting the source, I found something more immediately useful for your cross-forum idea than the planned WASM plugins.

        Talkyard already contains a webhook subsystem.

        The relevant files include:

        • appsv/model/src/main/scala/com/debiki/core/webhooks.scala

        • appsv/server/talkyard/server/events/WebhooksController.scala

        • appsv/server/talkyard/server/events/WebhooksSiteDaoMixin.scala

        • client/app-staff/admin/api-panel.staff.ts

        The implementation includes outgoing event delivery, configurable destination URLs, custom HTTP headers, retry handling, delivery status, and an administration interface.

        There are some important limitations in the inspected code:

        Feature Current source-code finding
        Outgoing webhook configuration Implemented
        Retry failed deliveries Implemented
        Custom request headers Implemented
        Admin UI Implemented
        Multiple webhooks per site Currently restricted to one
        Event-type filtering Fields exist but are commented out
        Webhook deletion Explicitly unimplemented
        Cross-forum posting Not implemented

        The controller also contains restrictions for production environments and nondefault sites. So we would need to verify the webhook functionality is enabled in your particular Talkyard deployment before relying on it.

        This is based on the current source files, not a successful live webhook test.

        3. How a cross-forum extension could work

        Rather than modify Talkyard's core for every integration, we could introduce a separate Talkyard Federation Bridge.

        forum.ivanthegeek.com

        Topic created or reply published

        Outgoing webhook

        Federation Bridge

        Tracks shared topics, identities, permissions, delivery, and synchronization

        Authenticated API request

        forum.talkyard.io

        Corresponding topic or reply

        Same process in reverse

        This is a proposed architecture. Magnus would need to enable or approve the receiving-side integration on his forum.

        The bridge would need to maintain a mapping between the two forums' topic IDs and post IDs. It would also need to handle edits, deletions, duplicate deliveries, author attribution, and moderation.

        The webhook handles notification; a suitable authenticated Talkyard API must handle publishing the corresponding content. I haven't yet verified that the existing public API exposes every write operation this design requires.

        4. Plugins versus an external bridge

        Approach Advantage Disadvantage
        Native WASM plugin Could integrate deeply with Talkyard's UI and internal events General-purpose plugin runtime not verified
        Webhook + external service Separate deployment; potentially works without modifying core Depends on supported events and write APIs
        Talkyard core modification Full control of topic and reply behavior Requires maintaining upstream-compatible changes

        For your initial experiment, I would favor the webhook and external-service approach.

        It also aligns with your NEXUS event architecture: preserve incoming events, project them into a federation model, and generate outbound commands independently.

        5. What I'd investigate with Magnus

        The most useful next step is to ask Magnus about two things together: his WASM plugin plans and whether the existing webhook/API subsystem is intended to support integrations like federated discussions.

        In particular, we need to establish whether a plugin or API client can subscribe to post-created, post-edited, and post-deleted events, and whether it can publish a reply with a specific remote author identity.

        My conclusion: Talkyard's planned WASM plugin architecture is promising, but its existing webhook subsystem may be the more practical starting point. We don't necessarily need to wait for a full plugin framework to prototype cross-forum synchronization.

        The most important remaining technical question is whether Talkyard's webhook event stream and write API are sufficiently complete to support two-way replication without modifying the core.