thelia is a free, open source e-commerce platforms project written in PHP and released under GPL-3.0. It has 882 GitHub stars, 319 forks and 19 open issues, and was last pushed 4 hours ago. On this registry it ranks #38 of 46 tracked projects in E-commerce Platforms, with 5 head-to-head comparisons available. It gained 3 stars over the last 30 tracked days.

What is thelia?

Thelia is an open-source e-commerce CMS and framework built on Symfony 7 and API Platform, for PHP teams that want to own and extend their storefront, back office and API instead of renting a hosted platform.

What it is

Thelia is a PHP framework for building online stores and managing web content. Version 3 runs on PHP 8.3, 8.4 or 8.5, Symfony 7.4 LTS, API Platform 4.3 standalone and the Propel ORM. Its front office uses a Twig theme named Flexy and its back office a Twig theme named default-twig; both are built with Twig, Symfony UX (Stimulus, Twig Components, Live Components) and Bootstrap 5, and API authentication uses Lexik JWT. The development repository is thelia/thelia, while thelia/thelia-project is the skeleton used to create an actual shop.

The concrete problem it solves is assembly work. A storefront on Symfony otherwise means wiring routing, an ORM, an admin interface, a theme and an API by hand before any commerce logic exists. Thelia ships that as one stack and adds a command-line installer, bin/install, which reads database credentials and applies theme, demo and admin choices in one pass. For teams already on Thelia 2, the Smarty back office remains available alongside the Twig back office, so migration does not have to be a single-step rewrite.

Key capabilities

  • Twig front office (Flexy theme) and Twig back office (default-twig theme) built on Bootstrap 5 and Symfony UX.
  • API Platform 4.3 standalone with Lexik JWT for API authentication.
  • Propel ORM, with MariaDB 10.11 or later recommended and MySQL 8.x supported.
  • bin/install command-line installer reading DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USER and DATABASE_PASSWORD, or accepting the same values as flags.
  • Install flags for --frontoffice_theme, --backoffice_theme, --pdf_theme, --email_theme, --with-demo and --with-admin, plus admin login, password, first name, last name and email.
  • Asset compilation handled by bin/install itself through importmap:install and tailwind:build.
  • The Smarty back office from Thelia 2 stays available for projects that need it during migration.

Who uses it and how

  • Self-hosting PHP and Symfony shops: Nginx or Apache with the document root set to public/, PHP 8.3 recommended, Composer 2.7 or later.
  • Teams migrating from Thelia 2, running the Smarty back office while content and configuration move across to the Twig back office.
  • Developers working locally with DDEV (PHP 8.3, MariaDB 10.11, Node.js 20); no Docker setup ships with the repository, and the maintainers use DDEV.
  • Integrators and headless front ends consuming the API Platform endpoints with JWT authentication.
  • Framework contributors, who work in thelia/thelia rather than the shop skeleton; the repository carries the hacktoberfest topic.

Getting started

Install from Packagist through the thelia/thelia-project skeleton, or clone the development repository, run composer install and then bin/install (or php bin/install outside DDEV) with your database variables and theme flags. bin/install builds the assets itself.

How it compares

The registry entry names no paid products that Thelia replaces and no similar tools to weigh it against, so it stands alone in this registry. No licence, self-hosting or cost comparison can be drawn from the facts provided.

When to use it — and when not to

Self-hosting means operating PHP 8.3, MariaDB 10.11 or MySQL 8, Nginx or Apache with the document root at public/, Composer 2.7 or later, and the pdo_mysql, openssl, intl, gd, curl, dom, mbstring and zip extensions; no Docker setup is included, so the environment is yours to build. Teams wanting managed hosting, a non-PHP stack or an out-of-the-box container deployment should not pick it. Note also that thelia/thelia is the framework repository rather than a shop starting point, so creating a store directly from it is the wrong entry point.

project readme (upstream, from github) — read inline

Thelia

tests PHPStan stable PHP Symfony API Platform license docs stars contributors last commit code quality

