index.html need no configuration. Add marina.json at the
project root when you want to set initial app details, handle requests, or use
Marina services.
marina.json
Manifest fields
The name and icon initialize a newly created app. After creation, change display
metadata in the Marina dashboard; later code deployments preserve it.
Browser output
A project containingindex.html can deploy directly. Projects with a
package.json and a build script are built before deployment. Marina recognizes
browser output in dist, build, out, public, or .output/public when that
directory contains index.html.
Handle requests
Declare an entrypoint when the app needs to handle requests or use Marina runtime services:marina.json
defineApp. Declare only the
services that version uses:
marina.json
marina.json
runtime.secrets and
egress.hosts:
marina.json
marina.json
Object storage
Store files and JSON under an isolated application namespace.
Application database
Query managed SQL data and evolve its schema with deployment migrations.
Connections
Read your business systems through workspace connections.
Background jobs
Run durable work on a schedule or from a request.
AI
Generate text with managed models.
Temporary links
Open one route to a request without a browser session.
Secrets and egress
Store app credentials and call approved public HTTPS hosts.
Project linking
After the first successful deploy, the CLI writes.marina/project.json. This
stable link tells future commands which Marina app the directory belongs to,
even if its display name changes.
Do not commit .marina/project.json. To target an app explicitly from an
unlinked directory, pass --app <slug>.
Name precedence
When creating an app, the CLI chooses its name in this order:--namenameinmarina.jsonnameinpackage.json- The directory name