Things I Use.

Here's a list of the tools I use to build software.

Development tools

  • VSCode

    Visual Studio Code is an editor with a whole range of extensions that turns it into a great Python IDE for Django development. The Tailwind CSS IntelliSense extension is a must.

  • iTerm2

    iTerm2 is a macOS Terminal that I use mainly for its split pane feature.

  • TablePlus

    TablePlus is a macOS app for exploring relational databases that I mainly use for inspecting Django databases.

  • Homebrew

    Homebrew is the package manager I use for installing command-line software on macOS.

Programming

  • Python

    Most of my programming is done in Python with Django and Pandas for data cleaning and analysis.

  • JavaScript

    I use vanilla JavaScript to add interactivey when Alpine.js is not enough.

  • Ruby

    I sometimes use Ruby for scripting and data cleaning but mostly for building this website with Jekyll.

Web Stack

  • Django

    Django is the standard Python Web framework. Most web application functionality works out of the box.

  • HTMX

    HTMX is a JavaScript package that adds HTML attributes for interacting with web servers to provide a single-page application feel without needing to write custom JavaScript.

  • Alpine.js

    Alpine.js is a JavaScript package that adds interactivity within a web page using HTML attributes.

  • Tailwind CSS

    Tailwind is a utility-first CSS framework for rapidly building custom designs.

  • Hericons

    Heroicons is a set of SVG icons by the makers of Tailwind CSS. I look here first for icons.

  • Leaflet

    Leaflet is the standard open-source solution for interactive mapping on the web.

  • Chart.js

    Chart.js provides a wide range of highly customisable charts for presenting data.

  • D3

    D3 is a JavaScript library for producing custom, interactive data visualizations using a much lower-level set of components than charting libraries.

Data Wrangling

  • Pandas

    Pandas is the standard tabular data analysis and manipulation library for Python.

  • GeoPandas

    GeoPandas adds geospatial features to Pandas.

Design

  • Affinity Designer

    Affinity Designer is the vector graphics editor I use for creating UI prototypes, diagrams, logos etc.

  • Affinity Photo

    Affinity Photo is the raster graphics editor I use any time I want to edit photos and screenshots.

Productivity

  • Raycast

    Raycast is a keyboard-driven app launcher with loads of utilities and integrated set of AI chat models.