# Vendor facets — Discourse. A hosted or self-hosted forum; on the Kin Score it is a support channel # (2 pts) that grades at half credit when declared as Community, plus a conditional roadmap and # changelog if the provider actually runs them as categories. Everything else it ships is the # forum's own surface, not the provider's. vendor: discourse name: Discourse website: https://www.discourse.org areas: - community registry_keys: - discourse rubric_schema_version: 0.22.0 generated: '2026-09-25' features_refreshed: '2026-09-25' basis: capability summary: >- Discourse earns a provider one check reliably: support_channel, worth 2 points, and only half of that when the forum is declared as Community, because the pointer probe does not read that type and grades it "unverified". Declared as Support, the forum is probed and Discourse forums come back live (5 of 5 probed). Topic voting (Business and up) can carry a public roadmap and a category can carry release notes, but only if the provider really uses them that way. The forum's own API, embeds and chat earn the provider nothing. features: - id: hosted-forum name: Hosted community forum (free plan; custom domain on Pro and up) description: >- A public discussion forum with categories, tags and Q&A, hosted by Discourse, on the provider's own domain from the Pro plan. source: https://www.discourse.org/pricing tier: all - id: self-hosted name: Open-source self-hosting description: The same forum software, free to run on the provider's own servers. source: https://www.discourse.org/pricing tier: open-source - id: topic-voting name: Topic voting (ideas / feature-request categories) description: >- Members vote on topics in designated categories, sortable by votes; built for ideas and feature-request categories. source: https://meta.discourse.org/t/discourse-topic-voting/40121 tier: paid - id: doc-categories name: Doc Categories description: Organizes documentation inside forum categories. source: https://www.discourse.org/pricing tier: paid - id: pinned-announcements name: Sitewide alerts and pinned topics description: Staff can pin topics and post sitewide alerts, which is how forums usually carry announcements. source: https://www.discourse.org/features tier: all - id: blog-integration name: Blog integration (embedded comments) description: Uses forum topics as the comment threads for an existing blog. source: https://www.discourse.org/features tier: all - id: discourse-api name: Discourse API and webhooks description: Everything in the forum UI is callable through Discourse's own API. source: https://www.discourse.org/features tier: all maps: - feature: hosted-forum check: support_channel layer: composite credit: 0.5 provider_must: >- Declare the forum URL in apis.yml common[]. As Community it grades "unverified" (0.5) because probe-pointers.py does not probe Community; as Support it is probed and earns 1.0 when live. note: >- 195 providers whose only support-class pointer is Community all score support_channel partial ("pointer liveness 0.5"), measured 2026-09-25. Discourse URLs that were probed as Support were 5 of 5 live. catalog_pass_rate: 0.45 facet: developer_ergonomics points: 2 baseline_pass_rate: 0.69 - feature: topic-voting check: roadmap_present layer: composite conditional: true condition: >- Only if the provider runs a public voting category as a roadmap (planned / in-progress states it maintains), not only as a request inbox, and declares it as RoadMap. Business plan and up. catalog_pass_rate: 0.011 facet: operational_transparency points: 2 baseline_pass_rate: 0.037 - feature: pinned-announcements check: change_log_present layer: composite conditional: true condition: >- Discourse ships no changelog feature. Only if the provider posts release notes to a dedicated category and declares that category URL as ChangeLog. catalog_pass_rate: 0.157 facet: operational_transparency points: 6 baseline_pass_rate: 0.438 - feature: doc-categories check: documentation_present layer: composite conditional: true condition: >- Only if the provider actually keeps its API documentation in doc categories and declares them as Documentation. Business plan and up. catalog_pass_rate: 0.453 facet: developer_ergonomics points: 4 baseline_pass_rate: 0.95 saturated: true saturated_note: >- 95% of providers with a contract, docs and a reference already earn this; the vendor cannot move it for most of its buyers. earns_nothing: - feature: blog-integration check: blog_present why: It puts forum comments under a blog the provider already runs; it does not host a blog. - feature: discourse-api check: contract_present why: Discourse's API is Discourse's, for administering the forum. It is not the provider's API contract. out_of_reach: checks: - contract_present - status_page_present - sdk_count_1 - plans_present - getting_started_present note: A forum routes people to humans; it cannot produce a contract, a status page, SDKs or plans. surface: operational_transparency: reachable: 8.0 total: 38 developer_ergonomics: reachable: 5.0 total: 42 agent_readiness: reachable: 0 total: 139 hard_rule: >- A model, not a score. Adopting this vendor changes a provider's Kin Score only when the provider publishes the resulting artifacts on its own surface; nothing here writes a score, and no sponsorship or partnership can. method: searched source: - https://meta.discourse.org/t/discourse-topic-voting/40121 - https://www.discourse.org/features - https://www.discourse.org/pricing measured: cohort: method: vendors-catalog.json detections (CNAME / header / URL shape / markup), never a name match detected: 0 in_baseline: 0 control: basis: providers earning contract_present + documentation_present + api_reference_present, minus the cohort n: 5216 metric: >- cohort_pct / control_pct = mean share of the check's points earned (derived and platform credit weighted), x100 measured_on: '2026-09-25' status: 'not measurable: 0 detected customers clear the baseline (need 20)' simulation: simulated_on: '2026-09-25' rubric: 0.23.0 population: providers publishing a contract (contract_present earned), replayable exactly providers: 8977 providers_unreplayable: 987 providers_moved: 3701 conditional_rows: excluded (they depend on what the API already does) composite_lift: median: 0.0 p75: 0.5 p90: 0.5 max: 0.5 mean_among_movers: 0.5 agent_readiness_lift: median: 0.0 p75: 0.0 p90: 0.0 max: 0.0 mean_among_movers: 0.0 facet_lift_median_among_movers: developer_ergonomics: 2.4 composite_band_moves: thin -> developing: 101 emerging -> thin: 30 developing -> strong: 21 strong -> exemplar: 6 agent_readiness_band_moves: {} method: >- each provider's own kin/checks file, the vendor's maps at their stated credit, the scorer's composite formula; from -> to, nothing written