Product architecture

How Rogatus thinks

A simple loop, but each step has machinery behind it — categorization, identity context, sentiment, and a generation engine that turns answers into stories.

The core loop

Identity prompt

3 onboarding answers

Question pick

Curated or custom

Send

Link / email / SMS

Collect

Friend replies arrive

Report + rabbit hole

AI summary + follow-up

Rules engine
when response_count >= min_quorum(3)
  and median_response_length > 40 chars
then trigger report.generate({
       tone: blend(identity.vibe, category.color),
       roast_level: user.preferences.spicy ? "medium" : "soft",
     })

when report.published
then schedule follow_up.suggest({
       seed_question: report.question,
       motif: report.top_keyword,
       delay: "48h",
     })
Data model
User ─┬─ Identity (vibe, love_lang, superpower)
      ├─ Friend[]
      └─ Question[] ──┬─ Category
                      ├─ Response[] ── Friend
                      └─ Report ── FollowUp
Subsystems

Catalog service

Versioned question library with category sharding.

Generation engine

Composes report tone from identity + category palette.

Moderation layer

Tone check + community flags before publication.

Sentiment palette

Warm

Tender, affirming

Playful

Light, teasing

Deep

Reflective, slow

Spicy

Bold, edge of comfort