02SCRIPTS & WORKFLOW / IN-HOUSE
A repeatable path
from source to site.
The publishing workflow behind Umbric connects a few precise scripts into one ordered preparation step.
- 01Source
Pages & approved assets
- 02Prepare
Export & contact links
- 03Match
Build-specific headers
- 04Review
One complete release
A website release needs more than a folder of pages. Public email markup needs to stay stable through the delivery layer, and security headers need to match the scripts in that exact build.
The project's build command puts those tasks in order. Each script handles a narrow responsibility and passes its output to the next step.
HOW IT WORKS
Small scripts. Defined outputs.
Export the site
Next.js produces static pages and local assets. The website can be served as files, without a running application server.
Prepare public contact links
A script walks the exported HTML and adds Cloudflare's email-preservation markers around public email links. This step runs before header generation.
Generate matching headers
A second script collects the inline-script hashes from the exported pages and writes security headers for that build. The static files and headers travel together.
THE HANDOFF
A defined release package.
The workflow gives the review and publishing steps a concrete set of inputs.
- One ordered build command
- Prepared static HTML and public assets
- Matching browser security headers
- A new release directory with the previous release retained
A closer look at the implementation
The local build runs these steps in sequence:
next build
node scripts/prepare-export.mjs
node scripts/security-headers.mjsThe release installer rejects an existing release name, keeps web files read-only to the web server, switches the active release, and checks the Nginx configuration before reloading. Build preparation and publishing remain separate actions.
A practical automation brief names the input, the expected output, the exceptions, and the person who reviews the result. A sample file and a short walkthrough are often enough to define a first pass.
For an API integration, add the system documentation and the fields that need to move. For a product-content batch, add approved facts, assets, and the required output format. Scope and validation come before publishing.