Self-hosted service
aimeos/aimeos-headless avatar
aimeos/aimeos-headless

aimeos-headless: an Aimeos distribution shaped as a Laravel application

Aimeos cloud-native, API-first ecommerce headless distribution based on Laravel for ultra fast online shops, scalable marketplaces, complex B2B applications and #gigacommerce

2,571 stars27 forksJavaScriptLicense varies

At a glance

What is it?
The headless branch of the Aimeos shop system arrives not as a library but as a full Laravel skeleton with its own routes, config, migrations and Vite setup, and the repository is thin on installation detail.
Who is it for?
aimeos-headless is best understood as a starting skeleton rather than a package you install into an application you already have. The tree contains `artisan`, `composer.json`, `routes/`, `config/`, `database/` and `phpunit.xml`, which is the shape of an application, and `.env.example` names MySQL, Redis, S3, Mailtrap and Pusher as the services the default setup expects.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 69 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A distribution rather than a composer dependency

The first thing to notice is what kind of artifact this is. There is no `src/` directory and no library entry point. The tree carries `artisan`, `bootstrap/`, `config/`, `database/`, `routes/`, `resources/`, `storage/`, `public/` and `tests/`, which is the standard Laravel application layout. The repository is a ready to run shop that Aimeos has preassembled, not a package you add to a project of your own.

That distinction matters. Adopting it means taking the whole skeleton, including its opinion about frontend build tooling and its environment file, rather than pulling one component into an existing codebase. The README ends with an alternatives section whose visible fragment points at integrating into existing applications, which suggests the non headless Aimeos distribution is the path for that case.

The metadata lists the language as JavaScript and the topics as `api`, `cloud`, `ecommerce`, `headless`, `laravel`, `microservice`, `php`, `shop` and `vue`. That mix misleads slightly on its own, since the application logic is PHP, but the presence of `vue` and `microservice` fits a project whose point is to keep the storefront decoupled from the back office.

Two APIs with different jobs, jsonapi.org for the shop and GraphQL for admin

The README names the API surface precisely, and the split is the interesting part. The storefront side is a JSON REST API based on jsonapi.org, which is a standardised document format rather than an ad hoc JSON shape. That choice matters for anyone writing a frontend against it, because jsonapi.org fixes conventions for resource naming, relationship linkage, inclusion and pagination instead of leaving each endpoint to invent its own.

The administration side is a GraphQL API. GraphQL over a shop catalogue is where you want it, because admin screens ask for many related entities at once, and product records in a system like this spread across type, attribute, media and price data. Whether the frontend also talks to GraphQL is not stated in the README, and that is one of the questions a reader has to answer elsewhere.

The feature list also mentions multi vendor, multi channel and multi warehouse, a multi tenant SaaS mode for unlimited vendors, subscriptions with recurring payments, block and tier pricing, a basket rule system and configurable product data sets. Those are catalog and checkout concerns expressed as configuration rather than as separate services, which is the defining architectural bet of the Aimeos family.

What the Vite setup reveals about the frontend

`package.json` is small and tells you the frontend build story in one read. It is marked private and uses ES modules, and every dev dependency is a build time tool rather than a runtime library:

json
"scripts": {
"build": "vite build",
"dev": "vite"
}

Tailwind 4 through the dedicated Vite plugin plus `laravel-vite-plugin` puts the default presentation layer on utility classes rather than a component framework, even though the repository topics mention Vue. If you intend to reuse the skeleton, that is the first thing you will replace. Vite 8 and Tailwind 4 are both recent majors, so this skeleton tracks current tooling closely rather than pinning to something conservative. The full dev dependency list also pulls in axios and concurrently for running services alongside the dev server.

Because the scripts map directly onto the package manager, the day to day commands are the ordinary pair:

bash
npm run dev
npm run build

There is no bundler for a separate SPA in the tree, no `frontend/` package and no monorepo config. The `resources/` directory plus `vite.config.js` is the whole frontend.

Reading .env.example as a deployment checklist

The environment file is more useful than the README for understanding what the application assumes. It names MySQL on 127.0.0.1 with port 3306 as the database, the file cache and file session drivers, and a synchronous queue. `QUEUE_CONNECTION=sync` is the choice that matters most for a first run: jobs execute inside the request rather than on a worker, which is convenient locally and wrong the moment you need background processing.

Redis and Memcached hosts are pre-filled at their default ports, AWS credentials are blank with a `us-east-1` default region and an S3 path style endpoint flag, and mail is pre-pointed at Mailtrap on port 2525. Pusher keys are blank with a cluster value of `mt1`, and there is also a `MIX_` prefixed duplicate of the Pusher key, a leftover pattern from Laravel Mix that is worth noticing because Mix has been replaced by Vite in this skeleton.

