Software I use, gadgets I love, and other things I recommend.

I get asked a lot about the things I use to build software, stay productive, or buy to fool myself into thinking I’m being productive when I’m really just procrastinating. Here’s a big list of all of my favorite stuff.

Tech Stacks

  • VILT

    The VILT (Vue.js, Inertia.js, Laravel, and Tailwind CSS) tech stack is a powerful combination of tools that I’ve used intensively. It’s great for developing with maximized efficiency:

    • Vue.js: A progressive JavaScript framework for building user interfaces.
    • Inertia.js: A library that combines the best of both server-side rendering (SSR) and client-side rendering (CSR), allowing me to build single-page apps using classic server-side routing.
    • Laravel: A robust PHP framework that provides a clean and elegant syntax, with tools for tasks like routing, authentication, sessions, caching, and more.
    • TailwindCSS: A utility-first CSS framework that allows for highly customizable designs.

    This tech stack is a key player in my toolkit, each with its unique strengths, making it an ideal choice for building modern, dynamic web applications.

  • HOTED

    In an effort to keep up with the latest trends and understand the benefits of new technologies, I’ve chosen a personalized tech stack that includes Deno, Oak, EJS, Tailwind CSS, and HTMX. I call it the HOTED tech stack. Why HOTED? Well, it’s not just an acronym. It’s “hot” in the sense that it’s trendy and cutting-edge, much like how a hot new product or idea garners attention. So, when I’m using the HOTED tech stack, I’m working with some of the latest and greatest tools in web development. It’s like having the ‘next big thing’ right in my code editor!

    • HTMX: A library that allows access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, enabling me to keep my frontend simple and fast. I absolutely love HTMX. Even though it’s a recent technology, it has already won me over with its simplicity and power. It’s a tool I’m keen on mastering.
    • Oak: A middleware framework for Deno’s HTTP server, providing a simple and intuitive way to build web applications and APIs.
    • TailwindCSS: As mentioned above, it’s a utility-first CSS framework that allows for highly customizable designs.
    • EJS: A simple templating language that lets me generate HTML with plain JavaScript, offering a straightforward way to generate dynamic web content.
    • Deno: A secure TypeScript runtime, is co-created by Ryan Dahl, the creator of Node.js. It supports both JavaScript and TypeScript, provides a rich standard library, and aims to be browser-compatible, following APIs and conventions based on W3C standards.

    This tech stack not only allows me to stay current with the evolving tech landscape but also provides a unique set of tools that enhance my development process.

Development tools

  • JetBrains PHPStorm

    When it comes to my personal work, PhpStorm is my go-to development tool. Here’s why I prefer PhpStorm over other editors:

    • Intelligent Coding Assistance: PhpStorm offers smart code completion, syntax highlighting, on-the-fly error checking and quick-fixes, automated code refactorings, and deep navigation features. This significantly boosts my productivity and efficiency.
    • Framework-Specific Support: PhpStorm provides first-class support for top PHP frameworks like Laravel, Symfony, Yii, and others. This means I get tailored insights and tools when working within these frameworks.
    • Built-In Developer Tools: PhpStorm comes with a rich set of integrated developer tools including a database and SQL editor, Docker, HTTP Client, and others, eliminating the need for additional plugins or software.
    • Debugging Tools: PhpStorm’s debugger, with support for Xdebug and Zend Debugger, offers powerful features that enhance my coding process. It allows me to navigate back to previous runtime states and even change the values of variables during a debugging session12. Along with PHPUnit, Behat, and PHPSpec for testing, and built-in profiling tools, PhpStorm provides a comprehensive suite for debugging, testing, and optimizing my code.
    • Version Control: PhpStorm offers a unified UI for working with Git, GitHub, SVN, Mercurial, and other VCS. Its issue tracker integration also helps keep track of issues and feature requests right from the IDE.
    • Customizability: PhpStorm is highly customizable. I can adjust the layout, theme, keyboard shortcuts, and settings to suit my personal preferences and optimize my productivity.

    In summary, PhpStorm is not just a tool; it’s an integral part of my coding journey. Its intelligent features, framework-specific support, and robust built-in tools make it stand out from other editors, making it my preferred choice for development.

  • Visual Studio Code (VSCode)

    As a developer, I utilize VSCode for its multi-language support and extensive extensions library, especially when working with technologies other than PHP, like Deno. It features an integrated terminal that streamlines my workflow. Its robust debugging capabilities and seamless Git integration make coding and version control efficient.

    While I find PhpStorm superior, practicing in a non-paid IDE like VSCode is beneficial.

  • Docker

    In my development workflow, Docker is not just a tool, it’s an integral part of my environment that enhances my productivity and makes my workflow smoother. It’s like a Swiss Army knife that brings consistency, isolation, and portability to my projects. Docker allows me to package applications with their dependencies into a container, ensuring they behave the same way, regardless of where they’re run.

    • Consistency: Docker allows you to package applications with their dependencies into a container, ensuring they behave the same way, regardless of where they’re run.
    • Isolation: Docker’s isolation feature lets you run different versions of the same software on the same machine without conflicts. It’s like having multiple sandbox environments at your disposal.
    • Portability: The portability of Docker is truly a game-changer. You can run Docker containers on any system that has Docker installed, making it easy to share your work or move your applications between environments.
    • Version Control: Docker also allows you to version control your environments just like you do with your code. This makes tracking changes and experimenting with different configurations a breeze.
    • Integration with DevOps tools: Docker’s integration with many popular DevOps tools makes it a key part of your continuous integration and deployment pipelines.
  • ChatGPT/CoPilot

    In my development toolkit, ChatGPT/Copilot holds a special place. It’s an AI-powered tool that has revolutionized the way I solve coding issues. Instead of spending time searching and googling on the web and forums, I now rely on ChatGPT/Copilot. It provides real-time suggestions and solutions right in my code editor. This not only saves time but also enhances my productivity by providing immediate, context-aware assistance.

    While traditional methods still have their place, ChatGPT/Copilot offers a more efficient and integrated approach to problem-solving in development.

