ABA Media Platform | AMP

The build record

Every deploy, in order.

One line for every time this site was published: when it shipped, what deployment it created, how many pages were in it, and a fingerprint of exactly what went out.

Nothing on this page is typed. It is read from the deploy log every time the site is built, which is the only version of this page worth publishing — a build record somebody could edit is not a record, it is a claim about one.

This record does not start at day one, and the missing deploy is the important one

The log begins 2026-09-11 09:05 UTC, which is about the fourth day of this site rather than the first. Earlier deploys happened and were not recorded, because nothing was recording them yet.

One of those absent rows is the deploy that shipped an empty site. That failure is the reason the deploy script exists, the reason this log exists, and the reason there is a digest column at all. It is the most instructive build in the project and it is not below, because the tooling that would have caught it was written in answer to it.

A record that quietly began on day four and called itself complete would be the same mistake a second time. So it is said here, above the rows, rather than left for someone to notice.

49deploys logged49distinct digests0repeat shipments13/16/17/18/19/20/21/22page counts seen
#WhenCloudflare versionPagesdist digest
0012026-09-11 09:05 UTCunknown13bea8924bd96b
0022026-09-11 09:14 UTC9d05d24e-4840-4987-b896-951b5683ec9013204c8aaffe3a
0032026-09-12 01:39 UTCab0fa855-57db-44e0-933d-a355d5aaeeac1305a8ba4a627b
0042026-09-13 15:57 UTCf48c72e8-3258-452b-9ffd-bd172cfe667d1709f9479e9650
0052026-09-13 16:28 UTC0531047a-6fb3-45bd-b67a-375bf6dcab2e17c5a84d4453ce
0062026-09-15 06:12 UTCcf6cfa4d-c0b6-4762-b68a-4b3e47b1ef4917c9a65380961a
0072026-09-16 04:06 UTC6692325a-7cf2-41dd-8a49-74cae35df27217024182d3480a
0082026-09-18 02:06 UTC1781ac65-4755-47dc-b3bc-756990541c6017124292d3a868
0092026-09-18 02:22 UTC31f6498d-925d-4091-94bc-b30cf84fea5c1775af5e1ba761
0102026-09-19 17:58 UTC45f50e41-8d06-4011-85f1-db78f349b66217c1d2386af81d
0112026-09-20 19:55 UTCd38a50ce-4434-4e3a-a8e4-d56b84fd6120182d4822bd27f3
0122026-09-20 20:44 UTC48a86f43-4395-445c-b082-0061fc0d367719e414be70091e
0132026-09-20 21:07 UTCa0654d96-639f-4b59-b742-c28dcf2eab9119393dcb668411
0142026-09-21 08:27 UTC01132beb-4703-4787-8a84-c155d4613878194d15ada4cde9
0152026-09-23 16:37 UTCb5e7d252-5e5f-4379-96eb-ffff47b24080196ab042c81965
0162026-09-23 16:45 UTCf8b5b6ea-5cac-4d95-899e-ed441a809866191cbd57707e7f
0172026-09-23 17:10 UTC71c71a74-a2a6-4896-aa0d-55d2a41fa83f197eb8d80d757a
0182026-09-23 22:27 UTC7ed09353-8957-4b96-af8a-c878ac59ea9219da2b60fa49ec
0192026-09-24 01:07 UTC15b1c770-f5d1-4206-a2f6-2ce82d25f9a619f8fd36765be9
0202026-09-28 02:50 UTCf531bb10-0dc9-4bbc-aced-637106b3c11c20bbca46529ad3
0212026-09-28 03:27 UTC58e4167e-dc02-41d1-b9a8-2f356ccfe46420435a90360dad
0222026-09-28 05:20 UTCed37a4fb-ce68-4f60-a849-88a0abfaea032076b648764f58
0232026-09-28 05:34 UTC77066a8c-03e7-4293-9301-61227a02aaf420f18361b5f310
0242026-09-28 08:32 UTC37b9f804-7eb2-4a2c-abc8-e4d186fc3a7020f05b8d1b12d4
0252026-09-28 08:41 UTC1476ecf8-06d7-41e1-8376-e2e9c4d99f2b1642692eca1f3d
0262026-09-28 10:40 UTC68aa9378-9acd-430a-86cf-28e3bb8681b8163ffc482c1e46
0272026-09-28 13:24 UTCa0fd0572-346f-4d08-8cc2-dd1986caa7d8162e7144306962
0282026-09-28 13:29 UTCe22db5c1-0651-4d8d-8c4f-e4ec5b2f213b16cd514f156a49
0292026-09-28 21:36 UTCcc50bedc-e32a-40e9-95d4-1bf4f0138fdb169643a24aa293
0302026-09-29 00:07 UTC4531101e-ecc1-4c0a-922b-2dc052caccb1169ea12c73bec1
0312026-09-29 01:28 UTCc32cc039-337b-4b2b-a6c7-e9ce7823612921487eeffd6ff9
0322026-09-29 01:40 UTC402b34db-5a41-4b21-aa1a-93189d91104c2190d0ca117f48
0332026-09-29 01:47 UTCdac9baab-a1fa-412e-9f18-c725b29bbabb21de9aead96687
0342026-09-29 01:51 UTCc1d1b8cd-66c2-4193-9b19-abfc4ac0dbb221f52d0f7b3974
0352026-09-29 02:28 UTCb6e1cedc-2685-4358-b1fc-02529f78870521c9c6edd9bcae
0362026-09-29 17:53 UTC90c06dbd-2199-4e6f-bdc7-dc008bd65e7121360c84430d85
0372026-09-29 18:01 UTCbcc346a9-dc6d-4896-afb2-0d2b1af50a7f21290d989b1afe
0382026-09-29 19:17 UTC94986900-1df0-4075-b98c-471a44f31b3221098ccdc14136
0392026-09-29 19:26 UTCcbd0a261-9639-4847-8597-6ace31d46c3921695a222a4f14
0402026-09-29 23:48 UTC1f3d85ec-aa4c-4f08-a709-b98b7ecbdd9822bc68c33693a5
0412026-09-29 23:57 UTC4c805e33-d14e-421f-8c7f-9742ffd2d8b02218a539a462b5
0422026-09-30 01:03 UTC0db97347-6b4e-4bfb-8134-4e0412c63d7a22949026284f55
0432026-09-30 01:11 UTC2e23bf4e-1ac9-4c15-b373-3a80191eadca22eb6afa29049b
0442026-09-30 01:20 UTCf84710e3-139d-4342-ae17-1434829b950b22eecc3c888e44
0452026-09-30 01:54 UTCe9b2d86d-bc77-4bf7-8cc3-9984dbc84cb8225d6b663ac9ac
0462026-09-30 02:06 UTCbc3b0830-dc58-4148-91bf-7da0728e56dc2245e950d0ff12
0472026-09-30 04:11 UTCf347297c-b901-40d4-9467-38f753a5f03822069a7636e085
0482026-09-30 06:55 UTC561716f7-8d7d-46bb-8e25-0c0fe7a64ffc221088e9eddf87
0492026-09-30 10:15 UTC376d4a2b-ec4b-46f7-bc76-ccdee751987d22e81de96939f9

