strudel icon indicating copy to clipboard operation
strudel copied to clipboard

dependency degrowth

Open felixroos opened this issue 11 months ago • 1 comments

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

felixroos avatar Jan 26 '25 20:01 felixroos

let code die?

TodePond avatar Jan 26 '25 20:01 TodePond