Nodify Documentation

Simple, powerful, open-source headless CMS — built with Java, loved by developers.

Quick Start

Get Nodify running in under 5 minutes with Docker.

Terminal
git clone https://github.com/AZIRARM/nodify.git
cd nodify
docker compose up -d
Access Nodify Studio: http://localhost
Login: admin@nodify.app / Admin13579++

What is a Headless CMS?

A Headless CMS separates content management from presentation. Content is delivered via API to any frontend — websites, mobile apps, IoT devices, or voice assistants.

Traditional CMS

  • ❌ Frontend + Backend coupled
  • ❌ One presentation layer only
  • ❌ Themes and templates limited

Nodify Headless CMS

  • ✅ Decoupled architecture
  • ✅ Any frontend framework
  • ✅ Pure API delivery

Key Features

Native i18n

Unlimited languages, hierarchical translations, SEO-friendly URLs.

REST API

Full CRUD operations, webhooks, and real-time duplex communication.

Docker Ready

One-command deployment with MongoDB and Redis included.

Built-in Analytics

Track impressions, clicks, and user feedback out of the box.

Plugins

Extend with jQuery, Bootstrap, or custom plugins using $with().

Flexible Auth

Internal, OAuth2, or OpenID Connect (SSO ready).

Content Management

Nodes

Nodes are containers for your content. Create a hierarchy like: Blog > Articles > 2024

// Create a node via API
POST /v0/nodes
{
  "name": "my-blog",
  "language": "en"
}

Content Types

  • HTML — Web pages, articles, blog posts
  • JSON — Structured data for APIs
  • CSS / JS — Stylesheets and scripts
  • Images / Files — Media assets

SNAPSHOT vs PUBLISHED

SNAPSHOT — Draft mode (admin only)
PUBLISHED — Live (public, tracked in analytics)

Templating System

Build dynamic pages by assembling independent content blocks.

HTML Template
<html>
<head>
    <style>$content(main-css)</style>
</head>
<body>
    $content(header)
    $content(hero-section)
    $content(footer)
    <script>$content(main-js)</script>
</body>
</html>

Placeholders

SyntaxDescriptionExample
$content(CODE)Insert content from another node$content(header)
$value(KEY)Insert a key-value pair$value(SITE_NAME)
$translate(KEY)Insert multilingual text$translate(WELCOME)
$with(plugin)Load a plugin

API Reference

All endpoints require an API key. Base URL: https://your-nodify-instance.com

MethodEndpointDescription
GET/v0/content/code/{code}Get content by code
GET/v0/content/slug/{slug}Get content by slug (SEO)
GET/v0/content/code/{code}?payloadOnly=trueGet raw content only
GET/v0/content/code/{code}?lang=frGet content in French
PATCH/v0/content-clicks/contentCode/{code}Record a click
POST/v0/feedbacksSubmit user feedback
GET/v0/feedbacks/contentCode/{code}Get feedback for content
Example API Call
curl -X GET "https://your-nodify.com/v0/content/slug/my-article?payloadOnly=true" \
  -H "Authorization: Bearer YOUR_API_KEY"

Official SDKs

Nodify provides official client libraries for all major languages.

Deployment

Docker Compose (Recommended)

version: '3.8'
services:
  mongodb:
    image: mongo:latest
    volumes:
      - mongodb_data:/data/db

  nodify-core:
    image: azirar/nodify-core:latest
    environment:
      MONGO_URL: "mongodb://mongodb:27017/nodify"
      ADMIN_PWD: Admin13579++

  nodify-api:
    image: azirar/nodify-api:latest
    environment:
      MONGO_URL: "mongodb://mongodb:27017/nodify"

  nodify-studio:
    image: azirar/nodify-studio:latest
    ports:
      - "80:80"
    depends_on:
      - nodify-core
      - nodify-api

volumes:
  mongodb_data:

Environment Variables

VariableDefaultDescription
MONGO_URLmongodb://mongodb:27017/nodifyMongoDB connection
ADMIN_PWDAdmin13579++Admin password
AUTH_MODEinternalinternal, oauth2, or openid

Open Source

Nodify is licensed under CC BY-NC 4.0. Self-host, modify, and extend — no vendor lock-in.