Open source · MIT licensed

From source to Instagram in minutes.

AI writes the copy. A human always approves. Built for newsrooms that can't afford to get the facts wrong.

JornAI story feed with posts waiting for review
  • Real photos only — the AI never generates images
  • Every version saved, nothing overwritten
  • Nothing publishes without a human

How it works

Three steps. One human in the loop.

01

Drop in your source

Paste a text, an article link or a PDF. Credit the photographer or the source. The AI writes the title, subtitle and caption — and never touches the photo.

New story screen with a pasted link and the Generate button
02

Frame the photo, tweak the words

Drag and zoom the photo, move the title and subtitle, edit the text. The brand template stays intact, and what you see is exactly what the server renders. Video posts get the same care.

Editor with the photo framed on the brand template
03

Review, then publish

See the post exactly as it will look on Instagram. Approve and publish, ask for a rewrite, or reject with a reason. Every change is a new version — nothing is overwritten.

Review screen with an Instagram-style preview and the approve, rewrite and reject actions

Why JornAI

Fast, but never reckless.

🧾

Fact-first

Sources are cleaned and redacted before the model sees them, and the output is checked against the source after.

👀

Always human-approved

Nothing reaches Instagram without a person pressing approve. Peer review and roles included.

🎨

Your brand, every time

Photo and text compose on your own template — in the browser and on the server, pixel for pixel.

🎬

Photo and Reels

Videos are normalized to 9:16, kept inside Instagram's safe zones and get an animated title card.

🌍

Any language

One environment variable picks the working language. English and Portuguese ship as examples; add yours with a small pack.

🆓

Open source, runs with no keys

MIT licensed. A mock AI mode and local storage let you try the whole flow without any external service.

Fact-accuracy pipeline

A confident article with wrong facts is worse than no article.

  1. 01

    Clean

    Deterministic cleanup and field extraction — no AI.

  2. 02

    Redact

    Names, IDs, phones and plates removed before the model.

  3. 03

    Write

    Strict prompt: no invented details, no filler.

  4. 04

    Validate

    A rule-based check against the source, then one corrective retry.

Make it yours

Your frame. Your fonts. Your newsroom.

Upload your brand frame, drag the title and subtitle boxes where you want them, and choose size, color, weight and alignment. Teach the AI your tone with a few real posts. Set it up once; every post comes out on brand.

  • ✓Portrait 4:5 or square 1:1 templates
  • ✓Company logo, handle and brand colors
  • ✓Newsroom style: the AI learns tone and format, never the content
  • ✓Admin, manager and reporter roles, each company isolated
Template builder with draggable title and subtitle boxes

Ship the story, not the busywork.

Clone it, run it with no keys, and publish your first post today.

JornAI — from source to Instagram in minutes