FeedHand
An AI social media manager that turns a website link into a month of planned posts.


- Project
- Our own product
- Our role
- Product · Full stack · AI infrastructure · Cloudflare architecture
- Platforms
- Web
01 / Behind the product
How we built FeedHand
Challenge
A small business or app has two options for social media: do it yourself, or pay a manager and their tools every month. To take that job on, the product first had to understand the brand: what it sells, to whom, and in which tone for each country. Every post had to respect each platform’s rules, nothing harmful could ever go out, and no customer could cost more in AI spend than they pay.
Approach
The user gives a web address. The system reads up to 12 pages of the site, plus sitemap.xml, the store listing and uploaded product photos when they exist, and produces a versioned brand profile. Planning starts with a strategy call: the brand profile, a competitor summary and research on 1–5 chosen target countries set the month’s theme and post mix, and the calendar is built on top.
Long jobs run in six Cloudflare Workflows (brand analysis, plan, production, market research, competitor research and replacement), each step retryable. Model calls go through a separate AI gateway Worker: OpenAI first, Claude on failure or rate limits. Video and image generation goes to the Viralance API. Spend permission is checked in one server module. The code is a monorepo of 14 packages; platform rules live typed and tested in the rules package.
Result
The site works as a demo of the product itself: the home page shows a sample brand’s 30-post month and walks through how the analysis is done. The free preview produces a brand summary and first draft posts within minutes. App and site are in five languages. Payments are live and plans can be purchased on the site.
02 / Inside the product
FeedHand screenshots
Open a screen to explore the details.04 images
03 / Scope & details
FeedHand key features
- 01
Builds a brand profile from the site, store listing and uploaded product photos
- 02
Strategy first, then the monthly calendar, informed by market and competitor research
- 03
Content shaped by platform rules for Instagram, TikTok, X and Reddit
- 04
Six durable Cloudflare Workflows: analysis, plan, production, market, competitors, replacement
- 05
Five languages: English, Turkish, German, French, Spanish
Technology
TanStack Start / Cloudflare Workers / Workflows / R2 / PostgreSQL / Drizzle / Better Auth
INSIDE THE PRODUCT
The engineering behind FeedHand
Systems we built and concrete problems we addressed in this project.
A customer can never cost more than they pay
Spend permission lives in one pure function (server/spend-access.ts) with every rule unit tested. Paid and internal plans may spend; the free preview may make exactly one fast-model call within a fixed lifetime budget; lapsed or unknown plans spend nothing. Every model and media call goes through this check.
Model calls in a separate Worker
The app never sees provider keys; calls go through the feedhand-ai-gateway service binding. The gateway carries budget, cost-ledger and policy modules with their tests. OpenAI is tried first, and Claude takes over on failure or rate limits.
An AI-tell detector
packages/rules/src/ai-tells.ts deterministically catches the patterns that give away model-written text: stock openers and closers, the “not just X, it’s Y” construction, three stacked adjectives, emoji bullets, hashtag walls. The patterns are data in five languages, and both the writer step and quality control use the same list.
Your idea could be next.
What could we build for you?
From a first release to a growing platform. Let’s plan the design, development and launch together.
From Türkiye to the US, UK, Australia and everywhere in between.
ENGINEERING NOTES FROM THIS PROJECT
How do you run LLM calls on Cloudflare Workers? OpenAI–Claude fallback ↗