macOS Dev Setup

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

Our great sponsors
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • Onboard AI - Learn any GitHub repo in 59 seconds
  • 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

    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.

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • pyenv

    Simple Python version management

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

  • pyenv-virtualenv

    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

    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.

  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.

  • 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,200+ 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

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