Skip to main content
The theme starter kit gives you a working theme with Vite, Tailwind CSS, Alpine.js, translation catalogs and an optional PHP entry class. This guide takes it from clone to published.

Prerequisites

  • A local Aikeedo installation with DEBUG=true and CACHE=false. See Local development.
  • Node.js 18 or newer, and Composer.
  • Administrator access to the admin panel.

Step 1: Clone the starter

Step 2: Rename the package

Edit static/composer.json. Three things must agree: the package name, the entry class namespace and the autoload map.
static/composer.json
Then update the namespace in static/src/Theme.php and static/src/CustomView.php to match.
The installed directory path must equal the package name. acme/aurora installs to extra/extensions/acme/aurora, and nothing loads if the two disagree.

Step 3: Point the build at your installation

The starter reads BUILD_DIR and AIKEEDO_SERVER from its environment. Copy the committed defaults into a local file and set your own paths:
.env.local
BUILD_DIR is emptied on every production build. Point it at the theme’s own directory, never at the installation root or a directory holding anything else.

Step 4: Tell Aikeedo to load assets from Vite

In the Aikeedo installation’s .env:
.env

Step 5: Start the dev server

Vite serves on port 5174 and proxies everything that isn’t a theme asset to AIKEEDO_SERVER, so you can browse the whole site through it. It also copies static/ into BUILD_DIR as you edit. Open http://localhost:5174.

Step 6: Install the theme

The starter ships a PHP entry class, which Composer has to autoload. From the installation root:
A theme without PHP doesn’t strictly need this: Aikeedo discovers any valid package directory under extra/extensions/. Installing with Composer is still the tidier path, and it’s required as soon as you add an entry class.

Step 7: Publish it

1

Preview

Visit /preview?theme=acme/aurora to see the theme without switching the live site.
2

Publish

In the admin panel, open Themes, find Aurora, and select Publish.
3

Verify

Load the home page. You should see the starter’s landing page.
Editing static/templates/index.twig reloads the page, and editing src/css/index.css updates styles without a reload.

Step 8: Make it yours

Add a pricing section next: the landing template receives plans, and Pricing and plans shows how to render them.

Step 9: Package a release

See Packaging and publishing.

Troubleshooting

Check that the directory path matches the package name, that type is aikeedo-theme, and that require includes heyaikeedo/composer.
THEME_ASSETS_SERVER must match the Vite port, and npm run dev must be running. Without the dev server, build once so the files exist in BUILD_DIR.
Run composer require acme/aurora, and check that the namespace in composer.json, Theme.php and the autoload map all agree.
Routes are cached when CACHE=true. Set CACHE=false, or clear the cache from Status → Clear cache.
Debug mode enables strict variables. Guard optional values, for example {% if user is defined %}.