Interesting. I've wondered how to build a media or presentation editor like this myself.
Looks like it centers around the canvas object and a bunch of divs pretending to be widgets. I found this interesting as well, from the readme:
It is written in 100% plain JavaScript and has no dependencies.
It's 100% free, no ads, no tracking, no accounts, no nothing.
All processing is done in your browser, no data is sent to any server.
So no big framework, eh? I'm kinda glad to hear that, yet wonder how maintainable it will be in the future. Are there any books/blog-series that go over how to build one of these things?
Also looks like this was cranked out in ~6 months or so (with a big gap in the middle), impressive.
Big frameworks are so overrated ...
IMHO they bring more bloat to the table then structure.
These days with ES6 modules and workers and native custom elements, you can combine structure, maintainability and performance without frameworks.
The entire application is something of 400 to 450 in, and that includes all the colour reduction/dithering stuff and the reading and writing of those weird binary Amiga specific file formats.
I'd recommend defining box-sizing: border-box for html element and then applying box-sizing: inherit for *, *::before and *::after selectors. This makes it easier to override the box-sizing for 3rd party components that might rely on the default model.
Check out what we're building at Badrap (https://badrap.io/). Our service is free, and you can use it to monitor your and your parents' IP and email addresses for known vulnerabilities and data breaches. Let me know if you have any questions. :)
So true. I'm very happy with my Fender Squier Classic Vibe 50's Tele. Awesome build quality with a great off-the-shelf setup. It's not exactly cheap (~$400), but it was totally worth it.
"Once you start doing your UI with it, you pretty much need to make the entire thing use react to really benefit from its model."
In my experience React is quite ideal for cases where some parts of a site or an app need dynamic behavior. I'm currently working on an e-commerce platform's admin panel, and for us a complete rewrite would have been nearly impossible. With React we can keep the old HTML + jQuery codebase, and implement/refactor stuff as small or as big as we need (e.g. a live-search component or a whole new dashboard view). We're doing something very similar to this: https://github.com/reactjs/react-rails#rendering--mounting
Right - it does work and we have incrementally introduced react as well.
But that works if the various existing components on the page don't have strong multi-directional data flows between them. At least that's what I've experienced.