#docs
Guides and documentation
- Q4 roadmap: crawlable topics, not more types
We will SSR more of the topic body. We will not add a Clinic type. Entity overlay covers that graph. Pinned so it stays on the feed through September.
- Community guidelines that still work at a university
The same deploy can be a campus desk, a product forum, or a partner board. Our old guidelines said "ship the feature" on every page. We rewrote them around the actual templates: q...
- Time-to-first-accepted-answer as a real SLO
Support volume looks healthy until you chart hours from question to `is_solved`. Last month p50 was 6 hours and p90 was 3 days — almost all of that p90 was weekend campus tickets...
- Generic categories vs industry-named spaces
A dental clinic asked for a Patients topic type. That would have exploded the type enum and wrecked search filters. We kept the templates (question, event, review) and let them ad...
- Importing 18,000 Discourse permalinks without a 404 weekend
We imported 18_000 Discourse topics. Old `/t/slug/123` links still show up in Google. TalkMoro keeps `topic_slug_history` and 301s type prefixes (`/help` → `/questions`). The re...
- Public incident posts that people actually finish reading
The template we use internally: 1. What members saw. 2. What was actually down (API, search, or uploads). 3. When it started and ended in UTC. 4. What we changed. 5. What we will ...
- Closing duplicates without deleting the URL Google already indexed
Closing a duplicate Issue as `duplicate` keeps the URL live, which is good. Staff sometimes deleted the thread instead, and Google kept the 404. Process now: lock, status=`duplica...
- The quiet cost of client-only topic bodies for AI crawlers
Google can render JavaScript. Many AI crawlers still will not. If the first HTML response is a shell, citations skip you. TalkMoro treats permalinks as the ranking unit. Search result pages stay noindex, follow and never go in the sitemap.
- A field guide to schema.org for community products
Forums are not blogs. DiscussionForumPosting wants real comment nodes. Q&A wants acceptedAnswer only when a human marked it. Do not emit MedicalCondition because a campus clinic uses the software. Put the clinic in entity_type=organization
- How TalkMoro thinks about the about graph
Entity overlay is how a generic platform talks about a specific product. A release note is always a changelog. If entity_type=software , we also emit SoftwareApplication with the version tag. Schools set course . Shops set product . Booksto
- Why we keep /search out of the sitemap
Internal search is a member tool. Indexing ?q= pages creates doorway spam and duplicate titles. robots.txt allows GPTBot and OAI-SearchBot on topics. It does not invite them to rank a SERP of SERPs. The GET form still exists so SearchAction
- Designing a composer that does not scare non-engineers
The old picker said Feature Request and Bug Report. Faculty read that as "this product is for GitHub people". Renaming to Idea and Issue, then adding Article, Guide, Event, and Job, let a registrar post without translating our jargon. We st
- Bytes, not binary mebibytes, in product copy
Upload limits in TalkMoro use decimal bytes: 1 MB = 1_000_000 bytes . That matches invoices, object-storage bills, and what members see in the browser. This piece exists because we kept arguing in stand-up. Putting it in an Article means su
- A campus playbook for the first two weeks
Week 1: seed Questions from last year's FAQ, staff-only Announcements for term dates, one Event for orientation. Week 2: turn on Reviews for dining, keep medical and legal advice off the forum. Templates did more than a custom School type w
- Writing changelogs that humans and crawlers both finish
A good Release has a version, a date, and a list of user-visible changes. Dumping git log into HTML is how you get zero rich results. We ask staff for three bullets max in the excerpt field (300 characters) and leave the rest in the body. V
- Moderation queues as a product surface
Flags are not a failure of the community. They are a queue. We show staff the template type first so an Issue with critical severity is not buried under a Poll. The same queue distinguishes spam from a duplicate permalink we should 301, not
- Internationalizing a forum without duplicating URLs
html lang comes from the site locale. We do not mint /fr/questions/slug copies that compete with the canonical permalink. If a tenant needs a second language, they get a second deploy or a translated body — not a doorway path that splits ra
- Ten templates, one entity graph
Every customer asked for "their" type. Software. Clinic. Course catalog. That is how platforms become unmaintainable and unrankable. Ten core templates plus three optional ones, and one entity graph. This article is the public rationale so
- Can a question be about a course without a Course template?
We want students to ask "when is the midterm" with `entity_type=course` and the official catalog name. Is that enough for Google, or do we also need a HowTo? The midterm itself is...
- How do I change a topic from Discussion to Guide after publish?
I wrote a long how-to as a Discussion by mistake. Admin edit shows the template picker. Will the slug prefix 301 if I switch types, or do I need to recreate the post? I do not wan...
