MAZANOKE is a simple image optimizer that runs in your browser, works offline, and keeps your images private without ever leaving your device.

Created for everyday people and designed to be easily shared with family and friends, it serves as an alternative to questionable “free” online tools.

See how you can easily self-host it here:
https://github.com/civilblur/mazanoke

-–

Highlights from v1.1.5 (view full release note)

The focus of this release has been to improve the core foundation and file format support, but I’m planning to expand with more features further down the road in order to improve the usefulness of MAZANOKE (while still keeping the UX simple).

  • Support basic authentication for Docker setups.
  • TIFF file format support.
    • Convert from TIFFJPG, PNG, WebP, ICO
  • ICO file format support.
    • Convert from and to an ICO image.

-–

I also feel incredibly honored that MAZANOKE was recently featured on several of my favorite communities:

It’s been incredible to see the growth of the user base, with over 54,000 docker pulls for the previous release alone, and now reaching over 1400 stars! I never anticipated this at all and I’m truly grateful for the support!

I’d like to thank everyone who helped spread the word, whether through starring, word of mouth, community engagement, blog posts, or by packaging it for things like Unraid and NixOS, and everything in between!

  • verstra@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 days ago

    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

    • lent9004@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      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 ™” limbo. As I’m comfortable with JavaScript/JS frameworks, sticking with JS was a quick way to get started without much friction.

      • verstra@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 days ago

        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.

        • lent9004@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          That’s still very interesting to hear, maybe I’ll look into it for my next (simpler) project just to try it out.