Aternex

A complete furnishings business runs on Postgres inside the visitor's browser: in a mid-range phone profile it is ready to query in under two seconds once the engine is downloaded, and it keeps nothing on the device until the visitor signs in or changes something.

Ochre Nocturne, the flagship demo Aternex built end to end: a home furnishings retailer with a storefront, a designer trade programme, a back office, delivery and reporting on one set of data. It is a Next.js static export; the database is PGlite (Postgres compiled to WebAssembly) in a Web Worker, kept in IndexedDB, and the site is served from Azure Storage behind Azure Front Door.

Open the store, then sign in

Browsing, then the database

Browsing the store downloads 0.58 MB. Opening the database brings it to 5.08 MB, of which the engine is 3.8 MB, and it is ready in 1.89 to 1.91 s in a mid-range phone profile once downloaded.

The bars show bytes over the network, up to the 5.08 MB once the database is open.

How each figure was measured
ValueMethodRecordedScope
1.89 to 1.91 se2e/flagshipEngine.spec.ts in Playwright's Pixel 7 profile with the CPU slowed four times through the DevTools protocol, against the production build on a local edge; three runs on an idle machine, alternated with the build measured that morning (1.75 to 1.76 s)2026-10-03Start-up: from the start of the engine check to a seeded database ready to query, once the engine is downloaded
3.8 MBcurl against www.aternex.com with Chrome's Accept-Encoding: 3,829,407 bytes of brotli for the three engine files (16,778,719 bytes uncompressed)2026-10-03The database engine, downloaded only on the first sign-in, add to bag or back-office visit; browsing downloads none of it
99 to 100Lighthouse 13.5, mobile, simulated throttling, three runs per page against www.aternex.com: performance 99 to 100, accessibility 100, best practices 100; largest paint 1.5 to 1.6 s, blocking time 40 to 80 ms, layout shift 02026-10-03The story page (275 KB in 21 requests) and the store home (419 to 424 KB), first view
0.58 MB, then 5.08 MBe2e/flagshipMeasure.spec.ts (E2E_MEASURE=1) against www.aternex.com in the Pixel 7 profile with the CPU slowed four times; response bodies and headers as Playwright reports them, the database worker included; three runs. The first view is larger than Lighthouse's because the Pixel 7 screen is denser (2.625 against 1.75 pixels per point), so the browser picks larger product photographs: 253 KB of images against 99 KB2026-10-03Bytes on the wire: the store's first view, then after signing in opens the database
0.8 s, 1.2 to 1.7 s, 0.5 se2e/flagshipMeasure.spec.ts against www.aternex.com, Pixel 7 profile, CPU slowed four times, three runs: search 0.76 to 0.85 s, placing an order 1.21 to 1.72 s, opening the dashboard 0.44 to 0.49 s, signing in including the engine download and start-up 3.78 to 3.80 s2026-10-03From the action to the result on screen: search (answered from the page, without the database), checkout and the dashboard
8.4 MB, all of it freednavigator.storage.estimate() in e2e/flagshipMeasure.spec.ts before and after signing in, the first change the demo keeps, then the Remove demo data control, which reported 8.4 MB freed; IndexedDB and every flagship key were gone afterwards2026-10-03On-device storage: 748 bytes before signing in or changing anything (the site's service worker), 8.38 MB after it; what remains after removal is the main site's own page cache
2,372 tests in 27.3 svitest run on one 16-core machine, 27.2 to 27.4 s over three runs (593 of the tests cover the flagship); Playwright lists 1,322 browser tests across a desktop and a phone profile, each re-run only when its pages or code change2026-10-03Unit, database and component tests for the whole site, and the browser tests behind them
5 minutes, then 80 sGitHub Actions run times for the 17 successful CI runs and 12 releases on 2026-10-03 after browser tests began running once per change: CI median 297 s (150 to 692 s), release median 80 s (64 to 280 s), on self-hosted runners2026-10-03From a pushed change to every check passing, and from a merge to the site being live
$27.52The costs each image run recorded: $17.22 for the first full set, $1.01 of trials and logos, $9.02 to regenerate 133 colourways from each product's first photograph, and $0.27 for that trial2026-10-03All product photography, inside a thirty dollar budget
$0.75 in 7.7 minutesThe copy pipeline's own run log: three drafting model families and two revisers wrote copy for 115 products for $0.72, after a five-product trial for $0.03. Every answer was validated for structure, length and banned words; a separate model and a keyword scan then checked each product's copy against its facts, and eleven products with invented details were rewritten by hand2026-10-03Product copy for the whole catalogue

Dates are when each figure was recorded for this site; the work itself is dated in the setting above.

What this does not prove

Measured on one machine and one internet connection. The phone figures use Chrome's device emulation with the CPU slowed four times, not a physical phone, and start-up leaves out the engine download, which depends on the visitor's connection. Test counts and run times change with the code and are as of the date shown.

All proof

Want figures like these for your system?

Aternex measures the work before and after, then writes down what the numbers do not show. I reply within two business days.