

Pablo Orozco
1.1K posts

@pablopvsky
El mundo no es tan teso.




Introducing deepsec, an open source coding security harness. • CLI-first • Sandbox-based scaling • Pluggable coding agents • Designed for large-scale repos • Use AI Gateway or your own subscription After months of successful internal use, we put it to the test on some of the largest open source codebases. vercel.com/blog/introduci…




One question I get on almost every discovery call when someone's trying to build a custom design system to suit their evolving product needs: "Should we use semantic naming for component tokens?" My answer is almost always no. But let me explain what's actually being asked first. Design system variables work in layers. → Primitives are your raw values — no meaning attached. For color, this looks like a full grey scale: grey-25, grey-100, grey-200, grey-400, grey-800. Every shade and tone your system will ever use, named after what it literally is. Nothing more. → Alias variables are where meaning enters. You take grey-800 and call it text-primary. grey-400 becomes text-placeholder. white becomes bg-primary. Now your primitives have context — and when your brand color shifts, you update one value, not fifty components. These two layers do the heavy lifting. This is where most systems should stop. → Component variables go one level further — input-field-label, input-field-border, input-field-bg-default. Scoped entirely to one component. And this is where teams over-engineer. Your alias layer already handles semantic meaning. Component variables duplicate that work without adding clarity — and they multiply maintenance. Every new state, every new component, every new variant is now a naming decision at three levels instead of two. The coming of AI tools like @claudeai code, codex, and VSCode is making the design of design systems easier. This argument doesn't change that. More variable tokens means more surface area for drift and inconsistency — for your team and for the model. Primitives → named after value. Alias → named after context. Components → consume alias variables. Don't create new ones. Two layers of meaning. That's what scales.

Warp is now open-source.



