Felt Faction iOS app v9 — invite generation in app, no Telegram DM

Writing Search related

Brainstormed 2026-06-16. Two changes from v8:

1. Invite link generation moves into the iOS app (not the

Felty Telegram bot).

2. Felty's Telegram DM channel is gone (user deleted it).

The Universal Link mechanism is unchanged. The generation surface

and distribution surface both move into the iOS app, with

the system share sheet handling outbound distribution.

The two changes (verbatim from user)

"the code generaltion for the invite link should also be withen

app. felty doesn't have a DM channel anymore I deleted it."

  1. Invite generation is in the iOS app. Admins (Connor/Nathan)

use the iOS app itself to generate invite links, not a separate Telegram bot.

  1. Felty's Telegram DM channel is deleted. The Telegram bot's

DM functionality is gone. Felty exists as a character in the iOS app, but there is no separate bot DM surface for invite distribution.

Implications

Implication 1: iOS app is the only admin surface for invites

The previous v1 plan had:

The new design:

see member features

Member," enters name, picks channel)

channel (Telegram, iMessage, email, copy, QR, etc.)

delivery is via the share sheet — not a separate bot

This is cleaner: one app, two roles, no separate bot to maintain. The Telegram bot workspace at ~/.openclaw/workspaces/felty/ may still exist (for future group-chat use cases) but it's no longer the DM surface for invites.

Implication 2: Felty is now purely an in-app character

Felty exists as a character in the iOS app:

board, share-sheet text

Felty does NOT:

This is actually a stronger design — Felty's voice is consistent across every surface because there IS only one surface (the iOS app). The character is unified.

Implication 3: Single app, role-aware

The iOS app has two modes:

settings (their own profile)

management, live settlement board, chip set registration, season config, member management

The role is determined at auth time. Supabase members.role field (or similar) drives the UI. Same app, role-gated features.

This means the web app shrinks further. For v1, the web keeps:

finale, large-scale analytics)

But invite generation, the most common admin action, is now in the iOS app.

The new auth flow (v9)

  1. Admin opens the iOS app. Connor (logged in as admin) taps

"Invite Member" in the admin surface.

  1. Admin enters name + tier. "Olivia, VIP." The iOS app

generates a token in Supabase, creates a Universal Link.

  1. App composes Felty's message:

"Olivia. The House has called. The Felt Faction awaits.

Tap to join: https://feltfaction.app/invite/felt_8a2f9c4b7e1d"

  1. App shows channel picker. "Send via: Telegram / iMessage /

Email / QR / Copy / Other."

  1. Admin picks channel. Tapping a channel opens the system

share sheet with the pre-composed message (Universal Link + Felty's text).

  1. Admin sends. The iOS share sheet delivers the message

through the chosen app (Telegram, iMessage, Mail, etc.). Olivia receives the message in her native messaging app.

  1. Olivia taps the link on her iPhone. iOS opens the Felt

Faction app (or App Store if not installed).

  1. App parses the token. Welcome screen: "Welcome, Olivia.

VIP. Continue with Apple or Google."

  1. Olivia taps Sign in with Apple. One tap. Done.
  2. App confirms the invite was used. Sends confirmation to

the admin via in-app notification: "Olivia accepted. The House has 11 members." Felty-voiced.

The whole flow: 60-90 seconds. Zero copy/paste (the user doesn't have to copy anything; the admin uses share sheet). No separate bot. Felty is unified.

v1 plan updates (v9)

CLI)" → "iOS admin surface for invite generation (admin role in the iOS app, role-gated UI)"

admin" → "Felty admin messages: Connor can compose in the iOS app (admin role), distributed via share sheet"

generates token + Universal Link, sends via recipient's preferred channel" → "iOS invite generation flow (admin enters name in app, app generates token, composes Felty's message, opens system share sheet for distribution)"

notification, Felty-voiced)

admin surface for invite generation. Felty composes message text; system share sheet distributes via recipient's chosen channel. No separate Telegram bot."

see admin features, members see member features). Web app shrinks to marketing/static + any un-migrated admin actions."

What the design looks like end-to-end (v9)

  1. Connor opens the iOS app. Role: admin. He sees the admin

dashboard.

  1. Connor taps "Invite Member." Enters "Olivia, VIP." Taps

"Send."

  1. App composes Felty's message + Universal Link. Opens share

sheet.

  1. Connor picks "Telegram." Telegram opens with the message

pre-composed, Olivia's contact selected.

  1. Connor taps Send. Olivia receives the message in Telegram.
  2. Olivia taps the link. iOS opens the Felt Faction app.
  3. App shows welcome screen. Olivia signs in with Apple.
  4. App confirms invite used. In-app notification to Connor:

"Olivia accepted."

  1. The House has 11 members.

The whole flow is on the iOS app. The share sheet is the bridge between the app and the rest of the phone's messaging surfaces. Felty is the voice, not a separate service.

See also

v8 (Universal Link + Felty as the sender via Telegram DM). Superseded by v9: Felty's Telegram DM is gone; invite generation moves into the iOS app; system share sheet is the distribution surface. v8's Universal Link mechanism is still valid.

the Telegram DM surface.

Published and managed by TARS, an AI co-author built on Nathan's gbrain.