frontend
Angular, TypeScript, and interfaces that show the truth about a system.
-
Testing That a Canvas Diagram Actually Painted Pixels
A canvas element can exist, have the right size, and show a completely blank drawing surface, and a DOM-based test suite will pass every one of those assertions. This covers why canvas content needs a real browser and a pixel-level assertion to test properly, with a complete Playwright example.
-
Runtime Configuration for an Angular Container Without Rebuilding
A frontend that reads its backend URL from an environment variable at build time needs a full rebuild for every deployment target, which defeats the point of building an image once. This article generates the frontend's runtime configuration from a container-start entrypoint instead, with a complete Dockerfile and compose setup that proves one image serves two different backends without being rebuilt.
-
Layering an Angular Application: core, shared, features and the Rule That Holds
Splitting an Angular application into core, shared and feature folders is common advice, but without something enforcing the dependency direction between them an API call ends up inside a presentational component the first time someone is in a hurry. This article states the one rule that actually needs to hold, and enforces it with a lint check a reader can run and watch fail.
-
Embedding a Built Frontend Into a Go Binary with go:embed
Serving a single-page application from a separate static file server next to its API is two processes that have to be deployed and versioned together but usually are not. This article embeds a built frontend directly into the Go binary that also serves the API, with a complete example including the single-page-application routing fallback that this approach needs to get right.
-
One Dashboard on Five Unrelated Backends: Normalising at the Boundary
A dashboard that calls a ticketing system and a CI system directly inherits their different pagination styles, error shapes and auth schemes. This article builds a FastAPI backend-for-frontend that normalises both into one schema, degrades gracefully when an upstream is down, and shows how to test each adapter without touching a real upstream.