Inkita is a lightweight open-source Android app for browsing and reading content from your own Kavita server. It offers offline downloads, reading progress sync, collections, filters, and a clean reader built with Jetpack Compose.





I'm Dom — a developer focused on web applications, automation, and infrastructure. I enjoy clean code, fast interfaces, and projects that solve real problems.
Explore my workI started programming at around seventeen, with C# and PHP as my first languages. I later moved into building Discord bots in TypeScript, then gradually found my way into open-source software, backend development, and homelab infrastructure. Today I run my own server environment, built mostly on Docker and managed through Ansible.
I'm happiest working behind the interface—designing services, automation, integrations, and the systems that keep everything running. Frontend is not where I naturally gravitate, so visual design is one of the few areas where I actively use AI as a creative partner.
Outside of code, I'm a big fan of cinema, anime, and manga. I also explore 3D printing, IoT with Raspberry Pi and Arduino, and build cosplay pieces and game-inspired props. I'm fascinated by AI, especially where it intersects with practical tools and creative work.
Inkita is a lightweight open-source Android app for browsing and reading content from your own Kavita server. It offers offline downloads, reading progress sync, collections, filters, and a clean reader built with Jetpack Compose.





An event-driven service that connects media libraries, external APIs, and notifications. It provides configurable rules, run history, and safe retries for failed tasks.


Track Your Shape is a Flutter app for long-term tracking of weight, BMI, body measurements, body composition, blood pressure, heart rate, and steps. It offers a customizable dashboard, plans, challenges, progress photos, and optional Health Connect imports while keeping personal data stored locally on the device.






backupctl is an open-source tool for automated backups in the .tar.zst format. It handles the full process from preflight checks and compression through optional encryption to retention, verification, and offsite uploads with rclone. It stores run metadata in SQLite and includes a Prometheus exporter.
$ backupctl list --detailed --limit 3 JOB BUCKET STATUS SIZE OFFSITE infra-root daily OK 1.8 GiB synced authelia daily OK 42 MiB synced media-config weekly OK 612 MiB local 3 archives · 0 failed
$ backupctl run infra-root --manual [preflight] source and free space ........ ok [archive] infra-root_2025-11-28.tar.zst [encrypt] openssl ...................... ok [offsite] rclone upload + verify ........ ok ✓ backup completed in 02:41
$ backupctl verify infra-root --latest
✓ archive readable · checksum matched
$ backupctl restore infra-root --latest \
--target /tmp/restore_infra
[decrypt] streaming archive
[restore] extracting 14,382 files
✓ restore completed