Stacks & versions
Choose applications and versions for your project. Dwell provides curated managed profiles and a generic environment for Custom roles.
Managed or Custom?
A project can have a backend, a frontend or both. none disables a role; at least one must remain active. Custom is an active role without a managed framework.
- Managed: Dwell scaffolds the application when needed, installs dependencies and provides the documented local integration. You select from its shipped catalog.
- Custom: You install and maintain the application, dependencies, framework versions and application configuration. Dwell supplies its generic local runtime, routing and available development services.
Choose backend and frontend
Use the interactive selection in dwell init or pass type flags. All current managed backends are PHP-based.
Managed backends
- Symfony (symfony)
- Laravel (laravel)
- WordPress (wordpress)
- TYPO3 (typo3)
- Shopware 6 (shopware6)
Managed frontends
- React + Vite (react)
- Vue + Vite (vite-vue)
Choose PHP to match the backend version line. Dwell validates the combination during initialization, stack changes and configuration loading. PHP 8.4 is the default for new projects. Older PHP lines may appear as legacy/EOL compatibility options; they are not recommendations for new projects.
React and Vue run with Vite on your machine. Their Node requirements can exceed the CLI minimum; build and up check the selected frontend requirement.
Understand versions
Inspect the catalog of your installed Dwell version before selecting a profile. New upstream releases are not automatically added to the offered profiles.
dwell versions list- Version line
- The profile line, such as Symfony 7.4 or React 19.3. Select it with --backend-version or --frontend-version.
- Default / Standard
- The preselected profile for a type. It is independent of the lifecycle label.
- Lifecycle
- recommended is a preferred profile, supported a curated alternative and legacy an older compatibility option. The separate upstream status is not a promise for your entire application.
- Verification
- metadata-reviewed, scaffold-tested and runtime-tested describe the available evidence. They do not guarantee every combination of operating system, architecture and application.
- Pin
- The specific curated scaffold, framework or generator version. A generator pin is not the framework version. Resolved dependencies remain recorded in the project lockfiles.
Create a project with explicit versions
This new project uses the currently offered Symfony 7.4 and React 19.3 lines with compatible PHP 8.4. Run the commands in the parent directory of the new project folder.
dwell init my-project \
--backend symfony \
--backend-version 7.4 \
--frontend react \
--frontend-version 19.3 \
--php 8.4
cd my-project
dwell build
dwell upKeep composer.lock and package-lock.json in the project. A version line alone does not guarantee identical fresh installations over time.
Use Custom roles
Custom PHP uses a supported PHP runtime and a webroot relative to the backend directory. Custom Frontend runs your own development command.
dwell init custom-php --backend custom --backend-webroot public --php 8.4dwell init custom-frontend --frontend custom --frontend-dev-command '{"command":"npm","args":["run","dev"]}'These examples create separate new projects. Then add your application code and install its dependencies yourself. A Custom frontend start command must honor HOST=127.0.0.1 and the allocated PORT. Custom is not a guaranteed framework integration.
Notes & limits
Dwell does not silently upgrade existing applications. stack set requires a stopped project and can change a role type or framework version only when the existing role directory is empty. It does not perform framework migrations. A PHP-only change is possible when compatible with the backend profile.
Next steps
Start your project with the projects guide or learn which settings to change with configuration commands. The product page explains the scope of the managed catalog.