One night, one tool: X posts into Instagram assets
A creator I follow started posting on X every day. Good posts, small audience there, half a million followers on Instagram. That gap is free distribution for anyone willing to close it, so I built the tool that closes it and shipped it the same night.
The format that already works
Nick Huber has been converting tweets into Instagram image posts for years: a plain card with an avatar, a name, a handle, and the text. It works because it borrows the visual trust of a tweet. People have been trained to read that layout as a real thought from a real person, not an ad.
So the core of the tool is a renderer that reproduces that card pixel for pixel at Instagram's portrait size, 1080 by 1350. No design tool, no template service. One canvas, drawn from scratch.
How the renderer works
Everything is drawn on an HTML canvas in the browser. The avatar is clipped into a circle, the verified badge is drawn as a scalloped seal with a check path, and the post text is laid out with a word-wrap routine that measures every line.
Two details took most of the tuning. First, type scale: short posts should read like posters, long posts like essays, so the font size solves for the content, trying sizes from 62 pixels down until the text fits. Second, splitting: when a post is too long for one image even at the minimum size, the renderer packs paragraphs into slides and turns the post into a carousel, with a page indicator drawn onto each frame.
Export is just canvas.toBlob. What you download is exactly what you previewed, because the preview and the export are the same drawing code at the same resolution.
The part that matters: the queue fills itself
The demo page is manual: pick a post, download the image. The system it demonstrates is not. A watcher polls the X feed for new posts, skips replies and link-only posts, renders each one through this exact template, and drops the finished image into a review queue. One tap approves it into the publishing schedule. The person who wrote the post does nothing new. They were already writing on X. Instagram just starts happening.
That is the pattern I keep coming back to: find work someone is already doing, and attach a machine to its exhaust.
What shipping overnight took
The honest list: one evening for the renderer and auto-sizing, an hour on the verified badge and avatar clipping, an hour on the carousel splitting, and the rest on the demo page around it. Deployed on Vercel before morning. The lesson is not that I type fast. It is that scope discipline does the work: one card format, one export size, one job.