feat(ci): deploy website, storybook, and playground to GitHub Pages - #125
Merged
Merged
Conversation
Reapplies work lost during the merge to main: PM2 ecosystem config, server:* scripts, systemd service installer, lefthook restart hook, ADR 0030, and Tailscale/LAN CSP + allowedHosts fixes for the playground. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both websites/alistigo and websites/storybook are missing their source files (package.json, astro.config.ts, .storybook/main.ts) — they were never committed to git. The processes crash immediately with ERR_PNPM_RECURSIVE_EXEC_NO_PACKAGE. Remove them from the ecosystem config to stop the restart loop; add them back once the websites/ work is committed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Recreates the alistigo documentation website from built dist artifacts. Content recovered: home hero, platform overview, architecture constraints, layer diagram, ADR index, and playground page. Adds ADR 0029 documenting the Astro Starlight decision. Adds website process back to PM2 ecosystem config and registers websites/* in pnpm workspace. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Astro/MDX files are not analyzable by fallow. Add websites/ dirs to ignorePatterns and astro/starlight/sharp to ignoreDependencies. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Mirrors the vite.config.ts allowedHosts pattern so the Astro dev server accepts Tailscale/LAN requests via os.hostname() and .local. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e global instance at websites/storybook - Create websites/storybook with dynamic story discovery using globSync across all apps/* and packages/* — title prefix auto-derived from package name - Remove .storybook/ dirs and storybook devDeps from 6 packages/apps - Remove storybook/build-storybook Nx targets from all 6 project.json files - Fix story titles in artifact-list-checkbox-plugin and artifact-user-plugin to drop the package-name prefix (now injected via global titlePrefix) - Add storybook process to PM2 ecosystem config (port 6006, allowedHosts via viteFinal) - Add storybook/glob to .fallowrc.json ignoreDependencies Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…stories to dynamicallyLoaded
Keep @storybook/react-vite in packages' devDeps for type declarations
while the storybook CLI remains consolidated in websites/storybook.
Add *.stories.{ts,tsx} to fallow dynamicallyLoaded so story files are
treated as valid entry points. Add react/react-dom to ignoreDependencies
since websites/storybook needs them as peer deps but .storybook/ is excluded
from fallow analysis.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace per-package CSS imports with a conditional global decorator in preview.tsx that wraps playground stories in a #host-root div with height: 100vh, restoring the host.css height cascade without bleeding overflow:hidden into other packages' stories. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
os.hostname() is fragile — it can return an FQDN that doesn't match the hostname the browser connects to. Switching to true allows any host, which is appropriate for a private dev server. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…sform Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…d packages globals.css only scanned list-components-react files via its @source directive, so playground utility classes were never emitted. A dedicated preview.css extends the scope to apps/** and packages/**. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add holos:build:deploy Nx target using nx:noop + dependsOn to build all three deployed apps in parallel with caching - Add STORYBOOK_BASE_PATH env var support to storybook viteFinal so assets resolve correctly when served at /storybook/ subpath - Extract site assembly into scripts/assemble-site.sh (Astro at root, storybook at /storybook/, playground at /playground/en|fr/ with redirect) - Replace deploy-playground.yml with full three-app deployment workflow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@storybook/react-vite uses the automatic JSX transform — explicit import is not needed and fails biome noUnusedImports. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
Fallow audit reportFound 3 findings. Details
Generated by fallow. |
| "@types/react": "^19.2.14", | ||
| "@types/react-dom": "^19.2.3", | ||
| "@vitejs/plugin-react": "^4.3.4", | ||
| "glob": "^11.0.0", |
Contributor
There was a problem hiding this comment.
warn fallow/unused-dev-dependency: Package 'glob' is in devDependencies but never imported
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/, Storybook at/storybook/, playground at/playground/en|fr/holos:build:deployNx target (nx:noop+dependsOn) so all three builds run in parallel with caching vianx run holos:build:deploySTORYBOOK_BASE_PATHenv var support toviteFinalinwebsites/storybook/.storybook/main.ts— CI sets it to/storybook/so Vite prefixes assets correctly; local dev is unaffectedscripts/assemble-site.sh(Astro at root, storybook at/storybook/, playground at/playground/en/and/playground/fr/with a language-redirect index)Test plan
www.alistigo.com/serves the Astro/Starlight docs sitewww.alistigo.com/storybook/loads Storybook with no 404 asset errorswww.alistigo.com/playground/redirects to/playground/en/or/playground/fr/based on browser language🤖 Generated with Claude Code