AutoSlides · internal explainer · for the curious, not the experts
How it works
& why we built it this way
AutoSlides turns one written brief into a real, editable Google Slides deck — built in our BBC 2026 template, in our house voice, ready to open in your own Drive. This page explains what happens under the hood, in plain language, and the choices behind it.
The one big idea
If you remember nothing else, remember this:
The key move
The AI never designs a slide. It only does two things a language model is genuinely good at: pick which of our pre-built template layouts to use, and write the words that go on them. Google Slides then assembles the actual deck by copying our template.
That single decision is what makes the output trustworthy. Asking an AI to invent a slide pixel-by-pixel gives you off-brand fonts, wonky spacing, and surprises. Instead, our designers built a master template — one polished slide per layout (cover, section divider, three-column, pyramid, pull-quote, big-number, and so on). Every editable piece of text on those slides is a labelled blank, written as {{title}}, {{subtitle}}, {{quote}}, etc.
The AI reads a menu of those layouts, chooses a sequence that tells a story, and fills in the blanks with copy. The result is always on-brand and fully editable — it opens as a normal Google Slides file you can keep tweaking by hand.
Think of it less like "AI generates a presentation" and more like a very fast junior strategist who knows our template inside out, writes a first draft of every slide, and hands it to you to refine.
The pipeline, end to end
Three players pass work between them: your browser, our small server (a handful of functions under /api), and two outside services — OpenAI (the language model that plans) and Google (which stores and builds the actual deck).
A fourth helper, /api/thumbs, supplies the little layout previews you see on each plan card.
Two of these steps — planning and building — can take a minute or more, so they stream: the story arc and each finished slide appear live as the AI writes them, and the build reports each stage ("copying the template…", "writing the copy…") as it happens. You're never staring at a frozen spinner wondering if it broke.
What happens when you use it
-
Sign in with your BBC Google account
This proves you're one of us and — crucially — lets the app act as you when it talks to Google. The finished deck lands in your own Drive, not some shared service account.
-
Write a brief → "Plan slides"
You type what the deck is about (a dice button rolls in fully-worked example briefs). The AI responds with a narrative — the story the deck will tell — followed by every slide: which layout, the copy for each blank, and speaker notes. It all appears live, slide by slide.
-
Review & refine — you're the editor
Nothing is built yet; this is just a plan. You can edit any text inline, reorder slides (↑/↓), remove ones you don't want, tweak the speaker notes, or type feedback like "merge slides 3 and 4, punchier tone" and have the AI revise the whole plan while keeping the story coherent. Each card shows a thumbnail of its layout.
-
Name it → "Build deck"
The server copies the master template into your Drive, keeps only the layouts you chose (in your order), swaps every
{{blank}}for your copy, writes the speaker notes, and hands back a link. Open it — it's a normal, editable Google Slides presentation.
Your brief, the edited plan and the last result are saved in your browser, so a refresh doesn't lose your work.
How we "teach" the AI
The AI doesn't magically know our template or our house style. Every request carries a long system prompt — a set of standing instructions — that does three jobs:
- Gives it the menu. A catalog of every available layout is generated automatically from a single file (
_registry.json) and appended to the instructions — each layout's name, when to use it, and the blanks it expects. Add a layout to the template, describe it in that one file, and the AI can use it. No code changes. - Sets the structure. It spells out the skeleton of a good deck: cover, title, an agenda of chapters, then each chapter as a section divider → content → takeaway, and a strong closing beat. This is the part that turns "a pile of slides" into "one argument".
- Enforces our voice. A block of house-style rules: write what the slide says not what it does, stay in the client's voice, use real numbers from the brief and never invent facts or quotes, report findings with conviction rather than as open questions.
Your brief is then added as the user's message, and the AI must reply in a strict, machine-readable format (more on that below). When you ask for a revision, we replay the previous plan back to the AI and ask it to change only what you questioned.
The exact wording lives in prompt.md in the repo — it's readable, and tuning it is most of how the output gets better over time.
The paths we chose, and why
Every interesting system is a stack of trade-offs. Here are the ones that shaped AutoSlides.
Give the AI a narrow job: choose & write, not design
Make it write the story first, slides second
Demand a strict, structured answer (not free text)
One file describes the whole template
_registry.json. The template is the single source of truth; the rest follows automatically.Let the server fill what computers do better
Human in the loop, always
Bake in the house style — and ban invention
Stream everything live
Secrets on the server; the deck is built as you
@bbc.be accounts can reach the API at all, so strangers can't spend our AI budget.Run it in Europe, on Google Cloud Run
europe-west1, Belgium) and inside the Google project we already use for sign-in. It scales to zero, so idle cost is essentially nothing.What it deliberately won't do
It's a proof of concept, and honest about its edges:
- It doesn't generate images. Visuals come from the fixed template layouts; the AI writes captions that label them, not descriptions of new pictures.
- It won't invent your evidence. Quotes, names and numbers must come from your brief. No source? It picks a layout that needs none.
- Length hints are guidance, not hard limits. The AI is told roughly how long each blank should be, but very long copy can still overflow a layout.
- The template and its description must stay in sync. Editing the master template without updating its registry entry will quietly break a layout — hence a named owner and a simple rule: edit template → update registry → re-render thumbnails → redeploy.
- It's scoped to BBC. Sign-in is restricted to company accounts; it's an internal tool, not a public product.
Plain-language glossary
- Large Language Model (LLM)
- The AI behind the planning — here, OpenAI's GPT model. It predicts text, which makes it good at choosing layouts and writing copy when given clear instructions and material.
- Prompt
- The text you send the AI. We wrap your brief inside a much larger "system prompt" of standing instructions before it ever reaches the model.
- Structured / JSON output
- Forcing the AI to answer in a strict, predefined data shape instead of free prose, so software can act on it reliably.
- Placeholder / token
- A labelled blank in the template, written like
{{title}}. The build step finds each one and replaces it with the AI's copy. - Registry
- One file (
_registry.json) listing every template layout — its name, when to use it, and its blanks. The single source of truth. - Streaming
- Sending the answer piece by piece as it's produced, so you see the deck appear live rather than all at once at the end.
- OAuth / access token
- The "sign in with Google" handshake. It gives the app a short-lived pass to act on your behalf — so decks are built into your own Drive.
- Cloud Run
- Google's service for running our app on demand. It wakes up for a request, runs, and sleeps again — cheap, and hosted in the EU.