Productivity

  • GitHub

    GitHub is a platform I often use when I need to showcase my projects publicly. It serves as a repository for the source code of my personal projects. Its popularity and wide user base make it an ideal platform for sharing my work with companies or the broader developer community.

    Recently, I’ve also been using GitHub for integrating my Deno projects with Deno deployment tools.

  • GitLab

    Over the years, I’ve found myself using GitLab more frequently due to its integrated tools. Like GitHub, it’s a repository for my project’s source code. However, GitLab stands out with features like boards for work management and wikis for documentation. These tools have proven invaluable in organizing my work and maintaining comprehensive documentation for my projects.

  • Agile Scrum

    As a solo developer, I use Agile Scrum to manage my projects effectively. It allows me to break down complex projects into manageable sprints, promoting adaptability and continuous improvement. While Agile Scrum is often associated with team projects, it’s equally beneficial for solo developers. It provides a structured approach to project management, ensuring that I’m always moving forward. When I occasionally need to work with others, Agile Scrum is really helpful. It makes it easy to communicate and work together, which helps us to share tasks and make successful updates to the product.

    In essence, Agile Scrum is more than a project management tool for me. It’s a philosophy that enhances productivity and efficiency in my work.

Workstation

  • 14” Asus ExpertBook, 11th Gen Intel(R) Core(TM) i7-1165G7, 16GB RAM

    I used a custom-made generic brand laptop for programming performance, but its heaviness and size made it non-portable. While it had a wider screen than my current one, since I primarily use it connected to a monitor, that wasn't a concern. That's why I switched to the lightest professional laptop available at the time. It allows me to take it on trips and program while flying, for instance.

  • Samsung Monitor LED UHD 28” 4K U28E590D

    It's a widescreen with a pretty good display and configuration options, including an eye-saver mode for reading. Currently, I'm looking to switch to a wider screen to have two windows side-by-side while still maintaining comfortable space for reading.

  • Lenovo Go Keyboard

    This ergonomic keyboard is designed to alleviate strain on the forearms, hands, and shoulders. Sculpted using the latest ergonomic science, it features strain-reducing vertical tenting and a negative tilt, ensuring your posture remains correctly aligned at all times, allowing you to maintain focus and productivity for longer periods.

  • Logitech MX Master Mouse

    An impressive everyday mouse, made of high-quality plastic and has a premium and extremely well-built feel. The ergonomics are great and should be comfortable enough to not cause soreness or fatigue during long work sessions. Can be paired with up to three devices at a time, meaning you can easily use it with your work and home computer.

  • IKEA JÄRVFJÄLLET Chair

    With its ergonomic design, this swivel chair offers numerous features to ensure your comfort and focus. These include a well-shaped backrest and adjustable mesh lumbar support, keeping you cool throughout use.

  • IKEA RODULF Desk

    Alternating between sitting and standing during working hours benefits both the body and mind. This desk, designed for professional use, offers electronically adjustable height, facilitating seamless transitions between sitting and standing positions.

Design

  • TailwindCSS

    Tailwind CSS is a key player. It’s a utility-first CSS framework that I use for designing my projects. Tailwind CSS stands out for its flexibility. Instead of pre-defined components, it provides low-level utility classes that let me build completely custom designs. This means I have full control over the look and feel of my projects. Another advantage of Tailwind CSS is its responsiveness. It makes creating responsive designs straightforward with its built-in responsive variants. Moreover, Tailwind CSS promotes consistency in design. By using a set of predefined classes, it ensures a consistent look across different parts of a project. Lastly, Tailwind CSS integrates well with modern JavaScript frameworks like React, Vue, and Angular, making it a versatile tool in my design toolkit.

    • Flexibility: Unlike other frameworks that offer pre-defined components, Tailwind CSS provides low-level utility classes. This allows me to build completely custom designs, giving me full control over the look and feel of my projects.
    • Responsiveness: Tailwind CSS simplifies the creation of responsive designs with its built-in responsive variants. This feature is particularly useful in today’s multi-device world.
    • Consistency: By using a set of predefined classes, Tailwind CSS promotes consistency in design. This ensures a uniform look across different parts of a project, enhancing the overall user experience.
    • Integration: Tailwind CSS integrates seamlessly with modern JavaScript frameworks like React, Vue, and Angular. This versatility makes it an invaluable tool in my design toolkit.

    In essence, Tailwind CSS is more than just a CSS framework for me. It’s a tool that enhances the design aspect of my projects, making them visually appealing and responsive.