Pancake Stack › Pancake Stack Manual
Your first site
Make a site in a minute: choose what kind it is, give it a name, decide who can see it, and open it at name.localhost.
3.1Make a site in four questions
- In the Sites pane, click New Site at the top right, or press ⌘N.
- Under Create, choose PHP site, Static HTML site or Python app. (WordPress, Laravel and the other choices are described below.)
- Name. Type a name such as
blog. Pancake shows the address it will get,blog.localhost, as you type. - Kind. Check or change the kind: PHP site, Static HTML site or Python app.
- Version or framework. For PHP, pick the PHP version. For Python, pick Django, Flask, FastAPI or Existing project (WSGI).
- Who should see it? Just me keeps it on this Mac. Anyone, with a temporary test link and Anyone, at my own domain (Cloudflare) put it online straight away (see Putting sites online).
- Click Create. Pancake makes the folder, creates the site's database, and starts or reloads the servers.

When it's done, the site appears as a card in the Sites pane. Click Open to see it in your browser.
Choosing a test link or your own domain while Outside Access is off turns Outside Access on, which also publishes every other site you have switched online. Pancake says so before you click Create.
3.2Names and addresses
A site's name becomes its address: shop opens at http://shop.localhost. Names use lowercase letters, digits and single hyphens, up to 40 characters. A few names are reserved for Pancake itself: localhost, www, pancake, admin and adminer.
Every browser on your Mac understands .localhost names with no setup, and they never reach the internet. To open a site from your phone, see On my network and local HTTPS.
Pancake uses the standard web port 80 when it can. If another web server on your Mac already has port 80, Pancake moves to 8080 by itself, and addresses include the port: http://shop.localhost:8080. The status pill shows the port when it isn't 80. You can choose the alternate ports yourself in Settings ▸ Advanced ▸ Web ports.
3.3Which kind of site?
| Choice | Best for | What Pancake asks |
|---|---|---|
| Static HTML site | Plain HTML, CSS and JavaScript; built sites from Vite, Lovable or a site-design app. | Name, who should see it. |
| PHP site | Any PHP code you write or copy in. | Name, PHP version, who should see it. |
| Python app | Django, Flask, FastAPI or any WSGI app. | Name, framework, who should see it. |
| WordPress | A ready-to-use WordPress, installed and signed in. | Name, title, admin user, email and password. |
| Laravel | A new Laravel app with its database migrated. | Name only. |
| Design with the Assistant | A designed home page from a description. | Name, a look, a description. See Design with the Assistant. |
| From a Blueprint | A copy of a site you saved as a template. | The Blueprint, a new name. |
To bring in a site you already have, open Bring in a site in the same sheet. See Bringing sites in.
3.4WordPress
- Choose New Site ▸ WordPress.
- Fill in the Site name, the Title, the Admin user and Admin email. Pancake makes a strong random Admin password; click Copy to keep it, or type your own (at least 8 characters).
- Choose who should see it, and where WordPress comes from: Download the latest from wordpress.org, or A ZIP I downloaded.
- Click Create. Pancake creates the database, installs WordPress and finishes the setup. Open Site takes you to the dashboard at
/wp-admin/.
The database password is never written into the site's files: WordPress reads it from the environment Pancake gives it.
3.5Laravel
Choose New Site ▸ Laravel and give it a name. Pancake runs its bundled Composer to download Laravel (a minute or two), serves the public/ folder, gives the app a MySQL database and runs the first migration.
3.6Python apps
Choose Python app, then a framework. Pancake gives the site its own Python environment on the newest Python (3.14), downloads the framework from PyPI and starts it. The first time takes about a minute.
- Django runs under gunicorn, with
/static/served fromstaticfilesand/media/frommedia. The card adds Migrate, Collect Static and Superuser… (then sign in at/admin/). - Flask runs
app:appunder gunicorn; FastAPI runsmain:appunder uvicorn. - Existing project (WSGI): create the site, put your project in its folder (Show Folder), set the App entry such as
wsgi:application, then click Set Up.
Packages install from PyPI with Install Requirements. Pancake can't compile packages inside the sandbox, so the compiled packages most apps need (pydantic-core, psycopg2, cryptography, MarkupSafe and others) are built into Pancake; pure-Python packages install normally.
3.7What Pancake made for you
- A folder in Pancake's data folder, under
Sites/<name>. Show Folder on the card opens it in the Finder. - A web server entry (an Apache virtual host) for
<name>.localhost. - A MySQL database and user, both named after the site (hyphens become underscores), with a random password kept in your Keychain.
- Environment variables the site's code can read, so nothing secret goes into its files.
| Variable | Value |
|---|---|
DB_HOST | 127.0.0.1 |
DB_PORT | MySQL's port, usually 3306 |
DB_NAME, DB_DATABASE | The site's database |
DB_USER, DB_USERNAME | The site's database user |
DB_PASSWORD | Its password |
PANCAKE_SITE | The site's name |
In PHP, read them with getenv('DB_NAME'); in Python, with os.environ["DB_NAME"]. A site that uses an outside database also gets DATABASE_URL. On FullStack, sites get the addresses of Valkey and Memcached too (see Services).
Set a starting point for every new site in Settings ▸ Advanced ▸ Starter files for new PHP sites (or static sites): pick a folder, and Pancake copies it into each new site of that kind.