macOS Dev Setup

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • homebrew-services

    🚀 Manage background services using the daemon manager launchctl on macOS or systemctl on Linux.

  • A nice extension to Homebrew is Homebrew Services. It will automatically launch things like databases when your computer starts, so you don't have to do it manually every time.

  • pyenv

    Discontinued Simple Python version management [Moved to: https://github.com/pyenv/pyenv] (by yyuu)

  • macOS, like Linux, ships with Python already installed. But you don't want to mess with the system Python (some system tools rely on it, etc.), so we'll install our own version using pyenv. This will also allow us to manage multiple versions of Python (ex: 2.7 and 3) should we need to.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • pyenv

    Simple Python version management

  • Before installing a new Python version, the pyenv wiki recommends having a few dependencies available:

  • pyenv-virtualenv

    Discontinued a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv) [Moved to: https://github.com/pyenv/pyenv-virtualenv] (by yyuu)

  • Instead of installing and using virtualenv directly, we'll use the dedicated pyenv plugin pyenv-virtualenv which will make things a bit easier for us. Install it via Homebrew:

  • nvm

    Discontinued Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions [Moved to: https://github.com/nvm-sh/nvm] (by creationix)

  • The recommended way to install Node.js is to use nvm (Node Version Manager) which allows you to manage multiple versions of Node.js on the same machine.

  • Vim

    The official Vim repository

  • Although VS Code will be our main editor, it is a good idea to learn some very basic usage of Vim. It is a very popular text editor inside the terminal, and is usually pre-installed on any Unix system.

  • CPython

    The Python programming language

  • This document describes how I set up my developer environment on a new MacBook. We will set up popular programming languages (for example Node (JavaScript), Python, and Java). You may not need all of them for your projects, although I recommend having them set up as they always come in handy.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • PostgreSQL

    Mirror of the official PostgreSQL GIT repository. Note that this is just a *mirror* - we don't work with pull requests on github. To contribute, please see https://wiki.postgresql.org/wiki/Submitting_a_Patch

  • PostgreSQL is a popular relational database, and Heroku has first-class support for it.

  • Elasticsearch

    Free and Open, Distributed, RESTful Search Engine

  • Elasticsearch is a distributed search and analytics engine. It uses an HTTP REST API, making it easy to work with from any programming language.

  • virtualenv

    Virtual Python Environment builder

  • virtualenv is a tool that creates an isolated Python environment for each of your projects.

  • SDKMan

    The SDKMAN! Command Line Interface

  • The recommended way to install Java is to use SDKman (Software development kit Management) which allows you to manage multiple versions of Java on the same machine and

  • Redis

    Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.

  • Redis is a fast, in-memory, key-value store, that uses the disk for persistence. It complements nicely a database such as PostgreSQL. There are a lot of interesting things that you can do with it. For example, it's often used for session management or caching by web apps, but it has many other uses.

  • Rectangle

    Move and resize windows on macOS with keyboard shortcuts and snap areas

  • Rectangle: Move and resize windows with keyboard shortcuts. (Free)

  • pip

    The Python package installer

  • pip was also installed by pyenv. It is the package manager for Python.

  • dejavu

    The Missing Web UI for Elasticsearch: Import, browse and edit data with rich filters and query views, create search UIs visually.

  • However, if you prefer a graphical interface, you can take a look at Dejavu. You can easily install it via the Dejavu Chrome Extension.

  • ohmyzsh

    🙃 A delightful community-driven (with 2,300+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.

  • ZSH is already preinstalled in the latest versions of macOS. I also install https://ohmyz.sh/ as it allows for more configuration and is required in some cases.

  • node

    Node.js JavaScript runtime ✨🐢🚀✨

  • This document describes how I set up my developer environment on a new MacBook. We will set up popular programming languages (for example Node (JavaScript), Python, and Java). You may not need all of them for your projects, although I recommend having them set up as they always come in handy.

  • hub-feedback

    Feedback and bug reports for the Docker Hub

  • Create an account here

  • git

    A fork of Git containing Windows-specific patches. (by git-for-windows)

  • macOS comes with a pre-installed version of Git, but we'll install our own through Homebrew to allow easy upgrades and not interfere with the system version. To do so, simply run:

  • Puts Debuggerer

    Ruby library for improved puts debugging, automatically displaying bonus useful information such as source line number and source code.

  • # Workaround for: https://github.com/pyenv/pyenv/issues/688#issuecomment-428675578 export PATH="/usr/local/opt/gettext/bin:$PATH"

  • Postico

    Public issue tracking for Postico

  • If you prefer a GUI (Graphical User Interface), Postico has a simple free version that let's you explore tables and run SQL queries.

  • Visual Studio Code

    Visual Studio Code

  • With the terminal, the text editor is a developer's most important tool. Everyone has their preferences, but if you're just getting started and looking for something simple that works, Visual Studio Code is a pretty good option.

  • HomeBrew

    🍺 The missing package manager for macOS (or Linux)

  • Package managers make it so much easier to install and update applications (for Operating Systems) or libraries (for programming languages). The most popular one for macOS is Homebrew.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts