My go-to Tech Stack and work environment
I think it is imporant to work with people that share similar technological preferences. This is what I like to use at the moment. It might also be an inspiration for others to find new ways to work.
Development
Typescript
Converting to typescript from javascript was a game changer for me. It makes my code more readable and maintainable, plus the developer experience is SO much better. I could never go back...
Next.js and Vercel
From being a long time PHP user, Next.js was a breath of fresh air. Being able to use the same programming language for both the frontend and backend with Node.js is a huge win. Vercel makes it so easy to deploy; updating my apps is as simple as pushing to Github.
React
Having tried a lot of bleeding edge frameworks, I feel React is the most stable and reliable. It has the best ecosystem and the fact that it is simply the most used framework makes it a no-brainer. It is also works best with Typescript in my experience.
TailwindCSS
I’ve never been a fan of CSS and design in general, but Tailwind makes it so much easier and fun to make anything look good.
tRPC and React Query
In the next.js ecosystem, I have found tRPC and React Query to be mindblowing in their simplicity and power. They make it so easy to fetch and update data in a typesafe way. I almost feel there is no gap between my frontend and backend anymore.
MySQL and Prisma
I have been using MySQL for a long time. It’s simple, fast, and reliable. I have tried other databases including non-relational ones, but I always come back to MySQL. With a typesafe ORM like Prisma or Drizze it works great in this stack.
IDE and workflow
Neovim
I sometimes use VSCode, but I always come back to Neovim. It’s fast, fun to use, and I can use it on any machine. I try to do as much in my workflow using jsut my keyboard. So the Vim keybindings work great now that I have learned them. I also use plugins to be able to use similar bindings so that I can control my brower and other productivity tools with just my keyboard.
iTerm2
iterm2 is my go-to terminal. I love the split screen feature and the ability to customize it. I also love to play with CLI applications; the minimalism and speed of the terminal is great and makes you feel like a hacker.
Copilot
Having copilot in my IDE is such a quality of life improvement. It saves you so much typing for boilerplate code and sometimes gives you great suggestions for functions and code snippets. It’s no where near replacing a developer, but it is a fantastic assistent
Github
I use Github for all my projects. It’s the best way to collaborate and keep track of changes. Using Lazygit in my terminal makes it a breeze to stage and commit changes, and most deployments are done automatically with Github integrations.
Hardware
Macbook Air 13 M1
I have never owned a different main computer than a Mac. I grew up with them and I love the build quality and the ecosystem. Also the Unix like environment is great for development. Working on a laptop makes it possible for me to work from anywhere.
Raspberry Pi
I have a few Raspberry Pi’s at home. They are great for running small services and automating things. Playing around, setting up servers, databases, and other services is a great way to learn. Also having somehing with a Linux environment is great for understanding how things work in remote servers.