Screenshot of Cosmil Running

Announcing Cosmil 1.1

Sat Oct 19 2024

I am thrilled to announce the release of Cosmil 1.1! After all the feedback I received from the release of 1.0 I decided to make 1.1 a big update, and here we are. This is the culmination of several months of work, and as much as I would have liked to get 1.1 out sooner, especially for everyone that purchased 1.0, I have had a lot going on in real life. On another note, I have said this a lot butgetting feedback from users is very valuable, I can't read minds and Cosmil does not collect any usage data, so I'm left guessing otherwise. The more I hear from you all the more I can improve Cosmil!


I want to thank everyone that gave 1.0 a chance and purchased it back in July. It was far from perfect and I hope 1.1 can fill what was missing from it.


Anyways, here's everything new in this rewrite...

Dual/Tri/Nth Pane

This was a very highly requested feature; you can now work with two, three, or as many folders as your monitor can fit all at once!

Everything is Resizable

Previously, all three panes (Sidebar, Content, and Preview) were fixed in width, now you can give each section as much or as little space as you like.

Extensive Theming

Now you can make Cosmil your own by creating, switching between, and editing all your themes.

An Improved Preview Pane

Now including image (EXIF) and video metadata when possible along with improved ergonomics.

Onboarding

Ensure that Cosmil is setup to fit your needs after Cosmil's first launch.


For the Geeks

For some context, Cosmil is built with Tauri (more specifically Tauri v2). In a nutshell, Tauri gives you the ability to use web frameworks to create your GUI, which can then communicate with the meat of your application written in Rust. To be very clear, Tauri is NOT like Electron. Tauri takes advantage of your OS's pre-installed WebView, not a bundled browser. This drastically reduces app size (Cosmil is ~13MBs uncompressed).


Anyways, the 1.0 version of Cosmil utilized Svelte on the frontend. While Svelte was initially very charming to me (as it is to most), it slowly and painfully stabbed me in the back with tech debt. And I mean some seriously bad tech debt. For this reason, I decided to rewrite the entire frontend in SolidJS. This decision was not made lightly, a rewrite in an entirely new frameworkis a major undertaking but SolidJS presented a lot of advantages over Svelte and indeed ended up fitting the task much better. Overall, I do not regret the switch at all and it has made my life much easier and resulted in a far superior app then I could have delivered with Svelte. A lot of the improvements in 1.1 are the result of this change and while they may be subtle, in my opinion, they make 1.1 feel like an entirely new app.


I plan to make a standalone technical article where I can delve much deeper into all the challenges I encountered with both Svelte, Solid and Tauri while developing Cosmil, how they were overcome, and my suggestions for what these frameworks need to do to to improve their already pretty fantastic DX. Keep an eye out for that!