socialgen
A small tool, shared with friends

Slideshows that do not
read as machine-made

socialgen writes and lays out swipeable image decks and short videos, renders them to platform-exact files, scores them against a corpus of real high-performing posts, and pushes finished sets to TikTok as drafts.

The idea

The split is the whole design

The work divides cleanly in two, and keeping the halves apart is what stops the output looking generated.

The tool does what is deterministic

Image search, rendering, layout maths, scoring a deck against the corpus, caption limits, hashtag caps, API payloads, packaging, publishing and status polling. It never writes a sentence.

The model does what is creative

The hook and the body copy, which image belongs to which line, the angle, the topic, and the judgement about whether the result is actually any good. It never guesses a pixel size or a hashtag limit.

How it works

From a topic to a draft in your inbox

1

Pick a template and a format

A template is what a deck looks like; a format is what it says. They vary independently, and both are mined from posts that actually performed rather than invented.

2

Write the copy against a measured shape

Each format carries a per-slide plan, the openers that fit it, the rules the posts that ran it obey, and the ways writers break it.

3

Choose the pictures

The b-roll library is indexed by dominant colour and grouped into named vibes, so a search narrows by look and by subject at once.

4

Render, critique, look

Slides are HTML and CSS rendered by a real browser, so the editor preview and the exported file cannot drift apart. The critique scores legibility, safe areas and corpus fit.

5

Publish to drafts

Posts land in the creator's TikTok inbox for a human to approve. Publishing straight to a feed is a per-account switch that is off until you turn it on.

Features

What is actually in it

Deterministic renderer

Every size is a fraction of canvas width, never a pixel, so one deck serves 4:5, 3:4, 9:16 and 1:1 by reflowing rather than cropping.

Text frames that close properly

A framed block is drawn as one shape - the union of its line boxes, rounded at every vertex, including the concave junctions where a narrow line meets a wide one.

Six colours, on purpose

White, black and four accents. Main copy is always white or black; the accents carry numbers and highlights, and a filled frame takes a near-black tinted with its own hue.

Vibe-clustered b-roll

Every photograph is indexed by its five dominant colours and grouped into named looks, each with a text policy: which colour survives on it, and whether copy needs an outline.

Short-form video

One line of copy held still while b-roll cuts six times a second. Three frame shapes, and the outline decision is made on length rather than contrast.

Analytics with history

Posts are read back twice a day and every reading is kept, so growth, velocity and whether a post has plateaued are measurable - which a single reading cannot tell you.

Iteration on what worked

Winners are ranked by reach normalised for age times the engagement it earned, and each one carries the deck that produced it, so the next version varies one axis rather than starting over.

Captions inside the real limits

Photo titles cap at 90 runes and video captions at 2200 with no description field at all. The tool knows the difference so the writer does not have to.

Drafts by default

Nothing reaches a feed without a human opening TikTok, unless auto-post is deliberately switched on for that account.

The corpus

Grounded in posts that performed

Every library in socialgen was read out of real high-performing posts and is engagement-weighted, so the numbers describe what works rather than what is common.

50,074slides analysed
324design templates, 10 curated
256content formats, 18 families
11,579b-roll photographs

A tool for friends