journal ·

How little a journal page has to load

A page that opens quickly is easier to read, especially on a phone with a weak signal. Here is what one journal page on ipe.rest actually loads, with the sizes we measured, and what it leaves out on purpose.

Yesterday’s entry was about small choices that help readers. This one is about the weight behind them. We took the entry from 5 November, the English page, and looked at the files it asks for. The numbers are from 6 November 2026.

One small page

The page itself is a single HTML file of 30,871 bytes. Sent over the wire it is compressed to 8,255 bytes, which is about 8 KB. The styles are written inside that file rather than in a separate stylesheet, so there is no second request to wait for before the text can be laid out. The body of the page has no images at all; only the small link preview image, which is never shown on the page, is named in its head.

One script, and what it does

The page loads one script of 6,218 bytes, about 2.3 KB compressed. It does the small jobs a static page still needs: it switches between languages, remembers your choice in your browser, and counts visits. There is no framework behind it and nothing to install.

Fonts from our own server

The text is set in Inter, with JetBrains Mono for the small labels. Both are open fonts, and the files are served from ipe.rest itself: 27,540 bytes for Inter and 20,420 and 21,164 for the two weights of the mono face. No font is fetched from another company’s server, so no font request ever leaves for anyone else.

The fonts are set to swap. Your browser shows the words straight away in a font it already has, and replaces it when the font file arrives. Reading never waits on a download.

Added up

Add the compressed page, the compressed script and all three font files, and a first visit comes to roughly 80 KB. Later visits are lighter, because your browser and the site’s own cache keep the files and the pages still open offline, as we described earlier this week.

What comes from elsewhere

One thing does not come from our server: the analytics script from Google, which loads after the page and which the privacy page describes. It is not counted in the 80 KB above, and the text reads the same without it.

What we have not measured

We measured file sizes, not how long a page takes to appear on a slow connection or an old phone. Sizes also drift as entries get longer and as we change the styles, so treat these as a snapshot of one page on one day.

ipe(); // a page is just a file

None of this is a record to beat. It is a habit: before adding something to a page, ask whether the reader will miss it if it is gone.

← all entries