Documentation

Everything in the app’s built-in help guide, on the web. Also available inside Vaporware under Help ▸ Vaporware Help.

Getting Started

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.test with 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.
Projects

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.

  1. Choose a name and folder. New projects default to ~/Vaporware, but any location works.
  2. Optionally provision a database — Vaporware runs CREATE DATABASE and pre-fills your .env.
  3. 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.

Databases

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").
Domains & HTTPS

.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

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 1025 by default.
  • Messages are saved as .eml files and persist across launches.
  • Inspect headers, body and recipients safely.
Environment

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.

CLI & Daemon

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.

Publishing

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.

Help & Support

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? Run vaporware uninstall, or vaporware uninstall --keep-data to keep your databases.

Contact & Links

Reach support and find more.

Vaporware by Pixla.