From f01612755940c7963ac80946588d6043243faf78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Forment?= Date: Sun, 18 Jan 2026 15:49:45 +0100 Subject: [PATCH] Feat: add small README for website --- website/README.md | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 website/README.md diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000..e8e4889 --- /dev/null +++ b/website/README.md @@ -0,0 +1,55 @@ +# Doux Website + +Documentation and playground for the Doux synthesizer. + +## Credits + +Doux is a Rust port of [Dough](https://codeberg.org/uzu/dough), originally written in C by [Felix Roos](https://codeberg.org/froos). Dough is part of the [TidalCycles](https://tidalcycles.org) ecosystem. Consider [supporting the project](https://opencollective.com/tidalcycles). + +## Architecture + +- **SvelteKit** with static adapter for GitHub Pages deployment +- **mdsvex** for markdown-based documentation in `src/content/` +- **WASM module** (`static/doux.wasm`) — the synthesizer engine +- **COI service worker** for Cross-Origin Isolation — browsers require `Cross-Origin-Opener-Policy` and `Cross-Origin-Embedder-Policy` headers to enable `SharedArrayBuffer`, which is needed for audio worklets. Since GitHub Pages doesn't allow custom headers, the service worker injects them client-side. + +### Directory Structure + +``` +src/ +├── content/ # Markdown documentation files +├── lib/ # Shared components and utilities +├── routes/ +│ ├── native/ # Native build downloads +│ ├── reference/ # API reference pages +│ └── support/ # Support pages +└── app.html # HTML shell +``` + +## Development + +```bash +pnpm install +pnpm dev +``` + +## Build + +```bash +pnpm build +``` + +Output goes to `build/`. + +## Deployment + +Automatic via GitHub Actions on push to `main`. The workflow: + +1. Builds the static site with `pnpm build` +2. Deploys to GitHub Pages + +See `.github/workflows/deploy.yml` for details. + +## License + +AGPL-3.0