Blog

Notes on frontend, Astro, TypeScript and web performance.

Near-perfect Core Web Vitals with Astro

Concrete strategies I apply to keep LCP, CLS and INP in the green on real-world sites.

#performance#astro#web-vitals

Type-safe i18n in Astro

Why autocompletion of translation keys changes your workflow, and how I solved it with @ariaskit/astro-i18n.

#typescript#astro#i18n

If you do it three times, automate it

When it pays off to write a script or a CLI, and when it is procrastination with style.

#programming#productivity#cli

Accessible tabs without a single line of JavaScript

How to build a reactive tabs system using only native radios and the CSS :has() selector.

#css#astro#accessibility

DRY doesn't always win: when repeating is fine

Premature abstraction costs more than a little duplication. How to decide when to extract and when to wait.

#programming#architecture#best-practices

Small commits, happy life

How the size of your commits affects review, debugging, and your future self.

#programming#git#best-practices