Sami
One workout per day
People want to move. They open YouTube — ten million videos. Twenty minutes of browsing, they give up, turn on Netflix. The problem isn't laziness. Every day you need to decide again: what to do, how long, what level.
Sami is a Telegram channel that removes this choice. One workout per day. Just a mat. Stretching, strength, mobility, yoga, breathing, cardio, recovery — seven categories, seven days.
The name
100+ naming options explored in Figma. Alternatives: be•come, do•it, m:ove, gr↑ow, al•ign, r•oot. Each tested for pronunciation, memorability, Telegram username.
"Sami" won. Double meaning in Russian: independence — you do it yourself, no trainer. Togetherness — we do it ourselves, together.


Brand
Six values: health, self-love, aesthetics, community, simplicity, honesty. Each mapped to an archetype — from Caregiver to Warrior.
Positioning built on contrast. Typical fitness app: neon, equipment, 5-screen onboarding, "fix your body." Sami: zen-minimal, one mat, one tap, "your body is a partner, not a project."
Tone of Voice in four layers. Support: "6 minutes for your shoulders to say thank you." Honesty: "Heart rate +20 bpm — that's normal." Beauty: "Movement looks as good as you feel." Motivation: "Sharpening the progress katana?"
Visual style: minimalism, real people without retouching. Logo — wordmark "сами" in an oval. Eight fonts explored, PP Right Grotesk chosen.


Competitor analysis
Four apps dissected screen by screen: Peloton, FitOn, Freeletics, BetterMe. Onboarding, subscription model, tone, visual language. Each has its own motivation style: from "before and after" to strength gamification.
One conclusion: all build their product around equipment and body transformation. Sami occupies the empty space — minimalism, a mat, a ritual without pressure.

Challenges
One challenge is 21 days. Three full weeks. Each day is tied to its category: Monday — stretching, Tuesday — strength, Wednesday — mobility. On top of 21-day challenges, there are weekly challenges — short goals for the week. It's a ritual, not a program. No need to plan. Open the channel — do it — close it.
After a workout you can tap "I did it" in the discussion. The bot counts your streak and awards XP. Each member has a profile with a level — more workouts, higher level. You can save a workout to favorites and return to it later.


Where content comes from
Every day at 19:00 MSK the bot searches YouTube for workouts using curated keywords. Each video is scored: views (35%), likes (30%), channel authority (20%), completion rate (15%). The main filter is brand values. 70+ patterns reject content with "fix your body" rhetoric, weight loss focus, or competitive framing. Only calm, instructional bodyweight videos pass through.
Search results go to an admin panel. The admin selects videos and approves publication manually. YouTube is restricted in Russia, so the bot downloads the video, validates the codec (H.264 for Telegram), transcodes via ffmpeg and publishes as a native file. Smart compression automatically adjusts bitrate and resolution to fit Telegram limits — no manual tuning needed.
Safe space
The discussion group is protected by multi-layered moderation:
- Brand captcha — 3 questions about Sami
- Goal quiz — rhythm, flexibility, strength, or "just browsing"
- Personalized welcome DM based on the selected goal
- Hard spam filter: crypto, gambling, fraud
- Cooldown for new members, night mode, reputation system
Communication tone — warm, no pressure. The bot doesn't motivate, it records: "You did it. 5 days in a row."
Three agents
The system runs on three autonomous agents:
Strategist — runs weekly via launchd. Analyzes metrics, backlog, content. Produces tasks and keywords for search.
Community bot — Railway 24/7. Manages moderation, maintains user profiles, tracks streaks. Publishing via admin panel with manual approval.
Analytics — embedded bot module. Daily report at 00:30 + weekly summary on Sundays: subscribers, posts, completions, retention.
Process
The entire project — from concept to production — by one person.
- Product concept and positioning
- Naming, visual identity, communication tone
- Bot UX: onboarding, moderation, milestone messages
- Three-agent system architecture
- Development, tests, CI/CD, monitoring
Stack
Bot: TypeScript, grammY, SQLite (WAL), node-cron, yt-dlp, ffmpeg
AI: Claude API (strategist + analytics)
Infra: Railway 24/7, GitHub Actions (CI + backups), launchd (strategist)
Quality: Vitest (391 tests, ~35% coverage), pre-commit typecheck, CodeRabbit reviews