Source: https://seerepo.com/r/koel/koel/built
Markdown source: https://seerepo.com/r/koel/koel/built.md
Description: koel is a PHP repo built with Vite, Vue, and Laravel. It stores its data in idb and signs people in with laravel/sanctum and laravel/socialite.

# What is koel built with?

koel is a PHP repo built with Vite, Vue, and Laravel. It stores its data in idb, signs people in with laravel/sanctum and laravel/socialite, stores files in AWS S3, watches its errors with Sentry, makes its content with dompurify, intervention/image, ezyang/htmlpurifier, enshrined/svg-sanitize, and marked, is tested with Testing Library, Faker, fake-indexeddb, and jest-serializer-vue, and uses flysystem-aws-s3-v3, flysystem-sftp-v3, predis, MySQL, Redis, and 1 more. It has 185,901 written lines, with 914 test files.

Read on November 7, 2026, at commit 35edb87.

Repository: https://github.com/koel/koel

## Frontend

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in package.json](https://github.com/koel/koel/blob/35edb87e9e396b5b5953935ce4e7710f61b7223e/package.json)
- **[Vue](https://seerepo.com/uses/vue)**: 349 files · [in package.json](https://github.com/koel/koel/blob/35edb87e9e396b5b5953935ce4e7710f61b7223e/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Interface

- **ui**
- **[@floating-ui/dom](https://seerepo.com/uses/floating-ui-dom)**: 5 files
- **nouislider**: 4 files
- **@vueuse/components**: 3 files
- **[three](https://seerepo.com/uses/three)**: 3 files
- **[Chart.js](https://seerepo.com/uses/chartjs)**: 1 file
- **[nprogress](https://seerepo.com/uses/nprogress)**: 1 file
- **[tiptap](https://seerepo.com/uses/tiptap)**: 1 file
- **vue-advanced-cropper**: 1 file
- **vue-chartjs**: 1 file

### Icons

- **[Font Awesome](https://seerepo.com/uses/font-awesome)**: 111 files
- **lucide-vue-next**: 30 files

## Backend

### The base

- **Laravel**: 869 files

### Data

- **flysystem-aws-s3-v3**
- **flysystem-sftp-v3**
- **predis**
- **[idb](https://seerepo.com/uses/idb)**: 2 files
- **[MySQL](https://seerepo.com/uses/mysql)**: 1 file · [.env.example, line 28](https://github.com/koel/koel/blob/35edb87e9e396b5b5953935ce4e7710f61b7223e/.env.example#L28)
- **[Redis](https://seerepo.com/uses/redis)**: 1 file · [composer.json, line 17](https://github.com/koel/koel/blob/35edb87e9e396b5b5953935ce4e7710f61b7223e/composer.json#L17)

### Sign-in

- **laravel/sanctum**: 6 files
- **laravel/socialite**: 6 files

### Services

- **Pusher**: 2 files · [resources/assets/js/services/broadcastSubscriber.ts, line 25](https://github.com/koel/koel/blob/35edb87e9e396b5b5953935ce4e7710f61b7223e/resources/assets/js/services/broadcastSubscriber.ts#L25)
- **[AWS S3](https://seerepo.com/uses/aws-s3)**: 1 file · [composer.json, line 32](https://github.com/koel/koel/blob/35edb87e9e396b5b5953935ce4e7710f61b7223e/composer.json#L32)
- **[Sentry](https://seerepo.com/uses/sentry)**: 1 file · [bootstrap/app.php, line 26](https://github.com/koel/koel/blob/35edb87e9e396b5b5953935ce4e7710f61b7223e/bootstrap/app.php#L26)

## Support

### Content

- **[dompurify](https://seerepo.com/uses/dompurify)**: 5 files
- **intervention/image**: 4 files
- **ezyang/htmlpurifier**: 2 files
- **enshrined/svg-sanitize**: 1 file
- **[marked](https://seerepo.com/uses/marked)**: 1 file

### Testing

- **Testing Library**: 265 files
- **Faker**: 23 files
- **fake-indexeddb**: 2 files
- **jest-serializer-vue**: 1 file

### Tools

- **tinker**
- **laravel/prompts**: 7 files
- **vite-plus**: 1 file

### Other

- **reverb**
- **Lodash**: 52 files
- **VueUse**: 28 files
- **ismobilejs**: 16 files
- **guzzlehttp/guzzle**: 3 files
- **@zip.js/zip.js**: 1 file
- **fuse.js**: 1 file
- **ky**: 1 file
- **laravel-echo**: 1 file

## Other repos with a similar stack

- [open-webui/open-webui](https://seerepo.com/r/open-webui/open-webui/built): Redis, Tailwind CSS, @floating-ui/dom, three, Chart.js, tiptap, dompurify, marked · [Compare](https://seerepo.com/compare/koel/koel/vs/open-webui/open-webui)
- [louislam/uptime-kuma](https://seerepo.com/r/louislam/uptime-kuma/built): Vite, Vue, MySQL, Chart.js, vue-chartjs, Font Awesome, dompurify, marked · [Compare](https://seerepo.com/compare/koel/koel/vs/louislam/uptime-kuma)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): Vite, Vue, Redis, Tailwind CSS, Chart.js, vue-chartjs, dompurify, marked · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/koel/koel)
- [Wei-Shaw/sub2api](https://seerepo.com/r/Wei-Shaw/sub2api/built): Vite, Vue, Redis, Tailwind CSS, Chart.js, vue-chartjs, dompurify, marked · [Compare](https://seerepo.com/compare/koel/koel/vs/Wei-Shaw/sub2api)
- [n8n-io/n8n](https://seerepo.com/r/n8n-io/n8n/built): Vite, Vue, MySQL, Redis, Sentry, Chart.js, tiptap · [Compare](https://seerepo.com/compare/koel/koel/vs/n8n-io/n8n)
- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty/built): Vite, Redis, AWS S3, Sentry, tiptap, dompurify, marked · [Compare](https://seerepo.com/compare/koel/koel/vs/twentyhq/twenty)

## Frequently asked questions

### What language is koel written in?

koel is written in PHP, with 185,901 written lines.

### What framework does koel use?

koel is built with Vite, Vue, and Laravel.

The proof: [in package.json](https://github.com/koel/koel/blob/35edb87e9e396b5b5953935ce4e7710f61b7223e/package.json)

### What database does koel use?

koel stores its data in idb.

### What does koel sign people in with?

koel signs people in with laravel/sanctum and laravel/socialite.

### What services does koel use?

koel stores files in AWS S3, watches its errors with Sentry, and uses flysystem-aws-s3-v3, flysystem-sftp-v3, predis, MySQL, Redis, and Pusher.

The proof: [composer.json, line 32](https://github.com/koel/koel/blob/35edb87e9e396b5b5953935ce4e7710f61b7223e/composer.json#L32)

### Does koel have tests?

Yes. koel has 914 test files and is tested with Testing Library, Faker, fake-indexeddb, and jest-serializer-vue.

### Which repos have a stack like koel's?

The ones that share most of its stack: open-webui/open-webui, louislam/uptime-kuma, and datawhalechina/hello-agents.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
