One month. 266 commits. PR numbers went from #40 to #185, and the test suite grew past 800 cases.
I wrote almost none of that code. This post records two things: what Velora became over that month, and what I figured out along the way as someone building a product with AI.
TL;DR
- Week 1: Get “finding people” right. Multilingual search, two-stage screening, a budget on every run, and every human decision feeds back into the targeting profile.
- Weeks 2–3: Make “sending” reliable. Separate quotas for cold and warm messages, multi-account sending pools, circuit breakers, idempotency, compliance guardrails. Most commits here were
fix, notfeat. - Week 4: Unlock automation in layers. Drafting first, then auto-replies, then fully automatic sending, then daily autonomous runs. Every layer has a way to hand control back to a human.
- End of month: Team collaboration and agent access. A teammate downloads one Skill package, hands it to their own Codex, and they’re in.
- Last few days: Turn around and build for the creator side. Velora went from an outreach tool to a platform connecting both sides.
How I write code now
From October 3 to November 2, my workflow looked like this:
I describe a problem on my phone, or drop in a screenshot. The AI reads the code in a cloud dev environment, makes changes, runs the tests, screenshots its own work to check it, and opens a PR. Once CI goes green, I reply “merge” from my phone. Railway deploys a minute later, and I pick up my phone again to check the result.
No IDE. No local environment. My phone became my main development device.
First, what Velora is
Velora helps projects find the right creators on X (Twitter) and work with them on a pay-for-performance basis:
- Find the people your potential users already follow;
- Write a DM that reads like a human wrote it, not a mass-blast template;
- Give every creator a unique tracking link, and only pay commission on real results.
Our first heavy use case was our own: promoting XAUT gold holdings for TopNod. It’s pure commission. Creators earn 30% of the trading fees from users they bring in, plus $1 for every qualified new user.
Week 1: Get “finding people” right
The biggest problem at the start wasn’t “can we find people?” It was “are they the right people?”
What we shipped that week:
- Multilingual search: Each campaign searches separately in every target language. A small model translates the search terms once, and the result is cached.
- Two-stage screening: Cheap rules and a small model screen hundreds of candidates in bulk first. Only the “probably a fit” ones go on to full scoring.
- More sources: Use Grok to search X based on the audience you describe, then dig more people out of X Lists and Communities.
- Budgeted runs: Each run scores at most 100 creators, with a cap of a few dollars, and we record exactly how much each campaign spends on models.
- Learning loop: Every time an operator clicks “contact” or “skip,” that decision refines the profile of who fits the campaign.
Takeaway: An AI product’s cost structure has to be visible from day one. How much each run costs, how many people got filtered out, and why. If that isn’t built into the product, you have no way to tell whether it’s actually improving.
Weeks 2–3: Make “sending” reliable
This was the hardest part of the month and where most of the commits went. And most of those commits were fix, not feat.
X is extremely sensitive to automated DMs. The rules are stricter than the rate limits: no bulk sending, nothing mechanical, and respect a “no.” So Velora’s sending layer gained a lot of things that aren’t sexy, but every single one came from a real incident:
- Cold vs. warm messages: First contact and follow-ups after someone has replied get different quotas and pacing.
- Sending pools: A project can attach multiple X accounts that take turns sending. New accounts start at 7 messages a day and ramp up slowly.
- Circuit breakers: The moment any account gets a restriction signal from X, the whole account cools down and its campaigns stop sending. No retries, no pushing through.
- Idempotency and queue order: The same message is never sent twice, and approval order is send order. After a crash, the process recovers from its records instead of ending up in “maybe it sent, maybe it didn’t.”
- Compliance guardrails: A pure-commission DM will never mention “upfront payment.” When a creator clearly says no, the conversation closes automatically and the AI won’t follow up again.
Then there was a very X-specific problem: the server can’t read encrypted X Chat replies.
We first built browser-side decryption: the operator unlocks once, and replies are decrypted locally and imported. Later we added a read-only Grok routine that reads the sending account’s inbox in the cloud and checks, message by message, that “what we sent must appear verbatim in the conversation.” Replies are imported only if that check passes.
Takeaway: In an agent product, guardrails outnumber features. What decides whether you can let it run on its own isn’t how much it can do. It’s whether it can stop before it does something wrong.
Week 4: From assisted to automatic
Only once the guardrails were in place did automation make sense. That week, Velora’s automation was unlocked in layers:
- Auto-drafting: After each run, it writes the first DM for every creator worth contacting, but doesn’t send it.
- AI auto-replies: When a creator replies, the AI responds using the conversation context and the deal terms. If the conversation turns to money, a refusal, or a bad mood, or if the AI has already sent 5 replies, it hands the conversation back to a human.
- Fully automatic sending: Drafts that pass the checks (including first DMs) no longer need approval and go out on each account’s own schedule. Only drafts flagged by the safety checks land in the “needs you” queue.
- Daily autonomous runs: A campaign has to build up enough run history and human judgments before it earns the right to run daily on its own. If its performance drifts, it gets downgraded automatically.
Takeaway: Autonomy should be earned, not switched on.
I really like the design where “a campaign earns daily autonomous runs with evidence and loses them when it drifts.” It’s what lets me hand the system over to itself.
Team and agents: a teammate downloads a package and hands it to their Codex
At the end of the month I wanted my teammates to use Velora too, ideally by “downloading a package and handing it to your own AI.” That forced a whole layer of multi-user infrastructure:
- Individual accounts: Everyone signs in with their own Google account. No shared passwords. Admins upgrade teammates to Pro and add them to shared campaigns.
- Shared campaigns and account pools: Two people can run the same campaign together, and a teammate’s X accounts can join the same sending pool.
- Audit log: Who did what, through the console or an agent, and when. Every change is recorded.
- Agent tokens and Skill packages: Each person generates their own
vk_token. Together with aSKILL.mdand a zero-dependency CLI, it lets Codex or Claude Code operate Velora as that person.
It reminded me of Skillry, which has been getting a lot of attention lately: turning templates into Skills that AI can call directly.
The difference is that Velora’s Skill package is thin. The real value is the always-on service behind it: finding people, sending, rate limiting, reading replies. Copying the package gets you nothing. Without the service, it can’t do anything.
I think that’s the sturdier shape for “products built for AI.”
The last few days: turning to the other side
I was about to send the creator dashboard link to every KOL who had posted for us, and then a problem hit me:
When they opened velora.social, the homepage said “Find the right creators,” “Score creators,” “Start conversations at scale.” From a creator’s point of view, that reads as: you are the thing being screened and scored.
That’s a positioning problem, not a copywriting problem. So in the last few days, we properly built out the other side:
- Creator dashboard: Creators sign in with their own X account and see how many posts they’ve made, how many views, how many OneLink clicks, sign-ups and qualified purchases, and how their earnings are calculated (30% fee share + $1 per qualified purchase).
- One-click post with image: People who aren’t partners yet get their own OneLink as soon as they sign in. One click, and Velora publishes a tweet with the campaign image on their behalf through the official API. The post shows up on their dashboard right away.
- Asset library: Campaign images can be downloaded directly, with video coming later.
- Login-free links: On mobile, logging into X on the web doesn’t open the app. So every partner gets a personal link that opens their dashboard directly from inside the X app.
- Homepage redesign: “Find the right X creators” became “The right creators, paid on performance,” with a dedicated entry for creators at
/creators. The creator pages lead with the TopNod brand, with “Powered by Velora” at the bottom.
Takeaway: A platform’s value comes from both sides. Treat the other side as a “resource” and the best you’ll build is a useful tool. Treat them as users, and you have a shot at building a network.
Five things I figured out this month as an AI founder
1. The bottleneck moved from writing code to judgment and acceptance testing. AI can open a dozen PRs a day. My real job became saying clearly what I want, testing in the real environment, and sending a screenshot back when something’s off.
2. “fix” says more than “feat.” More than half of this month’s commits were fixes, and nearly every one maps to a real edge case. The product grew out of those fixes, not out of a feature list.
3. Automation should be authorized in layers. Draft first, then auto-reply, then fully automatic sending, then daily autonomous runs. Every layer has an exit back to a human.
4. For products built for AI, the moat is the service, not the prompt. A Skill package is easy to copy. A long-running service with state and risk controls is hard to copy.
5. Don’t objectify the other side. Growth tools make it easy to turn the people on the other end into “leads.” But in the long run, the creators who choose to stay are the hardest asset to replicate.
What’s next
- Connect TopNod’s backend data feed so the creator dashboard updates closer to real time;
- More than one program: creators can browse and apply to multiple projects, with earnings settled in one place;
- Take “built for AI” further: let more people’s agents run the full collaboration workflow on Velora.
If you’re a creator on X, check out the open campaigns at velora.social/creators. If you’re building a project that needs creator partnerships, come try velora.social.