Ralfy, LinkedIn Tool for Content Creators
Founder & Design Engineer · 2025 to now
“Built for content creators. Custom feed, AI comments, reply manager.”
- 01
Built for content creators on LinkedIn, not for SDRs running cold outreach.
- 02
Two surfaces, one workflow. Web app for back office, Chrome extension live on linkedin.com.
- 03
Zero auto post. AI drafts every comment, you submit every reply.
Ralfy is a LinkedIn tool for content creators. Two surfaces, one workflow. The web app is your back office. The Chrome extension lives on linkedin.com so you never have to switch tabs. Three core jobs: a custom feed of people you choose, AI assisted comments in your voice, and a reply manager for your own posts. Built solo as a 6 package monorepo with React + Vite, Express + Supabase, and dual model AI (OpenAI on Free, Anthropic Claude on Pro).
Context
A content creator's day on LinkedIn has three jobs. Keep a real feed of people worth following (the native feed is built for the algorithm, not your network). Write thoughtful comments on other creators' posts to build relationships and visibility. Reply to traction on your own posts without losing a full afternoon every time something hits. Most LinkedIn tools pick one of these jobs. Ralfy is built around all three.
Approach
Two surfaces, one workflow. The web app is the back office: add people by pasting their LinkedIn URL, manage replies on your own posts, browse comment history, edit intents, check analytics. The Chrome extension lives on linkedin.com so you act in the moment. Before AI generates anything, you pick an intent (3 defaults plus custom ones) and a length. A quality guardrail keeps output sounding like a creator, not a bot. Generated text always lands as a draft inside LinkedIn. You hit submit, not Ralfy. Stack: React 19 + Vite for the dashboard, Express + Supabase for the backend, a TypeScript LinkedIn client, OpenAI on Free, Anthropic Claude Haiku 4.5 on Pro. Backend on Railway, marketing site on Next.js 14 and Vercel. Built with Cursor and Claude Code.
How I worked
- 01 · Discover
Talked to creators about their LinkedIn day. Three jobs surfaced. Custom feed, thoughtful comments, reply management when traction lands.
- 02 · Sketch
Two surfaces decided early. Back office in a web app, real time work inside an extension on linkedin.com.
- 03 · Prototype
Web app first. React 19, Vite, Supabase. Then the extension wrapped around the same backend with a TypeScript LinkedIn client.
- 04 · Ship
Live at ralfy.app in waitlist mode. Creem.io payments wiring up. Dual model AI on Free and Pro.
- 05 · Iterate
March 2026 LinkedIn obfuscation broke selectors. RSC selector recovery added in the same week.
What I shipped
Brand, web app UX, extension UI, marketing site, design system
Custom feed, reply manager, comment history, intent CRUD, analytics, admin config (React 19 + Vite + shadcn/ui + Zustand)
AI Comment Generator + Intent Picker inline on LinkedIn, Feed Manager button, cookie sync, anti detection
Next.js 14 on Vercel, waitlist mode while Creem.io payments wire up
Express + Supabase, TypeScript LinkedIn client replacing the original Python service
Dual model (OpenAI Free, Anthropic Pro), custom intents, free text override, content quality guardrail, separate prompt for reply manager
Cursor + Claude Code as the engineering multiplier across a 6 package monorepo. Architect and editor, not author.
6 detection layers + declarativeNetRequest rules + RSC selector recovery (March 2026 LinkedIn obfuscation)
Playwright E2E, Inbucket SMTP for email auth flows, unit + API tests, GitHub Actions smoke tests on every push
Taplio dataset (~2.78M posts, ~78K profiles), 11 Slack notifications across 7 channels, 6 cron jobs
84 dynamic config keys editable from /admin/system-config without redeploy
Idea → design → engineering → deploy → support, single operator across the entire monorepo
Key decisions
Built for creators, not for funnels
Most LinkedIn AI tools target SDRs who want 500 cold outreach comments a day at any quality. Ralfy excludes that customer on purpose. The audience is content creators: people who post on their own, build a real network, and need engagement that sounds like them. Pricing tiers (Free 10 a day, Pro 50 a day), no bulk comment features, and a reply manager that only matters once you have inbound traction. Each choice enforces the positioning.Two surfaces, one workflow
The web app is the back office: feed, reply manager, comment history, intents, analytics. The extension is the live surface on linkedin.com: AI Comment Generator, intent picker, Feed Manager button. Same prompt across both, different UI for different jobs. The extension never calls LinkedIn directly. It provides UI and syncs auth cookies to the backend.Reply manager, traction without burnout
When a post hits and a hundred comments land, replying eats a full afternoon. Most LinkedIn tools ignore this entirely. Ralfy makes it a first class feature. My Posts shows every post that needs replies, generates AI drafts in your voice for each, and lets you Approve, Edit, Regenerate, or Dismiss per draft. You keep the final word. The 200 a month cap is calibrated to respect LinkedIn's own engagement signals.Zero auto post, on purpose
Generated text lands in LinkedIn's own UI as a draft, never auto submitted. True for both comments on other people's posts and replies on your own. The submit button stays LinkedIn's, not Ralfy's. LinkedIn's March 2026 Depth Score penalizes generic AI comments at scale, so the constraint is also a positioning bet.Architect, not author
One person across design, web app, extension, marketing site, backend, AI, anti detection, testing, deploy, and support. A 6 package monorepo with Cursor and Claude Code as the engineering multiplier. The work is editing fast, throwing out 80% of what comes back, and keeping a tight quality bar across every surface.Auto posts. The submit button stays LinkedIn's, never Ralfy's. Even on the reply manager with a 200 a month cap.
How it fits together
Chrome extension
Lives on linkedin.com. AI Comment Generator above the comment box, intent picker, Feed Manager button. A background worker syncs auth cookies to the backend. The extension never calls LinkedIn directly.Web app (React + Vite)
Back office workflow. Custom feed, reply manager for your own posts, comment history, intent editor, settings, analytics, admin config. Uses Zustand and shadcn/ui.Backend (Express)
Handles auth, AI orchestration, intent and reply queues, feed ingestion. Talks to LinkedIn via a TypeScript client (with optional IPRoyal proxy) that replaced an earlier Python service.Supabase
Postgres and auth. Stores user data, intents, feeds, sessions, reply queue, and 84 dynamic admin config keys.AI providers
OpenAI on Free (10 a day) or Anthropic Claude Haiku 4.5 on Pro (50 a day). Same prompt for both comments and replies, with a quality guardrail to keep output sounding human.Inside the product
Feeds and reading posts
Curate a feed of people you choose, then read their posts in a focused view without leaving Ralfy.





AI commenting, intent picker, and drafts
Choose an intent and a length before AI generates anything, then approve or edit the draft before it touches LinkedIn.








Reply management
My Posts shows every post with unreplied comments so you can work through a traction spike without losing an afternoon.


Chrome extension on LinkedIn profiles and posts
The extension drops a Ralfy pill on profiles and a comment trigger on posts so you never leave LinkedIn to act.









Result
Unlimited
Custom feeds0
Auto posts1 person
Built byLive at ralfy.app, in waitlist mode while Creem.io payments are wired up. Two surfaces (web app and Chrome extension), one workflow, shipped solo across design, web, extension, backend, AI, marketing site, and Playwright E2E. The category is loud about volume. Ralfy is the small, deliberate alternative for creators who care about engagement and visibility, not bulk output.
Reflection
What I'd do differently: lead with the three job workflow earlier. The loop of custom feed, AI commenting, and reply management is the real argument, and it lived in code for months before the marketing copy said so. Most LinkedIn tools pick one of those jobs and call it a day. The bet here is that creators care about all three.