Every month we document exactly what we built with AI — what worked, what didn't, and how to replicate it. No technical degree required. If you can copy and paste, you can do all of this.
Telegram has a hidden feature called "Topics" that turns one group chat into separate project channels. Add your AI bots once. Each project gets its own thread. Free, built-in, takes 5 minutes to set up.
We were running 5 active projects with 2 AI assistants. Homepage redesigns, iOS app development, video production, shop, social media — all in one Telegram chat. Every day the same problem: "Wait, which project are you answering about right now?"
Then we found the fix already built into Telegram. It took 5 minutes.
Just Telegram. That's it. No extra apps, no subscriptions, nothing to install.
Tap the pencil/compose icon → New Group → give it a name like "My Projects HQ". Add yourself and your AI bots as members.
Open the group → tap the group name at the top → Edit → scroll down until you see "Topics" — turn it on. The group now has separate threads. A "General" topic appears automatically.
Tap the ✏️ icon → New Topic. Create one for each project. Examples: "Homepage", "iOS App", "Videos", "Shop", "Finance". Pick an emoji and color for each so they're easy to spot.
Open web.telegram.org in a browser → click your group → click on a topic. Look at the URL in your browser. It will look like: web.telegram.org/k/#-1001234567890_15 — the number after the underscore (15 in this example) is your topic ID. Write these down — you'll need them when setting up cron jobs or asking your AI to send messages to specific topics.
In your AI setup, assign roles clearly. Example: "You only respond in the Homepage topic. When someone messages in iOS App, stay silent unless directly asked." Without clear role rules, both bots answer everything and it becomes noise.
You open Telegram. You see your group. Inside: Homepage, iOS App, Videos, Shop. Each one is a clean, separate conversation with its own full history. You tap "Homepage" and immediately see every decision, every result, every piece of work — perfectly organized, searchable, timestamped.
When your AI sends you a report, it goes to the right topic. When you ask a question, your bot knows exactly which project you're in. No more confusion.
Every decision you and your AI made is in that topic thread. When you come back to a project after two weeks away, you don't need to remember anything — just scroll up. It's better documentation than most companies keep, and it costs nothing.
If your AI bot replies to every message in every topic, it becomes annoying fast. Make sure you tell it: "Only reply when I'm directly asking you a question, or when you have something important to report. Otherwise, stay quiet." This one rule makes the whole setup work.
Instead of uploading from your home computer, trigger the upload from your web server. Your server has datacenter internet — it's 20–100× faster. A 40MB video that takes 10 minutes from home? Done in 4 seconds from the server.
Here's something most people don't think about: your home internet is fast for downloading things but slow for uploading them. When you upload a video to YouTube from your laptop, you're limited by your home upload speed — usually 5 to 20 Mbps.
Your web hosting server lives in a datacenter. Datacenter connections are 100 to 1,000 Mbps in both directions. If you store your video on the server first, and then trigger the upload from the server — the video goes from server → YouTube at full datacenter speed. You're not involved at all.
Instead of keeping videos on your laptop, upload them to your server via FTP or your hosting file manager. Most shared hosting plans give you plenty of storage. This is your "video library."
A button that calls your server with the video filename and target platform. Your server handles the actual upload. You just click a button — from your phone, from a café, from anywhere.
Tell your AI: "I have a PHP web server with a video file at /video/myvideo.mp4. I want a button in my admin panel that, when clicked, uploads that video to my YouTube channel using the YouTube Data API. Here are my API credentials: [paste credentials]." It will build the full thing for you.
Video file size: ~39MB
Upload from home laptop: estimated 3–5 minutes
Upload from web server: 4 seconds
Method: one button click in our video manager
Think of your web server as your always-on, always-fast production machine. Your laptop is just the remote control. Anything that moves large files — video uploads, image batch processing, sending newsletters — should happen from the server, not through your home connection.
We built a script that pulls view counts from YouTube, X (Twitter), and TikTok every morning and evening, and sends a neat summary to Telegram — including what changed since last time. Set up once, runs forever.
Checking three platforms manually takes time and honestly never happens consistently. We automated it. Every day at 9 AM and 6 PM, a Telegram message arrives with a summary like this:
📊 Video Stats — Feb 22, 18:00
▶️ YouTube — 12,600 total views, 42 subscribers
• You are my SuperGirl — 185 views (+12 today) ❤️ 3 likes
• Warm Spin Dry Repeat — 175 views (+8 today) ❤️ 2 likes
𝕏 Twitter / X
• "My neighbor said..." — 14 views (+3) ❤️ 1 like
• "Tonight 8PM" — 10 views (no change)
YouTube: Go to Google Cloud Console → Create a project → Enable "YouTube Data API v3" → Create OAuth2 credentials → Follow the authorization flow to get a refresh token. (Ask your AI: "Walk me through getting a YouTube Data API v3 refresh token step by step.")
X/Twitter: Go to developer.twitter.com → Create an app → Get your API Key, API Secret, Access Token, and Access Token Secret.
Give your AI this prompt exactly:
"Write a Node.js script that: (1) fetches my top 5 YouTube video stats using my refresh token, (2) fetches my last 10 tweets with impression counts using my Twitter bearer token, (3) compares the numbers to a saved history file and shows the difference, (4) sends the results as a Telegram message. Use dotenv for credentials."
It will write the complete script. Save it as video_stats.js.
Create a file called .env in the same folder. Add one line per credential:
If you use OpenClaw, ask your AI to add a cron job. If you use a regular server, ask your AI: "Add a cron job that runs 'node /path/to/video_stats.js' at 9 AM and 6 PM every day in the Europe/Berlin timezone."
Seeing 12,600 total views tells you nothing new. Seeing +12 since yesterday morning tells you which video is gaining traction right now. That's your signal to double down — post more like that, engage with those comments, maybe boost it. Track velocity, not just totals.
Add a "Share to YouTube" button to any admin panel. Your server does the upload. One click from your phone = video live on YouTube in seconds. No laptop. No waiting.
If you already have a video manager or admin panel (even a simple one), adding a YouTube upload button is easier than it sounds. The heavy lifting is done by Google's YouTube API — you just need a few credentials and a short script.
Copy this prompt and send it to your AI assistant:
Create a new project. Name it anything — "My YouTube Uploader" works.
Search for "YouTube Data API v3" in the API library. Click Enable.
Credentials → Create Credentials → OAuth Client ID → choose "Desktop app". Download the JSON file. Your Client ID and Client Secret are inside it.
Ask your AI: "I have a YouTube OAuth Client ID and Secret. Walk me through getting a refresh token that allows uploading videos to my YouTube channel." It will give you a step-by-step process you do once. The refresh token never expires (unless you revoke it).
You click "Share to YouTube" on any video in your manager.
A spinner appears. After 4–8 seconds:
✅ Done — https://www.youtube.com/watch?v=yourVideoId
The URL is automatically saved in your video record.
Images generated directly by AI tools often look slightly "off" when posted to social. Videos look dramatically better. Fix: generate a short video instead, extract one frame from it, use that frame as your image.
We were generating character images with Grok's image generator and posting them directly to social channels. The images were technically fine but something felt wrong. People couldn't name it but engagement was noticeably lower.
When we switched to generating short video clips and extracting frames, the quality difference was immediately obvious — even to us. The same character, same prompt, but the video-extracted frame looked like a still from an animated film. The image-generated version looked like... an AI image.
Use your AI video generator (Grok, Runway, Kling, etc.) with the same prompt you'd use for an image. Even 3–5 seconds is enough. The video renderer produces much better textures, proportions, and lighting.
If you have ffmpeg installed, ask your AI: "Give me an ffmpeg command to extract the single best/sharpest frame from myvideo.mp4 and save it as thumbnail.jpg." If you don't have ffmpeg, just pause the video at a good moment and screenshot it — it works too.
Post the extracted frame to Instagram, X, Facebook. Post the full video to TikTok, YouTube Shorts, Instagram Reels. You get two assets from one generation.
Posted 3 AI image-gen character images in one week. Engagement was noticeably lower than previous posts. Switched to video-extracted frames the next week. Engagement recovered immediately. We never went back.
If you tell your AI "follow the instructions in that file", it often ignores them halfway through. Put your important rules directly in the message, not in a separate file. It takes an extra minute and saves hours.
We have a detailed "character bible" — a document with visual specs, personality rules, and production guidelines for our animated characters. For weeks we were telling sub-agents: "Read the character bible and follow it exactly."
Sometimes it worked. Sometimes they'd skip key rules. We couldn't figure out why it was inconsistent — until we realized: AI agents process instructions from most-to-least recent. Rules in a file they read early in the process get "pushed back" in memory as the task continues. Rules stated directly in the task prompt stay front of mind throughout.
Instead of: "Read rules.md and follow it."
Do this: Copy the most important rules directly into your message.
Longer messages cost slightly more in AI credits. But a sub-agent that produces wrong output because it forgot a rule costs you: the generation fee, your time reviewing, and the re-run fee. Inline rules win on economics every time, every project.
When moving or changing login credentials, always confirm the new ones work BEFORE removing the old ones. We skipped this step and got locked out of our admin panel for 45 minutes.
We were moving our API tokens to a safer location. We asked our AI agent to handle the migration. Being thorough, it deleted the old tokens as part of "cleaning up." But it hadn't confirmed the new location actually worked yet. We were immediately locked out.
Recovery meant digging up credentials from another device, reconstructing the auth config, and 45 minutes of stress that didn't need to happen.
Add them to the new file, new format, new place — whatever the change is. Don't touch the old ones yet.
Actually log in. Actually make a real request. Confirm with your own eyes that it works. Don't assume — verify.
Don't delete — rename to .bak or add _OLD to the filename. Keep it for a day or two before permanent deletion. Recovery is free. Getting locked out is expensive.
Add this to your prompt: "Important: do NOT delete or remove the old credentials until after you have confirmed the new ones work with a successful test. Step 3 only happens after step 2 is verified." AI agents are helpful and will "clean up" without being asked. Make the sequence non-negotiable.
Claude Sonnet (Anthropic) — our main AI for almost everything. Code, writing, decisions, planning. Fast, accurate, great at following instructions. This is what writes most of the code in this playbook.
Claude Opus — the "thinking" version of Claude. Slower and more expensive, but better at nuanced decisions, creative direction, and complex architecture. We use it for important design choices only.
Grok (xAI) — great for social media posts, character dialogue, story ideas. Has a distinct personality that works well for entertainment content.
GPT-4o — reliable fallback. If Claude is busy or a task isn't working, GPT-4o usually handles it fine.
Grok video generator — best results we've found for animated character content. We use this for all CTRL & CLAW episodes.
Luma Ray 2 — alternative video generator, good for realistic scenes.
DALL-E 3 (via ChatGPT) — quick concept images when we need them fast. Not for social posting (see Insight 07).
Namecheap shared hosting (~€5/month) — website, video storage, PHP scripts, admin panel. More powerful than people think.
OpenClaw — AI agent orchestration. Handles cron jobs, Telegram integration, spawning sub-agents. Free self-hosted.
Mac Mini M4 Pro — local development, iOS app builds, running local AI models when we don't want to pay API costs.
✅ Automated video stats tracking (YouTube + X, twice daily)
✅ YouTube upload direct from server via one button
✅ Telegram forum topics for multi-project management
✅ This newsletter / playbook (you're reading it)
Start with: Claude Sonnet + OpenClaw + any web hosting plan. That's the minimum viable setup to do everything in this playbook. Total cost: the web hosting (~€5/month). OpenClaw is free. Claude API credits for a small setup are ~€10–20/month. Under €30/month total to run a full AI-powered content and automation system.
Don't use the most expensive AI for everything. Use fast, cheap models for simple tasks (formatting data, writing captions, checking stats). Use smart, expensive models only for decisions that actually matter. Most tasks don't need the top model. Save the budget for when it counts.
First of every month. Plain language. Step-by-step.
Real stuff that works — not theory.