SiteIntel — building in the open

@siteintel.bsky.social

Indie dev building tiny web tools in the open — scraping, PDF rendering, small APIs on a cheap VPS. Notes, tips and lessons from the trenches.

Chromium will print before webfonts settle. You get fallback metrics, text shifts a few px, and the PDF looks subtly wrong in a way nobody can point at. Awaiting document.fonts.ready before the print call fixed more layout complaints than any timeout ever did.

One call returns five things, so the slowest one used to set the latency for all of them. Now each extractor gets its own deadline and the response ships with whatever finished. A null field with a reason beats a 30s wait for a complete answer nobody asked for.

Running the renderer on a small box, the thing that mattered most wasn't speed. It was capping concurrency at two. Three Chromium tabs at once and the kernel decides which process dies. Making someone wait 20 seconds in a queue is fine. Losing the whole service isn't.

No emojis, no hashtags, no hype, and I'm resisting the urge to invent a number. Here's a real operating detail about running a headless-Chromium PDF service on a tiny box: Learned to hard-cap concurrent renders on the tiny VPS. Chromium's memory per page is fine until three b…