What is Vaporware?
A local Vapor development environment for macOS.
Vaporware is a native macOS app that runs your Vapor projects locally — no terminal wrestling with swift run, no Docker configs, no manual database setup. Open the app, point it at a project, and it just works.
It runs as both a window app and a persistent menubar utility. Close the window and your services keep running; quit from the menubar for a clean shutdown.
What’s included
- One-click projects — open or create a Vapor project and run it instantly.
- Bundled databases — PostgreSQL, MySQL, SQLite and Redis with no Homebrew or Docker.
- Pretty domains — reach your app at
myapp.testwith automatic HTTPS. - Log viewer, environment editor, and a built-in mail catcher.
New here? Help ▸ Show Welcome reopens the first-launch tour any time.
First Launch
What happens the first time you open the app.
On first launch Vaporware sets itself up and shows a short welcome tour. A menubar icon appears and stays available even when the main window is closed.
If you launch straight from the disk image or Downloads, Vaporware offers to move itself to Applications first — running from a stable location keeps self-updates and login items working.
SQLite needs no install — it’s file-based and always available.
Keeping Vaporware Updated
Built-in updates — no App Store needed.
Vaporware updates itself. By default it checks in the background and offers new versions when they’re ready — release notes included.
- Help ▸ Check for Updates… checks on demand.
- Settings ▸ General toggles background checks.
Updates are free for everyone — Vaporware has no paid tier and no license keys.
Creating a Project
Scaffold a brand-new Vapor project.
Click New Project to scaffold a fresh Vapor app. Vaporware writes a modern Package.swift, an entrypoint.swift, configure.swift and routes.swift, ready to run.
- Choose a name and folder. New projects default to
~/Vaporware, but any location works. - Optionally provision a database — Vaporware runs
CREATE DATABASEand pre-fills your.env. - Click Create. The project appears in the sidebar.
The first build fetches dependencies and compiles, so it’s slower than later builds. This is normal.
Running a Server
Start, stop and watch a project build.
Press Start in a project’s detail view to build and run it. The status moves through Starting → Building → Running as Vaporware tracks swift run output.
- Building shows compile progress parsed from the build output.
- Running appears once Vapor reports the server is listening.
- The console is collapsible and starts collapsed.
Swift Toolchains
Pick a Swift version per project.
Vaporware detects the Swift toolchains installed on your Mac (it does not bundle them — that’s Xcode’s job). Use the toolchain picker in a project’s settings to build it with a specific Swift version.
Bundled Databases
PostgreSQL, MySQL, SQLite and Redis — no Docker.
Vaporware manages local database engines for you. Install them from Settings ▸ Services, then start and stop them from the Databases view or the menubar.
- PostgreSQL — default port
5432. - MySQL — default port
3306. - Redis — default port
6379. - SQLite — file-based, no server process.
Already running Postgres or Redis (e.g. via Laravel Herd)? Vaporware assigns each managed engine its own port to avoid clashing.
Auto-Provisioning
A ready-to-use database per project.
When you create a project you can provision a database in one step. Vaporware creates it and writes the connection details straight into your .env.
Generated code never hardcodes credentials — it reads them from the environment, e.g. Environment.get("DB_HOST").
.test Domains
Reach your app at myapp.test.
Instead of localhost:8080, give a project a friendly .test domain. Vaporware runs a small DNS resolver and an HTTP reverse proxy so myapp.test routes to your running server.
Domain routing is handled by an internal proxy — Vaporware never edits your /etc/hosts file.
Automatic HTTPS
Trusted local certificates for .test.
Enable SSL on a domain and Vaporware issues a certificate from its own local certificate authority, then serves your app over https://. The CA is added to the system trust store so the browser shows a valid lock. These certificates are for local development only.
Mail Catcher
Catch outgoing email during development.
Vaporware includes a local SMTP catcher. Point your app’s mail at it and every message is captured in the Mail inbox instead of being delivered for real.
- Listens on SMTP port
1025by default. - Messages are saved as
.emlfiles and persist across launches. - Inspect headers, body and recipients safely.
Environment Variables
Edit per-project .env values visually.
Each project’s Environment tab is a visual editor for its .env file. Add, edit and remove variables without leaving the app; changes round-trip to the file. Provisioned database variables appear here automatically.
Logs
Watch requests and errors in real time.
The Logs tab streams your server’s output as it runs — incoming requests, route matches and errors — so you can debug routing without switching to a terminal.
The vw Command
Drive Vaporware from the command line.
Vaporware ships a companion vw command-line tool for scripting and quick checks. It talks to the same services the app manages.
vw status # show service and project status vw status --watch # live-updating status
Each command group has its own --help, and shell completions are available.
Background Daemon
Keep services running without the app open.
Vaporware can run a headless daemon (vaporwared) that owns the managed services. With it enabled, your databases, proxy and domains keep running even when the app is closed, and the vw CLI talks to the same daemon.
Publish to Pixla Hosting
Hand a project off to production hosting.
Vaporware is a local development tool, not a deployment platform. As a convenience — like Xcode’s Upload to App Store Connect — it can package a Vapor project and hand it to Pixla Hosting, which takes over provisioning, TLS and routing.
Don’t use Pixla Hosting? You’re not missing a core feature — Vaporware’s value is local development. Publishing is purely optional.
Pixla Sites Export
Turn a Pixla Sites project into a Vapor app.
If you use Pixla Sites, the no-code builder, Vaporware can convert a Sites project into a deployable Vapor 4 app. Pages become Leaf templates over a shared layout, and forms become dynamic routes backed by Fluent.
Troubleshooting
Common issues and quick fixes.
A database won’t start
Another process may be holding its port. Vaporware frees orphaned processes on startup; if a clash persists, stop the other tool or restart the app for a fresh port assignment.
The first build is very slow
A project’s first build resolves and compiles every dependency. Later builds reuse that work and are far faster.
A .test domain stopped resolving
Quit and reopen Vaporware so it re-registers the resolver.
Uninstalling Vaporware
Remove the app and clean up everything it installed.
Vaporware installs a few things outside its app bundle — a .test resolver and firewall redirect, a local HTTPS certificate, CLI tools, and a data folder. The built-in uninstaller undoes all of it.
Open Settings › General and click Uninstall…, choose what to remove, then drag Vaporware to the Trash.
Prefer the terminal? Runvaporware uninstall, orvaporware uninstall --keep-datato keep your databases.
Contact & Links
Reach support and find more.
- Website — vaporwareapp.com
- In the Pixla family — pixla.app/vaporware
- Support — support@pixla.app
Vaporware by Pixla.