Websites

Website build time by page count: 41 builds measured

A production build of a small React website takes seconds, not minutes, and grows slowly with page count. In 36 green builds of AI generated sites, 1 to 3 page sites built in a median of 20 seconds and 10 to 14 page sites in 39, including the checks that open every page at three widths.

· Co-founder

4 min read · Published

A production build of a small website takes about 20 to 40 seconds and grows slowly with the number of pages. In 36 green builds of AI generated React Router sites, sites of 1 to 3 pages built in a median of 20 seconds, 7 to 9 pages in 30, and 10 to 14 pages in 39.

Where the numbers come from

The table is read from OneCraft’s development project on 21 October 2026: every website build started by a generation in the code_builds table, 41 in all on 18 site records, and every app export in app_builds, 15 on 5 apps. Each build is grouped by the final page count of the site it belongs to. Times run from the moment the build service starts the job to the moment it finishes.

The caveats:

What a build does

A build on OneCraft is more than bundling. It runs a type check, ESLint, the production build, then a layout check that opens every prerendered page in headless Chromium at 375, 768 and 1280 pixels and fails on sideways overflow and on runtime or hydration errors. Only a build that passes all of them is green, and only a green build can be previewed or published.

So the seconds in the table cover four jobs. Bundling with Vite and prerendering each route to HTML, as React Router’s prerendering does, is quick for a site this size. The layout check is the part that scales with pages, because it loads every page three times. Static site vs server side rendering explains why prerendering is what lets those pages be checked and served as files.

Build time by page count

The medians climb from 20 seconds at 1 to 3 pages to 22 at 4 to 6, 30 at 7 to 9 and 39 at 10 to 14. Roughly, each extra page added a little under 2 seconds. The slowest green build, 74 seconds, was a 9 page site building alongside others; the slowest in the biggest band, 63 seconds, was a 10 page site on the same busy afternoon. The fastest, 17 seconds, was a 3 page site on 14 October.

Failed builds

5 of the 41 website builds failed, on 3 sites, and they failed fast: a median of 22 seconds. The first 20 lines of their logs show two layout check failures (a page overflowing sideways by 33 pixels at 375, another at 768), one TypeScript error where a component was given a property it does not accept, and two where the failing step was below the lines kept. The one failed app export stopped in 6 seconds on a lint rule about an unescaped apostrophe. In a generation, a failed build sends the error back to the agent, which fixes the code and builds again; in a chat edit, a change whose build fails is rolled back to where the turn started.

What a hydration error is explains one of the checks, and what a static website is explains the prerendered files it runs against.

App exports

An app is checked differently. Instead of a website build, each round exports the Expo app for the web and takes screenshots of every tab at 390 and 768 pixels, plus Home in dark mode. The 14 green exports took a median of 58 seconds, from 41 to 98, about twice a website build. That is the web export only; a store build through Expo is a different, longer job that runs on Expo’s servers and is not in this data. Development build vs production build and Expo Router cover that side.

What it means for you

Build time is rarely what makes a website slow to change. On OneCraft each chat change is one commit and one build, so a one line fix waits about half a minute before you can see it in the live preview. Generation time, the AI writing the code, is the bigger wait, covered in how long AI website generation takes.

Three habits help. Ask for one change per chat message, so each build checks one thing. Keep pages the site actually needs, since each adds a little to every build and every check. And when a build fails, read the first error line: overflow at a width and a type error are the two most common, and both are quick to fix. For the steps around builds, see editing with AI chat and version history, and for a whole site from a brief, the AI website builder.

Generation builds by the site's final page count, dev project, read 21 October 2026 (n = 41 website builds on 18 sites: 36 green, 5 failed; plus 15 app exports on 5 apps). Seconds run from the build's start to its finish and include the type check, lint and layout check
Site sizeGreen buildsSitesMedian secondsMean secondsRange seconds
1 to 3 pages55202117 to 28
4 to 6 pages72222320 to 28
7 to 9 pages168303427 to 74
10 to 14 pages83394232 to 63
All website builds3618293217 to 74
Failed website builds5 failed322209 to 24
App web exports14 green, 1 failed5586141 to 98 (green)

Questions people ask

Why does a bigger site take longer to build?

Each page is compiled, prerendered to HTML and then opened in a headless browser at three widths by the layout check. More pages mean more modules to bundle, more HTML to write and more pages to open. The bundling grows slowly; the page by page checks grow in step with the page count, which is why 10 to 14 page sites took about twice as long as 1 to 3 page ones.

What is the difference between build time and generation time?

A build turns finished code into a site, in seconds. Generation is the AI writing that code, planning, reviewing and fixing it, which takes minutes and may run several builds along the way. In this sample the builds were a small slice of each generation; see the separate post on how long generation takes.

Why did one 9 page site take 74 seconds?

Its single build ran while several other generations were building on the same development stack on 20 October, so it shared the build service with them. Builds of the same size on quieter runs took about 30 seconds. It stays in the table so the range is honest, and the median barely moves.

Why do app exports take longer than website builds?

An app export bundles a React Native app for the web with Expo, which has a larger dependency tree than a small React Router site, and the screenshots for the review are taken of every tab at two widths plus Home in dark mode. The 14 green exports had a median of 58 seconds against 29 for websites.

What makes a build fail?

In this sample: two layout check failures where a page overflowed sideways at 768 or 375 pixels, one TypeScript type error, two whose cause was not in the first 20 log lines, and one app lint error. A failed build fails fast, a median of 22 seconds, because the check that fails stops the run.

Written by

Indunil Asanka · Co-founder

Builds the generation pipelines behind OneCraft: the slide, flyer and poster layout engines, the document grid and the render workers that turn a written brief into a finished file.

LinkedIn profile

Sources

Written and checked by the OneCraft team. Last checked .

Make your own website

Describe what you need and the generator writes and designs it, then you edit anything you like.

See what it can make

Read next