Docs · Marea · Version 1.0.2
From repository to live site.
The full buyer documentation ships inside the repository. This is the short version, so you know what to expect before you buy. It is taken from the Marea 1.0.2 release.
Install
From the repository to a running site and a production build.
Requirements
| Requirement | Version |
|---|---|
| Node.js | 24.x |
| npm | 11 or newer (ships with Node 24) |
| Git | Any recent version |
| Operating system | macOS, Linux, or Windows |
| Accounts or API keys | None, and no secrets. A production build needs the site's URL (step 4). |
Check your versions:
node -v # v24.x.x
npm -v # 11.x.x
1. Get the source
Clone the Marea repository you were given access to, then start your own project from it. Your license does not allow the source in a public repository, and you cannot add anyone to the Marea repository, so your project lives in a private repository of your own:
git clone https://github.com/vlavera/marea.git my-restaurant
cd my-restaurant
git remote rename origin marea # keep it, to pull future releases
git remote add origin <your own private repository>
git push -u origin main
2. Install dependencies
npm ci
npm ci installs the exact versions in package-lock.json. It reports two moderate
vulnerabilities in test tooling. That is expected; read docs/TROUBLESHOOTING.md before doing
anything about it.
3. Run the site locally
npm run dev
Open http://localhost:4321 (or the port it prints). You'll see the demo: a fictional restaurant, kept out of search, with every reserve and call button inert.
To run your own configuration once you've created it (docs/CUSTOMIZE.md):
MAREA_FIXTURE=client npm run dev # macOS / Linux
$env:MAREA_FIXTURE="client"; npm run dev # Windows PowerShell
Stop the development server with Ctrl+C in the terminal where it runs.
4. Check and build
npm run typecheck # TypeScript and the configuration's shape
npm test # the configuration is coherent and its media files exist
SITE_URL=https://your-domain.com npm run build # production build, into dist/
npm run preview # serve the production build at http://localhost:4321 (Ctrl+C to stop)
npm run build and npm run dev check whichever configuration MAREA_FIXTURE makes active, and
stop, naming the path, if it references a photo that is not in public/restaurant/.
The site URL
npm run build needs to know where the site will live, because the page carries a canonical link
that points there. It looks in this order:
SITE_URLin the environment, as in the command above (PowerShell:$env:SITE_URL="https://your-domain.com"; npm run build).seo.siteUrlin your configuration (docs/CUSTOMIZE.md).- The project's production domain, when Vercel builds the site from a connected Git repository. A build run anywhere else does not have it.
If none of these gives a real https:// URL, the build stops and says so. There is no placeholder
that quietly works. npm run dev does not need it.
Next steps
- Make it your own restaurant:
docs/CUSTOMIZE.md. - Replace the example photos and understand their license:
docs/ASSETS.md. - Deploy:
docs/DEPLOY.md.
Customize
Everything that makes a Marea site one restaurant is in one file: the configuration,
src/restaurant/fixtures/*.ts. Every word, price and photo is there, with the facts they belong
to. Its shape is RestaurantContract in src/restaurant/contract.ts, where every field is
described.
The full guide, docs/CUSTOMIZE.md in the repository, covers:
- Start your own configuration
- What to change, and where
- Switching the site on
- One language
- Colours and type
- Next steps
Assets
The full guide, docs/ASSETS.md in the repository, covers:
- Where media lives
- The example photos are AI-generated. Read this before you ship
- What the build checks
- Replacing the example photos
Deploy
Marea builds to a static site (npm run build produces dist/): no server process, no adapter,
no secrets. The build needs the site's URL. When Vercel builds the site from a connected Git
repository it is picked up automatically; anywhere else, set SITE_URL (docs/INSTALL.md, "The
site URL").
Deployment is tested on Vercel through its Git integration, on a plan that permits commercial use. The Vercel CLI path and other hosting environments are untested in this release.
The full guide, docs/DEPLOY.md in the repository, covers:
- Git integration
- Deploy with the Vercel CLI
- Connect your domain
- Verify a deployment
- Other hosts
Troubleshooting
14 calendar days of email support from the order date, for installation and the Vercel Git-integration deployment documented in the package. There is no response-time promise, and customization work, other hosts, and general development consulting are outside it.
The full guide, docs/TROUBLESHOOTING.md in the repository, covers:
npm cireports vulnerabilities. Is that a problem?npm run buildstops with "no usable site URL"- The board shows another day's date
- The reserve buttons do nothing
Changelog
All notable changes to Marea are recorded here. Versions follow Semantic Versioning.
1.0.2
- The demo carries no notice or note. The placeholder note under the visit table is removed. In a demo the reserve and call buttons stay on the page and go nowhere, and the address row reads "Sample address · your city".
- The address has its own field.
visit.addressis the first row of the visit table: itslinesare your address, shown once the site is switched on. A demo shows the shared sample line there instead.sampleAddressNoteis removed from the configuration's shape. If you already have a configuration: addvisit.addressand deletesampleAddressNote; the type check reports both. An address you wrote as a row ofvisit.rowsstill shows; move it tovisit.address.linesso it is not shown twice. - The shared code under
src/chassis/is version 0.9.0.
1.0.1
- The demo no longer carries a notice beside its buttons. In a demo the reserve and call buttons stay on the page and go nowhere; the line "Sample only · this demo sends nothing · …" beside them is removed. Nothing changes on a configured site, which never showed it.
docs/DEPLOY.md: the canonical link's fallback address is read when the site is built. If you attach a domain later and set neitherSITE_URLnorseo.siteUrl, redeploy.
1.0.0
First release.
- A one-page restaurant and bar site: hero, the story, the dining room with its board, the bar, a private room, a late room, and how to visit.
- The board: a menu in two parts, what changes and what does not, with a set menu and photos of the plates. Its date is the restaurant's day in its own time zone; on a closed day the page shows the next board and says so.
- Reserve and call buttons that go to the one contact you configure.
- Buyer guides in
docs/,AGENTS.mdfor coding agents, and the license.
Known limitations
- One restaurant, one page, one language (English).
- No CMS: content is a TypeScript file in
src/restaurant/fixtures/. The board is what that file says; changing it is an edit and a deploy. - No bookings, payments or availability. A reserve button is a link to wherever you take reservations.
- No map.
- Colours and typefaces are CSS, not configuration.
- The example photos are AI-generated and must be replaced before a commercial site goes live
(
LICENSE.mdsection 8). - Deployment is verified on Vercel through its Git integration only.