All selected work

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.

PROJECT
Umbric's own website
FOCUS
Build & release preparation
BUILT WITH
Node.js / Static HTML / Nginx
THE PUBLISHING WORKFLOW
PROJECT INPUTS
Pages
Assets
Scripts
out/HTML · CSS · assets
Security headersMatched to this build
Reviewed together
  1. 01
    Source

    Pages & approved assets

  2. 02
    Prepare

    Export & contact links

  3. 03
    Match

    Build-specific headers

  4. 04
    Review

    One complete release

Diagram of the internal workflow used to prepare this website for publishing.

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.

01

Export the site

Next.js produces static pages and local assets. The website can be served as files, without a running application server.

02

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.

03

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.mjs

The 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.

THE PUBLIC INTERFACEExplore the Umbric website

START WITH ONE USEFUL CHANGE

A small batch.
A useful first step.

Send the page, the task, or a sample of the files. We can agree on a clear scope and a reviewable first delivery.

Email Justin justin@umbric.com