My Web Development Setup
This is the setup I use daily to get things done as a full-stack web developer. I love knowing about tools other people are using. I'm sharing my exact set up so it can give inspiration to others.
My main work computer is a M1 Mac mini. I'm really happy with its performance even through it only has 8GB RAM, its fast and gets the job done.
The keyboard I'm using is Keychron K2. Its a mechanical keyboard with gateron brown switches overall it produces nice sound with decent feedback. I love this keyboard my only wish is I should have got the TKL version over this.
I use Mac OS on work machine. I don't prefer one OS over other but having Mac OS makes it easy to test websites on safari if I ever need to.
This post is about my work setup I will in future write one about my personal setup but most of the tools I'm going to mention are cross platform and I use them on my laptop as well.
I use macOS's Spotlight to open apps, find files, and just get around the OS. I rarely ever use Launchpad to open apps.
Raycast and alfred are more feature rich apps that do the same thing but I don't find any good reason to use those.
I use Firefox as my default browser. I find chrome's design a bit too rounded and I don't use safari because I want the same browser in my android phone and windows laptop.
I use very few extensions. uBlockOrigin, Bitwarden, React Devtools, Grammarly and Omnibug are the only extensions I have installed.
I have tried many editors in the past but VS Code feels the one with the best defaults and most active development. I don't use (n)vim because of its configuration-heavy nature. I have written another post about my exact setup in visual studio code and with all the plugins I use. I'm pretty happy with vs code and I don't think I will be changing editors anytime soon.
Bitwarden is my password manager of choice. I'm still on the free plan and I don't have any complaints. I don't like the UI that much but on the functionality side of things it's good enough, It gives everything you might need from your password managers even in the free plan.
I use Evernote for taking notes and writing posts. I have tried Notion, and Obsidian in the past. Obsidian's syncing is $8 a month which feels like a lot to me and Notion is more tailored for teams and people who need very customized workflows, I just need a simple editor and cloud syncing so evernote does it for me for now. I have also tried Simplenote it was really good but there were two problems (1) it didn't support uploading images (2) It doesn't support folders so everything was flat and very hard to find.
I use google keep for quickly jotting down ideas and notes. I tend to copy and write them in full blown content in evernote. I wish if there was a app like apple notes but cross platform.
Insomnia is a testing tool for graphql and REST APIs. I use it for testing our backend and sometimes external 3rd party APIs
I'm fiddling with rust trying to find a project where I can use it. I feel like everyone should know a language which can do low level stuff.
Postbird is a GUI for Postgres database nothing special I use it for creating new users/databases and sometimes connecting to a remote database.
Our company uses slack for communication not much to talk about it, I don't use any custom themes or anything just have a few custom icons installed.
Every other operating system comes with a preinstalled package manager (even windows 11 has winget) but you have to use this third-party service on macOS. It works well but I wish mac had something native for this.
Node Version Manager or NVM helps you to use different versions of Node for different projects I don't work on projects that require a very specific version of node but it makes updating node easier so I have it installed.
I use the default macOS terminal. I never found a use case for iTerm so I stick to the native terminal. I have increased the font size to 14 and that's all the customization I have done to my terminal. I don't even bother to change the default colorscheme to something dark.
I use this to make flow charts and rough design sketches. Excalidraw is good for doing whiteboard-like problem-solving.
And sometimes when I need to create a UI mockup, I use Figma for that.
I have tried to keep my setup minimal I feel once you start customizing things you just spend a lot of time on a never-ending quest for the perfect setup and end up spending more time in setup than what it would save you. You should watch this video by mpj for some context.