|
||
---|---|---|
.config | ||
.forgejo/workflows | ||
.vscode | ||
apisix | ||
docs | ||
editor | ||
gallery | ||
job | ||
mediarose-cli | ||
modules | ||
orchestrator | ||
panel | ||
scraper | ||
scripts | ||
speech-extractor | ||
.dockerignore | ||
.gitignore | ||
.gitmodules | ||
api_insomnia.json | ||
Cargo.lock | ||
Cargo.toml | ||
docker-compose.yml | ||
flake.lock | ||
flake.nix | ||
rabbit_pink_2024-10-26.json | ||
readme.md | ||
realm-export.json |
MediaRose Internals
Hello there, dear friend. You might wonder what this repository is about, let me explain: But first a bit of backstory: Mediarose was a sparking idea of mine back from 2024 june when I had my matura done. At the time I was really overwhelmed about finals and I was scared I might fail, therefore I have decided to spend all my time that I could've spent on studying building this project. I was about to start a company out of this little project but sooner or later it has outgrown my capabilities to maintain it and I also had multiple burnouts whilst writing it due to mental health reasons. I have learned a TON while developing this, and I am proud of every piece of nested shitty unsafe rustcode I have produced during those 6 months.
Mediarose was supposed to be an online platform that would basically generate brainrot content for social media platforms like Tiktok, isntagram reels and all the other spyware shit out here. I've been doomscrolling at the time and have found that these catchy subtitled fast clips of streamers and other stuff bring in a lot of profit for those who create it. I was like i can do this,. this isn't that big of a deal and after that sentence i spent about two weeks developing a prototype for mediarose. It was working and all the fancy stuff, but it was just all hacky and shitty code. But it did work. At first it was meant to be a private backend I could run to post on hundreds of tiktok accounts but later I found out it's really hard to get partner memberships for platforms like tiktok and such. So there I have decided that I'd make mediarose a real product and allow any user to create jobs that would automatically pull their videos, add subtitles, tracking for games and all those fancy cachty brainrot features. Since If i'd be posting all the content other people produced that would have been basically stealing, and I felt that it wasn't that ethical (even tho there are millions of accounts that do the same and still make mone). Over time I got many stuff working and I had a really basic app in terms of tfeatures. It could pull hundreds of clips from a twitch channel, add blurring and add subtitles, but It was all really limited and shitty. So I decided to go and implement any feature I see, or think of: which in constrast resulted in feature creep. Feature creep is what really killed my app, as I was planning on implementing so many features that were out of scope. I alone was not enough to code all this stuff, since I'm not a 10x developer. I was looking for maintainers all along but since the whole stack is built on the shitty language called rust, i soon realized that none of my peers, friends and randoms I met thru the internet know it. Oh wel... When I was tryna implement subtitle editing on the frontend I had a severe anxiety shock IRL due to external sources such as work and school, and I even had to stop the project many times to get rested. Then I felt that after all these month I haven't accomplished a real working application and some of the beta testers I've aquired were pressuring me to make it work in time. So it all failed miserably and Now it's 2025 february and I'm writing this little message about how I've decided to stop this project. There were many other problems I've encountered but I won't discuss in more detail:
- No mone for servers
- No mental support from any of my peers, neither acknowledments
- Pressure from work, which ate up all my time
- Rust has proven to be a bad language for this use case, which made me want to learn elixir but I failed at that too.
- I have acquired really bad habbits while developing this (mostly coding 10-14 hours a day and smoking and drinking unheatly amounts of caffaine whilst doing it)
After all these months of this repo being basically dead I have decided to not keep it a secret anymore and publish my REAL SHITTY CODE. Maybe some person will find it and have a good laugh about it. Or hell maybe even learn a bit from it. I'm really proud of it, even tho it doesnt really work in it's current state. But I have managed to pick up unholy amounts of knowledge during it's development. Such as: - gRPC - How to make containers in nix - I learned rust to next level - codegen - Workspaces - Ci with forgejo (basically github ci) - I learned a lot about forgejo and github too - I tried out copilot for a bit (1 month) and how to use it and how it works (it's really bad and i hate it) - Consul - S3 object store - Whisper.cpp - Ass subtitles (I even wrote my shitty library for it) - Ffmpeg - AMQP, and rabbitmq - rpc and rpc via amqp (just use grpc bro) - I even wrote a shitty background worker for it - and many more. (just check out the code)
Fare well, mediarose. You've been a good project and I'll never forget you. Unless I write mediarose v2 xd
Technologies used
- gRPC
- HTTP
- Consul
- NextJS
- Keycloak
- APISIX
- Docker
- Nix
- Jeager & Opentelemetry
Active feedback
Extensive logging and user data collection will be used to monitor mediarose as a whole.
Posthog
For the nextjs frontend posthog will be used to record sessions and analyze an wrong behiavours, or buggy code.
Sentry
Both server and clientside will record any errors that can cause catastrophic failure.
Nix flake only
Developer shell
nix shell
Cli for debugging microservices (amqp)
nix run .#mediarose-cli -- -help