TL;DR
I'm planning a major update for Caesium and need your honest feedback on what you like—and what you don't—about the current version to help shape the new one.
Overview
Caesium v2 brought significant improvements over v1, particularly in code quality and features. Since January 2022, the software has processed around 2.3 billion images, compressing roughly 4.6 petabytes down to about 1.3 petabytes. Despite these successes, the growing number of issues and feature requests indicates that a new major version is needed.
Background
I started Caesium in 2009, right after high school, using C++ and Qt, which were my go-to technologies at the time. Over the years, as I became a Full Stack Web Developer, I integrated new technologies—like Rust for the core library—to keep the project alive while professionally focusing on completely different languages and technologies. Although web-based UIs and Electron were popular choices, I stuck with Qt because of familiarity and its multiplatform capabilities.
Current Concerns
My personal concerns about Qt:
- Using C++ (which isn’t my strongest language) makes maintenance harder.
- Qt Widgets can look outdated, especially on macOS, and often lag behind in adopting modern OS features like Windows 11 Dark Mode.
- The auto-update system is clunky and relies on third-party tools (Sparkle/WinSparkle).
- The build and release process is cumbersome, requiring the full Qt framework and complex packaging.
Maintenance Challenges:
- Adding new features—such as an improved preview window—often demands extensive refactoring.
Looking Ahead
For the next major version, I want to retain Caesium’s core strengths (speed, efficiency, and user-friendly design) while addressing these pain points. My goals include:
- Enhanced UX/UI: Modern, appealing design and streamlined workflows for beginners.
- Seamless Auto Updates: A robust and easy-to-maintain update system.
- Simplified Build/Release Process: Automated CI/CD with support for major release channels (e.g., Chocolatey, Winget, Homebrew) and a focus on Linux releases.
- Better Testing: More comprehensive test coverage.
- Alignment with Modern Skills: Leveraging my strengths as a web developer (you see what's coming?).
My Proposal: Tauri
I'm considering switching to Tauri for the next version. This approach would let me write the heavy logic in Rust (using libcaesium) while designing the UI with modern web technologies, which I'm far more proficient with. Though Tauri uses a WebView—which might increase the app’s size, memory footprint, and require extra work for image format support (like TIFF)—I believe these challenges are manageable.
Your Feedback
I’d love to hear your thoughts on:
- What you like and dislike about the current version.
- The idea of moving to Tauri.
- Any alternative suggestions you might have.
Your honest feedback is greatly appreciated as I work toward a better Caesium.
TL;DR
I'm planning a major update for Caesium and need your honest feedback on what you like—and what you don't—about the current version to help shape the new one.
Overview
Caesium v2 brought significant improvements over v1, particularly in code quality and features. Since January 2022, the software has processed around 2.3 billion images, compressing roughly 4.6 petabytes down to about 1.3 petabytes. Despite these successes, the growing number of issues and feature requests indicates that a new major version is needed.
Background
I started Caesium in 2009, right after high school, using C++ and Qt, which were my go-to technologies at the time. Over the years, as I became a Full Stack Web Developer, I integrated new technologies—like Rust for the core library—to keep the project alive while professionally focusing on completely different languages and technologies. Although web-based UIs and Electron were popular choices, I stuck with Qt because of familiarity and its multiplatform capabilities.
Current Concerns
My personal concerns about Qt:
Maintenance Challenges:
Looking Ahead
For the next major version, I want to retain Caesium’s core strengths (speed, efficiency, and user-friendly design) while addressing these pain points. My goals include:
My Proposal: Tauri
I'm considering switching to Tauri for the next version. This approach would let me write the heavy logic in Rust (using libcaesium) while designing the UI with modern web technologies, which I'm far more proficient with. Though Tauri uses a WebView—which might increase the app’s size, memory footprint, and require extra work for image format support (like TIFF)—I believe these challenges are manageable.
Your Feedback
I’d love to hear your thoughts on:
Your honest feedback is greatly appreciated as I work toward a better Caesium.