What is absent is as informative as what is present. There are no payment gateway variables, no search engine credentials and no tax provider keys, even though the README advertises recurring payment subscriptions. Those integrations presumably live in the main Aimeos package and are configured through the Laravel config files in `config/` rather than through environment variables here.

Admin backend, translation coverage and the claims to weigh

The feature list is long, and a few items deserve a second look. Translated to more than thirty languages with full RTL support is backed by something visible: a row of Transifex project links covering English, German, French, Spanish, Dutch, Italian, Portuguese, Danish, Finnish, Swedish, Norwegian, Polish, Hungarian, Russian, Ukrainian, Croatian, Slovenian, Romanian, Czech, Serbian, Slovak, Estonian, Latvian, Turkish, Arabic, Persian, Chinese, Japanese, Indonesian, Vietnamese, Burmese and Korean. Whether that coverage extends to product data as well as interface strings is not something the README settles.

AI based text translation is listed too, which points toward bulk translating catalogue content rather than interface strings, and is the feature most worth asking hard questions about before enabling it on real data.

Performance is claimed as extremely fast down to 20ms, at a scale running from one item to a billion plus. Those are vendor numbers with no methodology in the repository, so treat them as marketing until you see the measurement yourself. The scalability claim is better supported indirectly: the topics include `cloud` and `microservice`, and the README names AWS, Google, Azure and Kubernetes as targets, which only makes sense if the application is expected to be split across services rather than run as one monolith.

Demos, maintenance state and the gaps in the documentation

Two hosted demos are linked, a frontend shop and an admin interface, and for a project of this size they are the correct starting point. A catalogue system with configurable product types, tier pricing and vendor support is not something you can evaluate from a feature list, and clicking through both demos answers the layout question in minutes that reading documentation will not.

The repository is not archived and the last push was on 2026-07-29. It publishes no releases at all, so there is no tag history here to date the work by and no changelog to read. Version pinning has to be resolved through the main Aimeos project, and the README's opening line points there for the Laravel distribution, which is where you would look for compatible version ranges.

Documentation is the weakest axis. There is a link to aimeos.org for the feature list, two demo links, and the README stops partway through an alternatives heading. No LICENSE file appears in the tree either, so licensing terms come from the wider Aimeos project rather than from this repository. None of that blocks an evaluation, but it does mean you are evaluating a skeleton plus a separate documentation site rather than a self contained project.

Editorial conclusion

aimeos-headless is best understood as a starting skeleton rather than a package you install into an application you already have. The tree contains `artisan`, `composer.json`, `routes/`, `config/`, `database/` and `phpunit.xml`, which is the shape of an application, and `.env.example` names MySQL, Redis, S3, Mailtrap and Pusher as the services the default setup expects. Two live demos are linked from the README, a frontend shop and an admin interface, and they are the fastest way to judge the catalogue model before reading any code. The last push was on 2026-07-29. No releases are published in this repository, so version pinning has to come from the Aimeos side, and the README itself stops at the beginning of its alternatives section rather than finishing the walkthrough.

Frequently asked questions

What is the best Laravel e-commerce project?

That has no single right answer, but aimeos-headless is a serious candidate when you want a full shop rather than a catalogue component. It ships the whole Laravel application rather than a package, with a jsonapi.org REST API for the storefront, a GraphQL API for administration, and support for multi vendor, multi warehouse and subscription products. The repository publishes no releases of its own, so version tracking lives with the main Aimeos project.

Which headless commerce platform is the best?

Platform choice usually turns on catalog complexity rather than on headless architecture, since headless mainly decides who renders the storefront. aimeos-headless is built for the complex end of that range: configurable product types, block and tier pricing, vouchers, virtual and event products, basket rules and a marketplace extension for very large vendor counts. If your catalog is a few hundred simple products with variants, most of this machinery is overhead.

Is aimeos-headless a package I install, or a whole application?

It is a complete Laravel application skeleton. The tree contains `artisan`, `composer.json`, `routes/`, `config/`, `database/`, `resources/` and `tests/`, plus a `.env.example` that already names MySQL, Redis, S3, Mailtrap and Pusher. If you want to add Aimeos to an application you already run, the main Aimeos distribution is the path, and the README points there.

Official sources

  1. aimeos/aimeos-headless on GitHub
  2. Issues
  3. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/aimeos-aimeos-headless.svg)](https://hysenlabs.com/projects/aimeos-aimeos-headless)