Uses

The tools I use every day, and why I picked them.

Last updated:

Hardware

Editor and terminal

  • CursorFor reading code and small edits. Most of the work now happens in Claude Code.
  • macOS TerminalI never needed a separate terminal app.
  • pnpmThe package manager; ViraStack Start installs with it too.
  • GitVersion control.

AI

  • Claude CodePair programming in the terminal. The strongest model for work that needs care, such as architecture; the fast one for everyday tasks.
  • ViraStack AIThe architecture rules the agent follows; this site is written with them too.
  • emilkowalski/skillsAnimation and interaction details.
  • jakubkrehel/skillsSurface and accessibility details.

Stack

  • TypeScriptIn every project, in strict mode.
  • ReactThe base of my interfaces since 2017.
  • Next.jsLarge server-rendered apps.
  • TanStack Start, Router, QueryType-safe routes and server data; this site is built with TanStack Start.
  • Tailwind CSSAll of the styling.
  • shadcn/uiThe ground of my design system; accessible components I adapt to each project.
  • React Hook FormForms; ViraStack Mask and Password build on it.
  • ZodOne validation for forms, API responses and environment variables.
  • ZustandApp-wide state that does not come from the server.
  • SupabaseSide projects that need a database; this blog's posts live there too.

Infrastructure, design and browser

Off screen

  • LibraryBooks, mostly on history and Islamic thought.
  • Films and seriesMy favorites.
  • MusicWhat I listen to.
  • Chess, photography, the ney, paintingWhat I make time for away from code.