Loading Jai Gohil's site
Skip to content
Jai Gohil

What I actually work with.

Tools, grouped by where they sit in the working day rather than by category. A list of names isn't much use on its own, so each one says what it's for and why it beat the alternative.

Hardware

What the work physically happens on.

  • Primary machine for everything - development, design review, writing.

    Silent under sustained load, and the battery outlasts a full day away from the desk. The 14" is the largest size I can still work from comfortably on a train.

  • Dell XPS 15

    Secondary machine, kept for testing on Windows.

    Cross-browser and cross-platform bugs are much easier to find on real hardware than in a virtual machine.

  • Apple Magic Keyboard

    Daily driver once the laptop is docked.

    Low travel, quiet, and it disappears - which is the highest compliment I have for an input device.

Editor & terminal

Where most hours actually go.

  • Primary editor across every JavaScript and TypeScript project.

    The extension ecosystem is the real product. Everything else is a text editor with opinions.

  • Terminal, with split panes for a dev server, tests and git.

    Session restore and search history are small things that compound over a working day.

  • PHP and Java work, where the refactoring tools genuinely pay for themselves.

    For a large legacy codebase, an IDE that actually understands the language beats a fast editor that does not.

Building

The stack I reach for by default on anything new.

  • The framework behind almost everything I ship, including this site.

    Static rendering where it fits, server rendering where it does not, and one mental model for both.

  • Every project past a weekend in size.

    Migrating a production codebase to it cut our bug count by a quarter. That settled the argument for me.

  • Styling, on every project since 2021.

    It removes the naming problem, and it keeps design decisions visible in the markup instead of hidden in a stylesheet nobody opens.

  • Default database unless something specific argues otherwise.

    Boring, predictable, and it has never been the reason a project was late.

Shipping & infrastructure

Getting it in front of people and keeping it there.

  • Hosting for personal projects and most client sites.

    Preview deployments per branch change how reviews work - you look at the thing rather than at the diff.

  • CI on every push - tests, linting, type checks.

    Being in the same place as the code means it actually gets maintained.

  • Local parity with production, and anything that needs to run the same way twice.

    It ends the entire category of problem that starts with "works on my machine".

  • DNS and CDN in front of most things.

    The free tier does more than most paid alternatives, and the dashboard does not fight me.

Design & planning

Working out what to build before building it.

  • Design work, and increasingly as a shared whiteboard for anything that needs drawing.

    The collaboration turned out to matter more than the design tooling - that surprised me.

  • Issue tracking and release planning.

    Fast enough that logging an issue takes less effort than remembering it. That is the whole battle.

  • Architecture sketches and anything that needs explaining in a hurry.

    Deliberately rough. A diagram that looks unfinished invites argument, which is what you want early on.