PHPackages                             instride/opendxp-skeleton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. instride/opendxp-skeleton

ActiveProject[Utility &amp; Helpers](/categories/utility)

instride/opendxp-skeleton
=========================

The OpenDXP skeleton for projects at instride.

v1.0.0(1mo ago)012proprietaryPHP &gt;=8.4

Since May 28Compare

[ Source](https://github.com/instride-ch/opendxp-skeleton)[ Packagist](https://packagist.org/packages/instride/opendxp-skeleton)[ Docs](https://instride.ch)[ RSS](/packages/instride-opendxp-skeleton/feed)WikiDiscussions Synced 3w ago

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

OpenDXP Skeleton
================

[](#opendxp-skeleton)

A project template for building digital experience platforms on top of [OpenDXP](https://opendxp.io) — a Pimcore-derived CMS. Built and maintained by [instride AG](https://instride.ch).

Stack
-----

[](#stack)

LayerTechnologyCMSOpenDXP ^1.3 (Pimcore-based)BackendPHP 8.4 · Symfony 7.4 · Doctrine ORM · MariaDB 11.8CacheRedis · Full-page cache (prod)FrontendTypeScript 6 · Vite 8 · Tailwind CSS 4Dev envDDEV (Docker) · nginx-fpm · Node 24 · pnpm 11Prerequisites
-------------

[](#prerequisites)

- [DDEV](https://ddev.readthedocs.io/) ≥ 1.25
- [Docker](https://docs.docker.com/get-docker/)
- [Composer](https://getcomposer.org/) 2 (use `ddev composer`)
- [pnpm](https://pnpm.io/) 11 (use `ddev pnpm`)

Installation
------------

[](#installation)

### 1. Clone the repository

[](#1-clone-the-repository)

```
git clone https://github.com/instride-ch/opendxp-skeleton.git my-project
cd my-project
```

### 2. Start DDEV

[](#2-start-ddev)

```
ddev start
```

This spins up the web container (PHP 8.4, nginx-fpm), MariaDB 11.8, Redis, and OpenSearch. On first start it also creates a `testing` database and grants permissions automatically.

### 3. Install PHP dependencies

[](#3-install-php-dependencies)

```
ddev composer install
```

### 4. Install OpenDXP

[](#4-install-opendxp)

```
ddev php bin/console opendxp:install --mysql-host-socket=db
```

Follow the interactive prompts to set up the admin user and initial site configuration.

### 5. Install Node dependencies

[](#5-install-node-dependencies)

```
ddev pnpm install
```

### 6. Start the frontend dev server

[](#6-start-the-frontend-dev-server)

```
ddev pnpm dev
```

The site is now available at **** and the Vite dev server runs at port 5173 with hot reload.

Environment Configuration
-------------------------

[](#environment-configuration)

DDEV injects runtime values (database URL, Redis URL, etc.) automatically via `.env.local` on `ddev start`. The `.env` file holds application defaults — do not put secrets there.

Key environment variables:

VariableDefaultPurpose`APP_ENV``dev`Symfony environment (`dev` / `prod`)`APP_DEBUG``true`Enable Symfony debug mode`OPENDXP_DEV_MODE``false`OpenDXP developer toolbar`REDIS_URL``redis://localhost`Cache and session store`MAILER_DSN_MAIN``smtp://localhost:1025`Primary mail transport (Mailpit in dev)For local overrides create `.env.local` (git-ignored):

Development
-----------

[](#development)

### Useful commands

[](#useful-commands)

**Frontend**

```
ddev pnpm dev        # Vite dev server with hot reload (port 5173)
ddev pnpm build      # TypeScript check + production build → public/build/
ddev pnpm preview    # Preview production build locally
ddev pnpm lint       # Lint with oxlint
ddev pnpm lint:fix   # Auto-fix lint issues
ddev pnpm fmt        # Format with oxfmt
ddev pnpm fmt:check  # Check formatting without writing
```

**Backend**

```
ddev php bin/console cache:clear
ddev php bin/console debug:router
ddev php bin/console doctrine:migrations:migrate
ddev php bin/console debug:container
```

**DDEV**

```
ddev start           # Start all containers
ddev stop            # Stop containers
ddev ssh             # SSH into the web container
ddev logs            # Tail container logs
ddev adminer         # Open Adminer (database UI)
ddev redis-cli       # Open Redis CLI
```

### Xdebug

[](#xdebug)

Xdebug is installed but disabled by default to avoid the performance hit.

```
ddev xdebug          # Enable Xdebug
ddev xdebug off      # Disable Xdebug
```

### Code quality

[](#code-quality)

Linting and formatting run automatically as a pre-commit hook (`.vite-hooks/pre-commit` → `vite staged`). The toolchain uses **oxlint** for JavaScript/TypeScript linting and **oxfmt** for formatting. Configuration files: `.oxlintrc.json` and `.oxfmtrc.json`.

Production Build
----------------

[](#production-build)

```
# Build frontend assets
ddev pnpm build

# Clear caches
ddev php bin/console cache:clear --env=prod

# Run migrations
ddev php bin/console doctrine:migrations:migrate --no-interaction --env=prod
```

Full-page caching is enabled automatically in the `prod` environment (see `config/packages/full_page_cache.yaml`). Redis is used for application-level caching in all environments.

Project Structure
-----------------

[](#project-structure)

```
├── assets/                 # Frontend source (TypeScript, CSS, images)
│   ├── main.ts             # Vite entry point
│   └── styles.css          # Global styles with design tokens
├── bin/console             # Symfony CLI entry point
├── config/
│   ├── packages/           # Symfony bundle configuration
│   ├── opendxp/            # OpenDXP-specific config (constants, credentials)
│   ├── routes/             # Route definitions
│   └── services.yaml       # Service container configuration
├── public/
│   ├── index.php           # Web entry point
│   └── build/              # Compiled frontend assets (git-ignored)
├── src/
│   ├── Controller/         # Symfony controllers (attribute routing)
│   ├── Command/            # Symfony console commands
│   ├── EventSubscriber/    # Event subscribers
│   └── Kernel.php          # Extends OpenDxpKernel
├── templates/
│   ├── base.html.twig      # Root layout with Vite asset tags
│   ├── base/               # Shared partials (header, footer, favicons)
│   └── default/            # Page-level templates
├── translations/           # Translation files (YAML)
├── var/
│   ├── assets/             # OpenDXP managed assets (upload target)
│   └── classes/DataObject/ # Auto-generated OpenDXP data object classes
├── .ddev/                  # DDEV configuration
├── vite.config.ts          # Vite configuration (Symfony plugin)
└── tsconfig.json           # TypeScript configuration

```

Additional Services
-------------------

[](#additional-services)

The DDEV setup includes optional Docker Compose overrides in `.ddev/`:

FileServicePurpose`docker-compose.redis.yaml`RedisCache and sessions`docker-compose.opensearch.yaml`OpenSearchFull-text search`docker-compose.adminer.yaml`AdminerWeb-based database management UILicense
-------

[](#license)

Proprietary — © instride AG. All rights reserved.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance89

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

57d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5781689?v=4)[Matt O'Donnell](/maintainers/instride)[@InStride](https://github.com/InStride)

### Embed Badge

![Health badge](/badges/instride-opendxp-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/instride-opendxp-skeleton/health.svg)](https://phpackages.com/packages/instride-opendxp-skeleton)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[kimai/kimai

Kimai - Time Tracking

4.8k9.0k1](/packages/kimai-kimai)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M600](/packages/shopware-core)[oro/platform

Business Application Platform (BAP)

645143.5k116](/packages/oro-platform)[oat-sa/tao-core

TAO core extension

65143.7k124](/packages/oat-sa-tao-core)[pimcore/skeleton

127200.6k](/packages/pimcore-skeleton)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
