What "for business" has to mean in a presentation maker

A logo upload field is not a brand. A deck built for a business goes in front of a board, a lender or a buying committee, and the first thing those rooms read is whether the document belongs to the company presenting it. That part is measurable, so this page measures it: where your colours come from, whether a machine is allowed to invent one, and what a large variation count does and does not buy you.

It includes the study of our own decks that did not go our way, because that result is the only reason to believe the rest.

Ways this engine can draw one deck

52,488

What a blind study told apart

2 of 10

Ten decks, judged on their picture treatments. A combination count is a claim about a file, not about what a reader sees.

Where the cause was

6 of 8

Call sites where a three-value axis drew only two of its values. Found and fixed on 23 August 2026.

Colours invented

None

A slot with no evidence behind it stays empty and asks you, rather than filling itself with a plausible navy.

The problem is not writing the slides

Generating the words stopped being the hard part some time ago, even though it is still most of the wait. What decides whether a generated deck can be used at work is that the business already has a visual identity and the deck has to arrive inside it — not approximately, but the actual colour, the actual logo, dark if the company is dark.

The usual answer is a template with a logo in the corner and one accent colour on headings. That produces a document recognisably from the tool rather than from the company, and everyone in the room has seen the tool. The alternative is to stop asking a customer to describe their brand and to read it instead.

Your website is the design system

You have already published your identity. The colours are in your stylesheet, the logo in your markup, the light-or-dark the page's resting state. Our extractor reads it from a URL you paste and hands back what it found with the evidence attached — which element, on which page, produced which value. Three rules govern it, and all three are restrictions.

What the crawl may not do

It never invents. No logo found means the deck is built unbranded, not branded with the first plausible square image on the page. No palette found means the slots stay unset. Every answer it fills carries a provenance entry naming where it came from, and anything without one is left out.

It reads, it does not save. The result is shown to you and you press save yourself. Overwriting a brand record from a crawl would be the product deciding what your company looks like, and a wrong guess would then sit silently on every deck you made after it.

It costs nothing. Reading a website is a fetch, not a render: no credit spent, no picture service called, and the request goes through the same guard as an anonymous one — a URL typed by a paying customer is untrusted input exactly as a stranger's is.

The interesting work is what it refuses to accept. A popular CSS framework emits its whole default swatch scale onto the root element — twenty-two hues at eleven steps — on every site built with it, used or not. Our first version walked that list and returned a near-white pink as one large technology company's brand colour. The second banned that framework's hue names, and a different site promptly returned a near-white olive. Chasing the list is endless.

What every design system shares is the shape: a swatch inside a scale is written name-step. So a colour-valued custom property ending in a numeric step is a scale entry whatever the hue, unless its name already claims a role — which keeps --brand-600 working. The cost is a company whose only brand colour is --blue-600: their palette comes back unset. That is the survivable error. The other one ships a stranger's near-white pink on your board deck.

Two more refusals. A variable whose name says ink or paper is never a brand candidate, even when that slot is filled from elsewhere — on one client's site a dark navy called --ink-2 was just saturated enough to pass the neutrality test and was being returned ahead of their actual cyan. And the light-or-dark decision ignores anything that depends on the reader's operating system: a site that goes black only because a visitor's laptop is in dark mode is a light site. A deck must not arrive white for a company whose site is black.

Picture framing is read by consensus, not first sighting: a treatment is reported only when at least two sampled images agree and they are at least forty per cent of the sample, because one rotated logo does not make you a slanted-frame company. Up to twenty-four images are sampled, logos and icons excluded — a page's furniture is styled nothing like its photographs.

One brand colour, three different jobs

This is where most of it goes wrong, and it is not obvious until you project something. A brand colour was chosen to work on the company's own website; dropped onto a slide it can produce a heading nobody at the back of the room can read. So the colour is measured against the paper it is drawn on, and its hue is kept while its value walks toward white or black — only as far as it must to clear a contrast floor. One client's cyan is the worked example.

#00B8D4 The colour they gave us About 2.1:1 against their near-white paper. Genuinely unreadable as heading type. 2.1:1
#008FA5 Drawn as a heading Same hue, its value walked toward black — as far as the heading needs and no further. Still unmistakably theirs: a deep teal, not a neutral. Adjusted for type
FILL Drawn as a fill Full strength, untouched. A panel covers the paper rather than sitting on it, so the question is what goes on top. Unmodified

The third chip is the fix for a real complaint. The adjusted colour was once used for fills as well, so the signature colour never appeared at full strength anywhere and the verdict was exact: the decks "seem unrelated to our brand image". Legibility is a question about type, and a fill is not type.

