I have released a video editing program as open source.
Translated by GPT
I have released a video editing program as open source.
I am currently refactoring it. Recently, I migrated from JavaScript to TypeScript. I am addressing bugs and optimizations that were not completed last year, including state management. Since I’m refactoring anyway, I’ve decided to release it as open source.
I used Custom Elements. I was fascinated by the idea of web standards, but after using them, I couldn’t help but think, “How did I use something so inconvenient?” About a year ago, I got burned by this project and switched to the React/TypeScript stack.
Since the video needs to be rendered in real-time, it had to be made as lightweight as possible. Therefore, I am currently migrating to Litjs. It’s a framework made by Google, and it’s solid enough to be included as a basic template in vite. It’s a framework designed to handle Custom Elements easily from the start, so it has good compatibility.
In fact, I’ve experienced almost every trial and error with this project. Without type inference, I wasted time finding ipc communication methods and ended up in the worst-case scenario where components were interdependent. Thanks to this, it became an opportunity to apply TypeScript and learn React.
In the same context, I believe technical trial and error is necessary. When looking at the frontend stack, you might start using the React/TypeScript stack without knowing why React should be used or how to design dependencies. Since everyone around you is using it, you follow along, but I think you need to experience firsthand what is good about it and why it is a technology that has been used until now.
Especially for junior-level developers, I believe they should handle the previous technologies of the ones they are using. If it’s React, then the Custom Element web standard; if it’s Custom Elements, then pure HTML, CSS, and JS. In the current era where AI is deeply contributing to work productivity, it’s true that the basics are becoming more important.