ElementNode
Docs

Documentation

Everything you need to install, configure and customize Element Node.

One-prompt setup

Using Claude Code (or another coding agent)? Fill in the fields below: the prompt writes itself, ready to go — copy, paste, and the agent does everything, domain and database included.

1
ServerWhere to install the CMS
2
ProjectWhat the agent should build
3
ContentLanguages, form and SEO
Your promptUpdates as you type
Still needed: SSH, domain, site URL, languages, form email
claude code
Install Element Node on my server and build me a site, end-to-end.

SERVER
- SSH: <user@host> (sudo ok) — any Linux
- Detect what's there (Plesk, nginx, Apache, Docker, bare VPS) and act
  accordingly: create/configure whatever is needed — domain or vhost,
  MySQL/MariaDB database, Node.js 20+, reverse proxy and SSL
- Domain: <mysite.com> — if you can't manage DNS, tell me which A record
  to create and I'll point it
- Install the CMS from the repo: https://github.com/LorenzArtik/element-node
  (install.sh is non-interactive when you export DB_NAME, DB_USER,
  DB_PASS, SITE_URL; for Plesk there's a dedicated PLESK_DEPLOY.md guide)

SKILL (on my machine)
- bash <(curl -fsSL https://elementnode.cloud/install-skill.sh)
- Create the admin user and an API key (scopes site.import + site.export)

PROJECT — RESTYLE of the current site: <https://current-site.com>
- Copy, images and content: faithful replica, word for word
- Design: modernized — palette from the logo, airy sections,
  flawless mobile; visually diff against the original site

CONTENT
- Languages: <main + any others; extra ones live under /xx>
- Contact form → send to: <email> (configure SMTP or Brevo)
- SEO: generate title and description for every page, in the right language

DELIVERY
- Keep the site password-protected until I approve
- Final report: URL, site password, admin credentials, what you did

Quickstart

Install the CMS in 5 minutes, locally or on Plesk.

Element Node is a Next.js app with a MySQL database: it runs anywhere Node 20+ runs. The guided installer does everything — dependencies, database, first admin user — but a manual install is five commands.

On first login you'll find a pre-populated sample site: explore the editor on real content and delete it when you start your own project.

  • Requirements: Node 20+, MySQL/MariaDB, 1 GB RAM
  • AI is optional: without an Anthropic API key the CMS is fully functional, just without the assistant
  • On Plesk, see the "Plesk deploy" section below for Passenger and the standalone build

One-click updates

Panel updates with automatic database backup and fail-safe.

With an active license the CMS checks for new versions on its own and flags them in the panel (Settings → API). The update starts with one click and runs in the background: you can follow every step from the panel, full log included.

Before touching anything, a compressed database backup is saved (we keep the last 3 copies in tmp/). The running version stays active until the new build completes: if anything fails, the site keeps running on the previous version.

  • Uploads, .env and deploy files are never touched by the updater
  • The database schema is migrated automatically, with no destructive drops
  • When the update finishes, the panel reloads itself on the new version

Cookie banner & privacy

Native GDPR consent with click-to-load embeds. Settings → Privacy.

The cookie banner is built into the CMS: enable it in Settings → Privacy, it inherits your theme colors (with optional overrides) and supports per-language copy — under /en the English variants appear automatically.

Third-party content (maps, videos, iframes) can be gated behind consent: the HTML widget has a "require consent" option that shows a placeholder with a load button until the visitor accepts. No external requests before the yes.

  • Choice remembered on the device, revocable at any time
  • Separate links to privacy policy and cookie policy
  • No external script: the banner is part of the site's rendering

Site access

Password, coming soon or maintenance, with automatic noindex.

In Settings → Site you pick the access mode: Public, Password protected or Maintenance. With a password, visitors get a customizable lock screen and browse the whole site after entering it; in maintenance, only logged-in admins see the real site.

While the site is not public the CMS automatically serves a blocking robots.txt and noindex meta tags: no accidental indexing of your staging. The unlock is verified server-side with a signed cookie lasting 7 days.

Forms & submissions

Every form has a submissions archive; email via SMTP or Brevo.

Forms designed in the editor automatically become managed entities: the Forms panel lists every form on the site with its submissions archive — sender, fields, date, source page. Submissions are saved before the email is sent, so nothing is ever lost.

The email provider is configured in integrations: classic SMTP or Brevo. Every form supports a privacy consent checkbox linking to your policy, and an invisible spam honeypot discards bots without CAPTCHAs.

Multilingual

A header and footer per language via display conditions.

Each language's pages live under a prefix (e.g. /en) and theme blocks use display conditions: create the English header, give it the "URL prefix /en" condition with higher priority, and the CMS picks the right block for every page by itself.

The same mechanism works per page, homepage, role or device. There is no translation plugin: it's the standard rendering engine with one extra condition, so nothing can break on update.

Layout & responsive

Columns stack by themselves under 768px, with per-column opt-out.

Responsive behavior lives in the rendering engine: under 768px columns stack in layout order, headings scale fluidly and sections adapt their padding. A site built for desktop is already readable on a phone with zero configuration.

  • Custom mobile width per column (e.g. grids that stay 2×2)
  • Hide on mobile / hide on desktop per column
  • Images never escape their container

Widget API

51 native widgets; define your own in TypeScript with schema and defaults.

The catalog counts 51 widgets — 33 core and theme, plus 18 Pro — all described by a TypeScript schema: fields, defaults, categories. The editor generates property panels from the schema, and the single renderer draws them identically in the editor and on the public site.

Adding a widget means declaring its schema and writing its render function: no duplicated markup between editor and frontend.

typescript
// widgets-schema.ts (excerpt)
counter: {
  label: 'Counter',
  category: 'pro',
  fields: {
    end: { type: 'number', default: 100 },
    suffix: { type: 'text', default: '+' },
    accentColor: { type: 'color', default: '' },
  },
}

Editor & pages

Create, publish, schedule. Persistent revisions and undo.

The editor is sections and columns: each section has a single flexible container, columns have percentage widths and wrap automatically when a row exceeds 100%. Drag widgets from the sidebar, edit properties in the contextual panel.

Every save creates a revision; undo survives refreshes. Pages have draft/published states and per-page SEO (title, description, social image).

AI panel

An assistant that builds sections; you use your own Anthropic API key.

The AI assistant generates and edits real site sections: describe what you want and get actual widgets, not HTML to paste. Model and system prompt are configured from the panel.

The API key is yours (Anthropic) and so are the costs — typically a few euros a month: no markup from us on AI, available on every plan including Free.

  • Generate the key at console.anthropic.com → Settings → API Keys → "Create key" (an active payment method on your Anthropic account is required)
  • In the CMS, paste it in Settings → Integrations → "AI Anthropic (Claude)" card and save
  • From that moment the editor AI chat and one-click SEO are active; until the key is set, the chat stays locked with on-screen instructions

Users & roles

Admin, Editor, Author, Viewer. NextAuth v5 and JWT.

Four roles with decreasing permissions: Admin (everything, including settings and updates), Editor (content and theme), Author (own pages), Viewer (read-only). Authentication is NextAuth v5 with JWT sessions.

API keys for automation (site import/export via REST) are generated from the panel with granular scopes and can be revoked individually.

Plesk deploy

Phusion Passenger, env vars, standalone build, restart.

On Plesk the CMS runs with Phusion Passenger and Next.js's standalone build: app.js as entry point, environment variables in .env, restart via touch tmp/restart.txt. The installer detects Plesk and configures everything by itself.

It also works on any VPS with Node 20+ and a reverse proxy (nginx, Caddy): npm run build and npm start.

Licensing & plans

Key activation, domain binding, client keys for agencies.

Activate your license by pasting the key in Settings → API: the CMS validates it periodically and unlocks Pro widgets, one-click updates and support. Pro widgets outside your plan stay visible and editable in the editor with a notice, but are not rendered on the public site until you activate the right plan.

The Agency plan includes 100 client keys: from the customer area on elementnode.cloud you generate a labeled key for each site, individually revocable, with a single invoice.

  • Free: 33 core widgets, forever
  • Essential: 38 widgets (33 core + 5 Pro), updates, pre-update backup and the AI skill
  • Advanced/Expert/Agency: all 51 widgets, API keys and unlimited users

WordPress migration

Import pages, media and users from your WP site.

The import tool reads a WordPress export and recreates pages, media and users as native entities. Content arrives as editable sections in the editor, not as frozen HTML.

For assisted migrations (complex sites, WooCommerce, multilingual) reach out via the contact form: we'll do it with you.