Major Update: You2box v3
Back in 2015, I wrote the inital version of You2box. It took me two nights. At the time, I was using Python and Google AppEngine to quickly prototype and deploy web applications. I didn't expect anyone to use the app other than the one customer I built it for. But I put it online anyway and kind of forgot about it.
Software evolves with its developers.
About a year later, I looked at the statistics and saw that people were actually using it. Well - at least they were trying to. The software had a fatal bug that prevented videos bigger than ~50MB from uploading. Together with my partner, we decided to rewrite the whole thing and release it as a SaaS. Back then, we were using Laravel PHP for our projects. We were big fans of the framework and its ecosystem. So we built the new version using Spark, a boilerplate for SaaS applications based on Laravel. It took us around two weeks to get the new version online. The major bug was gone and there were lots of other improvements. We put a price tag on it and started to promote it.
When my partner and I parted ways a few year later, I turned away from PHP and began building stuff in Go. This is not the place for a PHP vs Go discussion, but I can say that I found Go to be a better fit for me. Using an MVC framework like Laravel was great for quickly building a web application, but it biased me towards a certain way of thinking about software architecture. The resulting architecture was not always the best fit for the problem at hand.
Since then I've been writing every single backend service in Go. Maintaining a PHP application became annoying to me. Especially with a framework like Laravel, you get a ton of third-party packages that need regular updates. The framework itself also regularly received major version updates, which took a significant amount of time to incorporate. The time you spend on maintaining the app is time you can't spend on improving it. Also, running PHP on a computer that's connected to the internet just doesn't help me sleep well at night.
If I wanted to keep maintaining You2box, I had to rewrite it once more. That's what I began in early 2024. I also had to redo the entire frontend, beause the old backend and frontend were tightly coupled. It took me about a year to rewrite the whole thing on the side while working on other projects.
Every rewrite took longer than the previous one. So was it even worth it? Yes it was. Every rewrite also brought major improvements, not only in terms of code quality and maintainability, but also in terms of features and user experience. Most of all, we now have a solid foundation for future improvements. Since the launch of the new version, I have already added a major feature: Support for full access to Dropbox. And even more importantly, the joy of working on the project has returned to me.
I am hoping that this was the last full rewrite, but I fear it's not. Software must evolve with its developers. Let's see if I will ever evolve into disliking Go. If that happens, I will have to start over again. But for now, I am very happy with the result. I hope you are too.
If you have any questions, feedback or feature requests, please let me know! I would really love to get in touch with you, to better understand the many different ways people use You2box.
Joseph
PS: This post was more about the evolution of You2box from a software development perspective. A notable new feature in v3 is manual uploads.