Files
doux-copy/website/README.md

56 lines
1.5 KiB
Markdown

# 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