Measuring instead of assuming caught the opposite fault too. A blind reviewer measured our headings at 3.61:1 against body text at 15.67:1 — the hierarchy exactly inverted, the least important text the loudest, the line doing the arguing fading into the paper. Clearing an accessibility floor is not the same as having a hierarchy. Headings and body are now walked to 7:1 by default, over a hard 4.5:1 floor on running text that no style may go under.

Supporting text takes the deck's own ink quieted, never the brand's second colour. On a client whose secondary is a strong red, every stat label, card detail and caption came out red — twelve pages reading as twelve error messages. A colour on text says the text is special, and supporting text is the opposite of special.

52,488 ways to draw the same deck

The second half of "for business" is that your deck should not look like the last one the same tool made for someone else. Our renderer separates what is claimed from how it is drawn: the writer names claims and never touches geometry, which is chosen from eleven independent axes. The first build of the style worlds pinned most axes to single values and left one world with nine possible looks in total, which is the same fault one level up — so a world now states a set of legal values wherever it has an opinion rather than one.

Multiplied out, that is 52,488 distinct renderer dialects before the palette and the writing vary at all. A style world may pin an axis to a value or a set, narrowing its own range deliberately: a world exists so that two worlds do not blur into each other, and the dialect exists so that two decks inside one world do not.

The six style worlds, and how wide each one is
WorldDialectsWhat it pins, and why
Corporate52,488Pins nothing. It keeps all eleven axes free, which makes it the widest of the six rather than the plainest.
Expressive2,304Narrows seven axes and pins only one of them — type — to a single value. The rest it states as sets.
Editorial1,152Narrows seven, pins two. A magazine never cuts the corner off a picture, which is a set rather than a single value: not "always the seam", but "never the corner".
Brutalist288Narrows eight, pins four. It also raises the running-text contrast floor from 4.5:1 to 7:1, because nothing whispers there.
Documentary192Narrows nine, pins four. Its charts are pinned to one form, and a photograph is never regraded into the brand's two colours — the thing that turns a real photograph into stock.
Swiss96The narrowest, deliberately: eight narrowed and five pinned outright. A Swiss page does not cut a photograph on a diagonal.

One property matters more to a business buyer than the size of the number. The choice is seeded, never random. The seed is a hash of your brand name, the deck title and the axis name — so your company name is an input to the geometry, two companies asking for the same deck get different pages, and re-rendering your own returns the identical geometry rather than quietly redesigning it under you. The writer cannot reach it: the deck schema rejects unknown fields, so no model output can smuggle a shape through. It does pick which world a deck lives in and which layout each page takes — those are decisions about the subject — but never how a panel meets the paper.

We published the study that said it was not working

A number like 52,488 is a claim about a file. Whether a person can tell two of those files apart is a different question, and the honest way to settle it is to show ten decks to a judge who does not know which is which.

We did. The picture treatments were distinct on only 2 of 10. Combinatorial variety had not bought perceptual variety, which is the thing customers had actually asked for.

The cause, and it was ours

The photo axis carries three values — a diagonal cut, a hard vertical seam, an inset plate. The plate is only correct on a photograph: insetting a colour band meant to reach the edge of the slide would leave a gap showing whatever is behind it, so the panel function reaches the plate only when its caller says the panel is a picture. Six of its eight call sites do not, because they draw colour bands.

On those six, the third value fell through to the second value's branch and drew the identical rectangle. For two weeks the axis multiplied the arithmetic by three and the page by two — the single largest contributor to decks that vary on paper and look alike on screen.

Fixed on 23 August 2026. The third value now draws a stepped edge on those six sites: a rectangle with one upper corner notched in, which reaches the edge so nothing shows behind it and is unmistakably neither a diagonal nor a plain panel.

The lesson generalises to any vendor, us included: a reader does not see a combination count. They see colour, type, density and imagery. If those four are constant, the decks look alike however many connector variants exist underneath. Ask for the count if you like, then ask what happened when somebody counted what a reader could tell apart.

What this fix does not yet prove

We have not re-run the blind study on ten fresh decks since the change, so we cannot give you the new figure and will not estimate one. The fix is verifiable — the branch exists, the geometry differs, the suite passes — and the reader-facing result is not yet measured.

Nor can we say which of the eleven axes are perceptually load-bearing. If two carry everything a person notices and the rest are invisible at a glance, the effective variety is far smaller than 52,488, and that smaller number is the one worth raising. It is the open question on this product.

