Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
Wait, how does this work in-browser? Does it send the photos to the local server where image magick does the job, or is it using javascript to read/write images, or does it contain WASM to do that?
It's JavaScript.
And it is slow, but not as slow as I expected it to be. I've optimized a photo I've taken with my DSLR, 6.3MB, 24MP, JPEG. It has taken ~50sec on this phone, in Firefox.
I know, it's a phone, but also, my phone can and does save, optimize, and apply filters to such images in <1sec.
If you are interested (and can pull together a bit of funding) I can look into how we could do this optimization in WASM.
Yes, it's all JavaScript and essentially relies on the Canvas API to compress the images, so the performance is heavily dependent of your device and browser. I haven't delved into WASM yet, but it would indeed open up doors for improvements, such a more file format support and more intelligent optimization. At the moment, working with canvas keeps things a lot more straightforward, however.
There is no funding I can provide at all (I've received 2 donations so far, which I'm very grateful for!). I just do this on my spare time, which I have a lot less of these days. I initially created MAZANOKE as a drop-in replacement for family and friends, specifically to those who tend to use questionable or ad-bloated online tools.
If you do delve into improving the performance, I suggest using Rust and
no_std
crates for dealing with images, such as https://docs.rs/zune-jpeg/latest/zune_jpeg/.It would probably take some time to get it working, but it would probably increase performance and support any format you can find a crate for. But it does not seem like it's worth it.
I'll add this to my list of "things I might to when I don't have a side project to waste my time on" :D
Thanks for your kind words, I tried putting some effort into making the interface a bit more fun and interactive, so thanks for noticing!
In regards to Rust, I've been interested in learning more about it, but I've not had time yet, so it's been in a "soon (tm)" limbo. As I'm comfortable with JavaScript/JS frameworks, sticking with JS was a quick way to get started without much friction.
Rust will take time - it has a few concept that I haven't seen in javascript/python/java/C++ family of languages. But it gives "zero-cost abstractions" i.e. a way to write high-level code without any performance penalty. And it has great tooling and WASM support, which is what you'd be after.
But as I said, it is all not worth it now, just for this application.
That's still very interesting to hear, maybe I'll look into it for my next (simpler) project just to try it out.
I did also forget to say it does look very nice, with animations and proper polish!