strudel
strudel copied to clipboard
dependency degrowth
updating the project is a lot of work.. i wonder if we can get rid of some dependencies. here's a list of all dependencies, grouped by package:
codemirror
- @nanostores/persistent
- @codemirror/autocomplete
- @codemirror/commands
- @codemirror/lang-javascript
- @codemirror/language
- @codemirror/search
- @codemirror/state
- @codemirror/view
- @lezer/highlight
- @replit/codemirror-emacs
- @replit/codemirror-vim
- @replit/codemirror-vscode-keymap
- @uiw/codemirror-themes 🧐
- @uiw/codemirror-themes-all 🧐
- nanostores
desktopbridge
- @tauri-apps/api 🧐
core
- fraction.js
csound
- @csound/browser
hs2js
- web-tree-sitter
hydra
- hydra-synth
midi
- webmidi
mqtt
- paho-mqtt
osc
- osc-js
sampler
- cowsay -> this is the most important dependency of all
soundfonts
- sfumato
- soundfont2
tidal
- hs2js
superdough
- nanostores
tonal
- @tonaljs/tonal
- chord-voicings
- webmidi
transpiler
- acorn
- escodegen
- estree-walker
webaudio
- superdough
website
- @algolia/client-search
- @astro-community/astro-embed-youtube
- @astrojs/mdx
- @astrojs/react
- @astrojs/rss
- @astrojs/tailwind
- @docsearch/css
- @docsearch/react
- @headlessui/react
- @heroicons/react 🧐
- @nanostores/persistent
- @nanostores/react
- @supabase/supabase-js
- @tailwindcss/forms
- @tailwindcss/postcss
- @tailwindcss/typography
- @tauri-apps/api 🧐
- @tauri-apps/plugin-clipboard-manager 🧐
- @types/node
- @types/react
- @types/react-dom
- astro
- claviature
- date-fns 🧐
- hs2js
- nanoid
- nanostores
- react 🧐
- react-dom 🧐
- react-hook-inview 🧐
- react-lite-youtube-embed 🧐
- rehype-autolink-headings
- rehype-slug
- rehype-urls
- remark-toc
- tailwindcss
- worker-timers 🧐
- @vite-pwa/astro 🧐
- html-escaper 🧐
- sharp 🧐
- workbox-window 🧐
project root devDependencies
- @eslint/compat 🧐
- @eslint/eslintrc 🧐
- @eslint/js 🧐
- @tauri-apps/cli 🧐
- @vitest/ui
- acorn
- dependency-tree 🧐
- eslint 🧐
- eslint-plugin-import 🧐
- events
- globals
- jsdoc
- jsdoc-json
- lerna
- prettier
- vitest
I've very roughly added 🧐 to each dependencies that i am a bit sceptical of. More broad, here's some ways we could simplify:
- refactor the repl to use vanilla js instead of react ?
- refactor codemirror themes to not use uiw wrapper ?
- remove tauri app ?
- remove pwa ?
- ... ???
of course, these decisions need to be discussed, but i think some of them might lead to a more resilient project
let code die?