What arrives, what it costs, and what happens when it does not

The output is a real .pptx file and a PDF copy, delivered to you rather than shown inside a viewer you need an account for. The file is written by hand: the ZIP container is built byte by byte with its own CRC-32 table, deflate through the platform's compression stream, local headers, central directory and end-of-central-directory record, no library involved. Writing it by hand is what makes the ordering ours to get right — the slide element sequence is strict, and a transition placed before the colour-map override instead of after it produces a corrupt file no error message explains. The notes on what PowerPoint accepts and what silently breaks are separate. The renderer is 12,381 lines, and the project's suite of 1,209 tests all passed on the run taken for this page.

Everything the production pipeline has delivered
KindDeliveredMeanFastestSlowest
Slide decks58340 s139 s1,432 s
Branded documents6379 s79 s1,405 s
Images4235 s
Data reports1143 s
All kinds69

Across every kind of work: 69 delivered, 8 failed and 2 still working — 79 jobs, 87 per cent delivered. The full deck timing distribution, median and tail, is on the timing page.

Pricing, and every figure here is an indicative estimate rather than a quote. Work is priced in credits, and during the alpha a credit is one dollar. A slide deck is 25 credits, a branded document 10, a data report 15, a single image 1. Ten credits are granted free on signup — a whole branded document, or ten pictures, before you decide about a deck.

When a job fails, the ledger gives back exactly what that job took, exactly once, by copying the original spend rather than looking the price up again — so you get back what you paid even if the rate card has moved. The honest edge case: a deck that was delivered and then lost some of its illustrations is not refunded, because you have the document.

What to ask any vendor, including us

01 Where do my colours come from?

Typed in by hand, or read from something? And if they are read, what happens when nothing is found — an empty slot, or a plausible guess you notice only after it has gone out under your name?

02 Does the deck arrive dark for a dark-branded company?

A cheap test with an expensive answer. If a tool cannot tell a black site from a white one, it is applying your colours to its template rather than building in your identity.

03 Does my brand colour appear anywhere at full strength?

Contrast-correcting a colour is right for type and wrong for fills. A tool that applies one adjustment everywhere produces a deck in a muted version of your brand, which reads as unrelated to it.

04 How many ways can it draw the same deck — and who checked?

Ours is 52,488, and our own blind study found the picture treatments distinct on 2 of 10 before we found the bug behind it. The count is the easy half of that sentence.

05 Can the model choose the shapes?

Choosing which layout a slide takes is a decision about the content, and our writer does make it. Choosing how a panel meets the paper is not, and ours cannot reach that at all. If a prompt can reach the geometry, the look is a function of the wording, and two runs of one brief come back as two different documents.

06 Do I get a file, or a link?

A board pack gets forwarded, printed and edited by someone who has never heard of the tool. Ask for the editable file, then open it somewhere other than where it was made.

07 What have you published that did not work?

The question we would ask first. A vendor with no null results has either never measured anything or decided not to tell you. Ours are on this page and the ones linked from it.

Where every number on this page comes from

Provenance
FigureSource
52,488 dialects · eleven axes at 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2The DIALECT_AXES constant in the renderer, which is the single statement of the space; the product is computed over it.
World widths: 52,488 · 2,304 · 1,152 · 288 · 192 · 96, and how many axes each narrows or pinsComputed by walking each world's own declared dialect against DIALECT_AXES, treating an unstated axis as free and a set as its own length.
Picture treatments distinct on 2 of 10A blind study of ten generated decks, recorded in the renderer at the function written to fix it.
Six of eight call sites · fixed 23 August 2026Eight calls to the panel function exist; two pass the flag that reaches the third value. The stepped-edge branch is the fix.
#00B8D4 at about 2.1:1, drawn as #008FA5One client's palette as recorded in the renderer, worked through the contrast function that keeps a hue and walks its value darker for type.
Heading 3.61:1 against body 15.67:1A blind reviewer's measurement of our own output, on every content page, before the heading floor was raised to 7:1.
Consensus at 2 images and 40 per cent, of up to 24 sampledThe framing function's own defaults.
58 decks · 6 documents · 4 images · 1 report · 69 of 79 deliveredThe studio_jobs table in the portal's production database, counted by kind and state.
12,381 lines · 1,209 tests passingA line count of the renderer file, and a full run of the project's test suite — 1,209 tests, 1,209 passing, 0 failing — both taken for this page.
Prices in creditsThe published rate card. Indicative estimates, not quotes.

If any of it is wrong, we would rather hear so than not: [email protected].