Hey forum! I just started my new project in Nim. It's called StupidGreen, and will be a self-hosted music platform for independent artists/labels to share their music, sell merch and connect with fans. The code is not public (yet), but I wanted to share a preview of the README and ask for feedback on the concept and features.
I want StupidGreen to combine the best features of platforms like Bandcamp and Cargo.site, while being fully open-source and self-hosted, so that artists have complete control over their content, data, branding and monetization. Also, there will be a customizer component that will make it easy to customize the look and feel of the website.
StupidGreen will require a Postgres database to store all the music, merch and user data. The payment processing will be handled by LemonSqueeze or Stripe (I have an unstable OAPI 3.0 code generator somewhere in my private repos lol).
I'm thinking to use bbc/audiowaveform to generate the waveform peaks for each track (JSON format), and then feed the wavesurfer.js to render the waveform, but audiowaveform is written in C++ and doesn't have a C API. Ew.
Back to the beautiful world of Nim, the backend is powered by Supranim framework, which comes with zero-copy streaming support, making it perfect for serving audio files and handling file uploads. The frontend is written in Tim, with server-side rendering, and styled with Bootstrap 5. All the JS is plain old-school vanilla JS, with simple SPA-like navigation and interactivity (no FAANG bloated frameworks here!).
If you have any ideas or features you'd like to see, just let me know! If you know any other bandcamp-like platforms that have cool features, please share them with me.