Features
Everything you need to deploy, manage, and scale your applications — without the infrastructure headache.
Code to production in one command
Push your code and deploy. We detect your Dockerfile, build your containers, and put you live with zero downtime. No infrastructure to configure.
One-command deployments
A single CLI command builds, deploys, and puts your app live. HTTPS, health checks, and load balancing happen automatically.
Multi-service applications
Deploy multiple Docker containers as a single app. Each service scales independently with automatic load balancing.
Clean container builds
Every deploy builds from a fresh clone of your branch — no stale layer cache, no "works on the last build" surprises. Base images are pulled through your own registry cache, so Docker Hub rate limits never break a build.
Git-native workflow
Deploy any branch on demand — from the CLI, the dashboard, the API, or a secret-authenticated hook you call from your own CI. Every branch gets its own URL, database and storage.
Build-then-deploy pipeline
Build your containers first. Once they're in the registry, deploy to any environment instantly without rebuilding.
Deployment cancellation
Changed your mind mid-flight? Cancel a queued or running deployment and it stops cleanly between phases — your current version never stops serving.
Every branch, in parallel
Run main, dev and a feature branch at the same time. Each gets its own URL, its own database, its own storage and its own deploy history — a real staging environment without a second account.
Rehearse it locally first
`mecca deploy preflight` pulls the real image, spins up a local Postgres restored from your latest backup, and runs the container against it. Catch a broken migration on your laptop, not in production.
Scheduled jobs, built in
Declare cron jobs in the same config file — a schedule and an endpoint. We run them, record every execution, and let you trigger or pause one without redeploying. No separate scheduler to host.
# Register once — we check the repo before you build
$ mecca register git@github.com:you/myapp.git
✓ Pre-flight passed
# Then deploy, as often as you like
$ mecca app deploy myapp
Building containers...
Provisioning database...
Configuring HTTPS...
✓ Deployment complete
✓ Live at https://myapp-web-yourteam.us.appmecca.netManaged PostgreSQL, zero admin
Included with every app. No separate database provisioning and no backup scripts to maintain. You declare a connection budget in your config; we keep the fleet inside the instance's limit.
Managed PostgreSQL
Database is provisioned automatically with your app. AWS RDS under the hood, fully managed by us. Just connect and use it.
Backed up before every deploy
If your app has a database, it is dumped automatically before every deploy — so a bad migration is always recoverable. On demand, `mecca app backup` takes a full checksummed bundle: database plus every storage drive.
Restore without losing the present
Drive restores stage alongside your live data and swap in atomically once every checksum matches. Database restores take a safety backup first and roll back automatically if anything fails. Restore the whole bundle, just the database, or just one drive.
# The database is created for you on first deploy —
# just set database.enabled in appmecca.yaml.
# Take a bundle whenever you want one
$ mecca app backup myapp -d "pre-migration"
✓ Bundle queued
# List what you can restore
$ mecca app backups myapp
2026-08-12T09:14Z pre-deploy 1.2 GB
2026-08-11T17:02Z pre-migration 1.2 GB
# Restore one
$ mecca app restore myapp <bundle> --force
✓ Verified and swapped in
# Or bring an existing database with you
$ mecca app restore-upload myapp --file prod.dumpOne line of config each
The things every real app needs and nobody enjoys provisioning. Declare them in appmecca.yaml and the credentials arrive as environment variables inside your container — nothing to copy, nothing to commit.
Redis, when you want it
Sessions, queues, rate limits, computed values. Set `redis.enabled` and REDIS_URL shows up in your container. Off by default, so you're not paying for something you didn't ask for.
Persistent file storage
A shared drive that survives deploys and is mounted into every replica — uploads, generated media, anything that shouldn't live in the container. Browse, upload and download it from the CLI or the dashboard without shelling in.
Private object storage
Name a bucket in your config and get a private, encrypted S3 bucket with credentials scoped to that app alone — not our keys, not shared keys. Rotate them whenever you like.
Transactional email, no SMTP
Set email.enabled and your app gets an endpoint it can POST JSON to. No AWS credentials in your container, no SMTP passwords, no SDK. Bounces and complaints are suppressed automatically, and every send is logged.
HTTPS, custom domains, load balancing
Get a system domain on day one. Add custom domains whenever you want. SSL certificates are automatic and free via Let's Encrypt.
Automatic HTTPS
Every app gets HTTPS out of the box. SSL certificates are provisioned automatically and renewed. No manual cert management.
Custom domains
Add your own domain to any service with one command. Add two DNS records — one for traffic, one for certificate validation — and we issue the certificate, wire the routing, and renew it forever. Apex domains work too — redirect to www, or delegate your nameservers to us.
Load balancing
Automatic load balancing across all healthy instances. Health checks are continuous, with automatic removal of unhealthy targets.
Service discovery
Services discover each other by name via private DNS. Your database arrives separately as a DATABASE_URL environment variable — nothing to look up.
Built to stay up
Automatic scaling, intelligent placement, and continuous health monitoring mean your app stays healthy without babysitting.
Replica scaling
Deploy 1-3 replicas of any service. Automatic load balancing spreads traffic across all healthy instances.
Intelligent placement
Services are placed on the least-loaded hosts. The scheduler spreads your workload to maximize efficiency.
Health monitoring
Continuous health checks ensure only healthy instances receive traffic. A failing instance is pulled from the load balancer, and a crashed container restarts on its own.
A bad deploy never takes traffic
New containers must pass health checks in isolation before the load balancer switches over. If they don't, the switch never happens and your current version keeps serving. Crashed containers restart on their own.
Built for more than one person
Multi-tenancy isn't bolted on. Every app belongs to a team, every request is checked against that team's membership, and the boundary is enforced server-side on every endpoint.
Teams, roles and invites
Owners, administrators and members. Invite by email; they accept and land in the right role. No per-seat billing, so adding a colleague is never a purchasing decision.
Private apps, gated by team
Mark an app private and it goes behind an authentication gateway — anonymous visitors get a login, and only your team gets through. Perfect for internal tools and staging you don't want indexed.
Sign in how you like
Email and password, or one click with Google, GitHub or GitLab. A social sign-in that collides with an existing email is challenged, never silently merged.
Scoped API keys
Mint keys per team with read, deploy or admin scope. A key is bound to one team when it's issued — use it against another team's app and it's refused. Rotate with one command.
Tools that respect your time
From CLI to web dashboard to AI integration, every tool is designed to get out of your way.
Powerful CLI
One command-line tool for everything: deploy, roll back, stream logs, set variables, manage domains and storage, back up and restore, and run one-off commands inside a live container. Every read command emits structured output with --json.
Web dashboard
Every app, service, database, domain and drive you own, in one place. Watch a deploy phase through live, read logs, edit variables, run a command in a container, restore a backup.
Live log streaming
Stream container logs in real-time with colored output. Filter by app, service, deployment, or log level. Follow mode for live monitoring.
Environment variables
Set variables per app and branch, or import a whole .env file in one call. Reference a sibling service with a template and we resolve the URL at deploy time. Database and service credentials are injected for you — never checked in, never pasted.
Deployment history & rollback
Your recent builds stay addressable as images. List them with `mecca app versions`, see which one is serving, and roll back by deploying an older tag — no rebuild, so it lands in seconds.
One-shot diagnostics
When something is wrong, `mecca debug` gathers it all at once: resolved URLs, per-service health, the last deploy errors, and which configured variables actually reached the container. No hunting across five screens.
Your AI deploys it for you
We publish a single-file guide that teaches any coding assistant how AppMecca works. Drop it into your project and your agent can write the config, deploy, and read the logs back — without you narrating the infrastructure.
# Your agent, in your IDE:
You: Deploy this to AppMecca.
Agent: Reading APPMECCA.md...
This is a Django app with Postgres and
a React frontend — two services.
✓ Wrote appmecca.yaml
✓ mecca register
✓ mecca app deploy myapp
✓ Health checks passing
Agent: Live at
myapp-web-yourteam.us.appmecca.net
# Same commands you'd type. It just types them.A guide written for machines
Around 1,800 lines covering the config format, the Dockerfile contract, every backing service, and the traps that waste the most time. Verified against the platform's own validation code, not written from memory.
Model-agnostic by design
It assumes nothing about which assistant reads it. Append it to CLAUDE.md, AGENTS.md, .cursorrules, GEMINI.md or your Copilot instructions — whichever file your tool already loads.
An operating procedure, not just a reference
The last chapter is an ordered runbook for taking a project live — what to inspect, what to ask you and when, and how to verify each step actually worked before moving on.
Everything is scriptable
Read commands emit structured output with --json, and the same REST API sits behind the CLI and the dashboard. Mint a scoped API key and your agent — or your CI — can drive the platform directly.
Switch platforms in an afternoon
Standard Docker containers mean migration is straightforward. Bring your Dockerfiles, import your data, deploy. No proprietary formats, no lock-in.
Coming from Heroku?
Each Procfile process becomes a service in appmecca.yaml, backed by a Dockerfile you control. Bring your config across in one call with `mecca var load myapp .env`.
Bring your database
Take a pg_dump from Heroku, Railway or Render and upload it — from the CLI or by dragging it into the dashboard. We take a safety backup first, restore, and hand you a per-table row count.
No lock-in
Standard Docker. Standard PostgreSQL. Migrate away anytime. Your Dockerfiles and data are always yours to take.