LS / MTLLuke Sidney
Lighting the room0%
10th floor · Quartier Latin · golden hour
Montreal, QC·lukesidney.me·Fresh 2 · DenoNo cookies · No forms
Plate01

Front page.What it is

Building

CCC

One app that researches, writes, designs, films and publishes. My agents use it through the same door I do.

Content Creation Centre. Private, in daily use, still growing.

Riso illustration: one layout table where a single sheet branches into pages, film, slides and a photo, each carried to its own door; a robot arm and a hand work the same table.
Plate02

Set in type.The stack

What it runs on

Six layers, all in one Next.js app. The versions are the ones in its package.json today.

Interface

  • Next.js16.2app and API routes
  • React19.2the editor and dashboards
  • Tailwind4.1styling

Content

  • Payload3.82the shared CMS
  • Slidev0.50decks
  • Remotion4.0video rendered from code

Models

  • AI SDK7.0one interface, four providers
  • fal.aiimages
  • ElevenLabsvoice

Jobs

  • Trigger.dev4.5renders, pushes, research
  • Upstash Redisrate limits and quotas
  • Resendemail

Data

  • Neon Postgresits own schema
  • Drizzle0.45queries
  • pgvectorsearch over my own documents
  • Cloudflare R2files

Watch

  • Langfusea trace for every model call
  • OpenTelemetrythe wire it travels on
Plate03

On the press.How it works

4 steps, in order

Four stops from an idea to a published page.

  1. Pick a topic

    Keywords become clusters. The planner lists the articles a topic needs before anything is written.

  2. Write in a real voice

    Each article is drafted in a voice learned from writing samples, then edited and scored for search in one editor.

  3. Make the other formats

    The same idea becomes a deck, a carousel, images and a video. Video is rendered from code, so a changed line re-renders.

  4. Publish where it lives

    One button pushes the article into Payload, WordPress, Sanity, Contentful or Hygraph.

Plate04

Pulled proof.The code

The machine door

POST /api/generate-images · run on 2026-09-27real source
# the door my agents use: one POST, one picturecurl -X POST "$CCC_URL/api/generate-images" \ -H "x-api-key: $CCC_API_KEY" \ -d '{"mode":"text-to-image","style":"riso","prompt":"…a workbench fed by one cable…"}'{"images":[{"provider":"fal","modelId":"bytedance/seedream/v5/lite/text-to-image", "imageId":"403ea1ac-87b6-429b-8d7c-1ac857994085"}]}# the picture in plate 07 came out of this exact call

A real call. The key stays in an environment variable and never appears on the page.

Plate05

The reel.The walkthrough

Watch it run

Software demo coming soonAbout 3 minutes: a keyword becomes a published article, then a carousel and a short video.
Plate06

Corrections.What it fixes

The problems it solves

  • Nine AI tools, nine subscriptions, nine logins.

    One app, four model providers behind it, or your own API keys.

  • Drafts that never reach the CMS.

    Publishing is a button, wired into five CMS types.

  • Decks and videos made by hand, one at a time.

    They come out of the same pipeline as the article.

  • No record of what the AI did or cost.

    Every model call leaves a trace I can read.

Plate07

Editor's letter.Why I built it

Why it exists

I kept paying for tools that each did one step, and none of them could publish or knew my business.

So I built the factory the rest of my work pulls from. My agents research, write, design and film through it, and I edit in the same place. It started in March 2026 as a media manager and grew one door at a time.

Riso illustration: one workbench where a typewriter, a film camera, a slide projector and a small press share one cable from a single socket.
Plate08

Against the rack.Better than average

Against the usual tools

Against Jasper for writing, Descript for video and Gamma for decks. Their side was read from each vendor's own pages on 2026-09-27.

WhatThe market averageThis app
Where a draft endsIn the tool; exported, or pushed to one channel like Webflow.In your CMS: five CMS types wired in.vendor's page
FormatsOne main format per tool, plus images or social posts.Article, deck, carousel, image and video from one idea.vendor's page
ModelsThe vendor picks the text model; Gamma lets you pick the image model.Four providers, or your own keys, with quotas per user.vendor's page
Plate09

The imprint.How long it took

391 commits in 183 days

commits
391
days with a commit
58
days, first commit to today
183
2026-03-29commits per week · busiest: 962026-09-27
  1. First commit I can prove. An older media-manager repo came first; its history is lost.
  2. Moved into the monorepo, history and all
  3. Still building. This page is part of it.

Measured: git log, my own commits on the app, 2026-09-27. The starter template's history is excluded.

Plate10

Colophon.Where it sits in the ledger

entry
07 / 09
status
building

Still building. Nothing shipped is claimed for it.

← Back to the ledger
Remote▲ ▼ section · ◀ ▶ project · OK opens