Files
voculinux/web
xavierk 80a3792576
CI / security (pull_request) Failing after 1m25s
CI / lint (pull_request) Failing after 34s
CI / ai-review (pull_request) Successful in 25s
chore: import vocalinux project
Import the vocalinux source tree (tray app, Next.js site in web/,
packaging, installers, docs and tests) on top of the Gitea template
commit. The project README replaces the template README, and the
template CI files (.gitea/workflows/ci.yml, .jscpd.json, CI.md) are kept.
2026-11-06 11:51:44 +05:30
..
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30
2026-11-06 11:51:44 +05:30

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: deploy script writes out/CNAME
  • Subdirectory deploy: set basePath in next.config.js if 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).