This site is intentionally small. Every screen uses the same visual DNA so the story feels calm even when I’m shipping fast. Here’s the design language that keeps things consistent.
Type & rhythm
Geist drives every page — sans for body, mono for labels, codeblocks, and timestamps. I keep weights between 400 and 600 so the typography feels native on every OS. Body copy floats around 16-17px with 1.7 line-height; paragraphs breathe while still reading like product notes.
Color & mood
The palette is monochrome: #0a0a0a background, a near-white ink at #f5f5f5, and three muted grays for hierarchy. Saturation is zero everywhere except one accent — a warm amber (#ff7a2d) that maps to GetFluxly’s “flux” energy. The accent shows up sparingly: in eyebrows, on hover, around the dot that says now.
Layout rules
- Max content width locked to 1100px on the home, 720px in the prose.
- Global padding (28px horizontal) keeps the rhythm predictable from phone to desktop.
- Sticky top bar with subtle blur; no hero hamburger juggling.
- Mono labels for everything that’s metadata — timestamps, kinds, counts, status.
- One accent color, used like punctuation. Never as a background fill.
Iconography & micro-copy
No icon library. The site uses small SVG glyphs only for nav arrows and external links. Status comes from coloured dots, not badges. Copy stays first-person, present-tense, and short — no filler, no marketing voice. The landing page is intentionally light: details live in the project pages and essays.
This setup makes the entire site easy to maintain. Adding a new post is basically copy, paste, and write — the style system already handles the rest. Same goes for adding a project: drop a card into the grid, write two lines, done.
The aesthetic is inherited from GetFluxly on purpose. Same palette, same type, same density. If you click between the personal site and the product, the design DNA carries over — even when the products themselves don’t.