* chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates Bumps the npm_and_yarn group with 3 updates in the /web directory: [postcss-selector-parser](https://github.com/postcss/postcss-selector-parser), [sharp](https://github.com/lovell/sharp) and [source-map-js](https://github.com/7rulnik/source-map-js). Removes `postcss-selector-parser` Updates `sharp` from 0.35.4 to 0.35.5 - [Release notes](https://github.com/lovell/sharp/releases) - [Commits](https://github.com/lovell/sharp/compare/v0.35.4...v0.35.5) Updates `source-map-js` from 1.2.1 to 1.2.2 - [Release notes](https://github.com/7rulnik/source-map-js/releases) - [Changelog](https://github.com/7rulnik/source-map-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/7rulnik/source-map-js/compare/v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: postcss-selector-parser dependency-version: dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: sharp dependency-version: 0.35.5 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: source-map-js dependency-version: 1.2.2 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> * chore(deps): keep tailwindcss on v3 The group update pulled tailwindcss ^4.3.3, whose PostCSS plugin moved to @tailwindcss/postcss and whose Config type rejects darkMode: ["class"]. Pin back to ^3.4.3 so the Build Website and Netlify checks pass; the sharp 0.35.5 and source-map-js 1.2.2 bumps are kept. A Tailwind v4 migration needs its own PR. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jatin K Malik <jk.malik@yahoo.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Vocalinux website
Marketing site for vocalinux.com, built with Next.js and deployed as a static export (GitHub Pages).
Product claims and design constraints: PRODUCT.md, DESIGN.md. Agent notes: AGENTS.md.
Development
npm install
npm run dev
Production build
npm install
npm run build
Static output is written to out/.
Local preview of the build
cd out
python3 -m http.server 3000
Open http://localhost:3000.
Scripts
| Script | Purpose |
|---|---|
npm run dev |
Dev server |
npm run build |
Production static export |
npm run deploy |
Build and prepare GitHub Pages (.nojekyll, CNAME) |
npm run lint |
ESLint |
npm run typecheck |
TypeScript |
Deployment
Push to main triggers the site workflow. Production host: vocalinux.com.
Manual path:
cd web
npm install
npm run deploy
That produces out/ with .nojekyll and a CNAME for vocalinux.com.
Layout
web/
├── src/
│ ├── app/ # Next.js app routes
│ ├── components/
│ │ ├── site-chrome.tsx
│ │ └── ui/ # Reusable UI components
│ ├── hooks/
│ └── lib/
├── public/ # Static assets and screenshots
├── out/ # Build output (generated)
└── package.json
Configuration notes
- Custom domain:
deployscript writesout/CNAME - Subdirectory deploy: set
basePathinnext.config.jsif needed - Family workbench UI: warm paper, system type, same language as VocaHQ (DESIGN.md)
Troubleshooting
| Symptom | Check |
|---|---|
| Module not found | npm install |
| Type errors | npm run typecheck |
| Lint errors | npm run lint |
| 404 on GitHub Pages | Ensure out/.nojekyll exists |
| Assets 404 | Confirm basePath matches deploy path |
License
Same as the main Vocalinux project (AGPL-3.0).