You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Last year, in this discussion, I was considering to rewrite the project using reactive technologies.
I ended up using AlpineJS with TailwindCSS and did not regret it. This has been a huge improvement in terms of DX and overall maintainability.
Now, Alpine is great, don't get me wrong, but I believe we could go further than that.
After talking with some friends about it, I ended up realising that this project could be much more featured - hence the newly-released "miniplayer" in v2.1, which was indeed a great addition and is now one of the biggest source of traffic.
It is being used by Twitch streamers, individuals for their locally-hosted projects, but more importantly on some websites. Despite putting a warning on the "generate miniplayer" page, I did notice lots of people are embedding the widget on public webpages, exposing their refresh token to the world.
A couple of years ago, I wrote in a hurry a proof-of-concept to embed Now Playing information on websites safely, which is now being used in my portfolio (https://portfolio.busybox.colabois.fr/). I did not give much attention to it since then, making it hard to host and single-user only. Also, the architecture is horrible - it requires both the custom Spotify websocket backend AND MyPlaying's backend.
My goal would be to bring all those individual projects into a single one, represented by this repository.
Ideally, this repo would handle both the already existing frontend, backend, AND websocket distribution logic for multi-user use. However, this would require a huge rewrite and would expand the scope of the project.
Sadly, I don't think I'm willing to continue in this direction using PHP. The DX isn't that great, and its distributed logic wouldn't be easily feasible with it anyway. I only continued maintaining the legacy PHP code for people to be able to basically download and host the repo without any other step (which is why it is also using Tailwind's Play CDN). TS / React, on the other hand, would require a build step.
I do realise that switching to other technologies - planning to use TypeScript with a React frontend - will hurt its simplicity to host, but I strongly believe that rewriting it will greatly help with maintainability, overall development velocity and would permit to bring more features faster.
Specifically, I plan to bring a similar personal NowPlaying widget for everyone to use with the backend as a source of truth (rather than the frontend currently exposing secrets), themes, custom config, next up info, playback control etc.. This would be much cleaner and easier with new technologies.
TL;DR - Current architecture, DX and possible future features are problematic with PHP, would like to rewrite in TS / React for more flexibility.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hi!
Last year, in this discussion, I was considering to rewrite the project using reactive technologies.
I ended up using AlpineJS with TailwindCSS and did not regret it. This has been a huge improvement in terms of DX and overall maintainability.
Now, Alpine is great, don't get me wrong, but I believe we could go further than that.
After talking with some friends about it, I ended up realising that this project could be much more featured - hence the newly-released "miniplayer" in v2.1, which was indeed a great addition and is now one of the biggest source of traffic.
It is being used by Twitch streamers, individuals for their locally-hosted projects, but more importantly on some websites. Despite putting a warning on the "generate miniplayer" page, I did notice lots of people are embedding the widget on public webpages, exposing their refresh token to the world.
A couple of years ago, I wrote in a hurry a proof-of-concept to embed Now Playing information on websites safely, which is now being used in my portfolio (https://portfolio.busybox.colabois.fr/). I did not give much attention to it since then, making it hard to host and single-user only. Also, the architecture is horrible - it requires both the custom Spotify websocket backend AND MyPlaying's backend.
My goal would be to bring all those individual projects into a single one, represented by this repository.
Ideally, this repo would handle both the already existing frontend, backend, AND websocket distribution logic for multi-user use. However, this would require a huge rewrite and would expand the scope of the project.
Sadly, I don't think I'm willing to continue in this direction using PHP. The DX isn't that great, and its distributed logic wouldn't be easily feasible with it anyway. I only continued maintaining the legacy PHP code for people to be able to basically download and host the repo without any other step (which is why it is also using Tailwind's Play CDN). TS / React, on the other hand, would require a build step.
I do realise that switching to other technologies - planning to use TypeScript with a React frontend - will hurt its simplicity to host, but I strongly believe that rewriting it will greatly help with maintainability, overall development velocity and would permit to bring more features faster.
Specifically, I plan to bring a similar personal NowPlaying widget for everyone to use with the backend as a source of truth (rather than the frontend currently exposing secrets), themes, custom config, next up info, playback control etc.. This would be much cleaner and easier with new technologies.
TL;DR - Current architecture, DX and possible future features are problematic with PHP, would like to rewrite in TS / React for more flexibility.
Beta Was this translation helpful? Give feedback.
All reactions