Templates

Creating and Publishing a Theme for Minniark

Minniark is a lightweight and customizable platform that supports theming. By creating your own theme, you can completely control the look and feel of your site or application. This guide walks you through the steps required to build and publish a Minniark-compatible theme that others can install and update using Composer.

You find a detailed filestructure here https://dev.minniark.app/templates/file-structure

Theme Metadata

Every theme must include a theme.json file that defines basic metadata. This metadata is used by Minniark to identify and display available themes. The file should contain fields like:

{
  "name": "mytheme",
  "version": "1.0",
  "author": "Your Name",
  "url": "https://yourdomain.com"
}

Alternatively, the file can be formatted as a JSON array containing a single object. Both formats are supported by Minniark's theme engine.

In addition to the metadata, include a image.png file (300x200 px) that serves as a visual preview for the theme in the Minniark dashboard.

Create a Composer Package

To make your theme installable and updatable via Minniark, it must be packaged using Composer. This means including a composer.json file that defines the package name, dependencies, and author information.

Here’s a sample composer.json:

{
  "name": "yourvendor/mytheme",
  "type": "project",
  "description": "A custom theme for Minniark",
  "license": "MIT",
  "authors": [
    {
      "name": "Your Name",
      "email": "your@email.com",
      "homepage": "https://yourdomain.com"
    }
  ],
  "require": {
    "minniark/minniark": "^2025.7.0"
  }
}

The "name" field is important: Minniark will convert it into a folder name by replacing slashes (/) with underscores (_), so yourvendor/mytheme becomes yourvendor_mytheme.

Publish on GitHub

Push your theme to a public GitHub repository. Once committed, tag a release version that follows semantic versioning (e.g., v1.0.0). This is required for Packagist to recognize your package version.

git tag v1.0.0
git push origin v1.0.0

Submit to Packagist

Go to https://packagist.org/packages/submit and submit the URL of your GitHub repository. Packagist will read your composer.json and register the theme.

After submission, your theme becomes available to all Minniark users and can be discovered through the dashboard or updated automatically if you release new versions.

Updating Your Theme

To release updates, simply tag a new version in your Git repository (e.g., v1.1.0). Minniark will detect new versions via Packagist and notify users if an update is available.