Scroll the table sideways for the digest column.

What the digest column is for

The digest is a SHA-256 taken over every file in the built site. Two rows carrying the same digest shipped identical bytes, however different their deployment identifiers look. A version identifies an event. A digest identifies what was in it.

In this record no digest repeats. Every deploy changed something. That is worth knowing in both directions: no build was a no-op, and there is no row to point at and say the site was reshipped unchanged.

The marked row

The first line carries unknown where a deployment identifier belongs. The deploy happened; the script was not yet capturing what Cloudflare returned. It is left in and marked rather than filled in afterward from memory. A record you may edit later is not a record.

The last row is always missing, and it cannot be otherwise

This page was built from 49 rows. The deploy that published the copy you are reading is row 50, and it is not on the page.

That is the order the work happens in and not an oversight. The site is built, the build is gated, the result is deployed, and only then is the row written — because the deployment identifier and the digest do not exist until the deploy has happened. Rendering the row first would mean writing down a fingerprint of something that had not shipped yet.

So the record trails reality by exactly one deploy, permanently. It is said here rather than left for a reader to notice that the newest deploy is never the newest row.

Why the type is this small

It is evidence, not argument. Nobody is expected to read every row and the page is not asking anyone to. The point is that every row is there to be read, that the list is complete from the day it starts, and that its gap is declared instead of closed. Set at reading size this would look like a brochure about diligence. At this size it looks like what it is.