explaingit

exposedev/expose

4,555PHPAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

An open-source PHP tunneling tool that creates a public URL pointing to your local development server, letting you share work in progress, test webhooks, and connect third-party services to your laptop.

Mindmap

mindmap
  root((expose))
    What it does
      Public URL for localhost
      Forwards internet traffic
      Webhook testing
    Hosting options
      expose.dev free tier
      Expose Pro global network
      Self-host on VPS
    Use cases
      Client demos
      Webhook testing
      OAuth redirects
    Tech
      PHP
      MIT License
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Share a local website with a client before it is deployed anywhere

USE CASE 2

Test a payment webhook by giving the payment provider a real public URL that tunnels to your laptop

USE CASE 3

Let an OAuth service redirect back to an app running on your local machine

USE CASE 4

Self-host the tunnel server on your own VPS for full control over where traffic passes

Tech stack

PHP

Getting it running

Difficulty · moderate Time to first run · 30min

Requires PHP on your local machine, self-hosting the server component adds a VPS setup step.

MIT License, use freely for any personal or commercial purpose.

In plain English

Expose is an open-source tunneling tool written in PHP. A tunnel service solves a specific developer problem: when you are building a website or application on your own computer, that local server is only reachable by your own machine. Expose creates a publicly accessible URL that forwards traffic from the internet to your local machine. This is useful when you need to share a work-in-progress with a client, test a payment webhook that needs to call back to your server, or let a third-party service reach something running on your laptop. The README describes it as an open-source alternative to ngrok, which is a widely used commercial tool that does the same job. The difference is that the Expose code is fully open, which means you can run the server software yourself on your own infrastructure rather than depending on a third-party service. This matters if you want full control over where your traffic passes or if you need to run it inside a private network. A managed hosted version is available at expose.dev with a free test server based in the EU, for people who want to use the service without hosting anything. A paid tier called Expose Pro adds access to a global server network, support for custom domains, and higher-speed connections. The README itself is brief and points to the official documentation site at expose.dev/docs for full installation and deployment instructions. The project is released under the MIT License, which permits free use in personal and commercial projects.

Copy-paste prompts

Prompt 1
I have Expose installed locally. Help me configure it to share my Laravel app running on port 8000 with a custom subdomain, and tell me what command to run.
Prompt 2
How do I set up the Expose server on my own VPS so my team can use it as a private tunnel instead of expose.dev?
Prompt 3
I need to receive a Stripe webhook on my localhost:3000 during development. Walk me through using Expose to create a public tunnel URL and register it with Stripe.
Prompt 4
Compare Expose and ngrok for a developer who wants a self-hosted tunnel. What are the trade-offs?
Open on GitHub → Explain another repo

← exposedev on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.