Skip to content

A new enginefor your voice.

GENNAI is the next-generation CMS that advances media-making with AI and automation. It takes routine work off your plate, so people can put more energy into what to say and what value to deliver. Your public site is fast, secure static HTML, and pre-publish checks run automatically on every build.

  • Publishes static HTML
  • Automatic pre-publish checks
  • Built for AI agents
  • Publish as static HTML
  • Setup wizard
  • Plugins
  • Themes
  • Automatic pre-publish checks
  • Pages and sections
  • S3 + CloudFront
  • MCP / HTTP API
  • GA4
  • GTM
  • Search Console
  • Sitemaps
  • CTA click tracking
  • Redirects
  • Internal link checks
  • Laravel 12 × Next.js 14
  • 8steps

    to finish initial setup in the setup wizard

  • 8types

    of section parts for building your front page

  • 4checks

    run automatically on every page, every build

  • 0servers

    application servers on the public side

Behind the name

New technology, made into a tool for human ideas.

In mid-18th-century Edo, a man got hold of a broken machine from overseas, worked out how it was built, and made it throw sparks again. His name was Hiraga Gennai.

Gennai repaired the elekiter and showed it to the public, organized exhibitions of goods gathered from across the country, and wrote stories and plays. He didn't leave new technology as technology; he carried it all the way to a form people could understand.

Some 250 years later, we have a new spark in our hands: generative AI — Gen AI.

The name GENNAI overlays Gennai and Gen AI. Like Gennai, who moved freely between technology and expression, we want to bring AI and media together and turn a flash of insight into something published.

Turning new technology into a tool that gives shape to human ideas — that is where GENNAI begins.

Hiraga Gennai

Repaired the elekiter, and wrote stories too

Gen AI

The new spark in our hands today

GENNAI

源内

From a spark of insight to what you publish.

Why GENNAI

The headaches of running media, solved by design.

CMSs often trade ease of use for a heavy operational burden. We rethought that trade-off from the architecture up.

  1. Problem 1: The admin and plugins live on the public server, so you are always chasing updates and security patches.

    Solution 1: Only static HTML is published. The admin is never exposed to the internet.

  2. Problem 2: A phrase that should never appear, or a broken link, goes unnoticed until after it is live.

    Solution 2: Every page is checked automatically on every build. Any violation stops it before it goes public.

  3. Problem 3: Initial site setup and analytics tags depend entirely on one person's know-how.

    Solution 3: The setup wizard walks you through everything, from analytics to referral destinations.

  4. Problem 4: Not enough hands to write and update posts, so the media goes stale.

    Solution 4: Posts and parts can be managed through the API (MCP), so you can share the work with AI agents.

Features

Everything a media site needs, as parts.

From installation to publishing and day-to-day operation, each feature fits together to support a single media site.

  • Install

    Get started as quickly as WordPress

    Run a single command, then follow the setup wizard in your browser. Everything you need to go live — from the site name to analytics tags and referral destinations — is configured in one pass.

    • ./install.sh brings up the whole Docker stack (Laravel 12 admin, Next.js 14 front end, MySQL)
    • Finish the initial configuration in an 8-step wizard
    • Configure everything from the browser, much like the WordPress installer
    Learn more (Get started as quickly as WordPress)
  • Static Export

    Your public site is just HTML

    Once you write an article, Next.js static export generates the HTML you serve. The admin and database never sit on the public side, so pages stay light and the attack surface stays minimal.

    Learn more (Your public site is just HTML)
  • Plugins & Themes

    Rearrange freely with plugins and themes

    Plugins add features; themes control the look. Both can be switched from the admin. If you know WordPress, the same mental model applies.

    Learn more (Rearrange freely with plugins and themes)
  • Front Page

    Build your home page by arranging parts

    Manage the home page as a static page and compose it in the admin by arranging section parts such as the hero, article lists, categories and CTAs. It works much like WordPress's “Your homepage displays” setting.

    Learn more (Build your home page by arranging parts)
  • Compliance

    Pre-publish checks, built into the system

    On every build, all pages are checked automatically, and the build stops before publishing if anything violates the rules. Whether to show an ad disclosure (PR label), and its wording, is up to the operator in the admin's site settings.

    Learn more (Pre-publish checks, built into the system)
  • SEO & Analytics

    SEO and analytics from day one

    GA4, GTM and Search Console settings live together in the admin, and sitemaps, SEO reports and click tracking for referral buttons come built in.

    Learn more (SEO and analytics from day one)
  • Security

    Secure by default

    The public side is static HTML only. On top of that, the admin ships with defaults that err on the side of safety.

    Learn more (Secure by default)
  • MCP / API

    Grow your media together with AI agents

    Articles, parts, tasks and the wiki can all be operated through an HTTP API (MCP). Hand writing and updates to AI agents while people focus on review and decisions.

    Learn more (Grow your media together with AI agents)

