The complete guide to embedding a Discourse forum on your website
Discourse is the open-source forum software that quietly became the default for serious product communities, open-source projects, education programs and brand-owned customer forums. It was founded in 2013 by Jeff Atwood (co-founder of Stack Overflow) and Robin Ward, ships under the MIT license, and runs more than 23,000 active forums in 2026 across self-hosted instances and Discourse's own hosted plans. Where Reddit is corporate, ad-supported and centralized, Discourse is software you install (or rent), data you own, and a community you moderate. Embedding a Discourse forum on your website turns that owned-conversation surface into a public, searchable, ever-fresh marketing asset. This guide walks through what actually matters when you choose and configure a discourse feed widget in 2026: the .json URL trick that makes every page machine-readable, trust-level filtering, the DiscussionForumPosting schema Google now ranks for, the difference between embed.js and a third-party feed widget, and how the open-source-vs-corporate split shapes the embed market.
01
The .json URL trick: why every Discourse page is a public API
One of the most under-appreciated design choices in Discourse is that every public page on every Discourse forum returns JSON when you append .json to the URL. Visit https://meta.discourse.org/latest in a browser and you get the human Topic list. Visit https://meta.discourse.org/latest.json and you get the same Topics as a structured JSON response with all the metadata you would ever need: title, slug, posters, replies, views, like_count, last_posted_at, created_at, Category id, tags, trust-level of the original poster, accepted-answer status, pinned status, archived status. The pattern works for every page. /categories.json returns the Category tree. /c/feature/13.json returns Topics in the feature Category. /tag/release-notes.json returns Topics tagged release-notes. /t/some-topic-slug/12345.json returns the full Topic with all replies. /top.json?period=weekly returns the top Topics this week. /search.json?q=schema returns search results. This was a deliberate API-first choice from Jeff Atwood and Robin Ward back in the 2013 launch, and it is the reason Discourse has the richest third-party tool ecosystem of any forum platform. The Poper Discourse Feed Widget reads exactly these public endpoints. No OAuth, no developer registration, no API key required for public Topics. We poll your forum's .json endpoints on a schedule (every 6 hours on Free, every 30 minutes on Pro), parse the JSON, cache the result on a global edge with a 97% hit rate, and serve it to your widget. The forum sees a single request per cache window instead of one per page view on your site, which means embedding is friendly to your forum's performance budget no matter how much traffic the embedding page gets.
03
DiscussionForumPosting schema: how Discourse can dominate Google in 2026
In late 2023 Google launched the Discussions and forums search feature and the Forum filter, both of which surface threads from Reddit, Stack Exchange, Quora and Discourse instances prominently in commercial-intent queries. Discourse forums now appear in roughly 25 percent of high-intent product-support queries on Google, and many of those Topics outrank the brand documentation pages they discuss. The technical mechanism is Schema.org's DiscussionForumPosting markup, which Discourse emits natively for every Topic and which Google specifically rewards with rich-result treatment. Most embed widgets ignore this on the embedding side. The Poper Discourse Feed Widget emits DiscussionForumPosting JSON-LD for every Topic it renders, with author (the original poster's username), datePublished, replyCount (or interactionStatistic for likes), articleBody (the first post excerpt) and a sameAs link back to the canonical Discourse Topic URL. The result is that your embedded Topic block on your marketing page is eligible for the same Discussions rich-result treatment as the original on the Discourse domain, which is a meaningful SEO win on product-comparison and help-center pages. The widget also respects Discourse's own canonical URL convention so your embed never competes with the source for ranking, which both protects your forum's organic traffic and satisfies Schema.org's attribution requirement for DiscussionForumPosting markup.