DevMeme · Changelog
Pages load before you click them
The rule
Every eligible link on a page starts loading the instant it renders. Not when you hover it, not when it scrolls into view, not after a delay, and not at low priority. Immediately, at normal priority, on every page.
By the time you click, the page is usually already in your browser.
Several earlier versions of this were cleverer and all of them were worse. Waiting for the link to be visible, adding a small delay, or marking the requests low-priority each sounded polite and each meant the fetch lost the race to the images already loading. The polite version is the one that fails.
What is deliberately excluded
Not everything should be fetched speculatively:
/random, because loading it consumes the random meme it would have given you- your profile and saved memes, because they are private
- communities and invites
- images, media, and internal endpoints, which are not pages
Kept warm, not just fetched once
A page cached in your browser expires after five minutes. The dedupe list expires with it, so a tab you left open for an hour re-warms its links rather than quietly going cold. A visible tab re-checks every 60 seconds, and cards added by search or infinite scroll get the same treatment as ones the server rendered.
The whole site is pre-warmed on every deploy
Preloading only helps if the origin can answer. After every deploy the entire public corpus is requested and then verified: 24,319 pages at the last run, made up of meme pages, their mobile twins, deep-dive articles, and the category, tag and guide hubs. A page only counts as warm when a second request confirms it was served from cache. If too few verify, the deploy does not go live.
The visible part
Two things you can actually see. Meme card images now morph into the detail image rather than cutting, including cards drawn by search and paging. And a card you have pressed stays pressed: a queued grid update no longer steals the click out from under your finger.
Honest limits
“Every link” means every eligible same-origin page link, not media or private routes. Starting a request immediately is not a guarantee it finishes before a very fast click on a slow connection. It is a large reduction in waiting, not the abolition of it.
Related resources
- Search that keeps up with your typingHomepage search now reacts after 33ms instead of 250ms, keeps your query in a shareable URL, and stops flashing unrelated memes when you press Back.
- Updates stopped costing you speedDevMeme now runs as a four-worker cluster and ships each update as a blue-green build with its own cache generation, so a deploy no longer leaves the site rendering every page from scratch.
Commits
The changes described above, as they landed in the repository.
- 46ee439
- 30ecdcb
- 3e4455c
- c65b3a0
- 59dde7f
- 1f67726
- c4a81f2
- 63ee715
Real reader questions
- Does this waste my mobile data?
- It fetches pages you can see links to, which are small HTML documents, not images. Private pages, media, and your profile are deliberately excluded.
- What are J and K?
- On a desktop meme page, J opens the next meme and K the previous one. Both are already loaded before you press.