How it works

Three steps to launch your media.

  1. 01

    Install

    Clone the repository and run ./install.sh. The admin, front end and database spin up on Docker.

    $ ./install.sh
  2. 02

    Setup wizard

    Open the wizard in your browser and configure everything in 8 steps, from site basics to analytics, referral CTAs and plugins.

    $ open http://localhost:<port>/setup
  3. 03

    Write and publish

    Write posts in the admin and build with static export. HTML that passes the automatic checks is delivered to static hosting.

    $ build ✓ → S3 + CloudFront

Architecture

Keep where you build apart from where you publish.

The admin where you write runs only inside your private authoring environment; readers receive nothing but the exported static HTML. Speed and security come from the architecture itself.

Authoring environment (private)

Docker
  • Admin (Laravel 12)
  • MySQL
  • Front end (Next.js 14)

Editors edit posts and parts in the admin

AI agents work through the MCP / HTTP API

Build and automatic checks

  • No prohibited phrases
  • A 404 page exists
  • No broken internal links

Any violation stops the build

Public site

  • Static HTML
  • S3 + CloudFront
  • or any static hosting

The public side holds only static files such as HTML. No admin, no database.

Architecture: the admin runs only inside the authoring environment, and readers receive only static HTML that has passed the automatic checks.

Checks built in

Pre-publish checks go
from “be careful” to “built in.”

Words that must never appear, broken links: the checks human eyes tend to miss run automatically on every page with every build. Whether to show an ad disclosure (PR label), and its wording, is your choice in the admin's site settings.

  • Prohibited phrases, no words that must stay off the public site, such as the operator's name

  • 404 page, URLs that don't exist get a proper response

  • Internal links, no broken links within the site

The checks run automatically on every page with every build, and a single violation stops the build. Rules can be edited in the admin GUI.

$ build✓ Static export complete→ Running pre-publish checks✓ Prohibited phrases: none found✓ 404 page: present✓ Internal links: none broken✓ All pages: checked✓ Ready to deploy$
* Screen shown for illustration only

Front page layoutAutosaved

  1. Hero
  2. Post list
  3. Categories
  4. CTA

Just drag to reorder (illustration)

Front page

Your front page, too, is built from parts.

Manage the front page as a static page and compose it by reordering section parts, such as hero, post list, categories and CTA, in the admin. Much like WordPress's “Your homepage displays” setting, you can rework your entry point without touching code.

FAQ

Frequently asked questions

How is it different from WordPress?

We've kept the easy installation and the idea of extending with plugins and themes close to WordPress. The big difference is how it publishes: GENNAI exports your posts as static HTML and serves that. The admin never sits on the public server; it runs only inside your authoring environment.

What kind of server does the public site need?

The public site is static HTML, so it can be served from any static hosting, starting with S3 + CloudFront. There's no need to run PHP or a database on the public side.

What are the system requirements?

The authoring environment runs on Docker. It starts a Laravel 12 admin, a Next.js 14 front end and MySQL together.

Can I show an ad disclosure (PR label)?

Yes. In the admin settings, you can choose whether to show an ad disclosure (PR label) just below the header on every page, and set its wording. Themes can change how it looks.

Can I add my own features?

Yes, as plugins. Plugins have two layers, one on the Laravel side and one on the Next.js side, and you can scaffold one with php artisan plugin:make. Enable and disable them from the admin.

Can AI agents operate it?

Posts, parts, tasks and the wiki can all be operated through the HTTP API (MCP). It suits workflows where AI agents handle writing and updates.

What is the current state of development?

The current version is 0.2.0, and we use it to run our own media. If you are considering adopting it, feel free to get in touch.

Contact

From ideas
to publication.

We build AI into the machinery of media-making, so your ideas become what you publish. Thinking about adopting GENNAI, or moving over from your current setup? Just get in touch.

Talk to us