TalkMoro — Where communities talk, solve, and grow.
TalkMoro is a modern, high-performance platform for communities, forums, Q&A, and support — built for any team, brand, product, or interest.
- TalkMoro is generally available for education tenants
We are opening education pricing for accredited schools. Same templates as everyone else — Question, Event, Guide — with FERPA-oriented retention defaults. Staff-only Announcement so it can rank as news, not as a discussion. Questions about
- 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.
- Connection pooling vs read replicas for a 50k-member forum
We used to raise `max_connections` whenever p99 login latency spiked. After about 4_000 concurrent sessions that stopped working — the wait moved to row locks on `topic_subscript...
- How we run office hours across Lagos, Lisbon, and Seattle
Northridge used to hold one live hour at 16:00 UTC. West Africa never showed up, and the recording sat unlisted for two weeks. We now publish a 20-minute recap as a Guide the same...
- Should we store markdown, HTML, or both?
TalkMoro stores `body` and `body_html`. Re-rendering on every read is a non-starter. Re-rendering on every edit is cheap. The expensive case is a renderer change (heading ids, tas...
- 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...
- Replica lag after you upvote: is 400ms too long?
The home feed reads from a replica. Upvotes write to primary and invalidate Valkey `topics:list:v3`. The surprise was not lag — it was members who vote and immediately refresh s...
- 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...
- Which community metric belongs on the homepage
We shipped a dashboard that put peak concurrent users in 48px type. Staff started optimizing for announcement blasts instead of accepted answers. We demoted the spike number and p...
- 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...
- Caching UserSummary in Valkey without stale display names
UserSummary on every comment used to cost 3 SQL round-trips. We cache it in Valkey for 45s keyed by `user:{id}:summary`. The failure mode is a display-name change that stays stale...
- 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


