A sound effects soundboard built with Svelte 5 and Vite.
š Live demo: chenpeleg.github.io/effects
| Layer | Technology |
|---|---|
| UI | Svelte 5 (compatibility mode) |
| Build tool | Vite 5 |
| Testing | Jest 29 + @testing-library/svelte |
| Hosting | GitHub Pages / Firebase Hosting |
npm install
npm run dev
The app will be available at http://localhost:5173.
| Script | Description |
|---|---|
npm run dev |
Start dev server (Firebase mode) |
npm run dev:github |
Start dev server (GitHub Pages mode) |
npm run build |
Production build |
npm run build:pages |
Production build for GitHub Pages deployment |
npm run build:site |
Production build for Firebase deployment |
npm run preview |
Preview the production build locally |
npm test |
Run the test suite with Jest |
npm run test:watch |
Run tests in watch mode |
src/
āāā assets/ # Static assets (audio files, images)
āāā config/ # App configuration (env-aware)
āāā data/ # Sound card definitions
āāā lib/ # Svelte components
ā āāā animation/ # Wave animation component
ā āāā components/ # UI components (cards, header, nav)
ā āāā models/ # Shared types and category definitions
ā āāā router/ # Client-side routing
ā āāā style/ # Global styles
āāā provider/ # Firebase provider
āāā services/ # App services (audio, language, ā¦)
āāā store/ # Svelte stores (cards, main state, settings)
āāā main.js # App entry point
npm run build:pages
The build output lands in build/ and is deployed automatically via GitHub Actions to https://chenpeleg.github.io/effects/.
npm run build:site
Deploy the build/ directory with the Firebase CLI. Firebase mode enables the optional user-login and category-saving features.