Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Nymph App Template

This is a template for building an app with Nymph and Tilmeld.

For development, it provides a Docker setup that runs a DB (MySQL, PostgreSQL, or SQLite3), Nginx, Postfix, and Nymph. It presents a usable app, built in Svelte, as a starting point.

Deprecation Notice

The PHP implementation of Nymph/Tilmeld has been deprecated. It will no longer have any new features added. Instead, a new version of Nymph running on Node.js, written entirely in TypeScript will replace the PHP implementation. You can find it over at the Nymph.js repo.

Since this template is built around the PHP implementation, at least for the time being, this template should be considered deprecated too.


  1. Get Docker, Docker Compose, and Degit
    curl -fsSL -o
    sudo curl -L "$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    npm install -g degit
  2. Copy this template:
    • for MySQL
      degit hperrin/nymph-template nymph-app
    • for Postgres
      degit hperrin/nymph-template#postgres nymph-app
    • for SQLite3
      degit hperrin/nymph-template#sqlite3 nymph-app
  3. Run the app:
    cd nymph-app
  4. Go to http://localhost:8080/

On SQLite3, the very first time you create an entity (when you register the first user/create the first todo), the DB will become locked. You'll need to refresh the page, but then on it will be fine.

NPM and Composer

If NPM and/or Composer are not installed, and will use a Docker container to run them.

You can run commands from the repository root (not the "app" directory) using and For example:

./ require vendor/package
./ install --save package
./ run build

Adding New Entities

  1. Duplicate both Todo.php and Todo.js in the src/Entities folder, and rename/edit them.
  2. Run npm run build or npm run watch in the "app" dir to rebuild the bundled JS.
  3. If you need help, check out the API docs.