A craftsman is only as good as their tools. In software development, our tools are the bridge between an idea and a finished product. The right setup can eliminate friction, automate tedious tasks, and keep you in a state of flow. Many people have asked about the software I use, so I decided to pull back the curtain on my daily drivers for coding, design, and organization.
1. Code Editor: Visual Studio Code
This won't be a surprise. VS Code has taken the development world by storm for a reason: it's fast, free, and endlessly customizable. It's my primary editor for everything from Flutter to web development. My must-have extensions are:
- Dart & Flutter: The official extensions are essential, providing everything from syntax highlighting to a full debugging suite.
- GitLens: Supercharges the built-in Git capabilities. Being able to see who wrote a line of code (blame) without leaving the editor is a superpower.
- REST Client: Allows me to send HTTP requests and view the response directly in VS Code. It has almost completely replaced Postman for me.
- Prettier - Code Formatter: Enforces consistent code style automatically. I never have to waste a single thought on formatting.
2. Terminal: Windows Terminal + WSL2
As a developer on Windows, the combination of Windows Terminal and the Windows Subsystem for Linux (WSL2) is a game-changer. I run an Ubuntu instance within Windows, giving me a native Linux environment for command-line tools. I enhance this with Oh My Zsh for powerful plugins and beautiful themes.
3. Design & Prototyping: Figma
Before a single line of code is written, I spend time in Figma. It's an indispensable tool for designing UI, prototyping user flows, and collaborating on visual ideas. Its ability to create design systems and reusable components translates perfectly to the widget-based world of Flutter.
"Good development often starts with good design. Figma is where the visual structure of my apps takes shape."
4. Project Management & Notes: Notion
Notion is my second brain. It’s where I manage everything from project roadmaps and task lists to code snippets and personal notes. Its flexibility is its key strength. I have a custom dashboard for each project, tracking features, bugs, and future ideas all in one place.
5. Backend Services: Supabase
As I mentioned in another blog post, Supabase is my go-to for backend-as-a-service. It provides a scalable Postgres database, authentication, storage, and auto-generated APIs out of the box. For a full-stack developer building cross-platform apps, it dramatically accelerates the process of building the backend infrastructure.
Conclusion
This toolkit is the result of years of experimentation. While these tools work for me, the best toolkit is always the one that makes *you* most effective. I'm always curious to learn about what others are using, so feel free to share your favorite productivity apps in the comments!