‹ Build a Dashboard Lesson 7 of 16
Contents Lesson 7 of 16

3 min read · practitioner

Named layouts, and the URL that shares them

A layout is a document, so saving several is a list rather than a feature.

Name them after questions

"Morning check", "Earnings week", "Deep dive on one name". Not "Layout 1".

This is not a naming convention, it is a design constraint: if you cannot say what question a layout answers, it is a collection of panels rather than a view, and it will drift into holding everything. A cockpit that shows everything shows nothing, and the discipline that prevents it is naming.

Switching must be instant and lossless

Two requirements that are easy to miss:

Instant. Layouts are documents you already have; switching is local state, not a round trip. If switching a layout hits the network, you built it wrong.

Lossless. Unsaved changes to the current layout must not vanish silently. Either autosave on change, or say "unsaved changes" and mean it. Autosave with an explicit "revert to saved" is usually the better answer for a personal tool — it removes a decision from every interaction.

Switching layouts changes what data is needed, so the data layer gets a new union. Symbols in both layouts are already cached; only the new ones cost anything. That falls out of unit 1 without new code, which is the payoff for having built it.

The URL carries the view

/dashboard?layout=morning&symbol=AAPL.US

Layout name and selection, nothing else. The layout body lives on the server, so the link stays short and does not leak your configuration into someone's browser history.

Same rule as ever: both parameters are input from a stranger. Unknown layout name falls back to the default rather than erroring; the symbol goes through the allowlist. A link someone sends you must not be able to make your server fetch something you did not choose.

Export, so it is yours

One button that downloads the layout as JSON. It costs almost nothing and it changes what the tool is: your configuration is portable, diffable in git if you want, and recoverable when you break something.

It is also the honest answer to "what if I stop using this" — a question worth being able to answer about your own tools.

Try it now

Build three layouts and use them for a week. The one you never open is telling you something about the panels in it, and deleting it is a better outcome than keeping it.