Flagship product2026v1.0 shipped · sellable

Repurpose Studio

AI content repurposing system for founders and writers

Turns one essay into platform-specific drafts, carousels and narrated videos, with review before publishing.

Repurpose Studio: Turns one essay into platform-specific drafts, carousels and narrated videos, with review before publishing.
repurposestudio.vercel.app

At a glance

The problem

Turning each essay into posts for every platform took longer than writing it.

What I built

A quiet writing room that drafts every post in my own voice and posts straight to each platform.

What changed

Zero cost per post: it writes through my existing Claude plan, with no paid scheduler.

Watch the film narrated, with sound: turning one essay into every post, in my own voice, at zero cost.
Read the transcript

This is Repurpose Studio, the tool I built for my own writing.

I write essays. Turning each one into posts for every platform was taking longer than writing it.

So I built a quiet writing room that drafts every post in my own voice, at zero cost per post.

It starts with the essay. A serif for the writer, a monospace for the machine.

Then drafts for each platform, each with alternative hooks to choose from.

I review, approve and schedule them on one calendar.

It writes through my existing Claude plan, and posts straight to each platform. No paid scheduler, no bill per post.

Why it looks and works this way

A writing room, not a dashboard

Repurpose Studio turns one essay into posts for every platform. It is opened several times a day by one writer, so it is designed to feel like a quiet studio: the words in front, the machinery small and exact.

01

Read the writing room

The Repurpose Studio writing room with five numbered notes.

The writing room, with a sample essay.

  1. A serif for the writer

    Room titles and essays are set in Instrument Serif, with one italic orange word. The human voice gets the human face.

  2. One accent, used sparingly

    A single orange marks the current room and the lead-in rule. Nothing else competes with the writing.

  3. A mono for the machine

    Word counts, dates and labels are set in IBM Plex Mono: system facts look like system facts.

  4. Numbered rooms, always dark

    Nine rooms from 01 Write to 09 Settings in a sidebar that stays dark in both themes, so switching theme never feels like a different app.

  5. Start from Substack

    Pull from Substack brings the essay in; nothing has to be retyped.

02

Decisions, and why

Two voices in two typefaces

Instrument Serif for writing and room titles, IBM Plex Mono for facts like counts, dates and buttons.

Why: The serif carries the writer, the mono carries the machine. It gives the app an editorial feel instead of generic software.

Orange split in two

One orange for fills, rules and glow, and a darker orange only for small text.

Why: Orange that works as a fill can fail as small text, so text gets its own readable shade.

Home asks what needs you now

The home screen greets you by time of day and names the actual waiting work. No stat cards, no streaks.

Why: A tool opened several times a day needs calm and speed. Streaks and guilt copy age badly.

No brand colours per platform

Platforms use one monochrome glyph system instead of their own logos and colours.

Why: A brand colour per platform would turn the drafts into a billboard and pull attention from the words and their status.

Zero cost per post

Writing runs through Claude Code on an existing plan, and publishing talks straight to each platform's own API.

Why: No per-call API bill and no scheduler subscription. Own API keys are optional.

No framework on purpose

Plain JavaScript, one Node process and a JSON store.

Why: One person can follow a click from screen to handler to style without a build step in the way.

03

One essay, everywhere

Write

Write or pull an essay from Substack into the writing room.

Draft

It drafts posts for each platform in the writer's own voice, with five alternative hooks.

Review

The writer edits, approves and schedules on the calendar.

Publish

Posts go out through each platform's own API.

04

Near-black, near-white, one fire

Grounds are never pure white or pure black, which both read harsh on a screen used all day. The only colour is one orange.

#E64500
Fire

Fills, rules, focus rings and the active room.

#CF3E00
Fire ink

The same orange, darker, only for small text.

#14130F
Sidebar

The room list. Dark in both themes, a fixed anchor.

#FBFBFA
Day ground

The light page. Near-white, never pure white.

#0A0A0C
Night ground

The dark page. Layered near-black; depth comes from soft light.

05

The writer and the machine

Where it all starts.
Instrument Serif

Essays, room titles and mastheads: the human voice.

109 WORDS
IBM Plex Mono

Navigation, counts, dates and buttons: the machine's facts.

Specimens are set in the nearest font on your device; the real site loads its own.

The problem

