On Monday mornings I no longer open seven tabs. No Search Console, no Plausible, no RevenueCat, no App Store Connect, no task list. I type one line — "what's on today?" — and get back the plan for every project, what's overdue, what looks wrong, and which numbers moved over the weekend.
The answer doesn't come from a person or from a SaaS product. It comes from Claude, which has access to a dashboard I built for myself. Not read-only access: it can also create a task, close one, write a decision into a log and save numbers as metrics.
I built it in a week of evenings. Around 30 commits, around 30 tools, 13 websites, three apps. Here's why I needed it, how it works, and what it found in the first few days. Spoiler: the most useful part wasn't the charts.
I was the human API
I run a lot of small projects. Three apps on the App Store — Reset Ladder and UghOkay for iPhone, Screo for Mac — a few web products, a blog for each of them and this site. Thirteen websites in total.
The data about them lived in seven places:
- Google Search Console — who finds the sites through search;
- Plausible — what people do once they're there;
- RevenueCat — subscriptions and money in the apps;
- App Store Connect — downloads, versions, reviews;
- Paddle — money in the web products;
- TikTok, Instagram, YouTube — social;
- and my task list: a 522-line markdown file I kept together with the AI.
The AI assistant was already part of how I work. It read my notes and repos, drafted posts and plans, wrote prompts for code changes. But it couldn't see the data. So every conversation started the same way: I open some dashboard, take a screenshot, paste it into the chat. It suggests something, I go back to the dashboard, take another screenshot.
I was the layer between the AI and my own numbers. A slow and forgetful one.
What it is
The dashboard sits behind a password on my own domain. The inside is boring, which is the point:
- Next.js on Vercel and a MongoDB database;
- once a day a cron job pulls data from Search Console, GA4, Plausible, RevenueCat and App Store Connect into that database;
- on top of it, a remote MCP server. MCP is the protocol an AI assistant uses to call tools: "show me clicks for these pages", "check whether this URL is indexed", "create a task".
The MCP server has about 30 tools now. Half of them read: search data, traffic, subscriptions, downloads, alerts, the agenda for the week. Half of them write: tasks, the decision log, metrics, social accounts, finances, project settings.
And here's the one design decision worth stealing: the AI only writes to my own database. It can't change anything in Google, Apple, RevenueCat or on the websites. It never sees API keys — I enter them in the UI by hand, and they're stored encrypted. It can't delete a task, only mark it cancelled. If the AI gets something wrong, the worst case is a wrong line in my own to-do list.
How it came together in a week
I didn't plan to build a "hub". I just wanted to stop sending Search Console screenshots.
- Day 1. Search Console synced into the database, plus an MCP server with two tools: clicks per page and an indexing check.
- Day 2. Plausible, a "what's in the sitemap vs what's in the index" view, and OAuth so I could connect the server to Claude in the browser.
- Day 3. Projects as a first-class thing, tasks, a decision log, before/after measurement for SEO changes, alerts, money, App Store snapshots, social accounts. That was a long evening.
- After that. Custom metrics, an assignee on every task, recurring tasks, a weekly agenda. Then RevenueCat. Then App Store Connect.
Claude Code and I split the coding roughly 50/50. The work is split between two roles. One AI is the planner: it reads the data through MCP, decides what to change and writes the prompt. The other is the executor: it works inside the repo, makes the change, runs the build and tests, and reports back. I decide what's worth doing at all, and I press the buttons in places the AI has no access to.
What it found in the first few days
This is where it became obvious why it was worth it. None of these findings needed anything clever. They just needed the data to sit next to each other.
1. Google hadn't seen my two most important articles in six months. Reset Ladder — my app for people who want to quit porn without shame or streaks (on the App Store) — has two articles written for the most important searches in the niche: "how to stop watching porn" and "how to stop watching porn at night". Both went live in April. Both are in the sitemap. The indexing check said: "URL is unknown to Google". Seven other articles from the same batch were indexed. The two that mattered most were not. I submitted them by hand and the dashboard has a task to re-check them next week.
2. A page in position eight that nobody clicks. One article had 89 impressions in a month, an average position around 8 and a 2% click-through rate. Another had 28 impressions and zero clicks. We rewrote their search titles and descriptions. The useful part: the task for that change remembers when it went live and will compare clicks before and after in two weeks. Without me having to remember. I'll share the result in a later post.
3. A landing page nobody can find. Screo, my screenshot app for Mac (on the Mac App Store), had 16 search impressions and zero clicks in a month. That's not "weak SEO", that's zero. The decision was a blog with posts for specific tasks — "how to hide sensitive info in a screenshot", "how to keep a screenshot on top of other windows". The project's decision log now says not just "started a blog" but why, with those numbers attached.
4. Thirteen new users and zero trials. When RevenueCat came in, Reset Ladder showed 13 new users in 28 days and zero started trials. I'd already seen this gap in screenshots and put it down to a small sample. The difference now is that it isn't a week-old screenshot — it's in the agenda every day. Yes, traffic is low. But the people who do arrive don't even reach the free trial. So onboarding and the paywall can't wait "until there's more traffic". There's now a task with a deadline: reinstall the app and walk through that path myself.
5. Zero downloads that weren't actually zero. App Store Connect went in yesterday. For Screo, the report showed zero downloads in two weeks. Over the same period, RevenueCat saw four new customers. Two sources side by side, and it's immediately clear one of them is wrong. It turned out my parser only counted the download codes Apple uses for iPhone apps — Mac apps have their own. If those numbers had lived in two separate dashboards, I would have believed the zero.
6. And one false alarm. An alert said page views on one of my older sites dropped 76%. Sounds bad. In reality it's 8 views against 33. The alerts have thresholds, but small sites are still noisy. Honestly, I just read and dismiss some of them for now.
What a week looks like now
- Monday is admin day. The agenda lists this week's posts across all the blogs. The AI flips them from draft to published, I commit and submit the links to Search Console. Next Monday's task creates itself, because it's recurring.
- Tuesday to Sunday goes to the main project — right now that's Reset Ladder.
- Sunday evening is the weekly review. The AI checks the repos, tasks, metrics and alerts and tells me what I forgot. There's usually something.
- The first of the month is money. Subscriptions from RevenueCat and downloads from App Store Connect arrive on their own. Only Paddle and Apple's payouts are still manual.
Every task has an assignee: me, the AI in chat, or the AI in a repo. That changes how it feels more than I expected. The AI now has its own tasks with deadlines — "audit the App Store page by Thursday" — and on Sunday it's visible who didn't do what. Sometimes it's me. Sometimes it's the AI.
The decision log turned out to be more useful than I thought. In a month I won't remember why I dropped the automated "content farm" for TikTok or why I changed the video format. The log will — together with the numbers the decision was based on.
What didn't work, and the limits
- Social is still manual. TikTok and Instagram don't have a usable open API for small accounts. Once a week I drop in screenshots and the AI turns them into metrics.
- Apple is slow. App Store analytics arrive one to two days late, and the first reports after connecting take a day or two to appear at all.
- Before/after doesn't prove cause. The dashboard says so itself: if Google hasn't crawled the page since the change, there's nothing to conclude yet.
- The AI makes mistakes. This week it once suggested shipping a release on the wrong day, and once its check of my repos left behind lock files that would have broken git in 15 projects. We caught it within the hour and wrote down a rule. That's exactly why everything the AI writes stays inside my database, and anything that leaves it goes through me.
- It's a tool for one person. Not a product. Yet?
Why not an existing service
In Soon Everyone Builds Their Own I wrote that more and more people will build their own tools instead of paying for subscriptions. This dashboard is the same argument, in practice.
There's no service that knows my Google rankings, my RevenueCat subscriptions, my App Store downloads and my to-do list — and also lets an AI write into it. I could glue together five subscriptions and Zapier. Or spend a week of evenings.
But the savings aren't the point. The point is that the AI now has hands where the data lives. Before, it gave advice. Now it spots a problem, creates a task, assigns it to itself or to me, and a week later checks whether it worked.
In one line: a week of evenings, around 30 commits, around 30 MCP tools, 13 websites, 3 apps, 5 data sources, and zero Search Console screenshots since.
Next up: what the first two weeks of TikTok did for Reset Ladder — the format everyone uses versus the one I fixed using the data.
