Having a robust local development environment is crucial for programmers and web developers to build applications efficiently. The right tools can streamline workflows, solve common problems, and make you more productive overall.
In this post, we‘ll explore 10 awesome open source tools to supercharge your local setup for web and app development. For each tool, I‘ll provide a quick overview, key features, installation notes, and examples so you can quickly add them to your toolkit. Let‘s dive in!
1. Ngrok – Expose local servers for testing
Ngrok is an indispensable tool that exposes your local development environment to the internet for testing. It creates a secure public URL that tunnels traffic to your local machine.
Ngrok is extremely handy for demonstrating local web projects, testing APIs from external services, or making local sites accessible for collaboration.
Key Features
- Expose local web servers publicly via a unique URL
- Secure tunneling of traffic from public URL to local host
- Inspect HTTP traffic flowing over tunnel
- Cross-platform – works on Linux, MacOS, and Windows
Installation
Download the latest binary for your OS from ngrok‘s website. Unzip and run the executable to verify it‘s working:
./ngrok http 80
This will tunnel traffic from a random URL to port 80 on your local machine.
Usage
To expose a local Node.js app running on port 3000:
./ngrok http 3000
Ngrok will output the public URL. Try accessing that URL from any internet-connected device, and traffic will be securely routed to your local environment for testing!
2. DevKinsta – Local WordPress Development
DevKinsta provides a full local WordPress stack for developing themes, plugins, and sites. It‘s a free tool from Kinsta optimized for WordPress.
DevKinsta saves tons of time and headaches when working on WordPress projects locally. No more configuring servers and databases!
Key Features
- Local Nginx web server
- Built-in MySQL database
- WP-CLI integration
- 1-click WordPress instance creation
- Email catching
- PHP 7.x and 8.x support
Installation
Download the installer for your OS from DevKinsta. Follow the setup wizard to get your local WordPress stack running in just a few minutes.
Usage
With DevKinsta, I can create a new local WordPress site simply by:
devkinsta create my-site
This provisions a WordPress instance at http://my-site.localtest.me. I can instantly start theme development and testing plugins. No Docker or databases to configure manually!
3. Telepresence – Local Kubernetes Development
Telepresence is a CLI tool that simplifies local Kubernetes development. It lets you run services on your machine while proxying requests to/from a remote Kubernetes cluster.
This helps developers test code locally against real prod services and data. No need for mocked dependencies or fake data!
Key Features
- Intercept calls to Kubernetes services and route to local
- Redirect requests from Kubernetes to your local code
- Use live data from your remote cluster
- Easy to install with Python pip
Installation
Telepresence can be installed via pip on Linux/macOS:
pip install telepresence
On Windows, grab the latest telepresence.exe from the GitHub releases page.
Usage
To demonstrate, I have a simple Flask app in Kubernetes. I want to modify it locally but still access the remote MySQL database.
First, I deploy my Flask app to the cluster. Then from my local machine, I can run:
telepresence --swap-deployment flask-demo --run python mylocalcode.py
This proxies requests to my local code while routing database requests to the remote MySQL instance. Powerful!
4. HTTPie – HTTP Client for APIs
HTTPie is an elegant HTTP client for interacting with APIs. It provides an intuitive interface using simple commands.
HTTPie makes API testing seamless. No need to write separate test code – just fire one-off commands to hit endpoints and inspect responses.
Key Features
- Intuitive syntax for requests
- Custom headers and auth
- Formatting for JSON responses
- Supports persistence with sessions
- Themes and color output
Installation
HTTPie can be installed via pip on macOS/Linux:
pip install httpie
On Windows, grab the httpie.exe binary from the releases page.
Usage
Making requests is simple. To POST data to an API as JSON:
http POST https://some-api.com/user name=John [email protected]
HTTPie encodes the data, sets headers, sends request, and neatly formats output – with no coding needed!
5. Tunnelto – Public URLs for Local Testing
Like Ngrok, Tunnelto exposes your local environment publicly for easy testing and sharing.
Tunnelto is an open-source alternative with features tailored for local development. For exposing your work safely, it‘s a handy tool to have in your back pocket.
Key Features
- Generate public URLs for local sites
- Fix port collisions automatically
- Optional custom domains
- Simple CLI usage
Installation
Pre-built binaries for Windows, Linux, and macOS can be downloaded from the Tunnelto site.
To install on Linux, download the .tar.gz, extract, and run the binary:
./tunnelto --help
Usage
To share a local web server publicly:
./tunnelto http 3000
This exposes my localhost on port 3000 via a public URL. Clients can access my local work in progress!
6. Mkcert – Local SSL Certificates
Mkcert makes generating local SSL certificates a breeze. It creates certificates that are signed by a local CA to enable TLS encryption for your local setup.
Mkcert is super handy for testing code that relies on SSL certificates being properly configured. No more certificate errors!
Key Features
- Automatically creates and installs a local CA
- Generates trusted local SSL certificates
- Simple command line interface
- Works across Mac, Windows and Linux
Installation
On macOS use Homebrew:
brew install mkcert
On Linux grab the binary from Github Releases.
On Windows download and run the msi installer.
Usage
To generate a local cert for myapp.test domain:
mkcert myapp.test
Mkcert generates and installs the certificate automatically. Now my local web server can use proper SSL encryption and avoid those pesky certificate warnings.
7. Tmate – Terminal Sharing
Tmate makes collaborating in the terminal easy. It enables instant remote connections to your local sessions.
Rather than screen-sharing an entire desktop, Tmate provides granular access to only your terminal. Useful for pairing, debugging, or remote assistance.
Key Features
- Web-based terminal access
- Secure SSH connections
- Read-only and read/write modes
- Easy installation
Installation
On Linux/macOS, install Tmate with the native package manager:
# Linux
sudo apt install tmate
# macOS
brew install tmate
On Windows, download the tmate.exe binary from Github releases.
Usage
To share a terminal:
tmate -S /tmp/tmate.sock
This creates a shareable URL that a teammate can access. I can then grant read-only or read-write access when pairing on an issue.
8. Mailcatcher – Email Testing
Mailcatcher provides a simple local SMTP server and web interface to preview emails during development.
Setting up real email delivery and testing can be complex. Mailcatcher avoids that hassle and makes email workflows painless to implement locally.
Key Features
- Catches email sent via SMTP for preview
- View messages in modern web UI
- Debug email contents, headers, etc.
- Fast Ruby setup
Installation
With Ruby installed:
# Install mailcatcher gem
gem install mailcatcher
# Start local server
mailcatcher
Now visit http://localhost:1080 to view caught emails.
Usage
I configure my application to deliver emails to Mailcatcher‘s SMTP port on localhost.
As my app sends test emails for registration, purchase receipts, etc., Mailcatcher captures everything so I can verify my email workflow is solid before deployment. Super useful!
9. DDEV – Local PHP Development
DDEV enables painless local PHP development environments.
With just a single command, DDEV configures and runs Nginx, PHP, and MySQL containers tailored for your project. No more fiddling with different Docker setups per project!
Key Features
- 1-command project setup
- Local HTTPS out of the box
- Customizable PHP and database versions
- Integrates with popular CMSs like WordPress and Drupal
- Built for efficiency and performance
Installation
Grab the latest release for your OS from ddev.com. On Linux/macOS, you can also use homebrew:
brew install ddev
Usage
To create a new Drupal 8 site:
mkdir my-drupal8-site
cd my-drupal8-site
ddev config --docroot web --projecttype drupal8
ddev start
DDEV handles all the Docker config and even provisions HTTPS automatically! I can focus on developing rather than tooling.
10. Hoppscotch – API Development Platform
While Hoppscotch isn‘t a local tool per se, it‘s an invaluable resource for testing and improving APIs.
Hoppscotch provides a slick graphical interface for sending requests and inspecting responses. It complements CLI tools like HTTPie nicely during API development.
Key Features
- Modern and intuitive request builder
- Code samples for libraries in various languages
- Testing tools like collections and environments
- Collaborate with teams in the browser
Usage
After creating an API locally, I can quickly test endpoints and iterations in Hoppscotch before exposing it publicly or hooking up frontends.
The request builder and response viewer allow me to refine my API and catch issues early without having to write tons of custom validation code. Super powerful!
Level Up Your Local Development
Having prompt, performant, and polished local development workflows pays dividends when building new projects and applications. The open-source tools covered in this post help you work smarter at every phase of the development lifecycle.
I encourage you to try out some of these tools that piqued your interest! Let me know in the comments your favorite local development tricks as well. Here‘s to shipping better apps in less time 🚀