🎉 Offlined v1.0.1 is now available — 17th August 2026.
⚠️ Important notice about Offlined v1.0.1Testers have reported a few bugs that we already fixed. But for sure, more will come...
⚠️ Security note: since the app doesn't have a code-signing certificate yet, Windows SmartScreen will show a warning when you try to open it. You'll need to click "More info" → "Run anyway" to continue. If you have an antivirus active, you may also need to temporarily disable it for this app, since being unsigned can make it get flagged as suspicious. This is normal for an unsigned test build, for anyone who wants to try it, it's already available under these two conditions.📦 Download size note: the download is approximately 1GB, since it includes some sample images, a sample video, and some sample music, plus sample contact and email data, so you have something to test right from first launch. All of it can be deleted afterwards.
Offlined v1.0.1 release changes.
🚀 App startup
- Distinguished ".NET Framework missing" from "antivirus blocking": previously both cases showed the same confusing error. The app now checks the Windows registry and, if .NET is actually installed, specifically warns that an antivirus is blocking an internal component (instead of claiming .NET is missing).
- Detection of known antivirus/EDR software (Bitdefender, Microsoft Defender, Avast, and others) so the error message can name the likely culprit instead of just saying "an antivirus."
- Automatic unblocking of internal files (pythonnet/webview) flagged by Windows as "downloaded from the internet" (Zone.Identifier) — a common cause of the .NET CLR refusing to load them even when the framework is correctly installed.
- Detection of a server that started but is unreachable: if the backend starts but can't be reached on
localhostafter 30 seconds, the app now warns that a firewall/antivirus with network inspection is likely blocking the local connection. - More robust single-instance lock: now tolerates the lock file being momentarily locked by another process (antivirus scanning it, folder sync, etc.) instead of failing outright.
- Error messages translated into the 15+ languages the app supports, with a direct link to Microsoft's official page to download/repair .NET Framework when relevant.
🖼️ Image gallery
- Grid view: in addition to list view, the gallery can now be displayed as real thumbnails in a grid. The preference is remembered between sessions.
- Sort by date taken (EXIF): new sort option using the photo's actual capture date, falling back to the file date when there's no EXIF data.
- Manual date editing: fix the capture date for photos from cameras with a misconfigured clock, with an option to reset back to the EXIF/file date.
- Tags visible in the file explorer: each image row now shows its tags (user, AI, location, people) directly in the list, without opening the photo.
- Image count per folder: folders inside the Images section now show how many photos they contain (recursive), without needing to open them.
- Duplicate finder: new tool to detect duplicate images by content (hash), not just by filename.
- Image comparison: new side-by-side view to compare two photos.
- Move/copy image to another folder directly from the viewer.
- Save rotation from the image viewer.
- Favorites in the image viewer.
- Keyboard shortcuts panel inside the viewer.
- Improved tag search: search multiple tags at once separated by commas, with "match all" or "match any" mode.
- Fixed map loading gray: map assets (styles, sprites, fonts) were being packaged into a path that wasn't properly migrated on fresh installs, leaving the map without styling.
🔧 Performance and stability
- Added
busy_timeoutto the tags SQLite connections to prevent "database is locked" errors under concurrent use. - Automatic background tag reconciliation on startup: if a photo is renamed or moved outside the app, its tags/geolocation/people are re-linked by content fingerprint instead of being lost.