maimat (Mass Images Manipulation Tool) is an open source tool designed for batch image processing: resizing and compression. The application is written in Python 3.10+ and uses ImageMagick as the processing engine.
Category: software
-
Aleka is a cross-platform drawing app built on Flutter
Aleka is a lightweight, fast drawing app written in Flutter. It works everywhere: in the browser, on the desktop (Windows, macOS, Linux) and on mobile devices (iOS, Android).
Under the hood is pure Dart, Material 3 and attention to detail.
Opportunities
- Freehand drawing: smooth strokes with quadratic Bezier interpolation.
- Palette of 15 colors: quick selection with visual indication.
- Brush size: adjustable with a slider from 1 to 30 px.
- Undo: step back through your strokes.
- Clear the canvas: with one click.
- Flood Fill: BFS with tolerance for smooth edges.
- Saving: format
.aleka(JSON). - Loading: open previously saved drawings and continue.
- PNG export: Capture canvas at 3x resolution.
- 🎬 Animation mode: Frame-by-frame animation with timeline:
- Adding and removing frames, each with its own design.
- Frame duration from 50 ms to 5 s.
- Change FPS: 6, 8, 12, 15, 24, 30 or 60.
- Export to MP4 (via ffmpeg on desktop, ffmpeg.wasm in browser).
- Dark and light theme: Material 3, follows the system.
Why Flutter?
Flutter allows you to write one application for six platforms without duplicating code. Aleka uses only the native capabilities of Dart and Flutter SDK and a minimum of third-party dependencies:
file_picker,imagefor working with pixels when filling,ffmpeg_wasmfor exporting video in the browser.Architecture
The project adheres to the principles of clean architecture and SOLID:
- PaintCanvasController – controls the state of strokes and fills through the Listener/Observer pattern.
- PaintToolbar – UI component of the palette, slider and buttons.
- AlekaFile – serialization/deserialization in JSON, PNG capture.
- MovieController – model of frames and animation state.
- VideoExport – encapsulates MP4 encoding logic (desktop/web).
I/O functions (
saveStrokes,loadStrokes,capturePng, etc.) are made injectable – they can be replaced with mocks during testing. The project has 79 tests: checking serialization, cancellation, loading/saving, PNG and video export, frame model and timeline.File format .aleka
The
.alekafile is readable JSON that can be opened in any text editor:"aleka": "1.0", "strokes": [ { "color": 4278190080, "strokeWidth": 3.0, "points": [[100.0, 200.0], [150.0, 250.0]] } ] }Each stroke stores a color (ARGB32), a thickness, and an array of points. The format is versioned by the
alekafield.Animation mode
One of the key features is the built-in frame-by-frame animation editor. You draw a frame, add a new one, draw the next one, and so on. The timeline shows thumbnails and allows you to change the order and duration of frames. The finished animation can be exported to MP4.
The export algorithm iterates through all frames, captures them via
RepaintBoundary, collects PNG bytes and transfers them to the encoder. On the desktop, the system ffmpeg is called, in the browser, ffmpeg.wasm is used – a full-fledged port of ffmpeg to WebAssembly, working directly in the browser sandbox.Flood Fill
The fill implementation uses Breadth First Search (BFS) with a color tolerance (
_kFillTolerance = 1000). This allows you to correctly handle smooth edges of strokes – the fill does not flow beyond the outline, but captures translucent pixels on the border. For an empty canvas, a solid fill is created without unnecessary calculations.Try
Aleka is available on the web and as a native application:
demensdeum.com/software/aleka/
The source code is open under the MIT license:
-
Mama Calendar – cross-platform reminder app
Mama Calendar is a cross-platform events and reminders application written in React Native (Expo) with two backend implementations: Node.js + MongoDB and PHP + MariaDB.
The application allows you to create events with emoji categorization, select the type of repetition (once, annually, monthly, weekly, daily) and view important events for the next 3 days in a separate “Important Events” tab.
Technology stack
The frontend is written in React Native 0.86 via Expo SDK 57 with TypeScript, Expo Router for navigation and
react-native-reanimatedfor animations. Expo-symbols are used for icons (SF Symbols on iOS, Material icons on Android/Web).The backend is implemented in two versions:
- Node.js: Express 4, MongoDB 8 via native driver, custom authentication with scrypt + salt, manual token management. Docker Compose brings up the client (nginx), server and MongoDB.
- PHP: PHP 8.2 without frameworks, PDO + MariaDB 11, bcrypt for password hashing, your own router and PSR-4 autoloading via Composer.
Application functions
- Registration and authorization: simple system with username/password and Bearer tokens
- CRUD events: create, view, edit and delete events with date, emoji and repeat type
- Smart filtering: The Important Events tab shows events for the next 3 days, taking into account repetition rules. For example, annual events show the nearest annual occurrence, monthly – by day of the month, weekly – by day of the week
- Emoji picker: 20 preset emoji for quick categorization of events
- Highlighting today’s events: Today’s events are highlighted with a red background (#B71C1C)
- Dark theme: Automatic detection of system color scheme with separate palettes for light and dark theme
- Internationalization: Russian and English languages via React Context
- Анимации: анимированный сплэш-скрин с Keyframe API и упругой интерполяцией, анимированная иконка приложения с вращающимся свечением
- Admin endpoints: managing users, tokens and clearing the database through master tokens
Why two backend implementations?
The Node.js version is the main one, but the PHP version exists as an alternative for more classic hosting. The API is completely identical, which allows you to switch between them without changing the client code.
Infrastructure
The entire stack is raised through Docker Compose: the client is assembled through a multistage build (Expo export → nginx alpine), a server on Node.js, MongoDB 8. For the PHP version there is a separate compose file with MariaDB 11 and phpunit for tests.
The assembly of the web version is automated by a PowerShell script that patches the API_URL before
expo exportand restores the originals after.Output
Mama Calendar is a full-featured cross-platform application that covers the full cycle: from mobile and web frontend on React Native to two server-side options. The project is interesting for its architecture, use of modern Expo SDK capabilities and dual backend implementation.
Links
https://github.com/zefir1990/Mama-Calendar
https://demensdeum.com/software/mama-calendar/events -
Teflecher

Teflecher is a fast, interactive, cross-platform quiz application built on top of Kotlin Multiplatform (KMP) and Compose Multiplatform. It allows users to intuitively load quizzes from local JSON files or remote URLs, answer multiple-choice questions, see instant feedback on correct answers, and track their results.Web:
https://demensdeum.com/software/teflecher/GitHub:
https://github.com/zefir1990/teflecherAlso a quiz editor in the Teflecher Editor format based on Ionic + Capacitor technologies
-
Ghost Contacts

Ghost Contacts is a simple web application designed to hide your contacts from standard system APIs and phone books. All information is stored exclusively locally in your browser and is not transferred to external servers.Main features
- Hiding from system APIs:Your contacts are not synced with the standard system contacts APIs and device phone book.
- Panic Password: A special password, when entered, the entire contact database is instantly and irrevocably deleted.
- Import and export: Convenient transfer of contact database via CSV files for creating backup copies.
Online application:
https://demensdeum.com/software/ghost-contacts/ -
Raiden Video Ripper
Raiden Video Ripper is an open source project designed for video editing and format conversion. It is created using Qt 6 (Qt Creator) and allows you to edit and convert videos to MP4, GIF and WebM formats. You can also extract audio from videos and convert it to MP3 format.
Microsoft Store:
https://apps.microsoft.com/detail/9nvzjs98smgcGitHub:
https://github.com/demensdeum/RaidenVideoRipper/releases -
Ushki Radio
Ushki-Radio is a cross-platform radio player for online radio, made with a focus on simplicity and listening pleasure. No unnecessary functions, no overloaded interfaces – just turn it on and listen.

https://demensdeum.com/software/ushki-radioThe project uses the open source Radio Browser, making thousands of radio stations from all over the world available in the application. You can search for them by name, genre or popularity, add them to your favorites and quickly return to your favorite stations.
Ushki-Radio is perfect for the role of a background radio player: it remembers the last station, allows you to control the volume and does not require complex settings. The interface is concise and understandable – everything is done so that nothing distracts from music, conversations and broadcasting.
Technically, the project is built on React Native and Expo, so it works both in the browser and as a native application. Under the hood, expo-av is used to play audio, and user settings are stored locally. There is support for several languages, including Russian and English.
Ushki-Radio is a good example of what a modern Internet radio player can be: open, lightweight, expandable and focused primarily on the listener. The project is distributed under the MIT license and is perfect for both personal use and as a basis for your own experiments with audio applications.
GitHub:
https://github.com/demensdeum/Ushki-RadioGoogle Play:
https://play.google.com/store/apps/details?id=com.demensdeum.ushkiradio -
Glazki TV: Modern player for Internet television
Glazki TV is a modern, high-performance player for Internet television (IPTV), built on the basis of React Native and Expo. The project is focused on ease of use and speed, providing a convenient interface for viewing IPTV channels both on mobile devices and in the browser.
Main features
- Channel Browsing: Browse thousands of channels, categorized for easy navigation.
- Search: Quickly find the channels you need by name.
- Favorites: Save your favorite channels for quick access (data saved locally).
- Deep Linking: Share direct links to channels that open automatically.
- Theme support: The interface automatically adapts to the system dark or light theme.
- Web support: The player is fully functional in the browser with URL synchronization.
Technology stack
The project is based on modern development tools:
- Framework: React Native + Expo
- Video Player: expo-video (замена устаревшему expo-av)
- UI Toolkit: react-native-paper
- Playlist Parser: iptv-playlist-parser
Web version:
https://demensdeum.com/software/glazki-tv/Google Play version:
https://play.google.com/store/apps/details?id=com.demensdeum.glazkitv