This is the development repository of Thelia, the open source e-commerce framework. Work on Thelia itself here.

To create a shop, use the project skeleton instead: thelia/thelia-project.

About

Thelia is an open source framework for building online stores and managing web content. Version 3 runs on:

  • PHP 8.3, 8.4 or 8.5
  • Symfony 7.4 LTS
  • API Platform 4.3 (standalone)
  • Propel ORM
  • A Twig front office (the Flexy theme) and a Twig back office (the default-twig theme)
  • Lexik JWT for API authentication

The back office and front office are built with Twig, Symfony UX (Stimulus, Twig Components and Live Components) and Bootstrap 5. The Smarty back office from Thelia 2 is still available for projects that need it while they migrate. See "Back-office templates" below.

Thelia is open source software. See the LICENSE file for details.

Requirements

Requirement Supported
PHP 8.3, 8.4 or 8.5 (8.3 recommended)
Database MariaDB 10.11 or later (recommended), or MySQL 8.x
PHP extensions pdo_mysql, openssl, intl, gd, curl, dom, mbstring, zip
Composer 2.7 or later
Web server Nginx or Apache, document root set to public/

How long each release series receives security fixes is listed in SECURITY.md.

Setting up a development environment

The repository does not ship a Docker setup. The maintainers use DDEV, which provides PHP 8.3, MariaDB 10.11 and Node.js 20 in one command. Any equivalent stack works: point your web server at public/ and use the same PHP 8.3 binary for the command line and the web server.

ddev config --project-type=php --php-version=8.3 --database=mariadb:10.11 --docroot=public --nodejs-version=20
ddev start
ddev exec composer install

Install Thelia

bin/install reads its database credentials from the DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USER and DATABASE_PASSWORD environment variables, or from command-line flags. With DDEV the database is reachable as db:3306, user db, password db:

ddev exec bin/install \
  --frontoffice_theme=flexy --backoffice_theme=default-twig \
  --pdf_theme=default --email_theme=default \
  --with-demo --with-admin \
  --admin_login=thelia --admin_password=thelia \
  --admin_first_name=Admin --admin_last_name=User \
  --admin_email=admin@example.com

Without DDEV, export the database variables (or put them in .env.local) and run php bin/install with the same flags.

Build the assets

bin/install compiles all the assets itself: it runs importmap:install and tailwind:build for the active front-office theme, and sass:build for the back-office stylesheet. To rebuild them later, run the same commands from the application root:

ddev exec php bin/console importmap:install   # front-office JavaScript dependencies
ddev exec php bin/console tailwind:build      # front-office stylesheet (Flexy)
ddev exec php bin/console sass:build          # back-office stylesheet (default-twig)

The storefront is then at https://.ddev.site and the admin at https://.ddev.site/admin.

Back-office templates

Thelia 3 installs the Twig back office (default-twig) by default. The Smarty back office (templates/backOffice/default/) stays available so projects migrating from Thelia 2 can keep modules that target it. You can install both at once and switch the active one:

ddev exec bin/console template:set backOffice default-twig   # or: default

If you maintain a module, the migration guide is at .

Tests and quality

ddev exec composer test       # PHPUnit test suites
ddev exec composer cs-diff    # coding standard (php-cs-fixer)
ddev exec composer phpstan    # static analysis

How the packages fit together

Several packages are split out of this repository: thelia/core, thelia/config and thelia/setup. Modules live under thelia-modules, and the Flexy front-office theme is in thelia/Flexy.

Contributing

Pull requests go to this repository. See CONTRIBUTING.md for the coding standard and the test workflow.

Community

  • Documentation:
  • Website:
  • Discord:
  • Forum:

Frequently asked questions

Is thelia free to use?

thelia is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does thelia do?

Thelia is an open-source e-commerce CMS and framework built on Symfony 7 and API Platform.

What is thelia written in?

thelia is primarily written in PHP. Its source is publicly available at https://github.com/thelia/thelia, and it has 882 GitHub stars.