Commits

Redesign Night: the website debuts a homepage, dedicated sections and terminal assistant

Complete redesign night: CI unblocked, homepage and sections with their own design, the assistant turned into a terminal, and the block-by-block comparison method that made it all possible without breaking anything.

The night has been one of the big ones: a complete redesign of the website, block by block, with a new method that is, surely, the reason why nothing broke along the way.

First, unblock the CI

Two pushes had been failing on GitHub Actions for two days before even building the image: an as const on a ternary on the capabilities page that the local check hadn't caught. Plain return annotation, green run, and image published. Process reminder: the push only publishes the image; the domain doesn't move until the server pulls the public website, and that step is still pending.

Redesign by comparison

To redesign the homepage without risk we set up an internal page with each block in two versions, the current one and the proposed one, labeled and with anchors. Compare, decide, promote the chosen one, and delete the comparison page. The texts ended up in a shared file, the component was split into reusable blocks, and a normalized diff proved that the HTML didn't change during the refactor.

The general pass

The homepage debuts a hero with a line-by-line reveal and a constellation map where the core emits data pulses for each discipline; the manifesto, with a 3D stack, and the method as a timeline. The header gains animated underlines, compact languages, and folding on scroll; the footer, a featured email and columns with labels. The profile adds a portrait revealed with clip-path and a numbered timeline; capabilities, a panel of disciplines rotating in 3D with an animated glyph per row. Contact goes without a form: a giant headline revealing itself letter by letter and a diagram with two pulses traveling in opposite directions between "you" and "escandell". The portfolio leaves the uniform grid for a typographic index where the cover floats in a frame with tilt on mouse hover; the notes become a notebook with the latest entry typing itself; and commits, the last section without its own design, is now a living git log: terminal with the latest commits streaming and a timeline with nodes colored by type.

The chat that was supposed to be a terminal

The section assistant has ended up being a real bash terminal: real session, startup lines, command with echo, and responses as console output with numbered fonts. It's been the third iteration: the first two were still a disguised chat. When you ask for a metaphor, you have to remove the affordances of the previous paradigm, not just paint over them.

The hiccups of the night

A new wrapper left the header without sticky; an SVG animation without transform-box sent the spheres of the contact diagram toward the horizon; the disciplines carousel made two words coincide in the same slot; a heredoc left escaped quotes on the three cards. And the recurring bug family: containers with fixed height that assumed short text, when the panel has full sentences. Design for long text from day one.

How every change is closed

New project rule: no change is considered closed without a complete check, tests, and build. The CI, which caught what the local wasn't seeing, gave the reasons.