음악 플레이어를 만들지 않는 방법
How Not to Build a Music Player
12일 전쟁을 겪으며 온라인 음악 플레이어가 여론을 잠재우기 위해 전국적으로 인터넷을 차단하는 억압적인 정권 하에 사는 사람들에게는 실용적인 선택지가 아니라는 것을 깨달았습니다.
핵심 요약
자동 요약- 112일 전쟁을 겪으며 온라인 음악 플레이어가 여론을 잠재우기 위해 전국적으로 인터넷을 차단하는 억압적인 정권 하에 사는 사람들에게는 실용적인 선택지가 아니라는 것…
- 2그래서 인터넷 연결이 복구되자마자 저는 곡을 보관하고 오프라인 대안을 찾기 시작했고, Strawberry를 발견했습니다.
- 3다양한 기능을 갖춘 음악 플레이어로 한동안 만족스럽게 사용했지만, 저는 가사를 보면서 따라 부르는 습관이 있어요!
원문 본문
출처 · Hacker NewsHow Not to Build a Music Player
November 13, 2026The Twelve-Day War made me realize online music players aren’t a viable option for those who live under an oppressive regime that disconnects the internet across the country as a way to silence public opinion.
So, as soon as the connection came back, I started archiving tracks and looking for offline alternatives and discovered Strawberry. It’s a feature-rich music player and kept me happy for quite a while, but I have this habit of looking at song lyrics and singing along! Strawberry fetches lyrics from the internet when it recognizes a song, but sometimes the lyrics weren’t line-synced and worse, it displayed the timestamps next to the lyrics which I found pretty annoying to look at. I wasn’t aware of other music players such as foobar2000 which my friend just pointed me to while writing this post.
I decided to write my own music player and call it AMP with a few goals in mind: minimal feature-set, no C++ dependencies, proper system integration to make it feel like a native app, and of course, write it in Zig (including the shaders!). I also wanted to roll my own UI because of the fun memories of working on V’s UI during my first days of being introduced into system programming. But before I could make any meaningful progress, a new wave of protests started. Following the tragedy of January 8 and 9, another internet blackout began, lasting more than four months.
During the blackout, there were these anonymous people on Telegram selling internet access through personal White SIMs, whitelisted servers, Starlink dishes, etc. A black market had formed for the freaking internet! You’d get charged $5 or more for just 1GB of traffic. The prices dropped slightly after a while, but it was still hella expensive. The regime surely made a lot of money out of it. I ended up spending hundreds of dollars on these services and other methods just to stay in touch with my friends and keep my hobbies alive. Killing time was becoming a problem. Especially for someone like me who built their entire social life online.
I carefully used this slow connection to download repositories, documention, etc. to continue working on my music player. It really brought me immense joy during this hard time.
Once the connection was mostly restored to the pre-blackout days (UDP traffic is still blocked, though, which naturally also affects QUIC), my attention was shifted towards LLMs. It had become very hard for me to ignore the hype and progress around frontier LLMs. As I really never thought about using them seriously for coding. They are still everywhere in the news, and I was just reminded that I owned a Claude Max 20x subscription gift from my boss back in 2025. Eating dust and maybe soon expiring. So I decided to give it a try and experiment on my music player. It was a very addictive experience. I literally couldn’t hit the plan limits no matter how hard I tried, so after a few non-stop days of prompting, a good chunk of AMP was vibecoded..
At the time, I thought this was an okay approach for a hobby project and I could just un-slopify it later. Little did I know I’m mentally incapable of reviewing tens of thousands lines of code. Shortly after, Anthropic figured that I live in Iran and instantly banned my account. Then Codeberg announced its no-AI policy, which gave me two choices. Either get rid of all that slop or move the repository elsewhere. Going with the former option, I started reading every single line of code, rewriting them. I was surprised by my own ignorance and how much LLMs like to complicate stuff. (I wish I could show an example, but my memory is extremely fragile and I’ve got no pre-rewrite history of the repo to check).
Four months later, nearly half the codebase is gone, and somehow it’s more robust with the same set of features (and more). I regret relying on LLMs in the first place, but hey, lesson learned. That said I think it’s still possible to create a healthy relationship with LLMs as long as you look at them as a fancy IDE feature. A lot of times they are just running long sed or regex commands that are a no-brainer act for humans when done by hand but still consumes a good time. For now and hopefully forever I think I’ll be going the old school way. Never rush your hobbies!
Btw this is how AMP looks like right now!
Worth mentioning that the blur shader is written in Zig based on this excellent blog post!.
Roadmap to v1.0:
- Music server
- Android and Windows support
- Packaging for major Linux distros
- Any suggestions?
이 글은 Hacker News 의 원문을 정제해 보여드립니다. 저작권은 원저작자에게 있습니다.
전체 내용이 궁금하다면
Hacker News 원문에서 이어 읽기



