## Summary - add the first multi-app workspace foundation with a new standalone Astro website under `apps/website` - introduce repo-root pnpm workspace orchestration and migrate the platform Node workflow from npm assumptions to pnpm - update root docs, editor or agent guidance, and workspace-focused smoke tests for the new platform plus website command model - add Spec 183 artifacts for spec, plan, research, contracts, quickstart, checklist, and tasks ## Verification - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/WorkspaceFoundation` - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` - `corepack pnpm build:website` - integrated-browser smoke: verified `http://localhost/up`, `http://localhost/admin/login`, and `http://localhost:4321/` including website anchor navigation and combined root dev flow ## Notes - branch: `183-website-workspace-foundation` - commit: `6d41618d` - root command model now covers `dev:platform`, `dev:website`, `dev`, `build:platform`, and `build:website` - website port override documentation is included in the command contract, quickstart, and README Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #214
72 lines
3.2 KiB
Markdown
72 lines
3.2 KiB
Markdown
# Quickstart: Website / Workspace Foundation
|
|
|
|
## Goal
|
|
|
|
Implement and validate the first multi-app workspace slice with one stable platform app and one new public website app.
|
|
|
|
## Prerequisites
|
|
|
|
- Node.js with Corepack available on the host
|
|
- PHP and Composer prerequisites for `apps/platform`
|
|
- Docker / Docker Compose for the Sail-backed platform runtime
|
|
|
|
## 1. Bootstrap The Workspace
|
|
|
|
1. Enable Corepack on the host if needed.
|
|
2. Install root workspace dependencies with pnpm.
|
|
3. Install or confirm platform PHP dependencies in `apps/platform`.
|
|
|
|
## 2. Start The Platform App
|
|
|
|
1. Use the official root platform command, or the documented app-local equivalent.
|
|
2. Confirm the platform health endpoint responds.
|
|
3. Confirm the platform admin login route remains reachable.
|
|
|
|
## 3. Start The Website App
|
|
|
|
1. Use the official root website command, or the documented app-local equivalent.
|
|
2. Confirm the website responds on its own dev port.
|
|
3. Confirm the website does not require the platform app to serve its public pages.
|
|
|
|
## Port Override Path
|
|
|
|
1. If the platform port is already occupied, rerun the platform flow with `APP_PORT=<port>` and, if needed, `VITE_PORT=<port>`.
|
|
2. If the website port is already occupied, rerun the website flow with `WEBSITE_PORT=<port>` from the root command path, or use the app-local Astro command with `--port <port>`.
|
|
3. If both apps run together, confirm the overridden ports still keep platform and website separated and documented.
|
|
|
|
## 4. Validate Parallel Local Development
|
|
|
|
1. Start the platform and the website together using the official root orchestration path.
|
|
2. Confirm there is no obvious port conflict between the platform and the website.
|
|
3. If a default port is occupied, confirm the documented override path works for the affected app.
|
|
4. Confirm editing one app does not require restarting the other app.
|
|
|
|
## 5. Validate Build Separation
|
|
|
|
1. Run the website build through the official root command.
|
|
2. Run the platform frontend build through the official root command.
|
|
3. Confirm each build writes only to its own app-owned output paths.
|
|
|
|
## 6. Validate Tooling And Docs
|
|
|
|
1. Read the updated root README and confirm the multi-app entry path is clear.
|
|
2. Verify at least one affected VS Code task or root automation path still behaves correctly.
|
|
3. Confirm MCP guidance remains platform-only and does not imply the website is a Laravel app.
|
|
4. Confirm the documented port-override path is described consistently between the README and the command contract.
|
|
|
|
## 7. Validate Platform Stability
|
|
|
|
1. Run the minimum representative Sail-based platform regression tests needed to prove workspace changes did not destabilize the app.
|
|
2. Confirm Filament v5 on Livewire v4 remains untouched.
|
|
3. Confirm panel provider registration still lives in `apps/platform/bootstrap/providers.php`.
|
|
4. Confirm no globally searchable resource behavior was changed by this slice.
|
|
|
|
## Exit Criteria
|
|
|
|
- Root workspace manifests exist and are documented.
|
|
- `apps/website` exists as a real standalone app.
|
|
- Platform boot remains stable.
|
|
- Website boot remains independent.
|
|
- Root commands for platform, website, and parallel local development are clear and usable.
|
|
- Website and platform builds remain isolated.
|
|
- No shared package layer or extra product surface was introduced. |