One Substack essay had to be reshaped for LinkedIn, X, Instagram, Threads, Bluesky and video, then scheduled and published through separate tools. The repeated work also risked sanding the writing down into a generic AI voice.

What it does

A self-hosted content engine that uses a voice profile from your writing to create platform-specific drafts. It publishes directly to Bluesky, X, Threads and LinkedIn; Instagram is prepared for manual posting.

Generation runs through Claude in headless mode by default, so there is no per-call bill and no third-party tool in the loop. It has its own six-page marketing site, live at repurposestudio.vercel.app: self-hosting is free and available today, the hosted tier is planned and labelled that way, and interest in it goes straight onto a waitlist.

The website

The marketing website, repurposestudio.vercel.app, exists to explain the product to writers in one scroll: one essay in, every platform out, in your own voice. It walks through the nine jobs the studio does, how it works in four steps, the writing and speaking voice idea, pricing and an FAQ, and it says plainly that everything runs on your own machine. Self-hosting is free and available today; the hosted tier is planned and labelled that way, and interest in it goes onto a waitlist. It is a static, six-page site with no framework, in light and dark themes.

Who it is for

Writers, founders and creators adapting long-form writing for social posts.

What it does, feature by feature

  • Pulls your writing in. Imports essays from Substack automatically, takes anything you paste, or watches your feed and drafts new posts every 30 minutes.
  • Writes in your voice. Builds a voice profile from your archive and past posts, and keeps learning from the edits you make.
  • Platform-specific drafts. A LinkedIn post, an X thread, an Instagram caption, Threads, Bluesky and a short-video script, each following that platform's rules.
  • Sharper drafts. Five alternative hooks per draft, a grammar check that respects your voice, and rewrite-with-feedback.
  • Visuals. 1080×1350 carousel slides and quote cards, rendered offline.
  • Narration and video. Reels read in your own cloned voice, generated on your own PC, or a free Microsoft voice. Finished MP4s in 9:16, 1:1 or 16:9 with captions timed to the audio.
  • Ideas. An ideas inbox, ten essay ideas suggested from your archive, outlines, and remixing two essays into a new one.
  • Scheduling and publishing. Post now or schedule. A planner spreads approved drafts across the week and posts straight to Bluesky, X, Threads and LinkedIn.
  • Safety net. Checks every draft before you approve it, retries failed posts, resumes half-posted threads and sends a Telegram alert if something still fails.
  • Any AI model. The default route runs on an existing Claude plan with no extra per-call cost; your own Anthropic, OpenAI, Gemini or OpenRouter key also works, billed by that provider.
  • On your phone. Installs as an app, with an Android wrapper, so the desk is reachable away from the PC.

Why it is built this way

I built the whole loop locally: ingest once, generate per-platform drafts, learn from my edits, render the assets and publish through each platform's own API. Generation defaults to the Claude subscription I already have, so there is no per-call bill or third-party scheduler; anyone else running it can bring their own Anthropic, OpenAI, Gemini or OpenRouter key instead, encrypted at rest the same way as the publishing credentials, and the settings screen states plainly who pays. Instagram stays manual because Meta requires a publicly hosted image URL that a private local app cannot provide.

What was hard

Windows path escaping broke ffmpeg's subtitle filter, so video rendering switches to relative filenames and a controlled working directory. The ship-ready pass also had to guard malformed model output after it produced `undefined` drafts and fix missing follower snapshots that rendered as `undefined` in the planner.

Outcomes

  • 5 text destinations
  • No extra per-call cost on an existing Claude plan
  • 4 AI providers supported

Stack

Node.jsExpressClaude headless CLIPlatform APIsJSON store

PRODUCT IN USE

Repurpose Studio: Calendar
Repurpose Studio

Calendar

Repurpose Studio: Engage
Repurpose Studio

Engage

Repurpose Studio: Ideas
Repurpose Studio

Ideas

Repurpose Studio: Pieces
Repurpose Studio

Pieces

Repurpose Studio: Planner
Repurpose Studio

Planner

Repurpose Studio: Pulse
Repurpose Studio

Pulse

Repurpose Studio: Signin
Repurpose Studio

Signin

Repurpose Studio: Voice
Repurpose Studio

Voice

Repurpose Studio: Write
Repurpose Studio

Write

Need something similar?

Tell me what your team does by hand today and what the finished system needs to do. I will tell you whether an automation, a custom tool, a portal or a website is the right shape.