Skip to content

Migration

Move from the legacy Gulp-based Simple Engine to the modern 2.0 rewrite.

Simple Engine 2.0 is a complete rewrite. If you still have a site on the older Gulp / Swig / Bootstrap stack, use this guide to move over.

For the full checklist, see MIGRATION.md on GitHub. That file may still mention older version numbering from an earlier plan — the shipped release is 2.0.0 (migrating from Gulp-based 1.x).

Breaking changes

Area Legacy 2.0
Build Gulp Vite
Templates Swig Nunjucks
Content HTML Markdown
Styling Bootstrap / SASS Tailwind CSS v4
Modules CommonJS ESM
Config config.json simple.config.js

High-level steps

  1. Backup your current site
  2. Scaffold a fresh project with npx simple-engine@latest init my-site-new
  3. Port config from config.json into simple.config.js
  4. Convert content from HTML to Markdown with frontmatter
  5. Move layouts from Swig to Nunjucks (syntax is close; update extends/includes)
  6. Replace styles with Tailwind in styles/main.css
  7. Update scripts to simple dev / simple build
  8. Copy static assets into public/

Config mapping

Old (config.json):

{
  "title": "Simple Engine",
  "url": "https://simpleengine.com",
  "author": "Christopher Casper"
}

New (simple.config.js):

export default {
  site: {
    title: 'Simple Engine',
    url: 'https://simpleengine.com',
    author: 'Christopher Casper',
  },
  paths: {
    content: './content',
    layouts: './layouts',
    output: './dist',
  },
};

Content mapping

Old HTML + Swig:

{% extends 'layouts/index.html' %}

{% block content %}
<h1>About</h1>
<p>This is the about page.</p>
{% endblock %}

New Markdown:

---
title: About
layout: default
---

# About

This is the about page.

Directory mapping

Legacy 2.0
source/content/ content/
source/layouts/ layouts/
source/scss/ styles/
source/js/ public/js/
source/img/ public/images/
build output dist/
config.json simple.config.js
gulpfile.js (removed)

Scripts

Old:

{
  "scripts": {
    "start": "gulp",
    "build": "gulp build"
  }
}

New:

{
  "scripts": {
    "dev": "simple dev",
    "build": "simple build"
  }
}

After migrating, walk through Getting started and Configuration to finish setup.