Shared Memory
for Your Space
Track items across shared spaces in real-time. Never lose anything — or anyone's things — again.
Free to download and use. No credit card required.
Track items across shared spaces in real-time. Never lose anything — or anyone's things — again.
Free to download and use. No credit card required.
Sortify gives you real-time visibility over every physical item — while keeping your data entirely in your hands.
From kitchen items to lab equipment — add photos, locations, and notes for any item. Barcode and QR scanning support included.
Multiple users can update item locations simultaneously. Everyone stays in sync — even when working across different rooms or buildings.
See who moved what, when. Every location change is timestamped and recorded. Full audit trail, always accessible.
Your data stays on your devices and your cloud accounts. No central database, no tracking, no data mining — complete control.
Three steps from chaos to clarity. No complex setup, no steep learning curve.
Set up a workspace and add your rooms or spaces. Organize by location — home, office, lab, studio — any structure that makes sense to you. Works completely offline.
Scan barcodes or type manually. Add photos, tags, notes, and sub-locations. Every item gets a full profile so you can find it instantly later.
Invite housemates, colleagues, or lab members. Everyone sees real-time updates — all end-to-end encrypted and stored in your own cloud account.
Sortify doesn't store your inventory on our servers — there are no central servers to breach. Your data is encrypted on-device and synced to the cloud account you already trust.
Military-grade encryption applied to all data before it ever leaves your device. Even your cloud provider can't read it.
Your encrypted data lives in your Google Drive, OneDrive, Dropbox, or iCloud — accounts you already own and control.
Sortify has no central database to breach. No data collection, no profiling, no hidden copies of your inventory.
All changes are saved locally first. When connectivity returns, the sync queue reconciles updates with conflict resolution.
Whether you're managing a home, a research lab, or a distributed workspace — Sortify adapts to your reality.
Manage household inventory across rooms. Know where everything is — tools, appliances, seasonal items — without asking everyone.
Track lab equipment, reagents, and supplies across bench stations. Full audit history for compliance and accountability.
Manage office inventory and assets across desks, rooms, and locations. Know what you have, where it is, and who last used it.
Distributed inventory management by room, floor, or building. Keep shared resources findable for every team member.
Join households, labs, and teams who use Sortify to stay organized and in sync — privately.
Free to download and use. No credit card required.
# Sortify Pricing **Published by:** MokingBird Oy **Last updated:** 14 May 2026 --- ## Pricing Philosophy Sortify should be easy to try, easy to understand, and clearly more valuable as your workspace becomes more collaborative and operationally important. The best Sortify pricing story is not "pay for inventory records." It is: > *Pay for less searching, better coordination, stronger privacy posture, and a shared memory system that keeps real spaces organized.* All prices are in **EUR (€)**. Applicable VAT or taxes may be added at checkout depending on your country. --- ## Plans at a Glance | | **Free** | **Premium** | **Enterprise** | |---|---|---|---| | **Price** | Free | **EUR 9.99 / month** | **EUR 29.99 / month** | | **Workspaces** | 3 | 20 | 50 | | **Members per workspace** | Up to 5 invited | Unlimited | Unlimited | | **Total items** | 20 | Unlimited | Unlimited | | **Cloud sync** | ✓ | ✓ | ✓ | | **Item history and audit trail** | ✓ | ✓ | ✓ | | **Search (full-text + fuzzy)** | ✓ | ✓ | ✓ | | **Voice search** | ✓ | ✓ | ✓ | | **Barcode / QR scanning** | ✓ | ✓ | ✓ | | **Photo attachments** | ✓ | ✓ | ✓ | | **PIN + biometric lock** | ✓ | ✓ | ✓ | | **Offline mode** | ✓ | ✓ | ✓ | | **Export (JSON / CSV)** | ✓ | ✓ | ✓ | | **Priority support** | ✗ | ✗ | ✓ | | **Custom deployment assistance** | ✗ | ✗ | ✓ | | **Enterprise billing options** | ✗ | ✗ | ✓ | --- ## Free Plan **Price: Free — no credit card needed** Start free and organize your first spaces without commitment. The Free plan gives you full access to Sortify's core features within clear limits that cover most personal and casual use cases. ### What you get: - **3 workspaces** — enough for home, a side project, and a shared space with family or a small team - **Up to 5 invited members** across all workspaces - **20 items total** — track your most important belongings - Full item history — every change logged - Cloud sync — keep data backed up and accessible across devices - All search and filter features - Barcode/QR scanning, photos, tags, and notes - PIN and biometric lock - Offline mode - Export (JSON and CSV) ### Good for: - Individuals testing Sortify - A couple or small family tracking key household items - Small groups with a simple shared space ### Free plan limits note: The 3-workspace, 5-member, and 20-item limits are designed for casual personal use. If you need more workspaces, more collaborators, or unlimited items, upgrade to Premium. --- ## Premium Plan **Price: EUR 9.99 per month** *Billed monthly. Cancel anytime.* Premium is for power users, families, active households, small businesses, research groups, and workshops that need real capacity without restriction. ### What you get: - **20 workspaces** — organize every part of your life and work separately - **Unlimited workspace members** — invite your whole team, family, or department - **Unlimited items** — no cap on what you track - All features from the Free plan, fully unrestricted ### Good for: - Busy households tracking hundreds of items across every room - Small and medium workshops tracking tools, materials, and equipment - Research teams with shared equipment across multiple spaces - Small businesses managing operational inventory - Anyone who found the Free plan limits too small ### How billing works: - Charged monthly through **Google Play** (Android) or **Apple App Store** (iOS) - Renews automatically unless cancelled through the app store before the renewal date - Cancel at any time — no penalty, no minimum commitment --- ## Enterprise Plan **Price: EUR 29.99 per month** *Billed monthly. Custom billing options available for larger organizations.* Enterprise is designed for larger operations: factories, warehouses, multi-site businesses, research institutions, co-working spaces, and any deployment requiring high workspace capacity and operational-grade support. ### What you get: - **50 workspaces** — scale across departments, sites, or operations - **Unlimited workspace members** - **Unlimited items** - **Priority support** — faster response times for technical issues - **Custom deployment assistance** — workspace structure and setup guidance - **Enterprise billing options** — invoice billing, purchase orders, and custom arrangements - All Premium features, fully unrestricted ### Good for: - Factories and production facilities with large shared inventories - Multi-department organizations managing equipment across teams - Research institutions managing shared instruments across labs - Co-working spaces and shared facilities - Any organization deploying Sortify at scale ### Enterprise enquiries: **Email: [email protected]** --- ## Suggested CTA Copy (Website / App Store) - *Start free* — for Free plan - *Upgrade to Premium* — for Premium plan - *Talk to us about Enterprise* — for Enterprise plan --- ## Frequently Asked Questions **What happens if I hit the Free plan limits?** Sortify will prompt you to upgrade. You won't lose existing data — you just won't be able to add more until you upgrade or reduce usage within the free limits. **Can I switch plans at any time?** Yes. Upgrade or downgrade at any time through the app. If you downgrade and your usage exceeds the lower plan's limits, you'll be asked to reduce usage before the downgrade takes effect. **Do you offer annual billing?** At launch, Sortify is billed monthly. Annual billing options may be introduced later. Check the app stores for current options. **Is there a family plan?** The Premium plan (EUR 9.99/month) supports unlimited workspace members and is an excellent choice for families sharing a home workspace. **Do you offer discounts for non-profits or academic institutions?** We are open to discussing discounted or custom arrangements for non-profit and academic institutions. Contact **[email protected]**. **What payment methods are accepted?** Payment is processed through **Google Play** (Android) or **Apple App Store** (iOS), which accept the payment methods available in your region. For Enterprise direct billing, we accommodate invoices and purchase orders. **Can I use Sortify for free permanently?** Yes. The Free plan is a permanent tier — not a trial. It covers many everyday use cases indefinitely. **What happens to my data if I cancel?** Your data stays on your device and in your cloud storage. Cancelling reverts your account to Free plan limits. A grace period applies before usage above free limits is restricted. **Is there a refund policy?** Refunds are handled through Google Play or the Apple App Store according to their refund policies and applicable consumer protection law. Contact **[email protected]** for billing questions. --- ## Commercial Notes Before or after public launch, the following may be finalized or adjusted: - whether item and member limits are per workspace or per account; - whether Enterprise is self-serve, contract-only, or both; - regional pricing variations and tax requirements; - how app-store billing entitlement checks map to plan limits in production. These pricing details are commercial policy and planning content. They reflect the intended launch pricing model and may be updated before or after public availability. --- ## All Plans Include Regardless of plan: - Privacy-first design — your data never sits on MokingBird's servers - AES-256-GCM encrypted sync — industry-standard encryption for everything you sync - Offline-first operation — the app works without internet - Complete item history — every change logged permanently - Full-text and fuzzy search — find anything in under a second - GDPR-compliant data handling — MokingBird Oy is EU-based - Regular app updates — new features, bug fixes, and security patches --- *Prices in EUR. Applicable VAT or taxes may apply. MokingBird reserves the right to change pricing with reasonable advance notice.* *Sortify is a registered brand of MokingBird Oy, Finland.*
# About Sortify **Published by:** MokingBird Oy **Last updated:** 16 May 2026 --- ## Sortify in One Line : Sortify is shared memory for your space. --- ## What Sortify Is Every household, workshop, research lab, or small team shares the same quiet problem: things get moved, people forget, and the next person wastes time looking. A box of cables that ended up in the wrong room. A tool returned to the wrong shelf. A reagent that someone moved to the cold storage but didn't tell anyone. A charger that "was definitely here yesterday." **Sortify is the shared memory your space doesn't have yet.** Sortify is a local-first inventory and workspace organization app that lets any group of people maintain a shared, real-time record of where things are. Sortify is a privacy-first app for organizing real-world belongings across homes, labs, offices, workshops, studios, and other shared spaces. It works offline, syncs when you're connected, encrypts everything before it leaves your device, and puts you — not us — in control of your data. --- ## What Sortify Does At its core, Sortify answers one question: **"Where is it?"** Not just for you — for everyone in your space, right now and six months from now. ### Workspaces A **workspace** in Sortify represents a real shared space: your home, your lab, your workshop floor, your office. You give it a name, and inside it you define rooms and locations that mirror how your space is actually organized. ### Rooms and Sublocations Each workspace contains **rooms** — and each room contains **sublocations**. This two-level location system lets you be precise without being overwhelming. "Kitchen → Pantry shelf 2" is a location. "Lab → Fridge B, Bottom Shelf" is a location. "Workshop → Tool Wall, Left Cabinet" is a location. When you move an item, you update its room and sublocation in Sortify. Everyone in the workspace sees the change instantly (or on their next sync). ### Items Each item you track can carry: - A **name** and **description** - One or more **photos** (taken in-app or from your gallery) - **Tags** for categorization (up to 10 per item) - **Notes** — anything relevant - **Barcode or QR code** — scan to find or log items quickly - **Brand, model, serial number, condition** - **Purchase date, price, currency** - **Expiry date** and **warranty expiry date** - **Quantity** - **Custom fields** for anything else ### History and Activity Sortify keeps a **complete change history** for every item. You can see who added it, who last moved it, what it used to be called, and every location it has ever been in. Nothing is lost — even if you update a record, the previous state is preserved in the item's journal. The **activity feed** shows recent workspace-wide operations: what was added, moved, edited, and by whom. It's the shared logbook your space has been missing. ### Search Find anything instantly. Sortify's search covers item names, notes, tags, location, brand, model, and barcode — all at once. Results come back in under half a second even on older devices. You can filter by room, tag, date range, or who added an item. Voice search is available for hands-free lookup. ### Collaboration Sortify is built for shared spaces, which means it's built for **collaboration**. Invite members to your workspace with a single link. Assign roles: - **Primary User (Owner):** Full control. Can invite/remove members, manage all settings. - **Secondary User (Member):** Can add, edit, and move items. - **Read-Only:** Can view the workspace but not modify it. Every change is attributed to the person who made it, with a timestamp. Accountability is built in. --- ## What Makes Sortify Different Sortify is not only about counting stock. It is about reducing time lost searching, reducing duplicate purchases, and making shared physical spaces easier to manage. Sortify focuses on: - **item location memory** — where is it right now, not just that it exists; - **room and sublocation structure** — mirrors the way people actually talk about their spaces; - **collaboration across shared workspaces** — every member sees the same picture; - **offline-first usage** — works fully without internet, syncs automatically when connected; - **encrypted sync in user-controlled cloud storage** — your data goes to your cloud, not ours; - **history and accountability for changes** — who moved what, when, and from where. --- ## What You Can Do in Sortify - Create and manage workspaces (named shared spaces like "Home", "Lab", "Workshop") - Add rooms and sublocations that mirror your physical environment - Add, edit, move, and search for items instantly - Attach notes, tags, quantities, photos, and detailed metadata to items - Scan barcodes or QR codes for faster item handling - View item history and workspace activity feed - Invite collaborators into a workspace and assign roles - Switch across multiple workspaces - Protect access with PIN lock and biometric unlock - Export workspace data (encrypted JSON, plain JSON, or CSV) - Sync encrypted workspace data across devices through supported cloud providers --- ## How Data Works in Sortify ### Local-First All workspace data lives on your device — not on Sortify's servers. You can use Sortify completely offline: add items, update locations, search, view history. Everything works without a network connection. ### Encrypted Sync When you're ready to share data across devices or with collaborators, enable sync. Sortify takes your workspace database, **encrypts it with AES-256-GCM** (military-grade symmetric encryption), and stores the encrypted file in a cloud storage folder you own. Currently supported: **Google Drive, OneDrive, and Dropbox.** The workspace encryption key lives in your device's secure storage (iOS Keychain, Android Keystore). Where recovery protection is enabled, Sortify can also store encrypted key envelopes so authorized users can restore synced workspaces after reinstall or device loss. We do not store plaintext workspace keys. Even if someone accessed your cloud files, they would see only encrypted binary data. ### Your Cloud, Your Data We currently don't run a centralized inventory database. When you sync, the data goes to **your** Google Drive, OneDrive, or Dropbox, not to us. This is a deliberate architectural choice — your workspace data is yours. ### Guest Mode You can explore Sortify without signing up. Guest mode gives you access to the app's core interface, but to create or join a workspace, you need a registered account. Registration is quick — we only collect what we need: email, display name, and optionally a profile photo from your sign-in provider. --- ## Pricing Sortify is free to start, with premium tiers for power users and organizations. | Plan | Price | Workspaces | Members | Items | |---|---|---|---|---| | **Free** | Free | 3 | 5 invited max | 20 total | | **Premium** | €9.99/month | 20 | Unlimited | Unlimited | | **Enterprise** | €29.99/month | 50 | Unlimited | Unlimited | See the full pricing document for details on what's included in each plan. --- ## Who Sortify Is For **Families** — track household items across rooms, share with a partner or household members, know where everything is without asking. **Research labs** — catalog shared equipment, reagents, and tools. Know who has what, and where it was last seen. Keep an audit trail without manual logbooks. **Small businesses** — manage operational inventory for a workshop, studio, store, or small warehouse. Keep a shared record accessible to your whole team. **Workshops and makerspaces** — track tools, components, raw materials, and finished goods across a factory floor or maker space. Reduce search time and prevent "where's the [tool]?" delays. **Anyone who shares a space and shares things** — if two or more people need to know where something is, Sortify is for you. --- ## Key Trust Themes - Privacy-first: your data is local and encrypted before sync - Encrypted sync: AES-256-GCM, keys stay on your device - User-controlled cloud storage: your cloud, not ours - Offline-first: works without internet - Role-based collaboration: Primary, Secondary, and Read-Only access - Device-level protection: PIN and biometric lock - App integrity: Firebase App Check (Play Integrity / DeviceCheck) --- ## Technical Overview For users and organizations who want to understand what's under the hood: | Property | Details | |---|---| | Platform | Flutter (Android & iOS) | | Local storage | SQLite (encrypted at application level) | | Authentication | Firebase Authentication (Google, Apple, Email, Passwordless) | | Sync encryption | AES-256-GCM | | Key storage | iOS Keychain / Android Keystore | | Cloud sync | Google Drive (OAuth 2.0), OneDrive, Dropbox | | Offline support | Full offline — queued sync on reconnection | | Search engine | SQLite FTS5 with fuzzy matching | | App lock | PIN (4 digits) + biometric (OS-delegated) | | Session timeout | 15 minutes inactivity (configurable) | | Crash reporting | Firebase Crashlytics (opt-out available) | | Analytics | Firebase Analytics, anonymized (opt-out available) | | Governing law | Finland (EU) | --- ## Privacy at a Glance - **We don't store your inventory.** Data lives on your device and in your cloud account. - **We don't sell your data.** Ever. - **We can't read your workspace contents.** Encrypted before it leaves your device, with recovery protected by encrypted key envelopes rather than plaintext key storage. - **You control deletion.** Delete your account or cloud sync files at any time. - **GDPR compliant.** MokingBird Oy is established in Finland (EU). Full privacy policy at `sortify.mokingbird.xyz/privacypolicy`. --- ## App Store Summary Sortify helps people and teams organize physical items across shared spaces. Track what you have, where it belongs, and who changed it last. Use it offline, protect it with PIN and biometrics, and sync encrypted workspace data through your own cloud storage — your data stays in your cloud, not ours. --- ## The Company Behind Sortify Sortify is part of the **MokingBird** product ecosystem and is a registered brand of MokingBird Oy, a software company based in Finland. - **Company:** MokingBird Oy - **Country:** Finland (EU) - **Website:** https://sortify.mokingbird.xyz - **Support:** [email protected] --- *Sortify — Shared Memory for Your Space* *A product of MokingBird Oy, Finland*
# Sortify Privacy Policy **Last updated:** 16 May 2026 **Effective date:** 16 May 2026 --- ## Who We Are This Privacy Policy is published by **MokingBird Oy**, a company registered in Finland. Sortify is a product and registered brand of MokingBird Oy. In this Privacy Policy, "Sortify", "we", "our", and "us" refer to **MokingBird** and the Sortify brand and service operated by MokingBird Oy. For privacy-related questions or requests, contact us at: **[email protected]** --- ## Introduction Sortify is a local-first workspace and shared inventory memory application. We built Sortify with privacy at its core: your operational inventory data lives on your device, not on our servers. This Privacy Policy explains what personal data we process, why, how, and what rights you have under applicable law — including the **General Data Protection Regulation (GDPR)** as it applies in Finland and the European Economic Area. Please read this policy carefully before using Sortify. By using the app or any Sortify-related service, you acknowledge that you have read and understood this Privacy Policy. --- ## 1. What Sortify Is Sortify is a privacy-first, local-first inventory and shared-space memory app. It helps people, families, labs, workshops, and teams organize physical items across rooms, workspaces, and shared environments. Sortify is designed so that: - account authentication is handled through Firebase Authentication and supported identity providers; - most operational workspace data is stored locally on the user device; - when sync is enabled, workspace data is synchronized through encrypted files stored in the user's selected cloud storage account; and - Sortify is not designed around a central vendor-hosted inventory database that stores all customer workspace contents on MokingBird servers. --- ## 2. Data Controller The data controller for the Sortify service is **MokingBird Oy**. Sortify is a registered brand of MokingBird Oy. --- ## 3. Scope This Privacy Policy applies to: - the Sortify mobile application (Android and iOS); - the Sortify website and all legal, informational, and support web pages; - customer support, account-related, and product communication; - beta testing, app-store distribution, and public release operations. This policy does not apply to third-party services you connect to Sortify (for example, your Google Drive, Onedrive or Dropbox account). Those services are governed by their own privacy policies. For example, when you connect a Google account for Google Drive sync, Google's own privacy policy and account permissions also apply. Sortify's use and transfer of information received from Google APIs is intended to comply with the Google API Services User Data Policy, including the Limited Use requirements where applicable. This is applicable also to Onedrive and Dropbox --- ## 4. Categories of Personal Data We Collect ### 4.1 Account and Registration Data Depending on how you sign in, we may process: - email address; - display name; - profile photo URL, if provided by your identity provider; - authentication provider type (Google, Apple, email/password, or email link); - Firebase Authentication user identifier; - account creation timestamp; - last sign-in timestamp; - email verification status. We support the following sign-in methods: email and password (credentials managed by Firebase — we do not store your plaintext password), passwordless email link, Google Sign-In, and Apple Sign-In (iOS only). ### 4.2 Guest-Mode Data If you use Sortify without registering, we may store limited local data on your device, such as: - guest mode flag; - an optional guest display name you enter locally. Guest data remains local to your device and is not transmitted to MokingBird. ### 4.3 Workspace and Collaboration Data When you create or participate in a workspace, Sortify may process: - workspace identifier and name; - workspace description, if provided; - workspace owner or primary user identifier; - workspace member identifiers and roles; - membership status and join history; - invite metadata — inviter identity, invite code, join status, and timestamps; - join request and cloud access request metadata, including whether a request is for Sortify workspace approval or cloud-provider folder access; - workspace cloud provider selection; - workspace cloud folder reference; - cloud-provider folder sharing status and access grant or revoke state; - workspace sync timestamps and item and room counts; - workspace settings metadata. ### 4.4 Inventory and Operational Data Sortify may process the following operational content that you enter: - item names, descriptions, and notes; - room and sublocation information; - tags, categories, and custom fields; - quantities; - barcode and QR data; - brand, model, serial number, condition, and other identifying metadata; - purchase date, purchase price, currency; - expiry date and warranty expiry date; - photo references and local or remote photo paths; - item history and change records; - room definitions and sublocation structures; - search history and search result counts; - sync queue and metadata records; - export files generated by the user. This content is stored locally on your device. When sync is enabled, it is encrypted before being uploaded to your selected cloud storage account. MokingBird does not receive your plaintext inventory contents in the ordinary course of operations. ### 4.5 Security and Session Data Sortify may process security-related data required to protect the app and the user session, such as: - locally stored PIN status and hashed PIN reference; - biometric availability state and biometric success or failure events; - session lock and unlock state; - auto-lock and inactivity timing preferences; - workspace encryption keys and account recovery key material stored locally in platform secure storage; - encrypted account and workspace key envelopes used for account/device recovery, where recovery protection is enabled; - encryption key fingerprints. Sortify does not intentionally store raw biometric data. Biometric verification is delegated entirely to device operating system services (iOS Keychain / Android Keystore). MokingBird receives only a success or failure signal. ### 4.6 Diagnostics, Analytics, and Performance Data Sortify may process limited technical and product telemetry, including: - app open events and screen views; - authentication events; - workspace and sync events; - performance events; - crash and error reports; - device or app technical context necessary to diagnose failures; - Firebase Cloud Messaging device tokens and local notification inbox records used to deliver workspace, approval, sync, and account-status notifications. This telemetry is handled through Firebase services configured for Sortify, including Firebase Analytics, Firebase Crashlytics, and Firebase Performance Monitoring. Telemetry scope and controls may vary by app version, environment, and applicable law. --- ## 5. Where Data Is Stored ### 5.1 Authentication Data Authentication and sign-in account data are handled through Firebase Authentication (operated by Google LLC) and your selected identity provider. ### 5.2 Local Device Data Sortify stores operational data locally on the device, including: - local SQLite database contents (items, rooms, workspaces, history); - app preferences and settings; - search history; - guest-mode flags; - sync state and queue; - sensitive values in platform secure storage (iOS Keychain / Android Keystore). ### 5.3 Synced Workspace Data When sync is enabled, Sortify exports and synchronizes encrypted workspace data to the cloud storage account selected for that workspace. At the time of this policy version, production cloud sync support is Google Drive, OneDrive and Dropbox. Other provider support may be introduced, staged, or tested in later releases. Workspace sync files are encrypted before upload. MokingBird does not receive plaintext workspace contents in the ordinary course of operating Sortify. To support account/device recovery, Sortify may store encrypted key envelopes in Firebase/Firestore, including an encrypted account master key envelope and encrypted per-workspace key envelopes for authorized members. These envelopes are not plaintext workspace keys. They are designed to be decrypted only on the user's device after the user proves account identity and provides the applicable account password or recovery password. MokingBird does not store that password in plaintext and cannot use Firebase Authentication alone to decrypt encrypted workspace files. ### 5.4 Google Drive OAuth and Workspace Folder Access For Google Drive sync, Sortify requests Google Drive access so it can operate the user's Sortify workspace folders. The current collaborative Google Drive implementation requires the `https://www.googleapis.com/auth/drive` scope because workspace collaboration depends on reading and updating files created by multiple Google accounts inside a shared workspace folder. The practical reason is that a workspace owner may create the Sortify folder, `metadata.json`, and encrypted database file, while a secondary member must later read those owner-created files and update the same workspace snapshot. The narrower `drive.file` scope can prevent a collaborator from seeing files that were not created by that collaborator's own OAuth session, even when the folder is shared with them. In that situation, the user may authenticate successfully but Sortify cannot reliably find or pull the workspace snapshot. Although the Google Drive OAuth scope is broad, Sortify's app logic is designed to restrict Drive operations to Sortify workspace folders and Sortify sync files. Sortify does not intentionally scan, index, copy, sell, or analyze unrelated Google Drive content. Drive file references stored by Sortify are workspace folder IDs and sync file IDs needed to synchronize encrypted workspace data. Google Drive data used by Sortify may include: - the signed-in Google account email returned by the Drive connection flow; - OAuth access and refresh tokens stored in platform secure storage; - Sortify workspace folder identifiers; - Sortify sync file identifiers and version tokens; - Google Drive permission/share results needed to grant or revoke workspace member access; - encrypted Sortify workspace database files; - Sortify metadata files used to coordinate sync versions, checksums, and file references. MokingBird does not receive your plaintext Google Drive files through this integration in normal operation. The app reads and writes Sortify sync artifacts from the user's connected Google Drive account. ### 5.5 OneDrive OAuth and Workspace Folder Access When OneDrive sync is enabled and used as cloud provider, Sortify uses Microsoft identity and Microsoft Graph APIs to operate Sortify workspace folders and encrypted Sortify sync files in the user's OneDrive account. The intended OneDrive permissions are used for: - signing the user into Microsoft identity for the OneDrive connection; - reading the connected account identity needed to display and validate the linked provider account; - creating or locating Sortify workspace folders; - reading and writing encrypted Sortify workspace database files; - reading and writing Sortify metadata files; - using OneDrive file version information such as ETags for conflict prevention; - inviting workspace members to the provider folder where supported; - listing and removing provider permissions when a workspace member is removed. OneDrive sync data used by Sortify may include Microsoft account identity data, OAuth tokens stored in platform secure storage, OneDrive item IDs or paths, file ETags, sharing permission records, encrypted Sortify database files, and Sortify metadata files. Sortify does not intentionally use OneDrive access to inspect unrelated OneDrive content. OneDrive operations are intended to be limited to Sortify workspace folders and Sortify sync artifacts. Secondary member must also login to their Onedrive account to have access to Primary member's workspace who uses Onedrive as their provider. Same email address used for Sortify authentication should be used to login to the Onedrive account. ### 5.6 Dropbox OAuth and Shared Folder Access When Dropbox sync is enabled and used as cloud provider, Sortify uses Dropbox OAuth and Dropbox API permissions to operate Sortify workspace folders, shared folder references, encrypted Sortify sync files, and membership-related sharing controls. The intended Dropbox permissions are used for: - connecting the user's Dropbox account; - reading account identity needed to show and validate the linked provider account; - creating or locating Sortify workspace folders; - reading and writing encrypted Sortify workspace database files; - reading and writing Sortify metadata files; - using Dropbox revision IDs for conflict prevention; - creating or resolving Dropbox shared folder references where required for collaboration; - inviting workspace members to shared folders where supported; - removing workspace members from shared folders when access is revoked. Dropbox sync data used by Sortify may include Dropbox account identity data, OAuth tokens stored in platform secure storage, workspace folder paths or shared folder IDs, file revision IDs, sharing membership records, encrypted Sortify database files, and Sortify metadata files. Sortify does not intentionally use Dropbox access to inspect unrelated Dropbox content. Dropbox operations are intended to be limited to Sortify workspace folders and Sortify sync artifacts. Secondary member must also login to their Dropbox account to have access to Primary member's workspace who uses Dropbox as their provider. Same email address used for Sortify authentication should be used to login to the Onedrive account. ### 5.7 Diagnostics and Monitoring Data Limited diagnostics and telemetry may be transmitted to Firebase services when enabled for app operation, analytics, performance, and crash reporting. --- ## 6. How We Use Personal Data We use personal data to: - create and maintain user accounts; - authenticate users securely; - enable encrypted account/device recovery where configured; - enable workspace creation, joining, switching, and collaboration; - sync encrypted workspace data across devices; - generate and process workspace invitation links and invite codes; - distinguish Sortify membership approval from cloud-provider folder access approval; - grant and revoke cloud folder access for workspace members where the connected provider supports it; - support item search, history, scanning, and organization features; - protect the app and detect security or reliability issues; - improve app performance, usability, and reliability; - provide support and troubleshooting; - comply with legal obligations; - prevent abuse, fraud, misuse, and unauthorized access. --- ## 7. Legal Bases Under the GDPR Where the GDPR applies, our legal bases include: - **Article 6(1)(b)** — processing necessary for the performance of a contract with you (providing the Sortify service) or for steps taken at your request before entering into a contract; - **Article 6(1)(f)** — processing necessary for legitimate interests pursued by MokingBird, such as securing the service, improving reliability, and detecting fraud, provided these interests are not overridden by your interests or rights; - **Article 6(1)(c)** — processing necessary to comply with a legal obligation applicable to MokingBird Oy; - **Article 6(1)(a)** — consent, where we explicitly request it for optional processing in a given release. Where consent is the legal basis, you may withdraw it at any time without affecting the lawfulness of processing before withdrawal. --- ## 8. How Collaboration and Invitations Work Sortify allows workspace collaboration. A workspace owner or authorized user may: - create a workspace; - generate invite links or invite codes; - add or manage workspace members; - assign or change member roles. If you are invited to a workspace: - the inviter may see the identity used to invite you and your membership status; - your membership, role, invited-by information, join status, and join timestamps may be stored as part of workspace records; - your actions within a workspace may appear in item history and the activity feed for accountability and collaboration purposes. Some shared workspaces also require cloud-provider folder access. This is separate from Sortify membership approval. For example, a Google Drive workspace may require the owner to share the private Sortify workspace folder with the secondary user's Google account before the secondary user can pull encrypted workspace data. A no-approval Sortify invite can still require this cloud access step if the provider folder is not yet accessible to the secondary user. Sortify may store approval request status, requester identity, owner decision status, provider access status, timestamps, and related notification records so the app can distinguish "workspace approval pending" from "cloud access pending." --- ## 9. Cloud Providers and Third-Party Services Sortify may interact with the following third-party providers: - **Firebase Authentication** — identity and account management; - **Firebase Analytics** — anonymous usage analytics; - **Firebase Crashlytics** — crash and error reporting; - **Firebase Performance Monitoring** — performance diagnostics; - **Firebase App Check** — app integrity verification (Android Play Integrity / Apple DeviceCheck in production); - **Google Sign-In** — federated sign-in; - **Sign in with Apple** — federated sign-in (iOS); - **Google Drive** — user-selected cloud sync storage (currently supported); - **Microsoft OneDrive** — user-selected cloud sync storage where enabled; - **Dropbox** — user-selected cloud sync storage where enabled. These providers operate under their own terms and privacy notices and are not controlled by MokingBird. ### 9.1 Google API Data Use and Limited Use Sortify uses Google API data only to provide user-requested sign-in and Google Drive sync functionality. Specifically: - Google Sign-In data is used for account authentication and account identification. - Google Drive data is used to create, locate, share, read, update, and delete Sortify workspace folders and Sortify sync artifacts. - Google Drive access is not used for advertising, profiling, data brokerage, or sale of user data. - Google Drive content is not used to train machine learning or AI models. - Google Drive access is not transferred to third parties except as necessary to provide or improve user-facing Sortify features, comply with law, protect security, or as otherwise permitted by applicable Google API policies. - Users can revoke Sortify's Google access from their Google Account permissions page, and can also disconnect or stop using Google Drive sync inside Sortify where the app version supports that workflow. ### 9.2 Microsoft OneDrive and Microsoft Graph Data Use When OneDrive is used as provider, Sortify uses Microsoft Graph data only to provide user-requested OneDrive sync and collaboration functionality. Specifically: - Microsoft account identity is used to show and validate the connected OneDrive account. - OneDrive file and folder access is used to create, locate, read, update, and delete Sortify workspace sync artifacts. - OneDrive sharing access is used to invite workspace members and revoke access where supported. - OneDrive data is not used for advertising, profiling, sale of user data, or model training. - Users can revoke Sortify's Microsoft account access through Microsoft account consent and app-permission controls. ### 9.3 Dropbox API Data Use When Dropbox support is used as provider, Sortify uses Dropbox API data only to provide user-requested Dropbox sync and collaboration functionality. Specifically: - Dropbox account identity is used to show and validate the connected Dropbox account. - Dropbox file and folder access is used to create, locate, read, update, and delete Sortify workspace sync artifacts. - Dropbox sharing access is used to invite workspace members to shared folders and remove members where supported. - Dropbox data is not used for advertising, profiling, sale of user data, or model training. - Users can revoke Sortify's Dropbox access through Dropbox account app-permission controls. --- ## 10. We Do Not Sell Personal Data **MokingBird does not sell user personal data to third parties.** We do not transfer personal data to advertising networks or data brokers. --- ## 11. Data Sharing We may share limited data only: - with service providers required to operate the app (acting as data processors under appropriate agreements); - when a user intentionally shares workspace or invite information; - when collaboration within a workspace requires member visibility of account, role, and activity information; - where required by law, legal process, or regulatory obligation; - to protect the rights, safety, and integrity of users, MokingBird, or the service. --- ## 12. International Data Transfers Your data may be processed outside your country or the European Economic Area depending on: - the cloud storage provider you choose and the location of their infrastructure; - Firebase and identity provider processing locations; - the app-store or support infrastructure in use. Where required by applicable law, we will rely on appropriate safeguards for international transfers, such as Standard Contractual Clauses (SCCs) approved by the European Commission. --- ## 13. Data Retention We retain data for as long as necessary to: - operate the service and maintain account functionality; - preserve workspace collaboration records for accountability and continuity; - support security, debugging, and fraud prevention; - comply with legal obligations. Because Sortify uses local-first and user-controlled cloud storage patterns, retention of most operational data is controlled by you, not by us. Local device data remains until you delete the app or clear app data. Sync files in your cloud storage remain until you or an authorized workspace owner deletes them. Where encrypted account/device recovery is enabled, encrypted key envelopes and recovery status metadata may be retained while your account or workspace membership is active so that authorized devices can restore access after app reinstall, device loss, or local data clearing. If you request account deletion, we may place account records, memberships, and encrypted key envelopes into a deletion-pending state for a limited recovery window, currently planned as 30 days where supported by the product flow and applicable law. After the permanent deletion point, active recovery records and encrypted key envelopes for that account are deleted, revoked, or cryptographically shredded subject to legal, security, backup, and provider limitations. OAuth tokens are retained on the device only as long as needed for the connected provider session, unless removed by sign-out, account deletion, app data clearing, token expiration, provider revocation, or disconnect flows supported by the app. Provider-side access grants and shared folder permissions remain subject to the provider's own controls and the workspace owner's actions. --- ## 14. Security Measures MokingBird uses a layered security approach including: - Firebase App Check for app integrity verification; - platform secure storage (iOS Keychain / Android Keystore) for sensitive values; - AES-256-GCM encryption for workspace sync files; - encrypted account and workspace key envelopes for recoverable end-to-end encrypted sync; - password-derived recovery unlocking on the user's device, not plaintext key storage by MokingBird; - local PIN and biometric access controls; - session timeout and auto-lock behavior; - role-based workspace access patterns; - sync conflict handling and backoff behavior; - encrypted export options for workspace data. No security system is absolute. We cannot guarantee that unauthorized access, hardware failure, or other events will never occur. --- ## 15. Your Rights Under the GDPR As a data subject in the EEA, you have the following rights: - **Right of access (Art. 15)** — request a copy of your personal data and information about how it is processed; - **Right to rectification (Art. 16)** — request correction of inaccurate personal data; - **Right to erasure (Art. 17)** — request deletion where the legal basis for processing no longer applies; - **Right to restriction of processing (Art. 18)** — request restriction in certain circumstances; - **Right to data portability (Art. 20)** — receive a machine-readable copy of personal data you provided where processing is based on consent or contract; - **Right to object (Art. 21)** — object to processing based on legitimate interests; - **Right to withdraw consent (Art. 7(3))** — withdraw consent at any time without affecting prior lawful processing; - **Right to lodge a complaint** — with the Finnish Data Protection Ombudsman (**tietosuoja.fi**) or the supervisory authority in your EU member state of residence or work. To exercise your rights, contact: **[email protected]** --- ## 16. Account Deletion and Workspace Implications If you delete your account: - your Firebase Authentication account may be disabled, scheduled for deletion, or deleted depending on the account deletion flow in effect; - local app data may remain on your device until you remove it; - encrypted account/device recovery records and key envelopes may be retained during a limited deletion-pending recovery window and then deleted, revoked, or cryptographically shredded after permanent deletion; - shared workspace records may still retain certain historical references necessary for audit, collaboration continuity, or legal compliance unless separately removed; - encrypted synced files in user-controlled cloud storage may remain until removed by the authorized cloud account owner or workspace owner; - cloud-provider sharing permissions may need to be revoked by the workspace owner or through the provider's own account controls, depending on provider behavior and workspace ownership. --- ## 17. Children's Privacy Sortify is not intended for children in circumstances where parental consent is legally required and has not been obtained. We do not knowingly collect personal data from children without appropriate authorization. Contact **[email protected]** if you believe a child has provided data without required consent. --- ## 18. Changes to This Privacy Policy We may update this Privacy Policy from time to time. We will update the "Last updated" date and, where required by law, provide additional notice. Updated versions become effective when published unless applicable law requires a different process. The current version is always available at: **https://sortify.mokingbird.xyz/privacypolicy** --- ## 19. In-App Availability An offline-readable version of this Privacy Policy is available in the Sortify app. The in-app version mirrors this policy for offline reading. The authoritative version is the one published at the URL above. --- ## 20. Contact For privacy, data protection, or legal requests: **MokingBird Oy — Sortify Privacy** Email: **[email protected]** Website: **https://sortify.mokingbird.xyz** --- ## 21. Summary Sortify is built to help users organize shared spaces while keeping authentication secure, limiting unnecessary data collection, and storing synced workspace content in user-controlled and encrypted cloud storage rather than in a centralized MokingBird inventory database. We do not sell your data. Your inventory stays on your device and in your cloud. --- *Sortify is a registered brand of MokingBird Oy, Finland. Governing law: Finland (EU).*
# Sortify Terms of Service
**Last updated:** 16 May 2026
**Effective date:** 16 May 2026
---
## Who We Are
These Terms of Service ("Terms") are published by **MokingBird Oy**, a company registered in Finland. Sortify is a product and registered brand of MokingBird Oy.
In these Terms, "Sortify", "we", "our", and "us" refer to **MokingBird** and the Sortify brand and service operated by MokingBird Oy.
---
## Agreement
By downloading, installing, or using the Sortify mobile application, related websites, or any associated services, you agree to be bound by these Terms. If you do not agree, do not use Sortify.
If you are using Sortify on behalf of a company or other legal entity, you represent that you have the authority to bind that entity to these Terms.
---
## 1. The Service
Sortify is a local-first, shared-space organization and inventory memory service designed to help users track items, rooms, locations, and changes across homes, labs, workshops, facilities, and teams.
Key characteristics:
- Workspace data is stored **locally on your device** in encrypted storage.
- When sync is enabled, workspace data is encrypted before being stored in **your own cloud storage account**.
- MokingBird does not operate a centralized inventory database holding your workspace contents.
- Google Drive workspaces use the connected Google account to create, share, read, and update Sortify workspace folders and encrypted Sortify sync files.
- Other providers, Onedrive and Dropbox are also supported
- Sortify is available on Android and iOS.
---
## 2. Eligibility
You may use Sortify if:
- You have the legal capacity to enter into binding contracts in your jurisdiction (in most EU countries, 18 years old; for users aged 16–17, parental consent may be required depending on local law).
- You are not prohibited from using the service under applicable law.
- You can lawfully enter into and be bound by these Terms.
- If using on behalf of an organization, you are authorized to bind that organization.
Sortify is not intended for children under 16 years of age without appropriate parental or guardian consent.
---
## 3. Accounts and Authentication
### 3.1 Sign-In Methods
Sortify supports the following access methods:
- email and password (credentials managed by Firebase Authentication — we do not store your plaintext password);
- passwordless email sign-in link;
- Google Sign-In;
- Apple Sign-In on supported Apple platforms;
- guest mode with limited functionality (see Section 4).
### 3.2 Account Responsibilities
You are responsible for:
- keeping your account credentials secure and confidential;
- controlling access to your device and linked cloud storage account;
- ensuring registration information is accurate and kept current;
- accpeting or denying join request to your workspaces
- notifying us promptly at **[email protected]** if you suspect unauthorized access.
We reserve the right to require a credential reset or other security action if we detect a compromised account.
---
## 4. Guest Mode
Sortify may permit limited guest access without full registration.
Based on current product behavior and service policy:
- a guest may access limited app flows and browse the interface;
- a guest may **not** create a new workspace;
- a guest may **not** join a workspace or accept workspace invitations;
- a guest may **not** use cloud sync;
- guest data is stored only locally on the device and is not associated with a registered account.
**To create or join a workspace, you must register and log in with a full account.**
---
## 5. Workspaces and Collaboration
### 5.1 Workspace Structure
A workspace is a named shared space (e.g., "Home", "Lab", "Workshop") containing rooms, sublocations, and tracked items. Workspace owners and authorized members may invite other users and assign access roles.
### 5.2 Roles
Each workspace member is assigned one of three roles:
- **Primary User (Owner):** Full administrative control. Can invite and remove members, delete the workspace, manage all settings, and perform all item operations. The primary user will also need to accept or deny join request from secondary user to accept the workspace.
- **Secondary User (Member):** Can add, edit, and move items. Cannot invite users or modify workspace settings.
- **Read-Only:** Can view items, rooms, and history but cannot make any modifications.
### 5.3 Invitations and Collaboration
Only the Primary User can invite others to a workspace. By accepting an invitation and participating in a workspace:
- certain account information (display name, email, role, and activity) will be visible to other authorized workspace members;
- your item edits, additions, and movements are logged in the workspace history for accountability and collaboration continuity;
- the workspace owner can remove you from the workspace at any time.
Some collaboration flows involve two separate access decisions:
- **Sortify workspace approval**, which controls whether a user becomes an active workspace member in the Sortify app; and
- **cloud-provider folder access**, which controls whether the connected cloud provider allows that user to access the encrypted workspace sync folder.
A workspace can be configured as "no approval" inside Sortify while still requiring cloud-provider access if the provider folder is private and has not yet been shared with the joining user's provider account. For example, Google Drive, OneDrive, and Dropbox may require the workspace owner or owner device to grant folder access after the joining user's email is known. Approval requests can be accepted or denied through the notification center or other approval screens provided by the app.
### 5.4 Leaving or Being Removed
You may leave a workspace at any time. The workspace owner may remove you at any time. After leaving or removal, you lose access to the workspace data. Your past activity records (items added, moved, or modified) may remain in the workspace history for operational continuity and accountability.
### 5.5 Workspace Deletion
Only the Primary User can delete a workspace. Deletion removes workspace access in the Sortify application context for authorized members. Because sync files are user-controlled, the workspace owner is responsible for removing associated encrypted sync files from their cloud storage separately.
---
## 6. User-Controlled Cloud Storage
Sortify is designed so that synced workspace data is stored in the user's selected cloud provider account.
At the time of this Terms version, production cloud sync support is Google Drive, OneDrive and Dropbox. Other provider support may be introduced, staged, or tested in later releases.
You are responsible for:
- maintaining lawful access to the linked cloud provider account;
- complying with that provider's own terms and policies;
- understanding that cloud provider outages, account restrictions, quota limits, API changes, or account suspensions may affect Sortify sync functionality.
MokingBird is not responsible for actions, failures, or changes made by your cloud storage provider.
### 6.1 Google Drive Access
For Google Drive workspaces, Sortify currently requests the Google Drive OAuth scope required to support shared-folder collaboration. This lets Sortify operate Sortify workspace folders and encrypted Sortify sync files that may be created by one workspace member and later read or updated by another authorized workspace member.
You acknowledge that:
- Google Drive consent is separate from signing in to Sortify;
- Google Drive may show a consent screen describing the level of Drive access requested;
- Sortify is designed to use Drive access for Sortify workspace folders and Sortify sync artifacts, not to browse unrelated Drive files;
- if you revoke Google Drive access, remove a shared folder permission, decline a provider invite, exceed provider quota, or lose access to the connected provider account, Sortify sync may stop working;
- if you are a workspace owner, you are responsible for managing provider-level sharing permissions for invited and removed members where Sortify cannot automatically complete that provider operation.
### 6.2 OneDrive Access
Where OneDrive sync is enabled, Sortify uses Microsoft identity and Microsoft Graph APIs to operate Sortify workspace folders and encrypted Sortify sync files in the user's OneDrive account.
You acknowledge that:
- Microsoft account consent is separate from signing in to Sortify;
- OneDrive sync may require permissions to read and write Sortify workspace files, read account identity, maintain offline access, and manage sharing where collaboration is used;
- Sortify is designed to use OneDrive access for Sortify workspace folders and Sortify sync artifacts, not to browse unrelated OneDrive files;
- OneDrive shared workspace use may require members to accept Microsoft sharing invitations or otherwise have provider-level access to the workspace folder;
- if you revoke Microsoft account access, remove a shared folder permission, exceed OneDrive quota, or lose access to the connected Microsoft account, Sortify sync may stop working.
### 6.3 Dropbox Access
Where Dropbox sync is enabled, Sortify uses Dropbox OAuth and Dropbox API permissions to operate Sortify workspace folders, encrypted Sortify sync files, and provider sharing controls.
You acknowledge that:
- Dropbox account consent is separate from signing in to Sortify;
- Dropbox sync may require permissions to read and write Sortify workspace files, read metadata, read account identity, and manage shared folders where collaboration is used;
- Sortify is designed to use Dropbox access for Sortify workspace folders and Sortify sync artifacts, not to browse unrelated Dropbox files;
- Dropbox collaborative workspaces may require a shared folder and may require members to accept or mount that shared folder in Dropbox;
- if you revoke Dropbox access, remove a shared folder permission, exceed Dropbox quota, or lose access to the connected Dropbox account, Sortify sync may stop working.
### 6.4 Cloud Provider Approval and Sync Reliability
Provider access is a dependency outside MokingBird's direct control. Even if Sortify membership is active, sync can fail if the provider denies access to the workspace folder, the user has not accepted the provider sharing prompt, the provider token is expired, or the provider API is unavailable.
Sortify may show blocking retry, reconnect, or approval states until the provider access issue is resolved. These states are intended to prevent a secondary user from entering an empty or incorrect workspace before the encrypted owner snapshot can be pulled.
---
## 7. Acceptable Use
You agree not to use Sortify to:
- engage in unlawful, fraudulent, abusive, or deceptive activity;
- attempt unauthorized access to accounts, devices, workspaces, or cloud storage belonging to others;
- interfere with app integrity, sync behavior, security, or availability;
- upload malicious code, malware, or harmful payloads;
- violate the privacy, confidentiality, export control, sanctions, intellectual property, or employment obligations of any party;
- facilitate illegal data collection or surveillance;
- conduct unauthorized security testing of Sortify or connected systems.
---
## 8. Your Content
You retain ownership of content you create or store through Sortify, including workspace names, item metadata, notes, tags, photos, invite content, and exports.
You represent that:
- you have the right to use, store, and share that content through the service;
- your content does not infringe third-party rights or violate applicable law;
- your content does not contain material that is unlawful, defamatory, or harmful.
MokingBird does not routinely access or review operational content stored in Sortify workspaces. Because Sortify is local-first and content is encrypted before sync, we do not have access to plaintext workspace content in the ordinary course of operations.
---
## 9. No Professional Advice
Sortify is an organizational productivity tool. It is not:
- legal advice;
- medical advice;
- compliance certification;
- laboratory safety certification;
- engineering or product safety certification;
- regulated records management;
- tax, accounting, or financial advice;
- a substitute for any professional judgment required in your field.
Do not rely on Sortify as the sole system for decisions involving legal, medical, regulatory, or safety consequences. Always maintain independent verification processes appropriate to your environment.
---
## 10. Service Plans and Usage Limits
Sortify may be offered under different service plans. The table below reflects the current intended launch policy and may vary by platform, region, rollout stage, and commercial updates:
| Plan | Price | Workspaces | Members | Items |
|---|---|---|---|---|
| **Free** | Free | 3 | 5 invited max | 20 total |
| **Premium** | EUR 9.99 / month | 20 | Unlimited | Unlimited |
| **Enterprise** | EUR 29.99 / month | 50 | Unlimited | Unlimited |
Detailed plan terms are described in the Sortify pricing documentation. Limits are per account across all workspaces unless otherwise specified.
Plan availability, entitlement checks, and limit enforcement are applied as implemented in active product releases.
Exceeding Free plan limits may restrict certain operations until you upgrade or reduce usage within the applicable limits.
---
## 11. Fees, Billing, and Renewal
If you subscribe to a paid plan:
- fees are charged through billing channels made available for your plan (for example Google Play or Apple App Store, and where separately agreed enterprise invoicing);
- subscriptions may renew automatically at the end of each billing period unless cancelled in advance through the applicable platform or billing provider;
- taxes, VAT, and similar charges may apply depending on your jurisdiction;
- refund rights may be governed by applicable consumer protection law and app-store or billing-provider policies;
- enterprise terms may be governed by a separate commercial agreement.
Paid plan availability, billing mechanics, and renewal handling may vary by platform and market.
For billing questions, contact: **[email protected]**
---
## 12. Availability and Service Changes
We may:
- modify, update, or discontinue features, integrations, or supported cloud providers;
- change plan limits or pricing with reasonable advance notice;
- temporarily suspend the service for maintenance;
- discontinue the service with reasonable advance notice.
We do not guarantee that every feature described in documentation or marketing materials is available in every version, region, device, or cloud provider configuration at all times. Sortify is an evolving product and some features, pricing, and supported providers may change over time.
---
## 13. Security and Backups
Sortify uses security measures intended to protect users and workspace data, including local secure storage, AES-256-GCM encryption for sync artifacts, Firebase App Check, PIN protection, biometric unlock, and session timeout controls.
However:
- no security system is perfectly secure;
- user device compromise may expose local data;
- user cloud account compromise may affect synced encrypted files;
- misconfigured workspace membership or excessive invite sharing may expose workspace content to unintended parties.
MokingBird is not responsible for unauthorized access to your data resulting from device compromise, credential sharing, or mismanagement of workspace invitations.
**Data backup and recovery:** because Sortify is local-first, the primary copy of your data is on your device. Enabling cloud sync provides an encrypted secondary copy in your cloud account. Encrypted account/device recovery may help restore synced workspaces after app reinstall, local data clearing, or device loss, but recovery depends on successful sync, retained backend membership/recovery records, continued cloud-provider access, and the availability of the applicable account password, recovery password, or an already-unlocked trusted device.
MokingBird does not store plaintext workspace keys or plaintext recovery passwords. If you forget the applicable password and lose all unlocked devices, encrypted workspace recovery may be impossible. You are responsible for verifying that sync and recovery protection are functioning and for maintaining any additional backups appropriate to your needs.
Cloud sync uses provider APIs and provider permissions. MokingBird cannot guarantee that Google Drive, OneDrive, Dropbox, or any future cloud provider will remain available, unchanged, or compatible with Sortify. Provider policy changes, OAuth verification requirements, quota limits, or account restrictions may affect sync availability.
---
## 14. Privacy
Use of Sortify is also governed by the **Sortify Privacy Policy**, which is incorporated into these Terms by reference.
Privacy Policy: **https://sortify.mokingbird.xyz/privacypolicy**
---
## 15. Intellectual Property
### 15.1 Our Rights
Sortify, its branding, interface elements, design assets, documentation, and service materials are owned by or licensed to MokingBird Oy except where otherwise stated. Nothing in these Terms grants you a license to use our trademarks, brand names, or logos.
### 15.2 License to Use Sortify
Subject to these Terms, MokingBird grants you a limited, non-exclusive, non-transferable, revocable license to use Sortify for your personal or internal business purposes.
### 15.3 Feedback
If you provide feedback, suggestions, or product ideas, we may use them to improve Sortify without obligation to compensate you unless otherwise agreed in writing.
---
## 16. Suspension and Termination
### 16.1 By Us
We may suspend or terminate your access to Sortify where reasonably necessary, including:
- material breach of these Terms;
- unlawful use, fraud, or abuse;
- security risk to users or the service;
- unpaid fees on paid plans;
- misuse of infrastructure or provider integrations.
We will provide notice of termination where reasonably practicable, except where immediate action is necessary.
### 16.2 By You
You may stop using Sortify at any time. You can request deletion of your account through the app settings or by contacting **[email protected]**, subject to technical limitations, legal obligations, and third-party provider retention behavior.
Upon account deletion:
- your Firebase Authentication account may be disabled, scheduled for deletion, or deleted depending on the deletion flow in effect;
- local device data remains until you uninstall the app or clear app data;
- limited account, membership, and encrypted recovery records may be retained in a deletion-pending state for up to 30 days where supported, so you can cancel deletion or restore the account during that window;
- after permanent deletion, active encrypted recovery records and key envelopes for your account are deleted, revoked, or cryptographically shredded subject to legal, security, backup, and provider limitations;
- sync files in your cloud storage remain until you delete them;
- certain workspace history records may be retained for collaboration continuity and compliance;
- cloud-provider folder permissions may remain until revoked by the workspace owner or through the provider's own access controls.
---
## 17. Disclaimers
To the maximum extent permitted by applicable law, Sortify is provided on an **"as is"** and **"as available"** basis without warranties of uninterrupted availability, merchantability, fitness for a particular purpose, or non-infringement, except as required by mandatory law.
---
## 18. Limitation of Liability
To the maximum extent permitted by applicable law:
- MokingBird is **not liable** for indirect, incidental, consequential, special, exemplary, or punitive damages arising from or related to your use of or inability to use Sortify, even if advised of the possibility of such damages;
- MokingBird's total aggregate liability to you for any claim arising from these Terms or use of Sortify shall not exceed the amount you paid to MokingBird in the 12 months preceding the claim (or EUR 10 if you have not paid anything).
**Nothing in these Terms limits or excludes liability that cannot be lawfully excluded under mandatory Finnish law, EU consumer protection law, or other mandatory rights applicable in your jurisdiction.**
---
## 19. Enterprise Terms
If you use Sortify under an enterprise agreement, the enterprise agreement controls to the extent it conflicts with these public Terms.
---
## 20. Governing Law and Disputes
These Terms are governed by the laws of **Finland**, without regard to conflicts-of-law principles, unless mandatory law in your jurisdiction of residence provides additional protections.
We encourage you to contact us first at **[email protected]** to resolve any dispute informally. EU consumers may use the EU Online Dispute Resolution platform at **https://ec.europa.eu/consumers/odr**. Nothing in this section prevents you from invoking mandatory consumer dispute resolution mechanisms available under Finnish or EU law.
---
## 21. Changes to These Terms
We may update these Terms from time to time. When we make material changes, we will notify you within the app or by email at least 30 days before the changes take effect. Updated Terms become effective when published or otherwise communicated, unless applicable law requires a different approach.
Current Terms are always available at: **https://sortify.mokingbird.xyz/termsofservice**
---
## 22. App Store Additional Terms
If you access Sortify through the Apple App Store or Google Play Store, you also remain subject to the marketplace's own terms, payment rules, and device platform conditions. In the event of a conflict, the marketplace terms govern for matters within the marketplace's jurisdiction.
---
## 23. Entire Agreement
These Terms, together with the Privacy Policy and any applicable plan or enterprise terms, constitute the entire agreement between you and MokingBird regarding Sortify.
---
## 24. Contact
For legal, billing, and support matters:
**MokingBird Oy — Sortify**
Email: **[email protected]**
Website: **https://sortify.mokingbird.xyz**
---
*Sortify is a registered brand of MokingBird Oy.*
# Sortify Security Overview **Last updated:** 16 May 2026 **Published by:** MokingBird Oy --- ## Introduction Security is a foundational design principle of Sortify, not an afterthought. Because Sortify is used to track real-world items in homes, labs, workshops, and businesses — spaces that are personal and sometimes sensitive — we built the app around a model that minimizes exposure of your data while enabling secure, seamless collaboration. This document describes the security architecture, controls, and shared responsibility model that underpin Sortify. It is intended for users, workspace owners, IT administrators evaluating Sortify for team use, and app store reviewers. --- ## 1. Security Philosophy Sortify is built on three principles: **1. Local-first.** Your data stays on your device by default. There is no requirement to upload your workspace contents to MokingBird servers. The primary copy of your data is always the local device database. **2. User-controlled cloud.** When sync is enabled, your workspace data is encrypted before it leaves your device and stored in a cloud account you own and control. MokingBird cannot read the contents of your synced data. Where recovery protection is enabled, MokingBird may store encrypted key envelopes in Firebase/Firestore, but not plaintext workspace contents or plaintext workspace keys. **3. Least practical privilege.** Each component only has access to what it needs for the implemented workflow. Workspace members have role-appropriate access. The app requests minimum practical permissions from the operating system and cloud providers. For Google Drive collaboration, the current shared-folder model requires broader Drive access than `drive.file` because secondary users must read and update owner-created Sortify files in a shared folder. --- ## 2. Authentication and Identity ### 2.1 Identity Providers Sortify uses **Firebase Authentication** (Google LLC) to manage user identity. Credentials are managed by an industry-standard identity platform, not stored in a custom database. Supported sign-in methods: | Method | Notes | |---|---| | Email + Password | Password hashed by Firebase; MokingBird never stores plaintext passwords | | Email Link (Passwordless) | One-time sign-in link sent to email; no password required | | Google Sign-In | OAuth 2.0; scopes: `email` and `profile` | | Apple Sign-In | OAuth via Apple; iOS only | Related account features include: password reset email, email verification, profile update support, and account deletion flow. ### 2.2 Firebase App Check Sortify initializes **Firebase App Check** at startup to verify that requests originate from the genuine Sortify application. | Platform | Development | Production | |---|---|---| | Android | Debug provider | **Play Integrity** | | iOS | Debug provider | **DeviceCheck** | App Check helps prevent unauthorized clients from accessing Firebase backend services even if an API key were exposed. ### 2.3 Password Policy When using email/password authentication: - Minimum length: **8 characters** - Must include: at least **1 uppercase letter** and **1 number** - Maximum length: **128 characters** ### 2.4 Account Lockout - Sortify applies authentication abuse protections including provider-side rate limiting and app-side safeguards. - Exact lockout thresholds, timing, and enforcement behavior may vary by platform and release. - Firebase Authentication provides additional server-side rate limiting controls. ### 2.5 Session Management - Sessions maintained by Firebase Authentication tokens, refreshed automatically while active - App-level inactivity lock behavior is implemented with a 15-minute baseline in current releases - On timeout, the app returns to the lock screen (PIN or biometric prompt) --- ## 3. App-Level Access Controls (PIN and Biometric Lock) ### 3.1 PIN Lock - Users can set a **numeric PIN** to protect the app independently of the device lock screen - The PIN is hashed and stored in platform **secure storage** (iOS Keychain / Android Keystore) - The plaintext PIN is never stored or transmitted - PIN data is local to the device and never synced ### 3.2 Biometric Lock - On compatible devices, users can enable fingerprint or face unlock as an alternative to PIN entry - Biometric processing is handled entirely by the **device operating system** (Apple Face ID/Touch ID, Android BiometricPrompt) - Sortify receives only a success/failure signal — no biometric template is ever accessed, stored, or transmitted by the app - Biometric opt-in status is stored locally as a preference flag only ### 3.3 Auto-Lock - The app automatically locks after 15 minutes of inactivity - Auto-lock behavior and settings availability may vary by release --- ## 4. Local Data Protection ### 4.1 SQLite Database Sortify stores all operational workspace data (items, rooms, history, workspace metadata) in a **local SQLite database** stored in the app's private data directory: - Not accessible to other apps (enforced by Android and iOS sandboxing) - Not readable without root/jailbreak access on standard devices ### 4.2 Secure Storage Sensitive values are stored using platform-native secure storage: | Platform | Mechanism | |---|---| | Android | Android Keystore / EncryptedSharedPreferences (`FlutterSecureStorage`) | | iOS | iOS Keychain Services | Secure storage is used for: workspace encryption keys, PIN hash data, session-related tokens, and other sensitive local security values. ### 4.3 Photo Storage Item photos are stored in the app's private directory, not accessible to other apps. When synced, photos are encrypted as part of the workspace sync artifacts. --- ## 5. Workspace Encryption ### 5.1 Algorithm Sortify uses **AES-256-GCM** for all workspace sync encryption. | Parameter | Value | |---|---| | Algorithm | AES-256-GCM | | Key length | 256 bits (32 bytes) | | IV (Initialization Vector) length | 96 bits (12 bytes) | | Authentication tag | 128 bits (GCM standard) | | Key generation | Cryptographically secure random (`Random.secure()`) | GCM mode provides both **confidentiality** (data cannot be read without the key) and **authentication** (tampered ciphertext is rejected). ### 5.2 Key Management - Each workspace has its own unique AES-256 encryption key - Keys are generated using a cryptographically secure random number generator - Keys are stored in **platform secure storage** only — never in the database or app files in plaintext - A short **key fingerprint** (SHA-256 hash of the key, 16-character base64 prefix) is stored in the workspace record to verify key integrity without exposing the key - Keys are **workspace-scoped** — each workspace has a different key, limiting the blast radius of any key compromise Sortify's recovery architecture adds an account-level envelope layer without giving MokingBird plaintext keys: - each account may have an **AccountMasterKey** generated on-device; - each workspace keeps its own **WorkspaceKey** for encrypting sync files; - WorkspaceKeys may be wrapped into per-user encrypted workspace key envelopes; - the AccountMasterKey may be wrapped into an encrypted account key envelope; - the unlock key is derived on the user's device from the user's Sortify account password or, for OAuth-only accounts, a user-created Sortify recovery password; - Firestore stores encrypted envelopes, salts, KDF parameters, status fields, and timestamps, but not plaintext passwords, AccountMasterKeys, or WorkspaceKeys. Firebase Authentication proves identity. It is not, by itself, the encryption secret. If a user forgets the applicable password and loses all unlocked devices, encrypted workspace recovery may be impossible because MokingBird cannot decrypt the envelopes for the user. ### 5.3 Sync File Format When workspace data is prepared for sync: 1. The workspace database is serialized 2. A fresh IV is generated per encryption operation 3. Data is encrypted with the workspace key using AES-256-GCM 4. The resulting file is uploaded to the cloud storage folder Format: `[12-byte IV][AES-256-GCM ciphertext with 128-bit auth tag]` ### 5.4 Key Rotation Sortify includes a key-rotation framework for workspace encryption keys. Rotation behavior, schedule, and rollout policy may vary by release and operational policy. Key rotation should be used deliberately, such as after member removal, suspected compromise, ownership changes, or explicit security action. Aggressive time-based key rotation is avoided because collaborative encrypted workspaces require stable access to historical encrypted snapshots and per-member envelopes. --- ## 6. Sync Security ### 6.1 Cloud Authorization Sortify accesses cloud storage using **OAuth 2.0** obtained through the provider's standard consent flow. At the time of this document version, production sync support is Google Drive, OneDrive, and Dropbox. OAuth tokens are stored in device secure storage. ### 6.1.1 Google Drive For Google Drive, Sortify currently uses: `https://www.googleapis.com/auth/drive` This is broader than the previous `drive.file` scope. The reason is collaboration: a workspace owner creates the Sortify folder, `metadata.json`, and encrypted workspace database file, while a secondary member must later read and update those same owner-created files after the folder is shared with them. In testing, `drive.file` was insufficient for this shared-folder model because it can hide files that were not created by the signed-in collaborator's own OAuth session. The security boundary is therefore implemented by app behavior and workspace folder references: - Sortify stores the workspace cloud folder ID in the local workspace record. - Drive sync operations resolve the saved Sortify workspace folder ID instead of scanning arbitrary Drive locations. - Sync reads and writes Sortify sync artifacts such as `metadata.json` and encrypted database snapshots. - Sortify does not intentionally index, copy, analyze, or upload unrelated Google Drive files. - Google OAuth verification is required before production users should see a normal verified consent experience for this broader Drive scope. ### 6.1.2 Microsoft OneDrive When OneDrive is enabled, Sortify uses Microsoft identity and Microsoft Graph OAuth permissions to operate Sortify workspace folders and encrypted Sortify sync files. The current implementation direction uses permissions for: - file read/write access for Sortify workspace artifacts; - Microsoft account identity display and validation; - offline access so sync can continue without requiring a new interactive login on every sync; - sharing operations where OneDrive workspace collaboration is enabled. Security boundaries: - OAuth tokens are stored in platform secure storage. - OneDrive item IDs, paths, ETags, and sharing records are used only for Sortify workspace sync and provider access management. - Sortify uses OneDrive ETags for optimistic concurrency control where supported. - Sortify does not intentionally browse, index, or analyze unrelated OneDrive content. ### 6.1.3 Dropbox When Dropbox is enabled, Sortify uses Dropbox OAuth permissions to operate Sortify workspace folders, encrypted Sortify sync files, metadata, and shared-folder membership. The current implementation direction uses permissions for: - file content read/write access for Sortify sync artifacts; - file metadata read/write access for locating and versioning Sortify files; - account identity display and validation; - sharing read/write access for collaborative workspace folders. Security boundaries: - OAuth tokens are stored in platform secure storage. - Dropbox folder paths, shared folder IDs, revision IDs, and sharing records are used only for Sortify workspace sync and provider access management. - Sortify uses Dropbox revision IDs for optimistic concurrency control where supported. - Dropbox App Folder mode may be insufficient for collaborative sharing; shared workspaces can require Dropbox app configuration that supports shared folder operations. - Sortify does not intentionally browse, index, or analyze unrelated Dropbox content. ### 6.2 Sync Behavior Current sync security behavior includes: - local-first data handling; - encrypted database and change log upload before cloud transfer; - metadata-driven sync orchestration (metadata file contains only non-sensitive operational fields); - cloud-folder access checks during join before active secondary membership is finalized; - pull-only initial join sync so secondary users do not bootstrap or overwrite an owner workspace snapshot; - blocking states when provider folder access or initial pull fails; - offline queue handling with a maximum queue age of 7 days; - retry and exponential backoff behavior; - conflict detection and resolution pipeline; - optimistic concurrency controls using provider version tokens where supported; - provider backoff when recurring configuration failures occur. ### 6.3 What MokingBird Cannot Access Because sync artifacts are encrypted with workspace keys that are stored locally or recoverable only through encrypted key envelopes: - MokingBird cannot read the contents of your synced workspace data; - MokingBird does not store plaintext WorkspaceKeys, plaintext AccountMasterKeys, or plaintext recovery/account passwords; - Firebase/Firestore recovery metadata alone is not enough to decrypt workspace contents; - even if cloud storage credentials were compromised at the provider level, data remains protected by AES-256-GCM encryption; - the metadata file contains only non-sensitive operational metadata (workspace ID, sync timestamps, version). ### 6.4 Conflict Resolution When the same workspace is modified on multiple devices: - the sync engine detects conflicts by comparing change journals; - conflicting changes are surfaced to the user via the conflict resolution dialog; - all changes, including overwritten values, are preserved in the change journal for audit purposes. --- ## 7. Export Security Sortify includes secure export functionality supporting: - **Encrypted JSON export** — workspace data exported using the workspace encryption key path; - **Plain JSON export** — unencrypted export for user portability; - **CSV export** — for spreadsheet-compatible use. Users should treat plain export files as sensitive data and store them appropriately. --- ## 8. Workspace Access Control ### 8.1 Role-Based Permissions | Permission | Primary (Owner) | Secondary (Member) | Read-Only | |---|---|---|---| | View items | ✓ | ✓ | ✓ | | Add items | ✓ | ✓ | ✗ | | Edit items | ✓ | ✓ | ✗ | | Move items | ✓ | ✓ | ✗ | | Delete items | ✓ | ✓ | ✗ | | Invite members | ✓ | ✗ | ✗ | | Remove members | ✓ | ✗ | ✗ | | Manage workspace settings | ✓ | ✗ | ✗ | | Delete workspace | ✓ | ✗ | ✗ | ### 8.2 Invitation Control Only the Primary User can generate workspace invitations. The Primary User can revoke access by removing a member at any time. Sortify distinguishes two approval concepts: - **Sortify workspace approval:** the owner approves whether a user becomes an active workspace member. - **Cloud provider access approval:** the owner or owner device grants access to the private cloud folder that stores encrypted sync artifacts. For private cloud providers such as Google Drive, OneDrive, and Dropbox, provider folder access may be required even when a workspace is configured for no manual Sortify approval. Firebase membership alone does not make a private provider folder accessible. Sortify therefore tracks approval states separately so the app can show whether a user is waiting for Sortify workspace approval or for Google Drive, OneDrive, or Dropbox folder access. ### 8.3 Data Isolation Workspace data is scoped by `workspace_id` throughout the data model. A user with access to one workspace cannot access data from another workspace they are not a member of. This is enforced at the database query level. --- ## 9. Audit Trail and History Sortify maintains a complete audit trail: - every item records `added_by` (user ID) and `added_at` (timestamp); - every modification records `last_updated_by` and `last_updated_at`; - a **change journal** logs every field-level change (old value, new value, user, timestamp); - item **movement history** tracks every location change over time; - the workspace **activity feed** aggregates recent operations by all members. History is stored locally and synced. Secondary users cannot delete workspace history. --- ## 10. Error, Analytics, and Monitoring Sortify initializes: - **Firebase Crashlytics** — crash diagnostics, stack traces, app state at time of crash; - **Firebase Analytics** — anonymous usage patterns, screen views, feature engagement; - **Firebase Performance Monitoring** — performance issue tracking, sync and startup timings. Crash and analytics reports are designed not to include workspace inventory content or photos. Telemetry configuration may vary by release and environment. --- ## 11. Security Responsibilities ### 11.1 What MokingBird Is Responsible For - implementing reasonable application security controls; - protecting local secrets using platform secure storage; - encrypting synchronized workspace data before upload; - maintaining app integrity measures through Firebase App Check; - supporting secure auth flows and session management; - improving diagnostics, monitoring, and abuse resistance; - applying patches in response to identified vulnerabilities. ### 11.2 What Users Are Responsible For | User Responsibility | Why It Matters | |---|---| | Keeping device secure | Local database accessible on rooted/jailbroken devices | | Protecting login credentials | Compromised credentials allow unauthorized account access | | Securing linked cloud storage account | Cloud account holds encrypted sync files; MFA is recommended | | Managing workspace membership carefully | Invited members gain access to workspace data | | Enabling PIN / biometric lock | Protects app when device is unlocked | | Reporting security issues | Contact [email protected] | --- ## 12. Known Security Boundaries Users should be aware of the following: - **Rooted or jailbroken devices:** Local database and secure storage may be more vulnerable. Not recommended for sensitive use cases. - **Shared device risk:** If multiple people share a device without PIN/biometric lock, workspace data is accessible to anyone who unlocks the device. - **Cloud account security:** Security of synced data depends on security of your cloud storage account. MFA on connected accounts is strongly recommended. - **Workspace membership:** Adding untrustworthy members gives them access to workspace data. Manage invitations carefully. - **Compliance:** Sortify is not certified for regulated industries (healthcare, finance, defense). Organizations with regulatory requirements must assess suitability independently. - **Analytics and diagnostics:** Firebase services still process limited technical data even in areas where workspace content is local-only. --- ## 13. Public Security Trust Themes For website and app-store trust messaging, the strongest accurate claims about Sortify are: - Your data, your cloud - AES-256-GCM encrypted sync - Local-first architecture - Role-based shared workspace collaboration - Device security support with PIN and biometrics - App integrity protections through Firebase App Check (Play Integrity / DeviceCheck) --- ## 14. Security Incident Response If MokingBird becomes aware of a material security vulnerability or incident: - we will investigate and prioritize a fix based on severity; - we will apply patches as quickly as practicable; - we will communicate with affected users where required by applicable law or where notification would materially help users protect themselves; - we may temporarily restrict affected features to contain an active risk. **To report a security vulnerability:** **[email protected]** Please describe the issue, steps to reproduce, and potential impact. We will respond to responsible disclosures promptly. --- ## 15. Third-Party Security Dependencies | Component | Provider | Purpose | |---|---|---| | Firebase Authentication | Google LLC | User identity and credential management | | Firebase App Check | Google LLC | App integrity (Play Integrity / DeviceCheck) | | Firebase Crashlytics | Google LLC | Crash and error reporting | | Firebase Analytics | Google LLC | Anonymous usage analytics | | Firebase Performance Monitoring | Google LLC | Performance diagnostics | | Google Drive API | Google LLC | Cloud sync storage (user's own account) | | Android Keystore / iOS Keychain | Google / Apple | Secure key and credential storage | | Deep link routing | Internal | Invite and collaboration link handling | | Flutter encrypt package | Open source | AES-256-GCM implementation | --- *Sortify is a registered brand of MokingBird Oy, Finland.* *Security document version 1.1 — May 2026*
# Sortify Disclaimer **Last updated:** 16 May 2026 **Published by:** MokingBird Oy --- This disclaimer applies to the Sortify mobile application, website, content, policies, examples, use-case articles, and all related materials provided by **MokingBird Oy**. In this document, "Sortify", "we", "our", and "us" refer to **MokingBird** and the Sortify brand and service operated by MokingBird Oy. --- ## 1. General Information Only Sortify is an organizational software product intended to help users manage item locations, workspace collaboration, and shared-space memory. Sortify content, help materials, website pages, policies, examples, and use-case articles are provided for general informational purposes only. They do not constitute professional advice of any kind. --- ## 2. Not Professional Advice Sortify is not, and should not be treated as: - legal advice; - compliance advice or compliance certification; - medical advice; - laboratory safety certification; - engineering or product safety certification; - inventory accounting advice; - tax, financial, or procurement advice; - regulated records management advice; - a substitute for any professional judgment required in your field. Do not rely on Sortify as the sole system for decisions involving legal, medical, regulatory, or safety consequences. Always maintain independent verification processes and professional judgment appropriate to your environment. Nothing in Sortify's marketing materials, examples, tutorials, use-case articles, or documentation should be interpreted as creating a warranty or professional assurance beyond what is expressly stated in the final legal terms. --- ## 3. General Disclaimer of Warranties To the maximum extent permitted by applicable law, Sortify is provided on an **"as is"** and **"as available"** basis. **MokingBird Oy makes no warranties or representations** of any kind, express or implied, regarding: - the completeness, accuracy, or reliability of data stored, displayed, or retrieved through Sortify; - the uninterrupted or error-free operation of the application; - the suitability of Sortify for any specific purpose or use case; - the availability of any specific feature at any given time; - results obtained from using Sortify. MokingBird expressly disclaims all warranties, whether express, implied, statutory, or otherwise, including but not limited to implied warranties of merchantability, fitness for a particular purpose, and non-infringement. **This disclaimer does not apply to the extent that mandatory consumer protection legislation in Finland or your country of residence provides non-waivable rights.** --- ## 4. User Responsibility Users are responsible for: - the accuracy and completeness of the data they enter; - the users they invite into workspaces and the access they grant; - the cloud accounts they connect and the security of those accounts; - how they use, export, or synchronize data; - the security of their devices and credentials; - verifying critical inventory, safety, or regulatory records independently where necessary; - maintaining any additional records, controls, approvals, or audit mechanisms required by law, policy, or internal governance in their environment. --- ## 5. Shared Workspace Caution Because Sortify supports shared workspaces, item history, invites, and collaborative updates: - other authorized users may update, move, or delete shared records; - human error can occur — Sortify reflects what users enter, not necessarily ground truth; - sync conflicts or stale device states can affect the timing or visibility of changes; - users should verify critical decisions independently and not rely solely on Sortify data for high-stakes determinations. The workspace owner is responsible for managing membership appropriately. Adding untrustworthy members gives them access to workspace data. --- ## 6. Data Loss Despite best efforts to implement reliable local and cloud sync, **data loss can occur** due to: - device failure, loss, theft, or factory reset; - accidental deletion by the user or workspace members; - sync errors or conflicts; - cloud storage account suspension or changes by the cloud provider; - loss of the password or trusted device needed to unlock encrypted account/device recovery; - software bugs or unexpected behavior; - operating system updates that affect app behavior. **MokingBird is not responsible for any loss of data.** Enable workspace sync, verify sync and recovery protection are functioning, and maintain independent records of critical inventory information. --- ## 7. Cloud Provider Dependency Certain Sortify features depend on third-party services such as Firebase (Google), Google Sign-In, Sign in with Apple, and cloud storage providers. At the time of this document version, production cloud sync support is Google Drive, OneDrive, and Dropbox, and additional providers may be introduced later. Sortify is not responsible for: - outages, policy changes, account restrictions, API limitations, or terms imposed by those third parties; - data processed by third-party services under their own policies; - changes to cloud provider APIs or access policies that disrupt sync functionality. --- ## 8. Security and Data Caution Sortify is designed with security measures including encryption, encrypted key envelopes for recovery, PIN, biometrics, Firebase App Check, and app-integrity controls. However: - no software system is perfectly secure; - no cloud provider is perfectly secure; - device compromise, credential theft, or user misconfiguration may expose data; - security of synced data depends on the security of the linked cloud storage account; - MokingBird cannot reset or recover encrypted workspace contents if the user loses all unlock secrets and all trusted unlocked devices. MokingBird is not liable for unauthorized access to your data resulting from device compromise, credential sharing, or mismanagement of workspace invitations. --- ## 9. Regulated and Safety-Critical Environments If Sortify is used in a lab, facility, workshop, business, or regulated setting: - Sortify should be considered a support and coordination tool, not the sole compliance or safety system; - users must maintain any additional records, controls, approvals, or audit mechanisms required by law, policy, or internal governance; - organizations operating in regulated industries (healthcare, finance, defense, critical infrastructure) must conduct their own legal, security, and compliance assessment before deployment. Sortify is not certified as a compliance platform for any regulated industry use case. --- ## 10. Beta and Evolving Product Warning Sortify is an evolving product. Features, pricing, plan limits, provider support, user flows, wording, and behavior may change over time. We do not guarantee that any particular feature, integration, or capability will remain available in any specific form. --- ## 11. Limitation of Liability To the maximum extent permitted by applicable law: **MokingBird Oy, its directors, employees, contractors, and agents shall not be liable for any:** - indirect, incidental, or consequential damages — including loss of profits, loss of data, business interruption, or reputational damage arising from use of or inability to use Sortify; - direct damages exceeding the amount you paid to MokingBird in the 12 months preceding the claim (or EUR 10 if you have not paid anything); - damages arising from reliance on inaccurate, missing, or corrupted data; - damages caused by unauthorized access by third parties to your device, account, or cloud storage; - damages resulting from actions of other workspace members; - damages resulting from cloud provider outages, API changes, or account suspensions. **Nothing in this disclaimer limits liability where such limitation is prohibited by mandatory Finnish consumer protection law, EU consumer rights law, or other mandatory rights in your jurisdiction.** --- ## 12. External Content and Links The Sortify website or app may reference external services, providers, or websites. MokingBird is not responsible for the content, policies, practices, or availability of third-party services. References to third parties do not constitute an endorsement beyond their functional role in Sortify. --- ## 13. Governing Law This Disclaimer is governed by the laws of **Finland**. To the extent that mandatory consumer protection law in your country of residence provides rights that cannot be excluded by this Disclaimer, those rights are not affected. --- ## 14. Contact For questions about this Disclaimer or about Sortify: **MokingBird Oy — Sortify** Email: **[email protected]** Website: **https://sortify.mokingbird.xyz** --- *Sortify is a registered brand of MokingBird Oy, Finland.* *Disclaimer version 1.1 — May 2026*
Why the comparison to traditional inventory tools misses the point entirely. The real problem Sortify solves.
A household use case: how one family stopped the "where is it?" conversation almost entirely.
How research labs use Sortify to track shared equipment, reagents, and tools across rotating team members.
From photography studios to repair shops — how small businesses track tools, equipment, and operational inventory.
How workshops, makerspaces, and co-working spaces use Sortify to keep shared spaces organized.
An inside look at how Sortify keeps shared spaces in sync across devices and cloud providers — without ever letting a server read your data.
*Why the comparison to traditional inventory tools misses the point entirely* --- When people first hear about Sortify, they reach for a familiar category: "Oh, it's an inventory app." And in the broadest sense, they're right — Sortify tracks physical items. But that framing obscures what makes Sortify genuinely different, and why the apps that have existed before it largely fail the people who most need this kind of tool. This piece explains the distinction — not to disparage other tools, but to make clear what Sortify is optimized for, because the design is deliberate and the difference is real. --- ## What Traditional Inventory Apps Are Built For The inventory management software category has been around for decades. Most of it was built for a specific context: **business stock control**. Counting units. Managing warehouses. Tracking SKUs. Triggering reorders when stock falls below a threshold. Integrating with point-of-sale systems. Generating purchase orders. Running valuation reports. These are real and important problems. But they are fundamentally different from the problem that Sortify addresses. The traditional inventory app answers the question: **"How many do we have?"** It is built for businesses that sell or consume goods at scale. The location of a given unit doesn't matter much — what matters is the aggregate count, the reorder point, and the unit cost. An item is an SKU. A location is a bin, a warehouse, or a store. The "who" is usually a system, not a person. Traditional inventory apps are optimized for **counting**. Sortify is optimized for **finding**. That is a completely different problem. --- ## The Problem Sortify Actually Solves Think about the last time you wasted time looking for something in a shared space. Not because the thing didn't exist — you knew you had it — but because you didn't know exactly where it was right now. - The drill that was returned to the wrong drawer - The lab instrument someone borrowed for a project and set down somewhere - The tool your colleague had last week that's now "somewhere on the floor" - The box of holiday decorations that was moved during the reorganization - The charger that "was definitely here this morning" The cost of this problem is not counted in units. It's counted in **minutes**, in **frustration**, in **failed experiments**, in **delayed repairs**, in **duplicate purchases**, and in **the quiet erosion of a shared space's usability** when no one can rely on things being where they're supposed to be. The root cause is not a shortage or a quantity error. The root cause is **lost shared memory about location**. You and the other people in your space have different mental maps — maps that diverge every time something gets moved without the knowledge being shared. Sortify's answer is not a stock count. It is a **shared, always-current location record**, updated by every person in the space, visible to everyone, searchable in seconds, with a full history of where everything has ever been. --- ## The Core Design Difference: Location in a Shared Space vs. Count in a Warehouse | | Traditional Inventory App | Sortify | |---|---|---| | **Core question answered** | "How many do I have?" | "Where is it right now?" | | **Primary user** | Business owner, warehouse manager | Anyone sharing a space | | **Location model** | Bin/warehouse/store | Room → sublocation (mirrors real spaces) | | **Key metric** | Stock count, reorder point | Current location, last updated by, last seen | | **Update trigger** | Sale, receipt, adjustment | Person moving an item | | **Collaboration model** | System transactions | Human updates attributed to people | | **History purpose** | Stock movement audit, valuation | Location history, movement accountability | | **Offline use** | Often not supported or limited | Fully offline — core to the design | | **Target environment** | Warehouse, retail, supply chain | Home, lab, workshop, any shared space | | **Data ownership model** | Vendor cloud | Local-first, user-controlled cloud | | **Search optimized for** | SKU, product code | Name, room, tag, note, barcode — anything | --- ## "But My Inventory App Has a Location Field" Many inventory tools do have a location field. And if you want to be precise, Sortify does track quantities too. So why doesn't putting a location in your inventory app solve the problem? Three reasons. **First: the location is static.** In a traditional inventory tool, the location is a property of the SKU — "Widget X is in Bin 4." It doesn't change unless someone updates the master record, which usually requires a formal transaction, a system login on a desktop, and a process that assumes deliberate, system-level management. In real shared spaces, things move informally, constantly, and often between the moments when anyone is sitting at a computer. Sortify's location is designed to be updated **in the moment, on a phone, in 10 seconds**, by whoever is moving the thing. That design difference is the difference between a location field that gets updated and one that doesn't. **Second: the model doesn't match real spaces.** Most inventory tools think in bins, shelves, warehouse zones, or abstract location codes. Sortify thinks in rooms and sublocations — "Kitchen → Pantry, Shelf 2" or "Lab → Fridge B, Bottom" or "Workshop → Tool Wall, Left Cabinet." These are the words people actually use when they talk about their spaces. The location model mirrors human spatial memory, which makes updates natural and lookups fast. **Third: they're not built for collaboration among people.** Traditional inventory apps are often single-user or managed by a dedicated person. Their collaboration model is about role-based access to transactions. Sortify's collaboration model is about a **shared spatial memory** — every person in the workspace has the same up-to-date picture of where everything is, because every update by any member propagates to everyone else. The "who moved it" is part of the record, not an afterthought. --- ## The "Shared Memory for Your Space" Idea The Sortify tagline — *Shared Memory for Your Space* — is not marketing language. It's a precise description of the design intention. A space that only one person uses has one person's memory. That person knows where everything is. The problem doesn't exist. A space that multiple people use has multiple people's memories — and those memories diverge the moment any one person moves something without telling the others. This divergence is the problem. It compounds over time. It causes friction, wasted time, failed searches, duplicate purchases, and a quiet erosion of everyone's ability to trust the space. What Sortify provides is the functional equivalent of a perfect collective memory: a single record of where everything is that is updated by everyone and readable by everyone, at any time, on any device, even offline. This is not primarily about counting. It's about **spatial awareness in a shared context**. And that's a fundamentally different design goal than what traditional inventory tools pursue. --- ## Time Saved Is the Real Value Metric If you try to evaluate Sortify against a traditional inventory tool using the usual metrics — stock accuracy percentage, reorder efficiency, valuation reporting — it won't compute. Those aren't Sortify's metrics. Sortify's metric is **time saved finding things**, multiplied by every person in the space, every week. The research on this is intuitive: knowledge workers lose an average of 20% of their working week searching for information. The physical equivalent — searching for items in shared spaces — is rarely quantified, but the anecdotal evidence from Sortify users is consistent: - "We stopped having the 'where is [thing]?' conversation almost entirely." - "The maintenance team can find any tool in under 30 seconds now." - "We haven't bought a duplicate of anything since we started using it." - "New people onboard to the inventory in 20 minutes instead of two weeks of asking." The value is real, it's immediate, and it doesn't require a ROI model to feel. --- ## Privacy: The Architectural Choice That Changes Everything Here's another dimension where Sortify diverges sharply from traditional inventory tools: **where your data lives**. Most SaaS inventory tools work like this: your data goes into their database. They run analytics on it. They market their reliability by hosting your data centrally. They own the infrastructure that your business depends on. When you cancel, the question "what happens to my data?" has an uncomfortable answer. Sortify works like this: **your data lives on your device.** When you sync, an encrypted copy goes to a cloud storage account **you already own** — your Google Drive, your OneDrive, or your Dropbox. MokingBird never receives your plaintext inventory contents. Workspace keys live on your device or, where recovery protection is enabled, inside encrypted key envelopes that MokingBird cannot decrypt without your unlock secret. No MokingBird server holds plaintext workspace data. This is a deliberate architectural choice, not a limitation. It means: - **Your inventory data is private by design**, not by policy. Even if MokingBird wanted to read your workshop's inventory, they couldn't. - **You are not dependent on MokingBird's servers** for the core function of the app. If their services go down, your local data is intact and fully operational. - **Data portability is automatic.** Your data is in your cloud account, in a format you control. You're not locked in. - **GDPR compliance is simplified.** You are the data controller of your workspace contents. MokingBird processes only your authentication identity. For families tracking personal belongings, labs tracking sensitive research materials, businesses tracking proprietary operational inventory, or factories tracking production-critical equipment — the privacy architecture matters. Your inventory reflects your life and your business. It shouldn't be sitting in a third-party database by default. --- ## The Collaboration Model: Roles, Attribution, and History Traditional inventory apps are designed around transactions — a stock movement has a quantity, a date, and maybe a reference. Who did it? Usually "the system" or a generic user account. Sortify's data model is person-centric. Every single update is attributed to the person who made it. Every location change, every field update, every item created — all logged with the user's identity and a timestamp. This isn't just for auditing; it's for **trust in a shared space**. "Who had it last?" is a question that shared spaces ask constantly. In Sortify, it has a factual answer — not an accusation, just a data point that helps the next person find the thing. The history goes further. Every item in Sortify has a complete **movement history**: every location it has ever been in, who moved it there, and when. For a tool that's been in a workshop for two years, the history is a trace of every time it was borrowed, used, returned to the wrong place, corrected, and moved again. That history is the memory of the space. Not one person's memory — the shared, collective memory of everyone who has ever touched that item. That's something no traditional inventory system is designed to provide, because traditional inventory systems were not designed around the social dynamics of shared physical spaces. --- ## When to Use a Traditional Inventory App vs. Sortify To be completely fair to the tools that Sortify doesn't try to replace: **Use a traditional inventory app when you need to:** - Manage stock counts with reorder triggers for a retail or e-commerce business - Generate valuation reports for accounting - Integrate with POS, ERP, or procurement systems - Track hundreds of product SKUs with batch and expiry in a supply chain context - Manage warehouse operations at scale **Use Sortify when you need to:** - Know where a specific physical item is right now, in a shared space - Give every person in a group the same up-to-date picture of item locations - Track the movement history of items across rooms and sublocations - Find items in seconds by searching name, tag, note, or barcode - Operate offline and sync automatically when connected - Keep your data private, local, and encrypted - Onboard new people to a shared space's inventory without a formal training process These are not competing products. They solve different problems. The confusion arises because both involve "tracking physical things" — but the purpose, the model, and the design are as different as a map and a ledger. --- ## Offline-First Is Not Optional — It's the Whole Point Real organization work happens in the worst possible places for connectivity: - in garages and basements; - in cold rooms and storerooms; - in factory corners and maintenance rooms; - during moving house or room reorganizations; - during setup and teardown of equipment; - on shop floors with noisy wireless environments. If a product fails in those moments, it fails at exactly the moments when you most need it. A shared inventory tool that only works when connected is a tool you can't trust. Sortify is designed offline-first from the ground up. Everything — search, view, add, update, move — works without any network connection. Changes sync automatically when connectivity returns. This is not a fallback feature; it is a core design requirement of a tool built for how shared physical spaces actually work. --- ## The Simplest Summary Traditional inventory apps answer: **"How many?"** Sortify answers: **"Where?"** And in the places where people actually live, work, research, and build together — "where?" is the question that costs the most time, causes the most frustration, and gets asked the most often. Sortify gives every person in a shared space the same answer, at the same time, updated by the people who actually move things, private by design, working even when there's no internet. That's not a variation on an inventory app. That's a new kind of tool for a problem that was hiding in plain sight. --- **Sortify — Shared Memory for Your Space.** --- *MokingBird Oy — sortify.mokingbird.xyz* *Sortify is a registered brand of MokingBird Oy, Finland.*
*A use case for families and households* --- There's a moment every household knows. You're standing in the garage, looking at an empty hook where the drill is supposed to be. You text your partner. They say it might be in the spare room. Your teenager says they saw it "somewhere near the kitchen." You spend 20 minutes. You find it in the hall closet. You have not lost the drill. You've lost 20 minutes — again. Now multiply that by every item in your home that lives in more than one person's brain. The extension cable. The spare key. The good scissors (because there are also the terrible scissors). The charger that fits the old camera. The birthday decorations from last year. The first aid supplies, which have apparently relocated themselves. This is the ordinary chaos of a shared home, and for most families, it just is what it is. Until it isn't. --- ## The Problem with "Everyone Knows" In most households, inventory management isn't a system — it's a set of overlapping assumptions. "Everyone knows" where things live. But "everyone" means different people who have different mental maps of the same space, maps that silently diverge every time something gets moved, used, or reorganized. A tool put back in the wrong drawer. A pantry item used up and not noted. Holiday decorations in a new box in a new spot. The kids returning from university with their things reshuffled. A renovation that moved three shelves of stuff somewhere temporary that became permanent. Every one of those events creates a small gap between "where I think it is" and "where it actually is." None of those gaps is serious on its own. Collectively, they turn a functioning household into a daily treasure hunt. What families actually need is a single shared record — updated by everyone, visible to everyone, accurate to right now. Not a spreadsheet. Not a notes app. Something as fast to update as the moment of moving something, and as easy to query as "where is the [thing]?" That is what Sortify does. --- ## Setting Up Your Home in Sortify When the Martinez family — two adults, two teenagers at home, one in university — set up Sortify, the first thing they did was create their home workspace. They named it "Martinez Home." Then they added their rooms: - Kitchen (sublocations: Cabinet, Pantry, Drawer, Fridge, Counter) - Living Room (sublocations: TV Stand, Bookshelf, Storage Cabinet, Coffee Table Drawer) - Master Bedroom (sublocations: Closet, Drawer, Nightstand, Under Bed) - Kids Room — Sofia (sublocations: Desk, Closet, Shelf, Under Bed) - Kids Room — Marcos (sublocations: Desk, Closet, Shelf, Under Bed) - Spare Room (sublocations: Storage Shelf A, Storage Shelf B, Closet) - Garage (sublocations: Tool Wall, Workbench, Storage Bins, Cabinet) - Hall Closet (sublocations: Top Shelf, Bottom Shelf, Coat Rail) - Bathroom (sublocations: Cabinet, Medicine Cabinet, Under Sink) It took about 15 minutes. The rooms were named exactly as the family already talked about them — which meant zero learning curve for anyone. --- ## Inviting the Family The parents are the **Primary Users** of the workspace — they can add, edit, and remove things, invite members, and manage settings. The kids got invited as **Secondary Users**, which means they can add and update items but can't delete the workspace or remove others. The daughter away at university was added as **Read-Only** — she can look up where things are when she's home for the weekend, but she's not actively managing inventory. Everyone got the invite link. They signed in with Google in about 30 seconds. Now every phone, every member, same workspace. When one person updates where something is, everyone else sees it on their next sync. --- ## The First Weekend: Cataloguing They spent a Saturday afternoon going through each room and logging the things that are actually hard to track — the items that move, the items that are lent and borrowed, the items that only one person knows the location of. Not everything needs to be in Sortify. They didn't add every mug or every book. They added the things that cause confusion: - **Tools and equipment** — drill, screwdrivers, hammer, level, extension cables, power strip - **Electronics and chargers** — old camera, GoPro, spare charging cables, portable battery pack - **Seasonal items** — Christmas decorations (boxes labeled A, B, C with photo of contents), Halloween kit, outdoor furniture cushions - **Documents and important items** — passport folder, car documents, house insurance papers - **Medical supplies** — thermometer, first aid kit, spare prescription glasses - **Kids' school and hobby equipment** — science project materials, sports kit, spare earphones - **Kitchen extras** — the good serving dishes that only come out for guests, the fondue set, the blender that lives in the pantry not on the counter Adding an item took about 30 seconds each. Name, room, sublocation, optional photo, optional tags. For items with barcodes (like electronics), they just scanned the barcode and Sortify filled in the brand and model automatically. The photo feature turned out to be surprisingly useful for storage boxes and containers. Instead of trying to remember what "Spare Room, Shelf B, Box 3" contains, you take a photo of the contents when you pack it. Next time someone wonders if the camping gear is in that box, they open Sortify, tap the item, and see the photo. Box confirmed. Done. --- ## Daily Life with Sortify Three months later, here's what the Martinez family's daily experience actually looks like: **Scenario 1: The Missing Drill** Marcos needs the drill for a school project. He opens Sortify, searches "drill," result in under a second: "Garage — Tool Wall, Left Cabinet." He goes there. It's there. Zero messages to parents, zero hunting. **Scenario 2: The Returned Item** Sofia borrows the portable battery pack for a school trip. When she returns it, she puts it in her bedroom drawer instead of the usual place. She opens Sortify, finds the battery pack, and updates its location to "Kids Room Sofia — Drawer." The next time anyone searches for it, they find it immediately, no discussion needed. **Scenario 3: The Seasonal Swap** Winter comes. The dad goes to retrieve the Christmas decoration boxes from the Spare Room. He opens Sortify, sees all three boxes with photos of their contents, knows exactly which shelf they're on. He grabs the right ones first time. The outdoor furniture cushions that replaced them get logged in their new location. **Scenario 4: The University Kid** Their eldest daughter, home for Christmas, is looking for her old textbooks that were moved during a room reorganization. She opens Sortify (Read-Only access), searches "textbooks," finds them in "Spare Room — Storage Shelf A." She'd have spent an hour searching without it. It took 10 seconds. **Scenario 5: "I'm sure we have one of those"** The parents are shopping and wondering if they already own a particular kitchen gadget. One opens Sortify, searches for it, finds it immediately — or confirms they don't have it. Either way, no duplicate purchase. --- ## The History Feature: When It Happened Before One of the features families appreciate most over time is item history. Every item in Sortify has a complete movement log: every location it has ever been in, every update made to its record, and who made the change. This turns out to matter more than expected. The garage reorganization happened in March. By August, nobody could remember exactly where the outdoor extension cable ended up. They checked the current location in Sortify — there it was. But they could also see in the history that it had been in three different places over the last six months, which explained why it felt hard to find. They agreed on a permanent spot, updated Sortify, and tagged it "garage-permanent" so everyone would know not to move it casually. History also settles household debates with data. "I put it back in the right place." — the history shows the last three people to update that item's location. It's not accusatory; it's just factual. And somehow that makes the conversation easier. --- ## Privacy: The Part Families Actually Care About A common question before adopting any shared app: "Does all our stuff end up on some company's server?" With Sortify, the answer is no — in a way that's architecturally enforced, not just promised. Your workspace data lives on your devices. When sync is enabled, an encrypted copy goes to **your Google Drive** (or other supported provider) — the account you already own. MokingBird, the company that makes Sortify, never receives your item data. They don't know what you own, where it is, or anything about your household. The encryption key stays on your device. For a family, this means your home inventory — which can include valuables, important documents, medications, and personal items — isn't sitting in any third-party database. It's on your phone and encrypted in your own cloud. That's the right place for it. --- ## Sync: The Part That Just Works The Martinez family has multiple devices: two iPhones, two Android phones, a tablet. When any family member updates Sortify, the change queues for sync and propagates to everyone else automatically. If someone is offline — travelling, in a basement without signal, abroad — the changes they make are stored locally and synced when they're back online. Sortify handles the merging. If two people update the same item offline at the same time and the changes conflict, Sortify surfaces a clear conflict resolution dialog: here's what device A said, here's what device B said, pick one or merge. Simple. Sync runs every five minutes when the app is active. You're rarely looking at stale data. --- ## The Result Six months in, the Martinez family's honest assessment: - "Where is [thing]?" conversations have nearly stopped. - The drill has been found in under 10 seconds every time since they catalogued it. - The Christmas decoration sorting took half the time it used to because they knew exactly what was in each box. - The kids actually use it — partly because it's fast, partly because it removes the frustration of not knowing where to look. - Nobody has bought a duplicate of something they already owned since setting it up. That last point is worth repeating. The time you save is real. The frustration you avoid is real. And the feeling of a shared space where everyone has the same mental map — that is something families rarely get to experience. Sortify doesn't organize your home for you. But it gives your household one shared brain to remember where everything is. That turns out to be most of the battle. --- ## Why Sortify Is Better Than a Household Spreadsheet The comparison comes up constantly: "Can't we just do this in a shared Google Sheet?" You can. Many families do. Here's what changes when you switch to Sortify: | | Google Sheet | Sortify | |---|---|---| | Update an item's location | Find the file, find the row, edit the cell | Open app, search, tap location — 10 seconds | | See who last moved something | Manual version history (complex) | Built in — every item | | Attach a photo of box contents | Not supported natively | Built in | | Search across everything | Ctrl+F in a flat table | Full-text search, fuzzy matching, filters | | Use offline in the garage | Requires internet | Fully offline | | Multiple people editing at once | Risk of overwriting each other | Conflict detection and resolution | | Organised by room and sublocation | You have to build and enforce that yourself | Built into the model | A spreadsheet tells you a list. It is much worse at telling you the real room structure, the last-known location, who changed the record, how to keep data updated from multiple devices, how to use it offline, and how to keep it private while still shareable. Sortify is built around space, not just rows. ## Offline Use: Because Real Organizing Doesn't Wait for WiFi Families often organize at the worst possible times for connectivity: - moving house or rearranging rooms; - cleaning the garage on a Sunday; - emergency packing for a trip; - sorting the seasonal storage in the attic; - tidying the shed with no signal. An app that only works when connected is unreliable in those moments. Sortify's offline-first model means you keep working — adding items, updating locations, viewing history — and everything syncs automatically when you're back in range. No manual sync button. No lost updates. ## Getting Started Creating your household workspace takes about 15 minutes: 1. Download Sortify and sign in (Google, Apple, or email) 2. Create a workspace — name it whatever you call your home 3. Add your rooms and sublocations (mirror how you already talk about your space) 4. Invite family members with a link 5. Start adding items — tools, electronics, seasonal items, important documents Start with the things that cause arguments or confusion. You'll add more over time naturally. The Free plan supports up to 3 workspaces, 5 members, and 20 items — enough to start. Most families find the Premium plan (€9.99/month) worthwhile once they've felt the difference. **Sortify — Shared Memory for Your Space.** --- *MokingBird Oy — sortify.mokingbird.xyz*
*A use case for research labs, academic institutions, and scientific teams* --- Picture a mid-size university research lab. There are twelve people using it across a given week: three doctoral researchers, four master's students at various stages, two postdocs, and a handful of undergraduates who rotate in for project work. The equipment is shared, the reagents are shared, and the space is shared. Nobody is in charge of the inventory — or rather, everybody is, which in practice means nobody is. The pH meter, which cost €3,400, has been somewhere in the lab for six months. Exactly where is another question. Probably the wet bench, maybe bench three. But postdoc Linh took it to the cold room last Tuesday to do something and might have left it there. Or it's in the instrument room. The undergrad says she saw it on the side bench near the sink. It takes 12 minutes to find it. That's a light version of the problem. Here's a heavier one: a reagent was moved from the main fridge to the mini fridge in the office. Nobody told anyone. Three days later, one of the PhD students decides the experiment it was needed for has gone wrong because of contamination. Investigation reveals the reagent wasn't where expected, the experiment ran with the wrong stock. Weeks of work, time, and resources at stake. Research labs are high-precision environments operated by rotating casts of people who share resources and rarely have time to document the mundane. Sortify is the solution to the mundane — so the team can focus on the complex. --- ## Why Labs Struggle with Physical Inventory Research labs are uniquely bad at this, despite being staffed by highly organized people. Here's why: **Rotation and turnover.** Students graduate, postdocs move on, new members arrive. Institutional knowledge about where things live walks out the door with departing researchers. The new person doesn't know the lab's informal storage logic. Nobody wrote it down. **Shared ownership.** Nobody in particular owns the inventory, so nobody in particular maintains it. The pH meter belongs to the lab, which means it belongs to everyone, which means it belongs to no one's personal responsibility to track. **Informal systems that only some people know.** Every lab has "the place where [thing] goes." But those conventions are oral, often contradictory, and updated more slowly than reality. New students learn them gradually through asking, which means senior members field the same "where is the [thing]?" question repeatedly. **High-stakes consequences.** In a home, a misplaced item costs time. In a lab, a misplaced reagent, a missing calibrated instrument, or equipment returned in the wrong condition can affect experimental outcomes, publications, grant compliance, and equipment warranties. **Regulatory considerations.** Many labs are subject to audit requirements for equipment usage, calibration records, and controlled substance tracking. "I'm pretty sure Dr. Kim had it" is not an audit response. --- ## Setting Up Sortify for a Research Lab The key insight for labs: Sortify's workspace maps to your lab, and its rooms map to the physical zones within it. Sublocations map to specific benches, shelves, cabinets, and drawers. ### Example: Computational Biology Lab, University of Helsinki The lab has two physical spaces: the main lab room and a separate cold room. The lab manager created a Sortify workspace called "CompBio Lab — Biosciences Building." **Rooms:** - Main Lab (sublocations: Bench 1, Bench 2, Bench 3, Bench 4, Fume Hood, Sink Area, Center Table) - Instrument Room (sublocations: Centrifuge Station, Microscope Station, PCR Station, Electrophoresis Station, Spectrophotometer Station, Shelf A, Shelf B) - Cold Room (sublocations: Fridge A — Top Shelf, Fridge A — Middle Shelf, Fridge A — Bottom Shelf, Fridge B — Samples, Fridge B — Reagents, Freezer Top, Freezer Bottom) - Chemical Storage (sublocations: Cabinet A, Cabinet B, Flammables Cabinet, Shelf 1, Shelf 2) - Office (sublocations: Desk A, Desk B, Mini Fridge, Storage Cabinet, Bookshelf) - Common Storage (sublocations: Equipment Shelf A, Equipment Shelf B, Consumables Shelf, Glassware Cabinet) This structure mirrors exactly how the team already talks about the lab. No learning curve. --- ## What Gets Logged The lab team spent an afternoon during a slower week doing their initial inventory. Three people each took a zone and logged items. Rules they set: - All **shared equipment** over €50 value goes in Sortify - All **reagents and chemicals** with limited shelf life go in Sortify (with expiry date field) - All **calibrated instruments** go in Sortify (calibration date in notes field) - All **consumable stock** where "are we running low?" matters goes in Sortify - Personal items and individual researchers' consumables do not What they ended up tracking: **Equipment:** - pH meter (model, serial number, last calibration date in notes) - Vortex mixer × 2 (tracked separately with IDs) - Centrifuges (each logged individually) - PCR machines (with software version in notes) - Microscopes - Spectrophotometer - Hotplate/stirrers - Water purification unit - Balances (precision, with calibration dates) - Pipette sets (tracked by volume range, with last calibration service date) - Power supplies for gel electrophoresis - Gel doc system **Reagents and consumables (high priority):** - Enzyme stocks (with expiry dates and lot numbers in notes) - Antibodies (location critical — wrong fridge = degradation) - Buffers and stock solutions (with preparation date) - Ethanol and methanol stocks - Agarose powder - Gel stains - Gloves (size by location — who always uses the small gloves) **Lab infrastructure items:** - Extension cables and power strips - Ice buckets - Timer devices - Safety equipment (first aid kit, eyewash station, fire extinguisher locations) - Spare pipette tips (by box type and location) The barcode scan feature made logging reagents with barcodes fast. For equipment, photos of the serial number plate were attached to each item record, creating a de facto equipment register. --- ## The Role System in a Lab Context Labs have natural hierarchies. Sortify's role system maps well to them: **Primary User (workspace owner) → Lab Manager or PI (Principal Investigator)** - Full control over the workspace - Can invite and remove members - Can manage workspace settings - Typically: the lab manager or designated equipment coordinator **Secondary Users (members) → Doctoral researchers, postdocs, senior students** - Can add, edit, and update item locations - Cannot remove members or delete the workspace - Everyone actively working in the lab gets this role **Read-Only → Visiting researchers, rotating undergraduates, PI who just wants visibility** - Can view the workspace and search items - Cannot modify records When a new master's student joins the lab, they get added as a Secondary User. They can immediately see what equipment the lab has, where it is, and update locations as they use things. They don't need to learn the informal oral tradition — they open Sortify. When a visiting researcher joins for a three-month project, they get Read-Only access. They can look things up without risk of accidentally modifying records. --- ## Practical Workflows ### Workflow 1: Using Shared Equipment Dr. Nguyen needs the portable UV transilluminator for her gel. She opens Sortify, searches "UV transilluminator," result: "Instrument Room — Shelf B." She goes there, picks it up. After use, she returns it to its logged location. But today she's putting it on Bench 2 temporarily while she runs another gel. She opens Sortify, updates the transilluminator location to "Main Lab — Bench 2," adds a note: "Return to Instrument Room Shelf B after gel imaging." The next person who searches for it will find it there. This is the critical behavior that changes everything: **the person moving something is the person who updates the record.** It becomes a norm. It takes 15 seconds. It saves the next person 15 minutes. ### Workflow 2: Reagent Tracking and Expiry Reagent degradation is a silent killer of experiments. The cold room has multiple fridges, multiple shelves, and dozens of reagents — many of which look identical in white microfuge tubes. The lab started logging all enzyme stocks with: - Name and type - Lot number (in notes) - Expiry date (using Sortify's expiry date field) - Location (which fridge, which shelf) - Who ordered it (in notes or tags) When an enzyme's expiry date approaches, it shows up in Sortify's expiry-aware search. The lab manager can filter by items expiring in the next 30 days and do a quick check. No more discovering expired reagents mid-experiment. The "who ordered it" tag is useful too — if there's a question about provenance or a recall, there's a record. ### Workflow 3: Equipment Calibration and Service History The notes field in Sortify is plain text but searchable. The lab uses it for calibration records: Item: "Analytical Balance — Sartorius 1234" Notes: "Calibrated 2026-01-15 by TechService. Next calibration due: 2027-01-15. Serial: SAR-4421." When the next calibration is due, the note makes it easy to identify which balance, which service provider, and when. The item history shows the full timeline of notes updates — so past calibration records aren't overwritten, they're preserved in the history. ### Workflow 4: Lab Handover When a Member Leaves When Jochen, a postdoc, finishes his contract, the handover process includes an "equipment handover" step. He goes through his items in Sortify — any items tagged or noted as being in his custody — updates their locations to where they've been returned, and adds a handover note. The new postdoc arriving the following month can onboard to the lab's physical inventory in 20 minutes rather than the usual weeks of informal "who has what" discovery. --- ## History: The Lab's Memory Item history in Sortify is particularly valuable in research settings where accountability matters. The complete movement history of every item is logged. Every location update, every field change, attributed to a user with a timestamp. This is: - **Useful for equipment audits** — "where was the centrifuge on March 3rd?" has a factual answer - **Useful for incident investigation** — if an experiment fails and the question is "was the reagent moved between the sample preparation and analysis?" — the history answers it - **Useful for identifying usage patterns** — which instruments are used most heavily, who uses them, which might need service or replacement - **Useful for institutional continuity** — when lab membership turns over, the history of how shared items have been used and maintained is preserved --- ## Sync and Offline: How It Works for Lab Life Researchers don't always have their phone in hand while working. Sortify accommodates this: - Updates made offline (e.g., in a cold room with poor signal) sync when you're back in range - The app works fully offline — searches, views, and updates all function without internet - Sync happens automatically every 5 minutes when connected - If two people update the same item while offline, the sync engine surfaces a simple conflict resolution step — they pick which version is correct In a lab where multiple people might update the same equipment record on the same day, the conflict resolution is clean. The history preserves both states so nothing is lost. --- ## Privacy and Data Ownership For academic institutions, data governance matters. Sortify's architecture is designed to make this simple: **Your plaintext workspace data never passes through MokingBird's servers.** It lives on the devices of your team members and, when synced, in an encrypted file in a cloud account you control (e.g., a department Google Drive). Where recovery protection is enabled, Sortify may store encrypted key envelopes, but MokingBird cannot read your inventory contents or decrypt workspace data without the user's unlock secret. This means: - No export needed for institutional records — the data is already in your cloud - No vendor lock-in of your inventory data - No concern about research data or reagent inventories being held by a third-party vendor - GDPR compliance is straightforward — the data controller is your institution, not MokingBird's infrastructure For labs handling controlled substances, sensitive biological materials, or proprietary research, this local-first architecture is a significant advantage over cloud-hosted inventory services. --- ## Offline-First: Because Labs Are Not Always Ideal Connectivity Environments Labs are not always ideal for wireless connectivity. Cold rooms, basement areas, equipment rooms, and Faraday-shielded spaces may have inconsistent or no signal. Offline-first behavior matters because staff still need to: - update where something was placed; - confirm which station or bench has the item; - review notes before starting a procedure; - log a location change in the moment of moving something, not later. Sortify works fully offline. All changes are queued and synced automatically when the device reconnects. There is no manual sync button and no risk of losing an update because signal dropped. --- ## What Sortify Is Not It is important to be clear about what Sortify is strongest at — and where it is not the right tool on its own: - **Not a LIMS replacement.** Sortify does not manage experimental workflows, sample tracking with chain-of-custody, instrument booking, or data from analytical instruments. It is the operational memory layer for shared physical items and spaces. - **Not a regulatory compliance certification platform.** Sortify does not automatically satisfy GLP, GMP, ISO 17025, or other lab-specific regulatory requirements for records management. In regulated environments, Sortify is a coordination tool, not the compliance system. - **Not a hazardous materials compliance engine.** Users handling hazardous chemicals, biological materials, or controlled substances must maintain all required compliance records, SDS files, and regulatory logs through the appropriate systems. - **Not a legally sufficient scientific records management system in all contexts.** If your institution requires audit trails to meet a specific legal or regulatory standard, verify that Sortify's history model meets those requirements or supplement it with appropriate systems. Sortify is strongest when used as the **operational memory layer** — the shared system that answers "where is it, who moved it, and what is it?" for the team's physical environment. It complements formal systems rather than replacing them. --- ## The Time Saved Let's quantify it. If a 12-person lab loses an average of 15 minutes per person per week to "where is [equipment]?" questions and searches — a conservative estimate — that's 3 hours per week, 12 hours per month, 144 hours per year. At a fully-loaded postdoc cost of €30/hour, that's over €4,300 per year in lab time spent searching. A Premium Sortify subscription is €9.99/month — €120/year. The math makes it hard to argue against. More importantly: failed experiments from missing or mislocated reagents, equipment returned in unknown states, handovers that lose institutional knowledge — these are costs that are harder to count but far larger than the search time alone. --- ## Getting Started as a Lab 1. **The lab manager or a designated person creates the workspace** (they become Primary User) 2. **Set up rooms to match your physical space** — be as granular as your lab requires 3. **Invite the team** — postdocs and doctoral students as Secondary Users, the PI and visiting researchers as Read-Only 4. **Do a one-time inventory session** — dedicate a few hours with two or three people across zones 5. **Establish the norm** — if you move it, update Sortify. That's the only cultural shift required. The Free plan works for very small labs (up to 20 items tracked). Most research labs will find the Premium plan necessary (€9.99/month, unlimited items and members). For large research departments, multi-lab groups, or institutional deployments across multiple labs, the Enterprise plan (€29.99/month, up to 50 workspaces) covers even the most complex structures. --- **Sortify — Shared Memory for Your Space.** *The shared brain your lab has always needed, built for the reality of how labs actually work.* --- *MokingBird Oy — sortify.mokingbird.xyz*
*A use case for small businesses, studios, offices, and service teams* --- Every small business owner knows the moment. You're about to start a job, see a client, or fulfil an order, and something you need isn't where it should be. The spare laptop. The client contract folder. The photography equipment for today's shoot. The spare part that was definitely ordered last month. The key for the equipment cabinet. You spend time you don't have finding it. Now add the complication that your business has more than one person. Your employee put it "over there." Over there is a different over there than the one you had in mind. And the part-time person who worked Saturday? You'd need to ask them, except it's Tuesday. Small businesses operate with tight margins of time, money, and trust. Losing 20 minutes of billable time to an inventory search isn't just frustrating — it's expensive. Doing it repeatedly, across a team, is a compounding tax on your business that most owners simply accept as part of the chaos of running a small operation. Sortify was built for exactly this. Not for warehouse managers with dedicated logistics staff, but for the owners, operators, and teams of small businesses who need to know where their things are without turning inventory management into a second job. --- ## The Small Business Inventory Problem The challenge isn't that small businesses don't care about their inventory. It's that they're typically too busy doing the actual work to maintain formal systems. And most systems designed to solve the problem are built for scale, not for a photography studio with four people, a small repair shop with a storeroom and two technicians, or a catering business with equipment stored across two vans and a commercial kitchen. The failure modes are predictable: - **"It was here yesterday."** Equipment moved between jobs without being logged anywhere. - **"Ask Sarah — she knows where everything is."** Critical inventory knowledge held in one person's head. What happens when Sarah is sick, or leaves? - **"I think we have one."** Uncertainty about what you actually own leads to duplicate purchases, emergency orders, and wasted money. - **"Who had it last?"** No attribution, no accountability. When something goes missing or comes back damaged, tracing it back is impossible. - **The new hire problem.** Every time someone new joins, they spend weeks learning where everything is through trial, error, and asking — the same questions your experienced staff are tired of answering. Sortify replaces all of that with a shared, always-current inventory that every team member can see and update from their phone. --- ## Who This Is For Sortify works particularly well for small businesses in these categories: - **Creative studios** — photography, video production, design agencies, recording studios — tracking equipment, props, backdrops, cables, lenses, batteries, and accessories - **Service businesses** — repair shops, IT service providers, maintenance companies — tracking tools, spare parts, diagnostic equipment, loaner devices - **Health and wellness** — therapy practices, physiotherapy clinics, beauty salons — tracking supplies, equipment, products, client materials - **Food and catering** — catering operations, food trucks, event caterers — tracking equipment across locations, van loadouts, kitchen supplies - **Retail and pop-up** — boutique retailers, market traders, pop-up shops — tracking display fixtures, stock by location, equipment - **Event and hospitality** — event coordinators, small venues, prop hire companies — tracking everything that moves between events - **Field-service teams** — any business where staff carry shared equipment from a central store into the field and return it after jobs What these businesses have in common: multiple people sharing physical items across a defined space or set of spaces, with the operational need to know where things are without calling a meeting about it. Small businesses rely heavily on a few people who know where everything is. That works until someone is absent, the business grows, items are moved quickly during busy periods, or everyone assumes someone else knows. Sortify helps a business move from **person-dependent memory** to **shared operational memory** — knowledge that lives in the system, not in one person's head. --- ## A Day in the Life: Photography Studio **Studio Luminos** is a four-person photography studio. Two photographers, a studio manager, and a part-time assistant. They have: - Three camera bodies - A collection of lenses (seven, at various price points) - Studio lighting equipment (multiple heads, modifiers, stands, power packs) - Two tripods and a monopod - Multiple memory card sets - A range of background systems and props - Two laptops used for editing - An audio kit for video work - Charging systems and cables - A prop and accessories room - A small gear storage room with cases Before Sortify, their system was a combination of memory, WhatsApp group messages, and a Google Sheet that nobody updated. The sheet was always wrong. The WhatsApp messages buried the useful ones under everything else. After setting up Sortify, here's how they structured it: **Workspace:** Studio Luminos **Rooms:** - Main Studio (sublocations: Lighting Rig, Props Area, Backdrop Wall, Storage Corner) - Gear Room (sublocations: Shelving A, Shelving B, Charging Station, Cases Row, Lens Cabinet) - Edit Suite (sublocations: Desk A, Desk B, Peripheral Shelf) - Van (sublocations: Boot, Front Seat, Middle Section — yes, equipment goes in the van) - Client Space (sublocations: Reception Area, Meeting Table) **What they log:** Every lens, camera body, light, modifier, stand, tripod, laptop, audio kit, and charger. Each lens has a photo of it attached in Sortify (so the part-timer knows exactly which is which), plus the model name and serial number. Valuable items have their purchase price logged for insurance purposes. **The role setup:** - Studio manager: Primary User (manages the workspace, handles onboarding) - Both photographers: Secondary Users (update locations when equipment moves) - Part-time assistant: Secondary User (can add items and update locations, critical for after-shoot returns) **The workflow that changed things:** After every shoot — in the studio or on location — the photographer or assistant doing the return updates Sortify. Lens goes back to Gear Room → Lens Cabinet. Lights back to Main Studio → Lighting Rig. Camera bodies charged and returned to Gear Room → Charging Station. It takes three minutes at the end of a shoot. The next morning, before the next shoot, whoever is prepping the kit opens Sortify and verifies everything is where it should be before packing. No surprises. --- ## The "Van Load" Use Case For businesses where equipment goes on-site — caterers, photographers, AV companies, maintenance firms — the vehicle is a location too. Studio Luminos added "Van" as a room. When equipment is loaded for a shoot, they update its location to the appropriate van sublocation. When it comes back, it gets updated to its home location. This sounds simple. The impact is significant: the studio manager can open Sortify at any point and see exactly what is currently in the van. Before a large shoot, she cross-references the booked equipment list against Sortify. If a lens shows "Van — Boot" when it should be ready in the gear room, she knows to check the van before the shoot day starts. No more "the 85mm is still in the van from Tuesday." --- ## The New Employee Problem, Solved Every time Studio Luminos hired someone new, the onboarding process included an informal "gear tour" — walking them through the studio pointing at things, naming them, explaining where they go. It took an hour and was always incomplete. The new person would forget half of it and feel awkward asking the same questions again. Now, onboarding includes: "Here's your Sortify invite. Spend 20 minutes going through the workspace before your first shift." They can see every item in the workspace, with photos, names, models, and their logged locations. They can search for any item by name. They can look up where the spare batteries are, where the particular modifier clips are kept, which of the camera bags is associated with which kit. It's the institutional knowledge of the studio, captured and shared. The new person arrives more confident. The existing staff field fewer repetitive questions. The studio manager doesn't spend her morning pointing at shelves. --- ## A Real Reckoning: The Duplicate Purchase Problem One of the less visible but very real costs of poor inventory visibility is buying things you already own. A small repair shop — three technicians, one service manager — started logging their tool and part inventory in Sortify after noticing they kept ordering small tools that "must have walked out" or "been misplaced." They assumed the tools were gone. Six months after setting up Sortify, they looked at their purchasing records against their inventory. They found seven items they had ordered twice in the previous year that were in fact in the storeroom, logged in Sortify and traceable — not lost, just in an unexpected sublocation. Conservative estimate on savings: €340 in duplicate purchases avoided in six months. The bigger shift: confidence. When the service manager now considers ordering something, she searches Sortify first. "Do we have this? Where is it?" If it's there, she doesn't order. If it's not there, she orders with certainty. The guesswork is gone. --- ## The History Feature: Who Had It, When Small businesses often operate on trust — but accountability is still important. When expensive equipment comes back damaged, or a tool goes missing, "who had it last?" is a real question. Sortify's item history answers it with data, not memory. Every update to every item is logged: who updated the location, when, and what the previous value was. This isn't about distrust — it's about having a record that makes conversations factual rather than conflicted. "According to Sortify, the last person to update the camera's location was Marcus, on Friday at 5:47pm, moving it to Van — Boot. Marcus, did you bring it back in?" That is a very different conversation than "I think the last person to use it was Marcus, maybe last week, I'm not sure." The history also serves legitimate business purposes: equipment usage tracking, identifying which tools need service most often, and demonstrating due diligence for insurance claims. --- ## Privacy and Multi-Location Setups For businesses with more than one site — a studio with a main location and a pop-up space, a repair shop with a workshop and a customer-facing front room, a caterer with a kitchen and a van fleet — Sortify supports this with multiple workspaces. Premium plan users can have up to 20 workspaces. You might have: - "Workshop" — your back-end tools and stock - "Front Counter" — client-facing items and display equipment - "Van 1" and "Van 2" — what's loaded in each vehicle - "Storage Unit" — seasonal items and overflow Each workspace can have different member combinations. The workshop manager has access to the workshop workspace. The drivers have access to their van workspaces. The business owner has access to all of them. All data stays in your cloud account, encrypted. Competitor businesses won't be reading your inventory. Staff from one location won't accidentally see another location's inventory if it's in a separate workspace. --- ## Sortify vs. A Spreadsheet The comparison that comes up most often: "Can't I just do this in Google Sheets?" You can. Many businesses do. Here's what changes when you switch to Sortify: | | Google Sheets | Sortify | |---|---|---| | Update an item location | Find the sheet, find the row, update the cell, save | Open app, search item, tap location, update. 10 seconds. | | View current location on phone | Open Sheets app, navigate, scroll | Open app, search, instant | | See who last updated an item | Only if you use version history (complex) | Built-in, every item | | Photo attached to item | Not supported natively | Built-in | | Search across all items | Ctrl+F in a flat sheet | Full-text search, fuzzy matching, filters | | Offline use | Requires internet | Fully offline | | Item history over time | Manual or version history | Automatic, per-item | | Conflict resolution if two people edit at once | Last save wins, data lost | Conflict surfaced, you choose | | Barcode scan to find/log items | Not supported | Built-in | Spreadsheets are flexible but optimized for reading and editing on a desktop. Sortify is optimized for the actual workflow of a small business: on your feet, on your phone, updating in the moment of moving something, finding things in seconds. --- ## The Sync That Keeps Everyone Current Sortify syncs across all team members' devices automatically. When your photographer updates the location of a lens at 8pm after a shoot, the studio manager sees the updated location the next morning without anyone sending a message. Changes made offline (in a basement, in a van, in a building with poor signal) sync automatically when the device reconnects. No manual process, no reminder to sync. This means the inventory you see in Sortify is always current — within the last sync cycle — without requiring any coordination from your team beyond the simple habit of updating when they move something. --- ## Getting Started for Small Businesses **The right way to onboard:** 1. **Designate one person as the workspace owner** — the business owner, manager, or office coordinator 2. **Create the workspace, set up rooms and sublocations** — mirror your physical space exactly as you already describe it 3. **Do a focused logging session** — two hours with one or two people, go through every area, photograph and log the items that matter 4. **Invite your team** — everyone gets Secondary User access (or Read-Only for part-timers who don't need to edit) 5. **Establish one rule:** if you move it, update Sortify. That rule is the only cultural change required. Everything else is just using an app. **Plan recommendation:** - 1–2 person micro-businesses: Free plan covers many cases - 3–10 person teams with real inventory: Premium at €9.99/month — pays for itself in the first duplicate purchase avoided - Multi-site or larger team setups: Enterprise at €29.99/month --- **Sortify — Shared Memory for Your Space.** *Because your business can't afford the hidden cost of not knowing where things are.* --- *MokingBird Oy — sortify.mokingbird.xyz*
*A use case for factories, manufacturing facilities, production workshops, and large makerspaces*
---
## The Scale of the Problem Nobody Talks About
A factory floor is one of the most organized-looking environments in the world. Machines in fixed positions. Aisles marked. Workflows documented. Safety signage on every wall. ISO certifications framed in the management office.
And yet: where is the torque wrench for Line 3?
Where are the spare O-rings for the sealing machine?
Who has the calibration gauge that should be in the cabinet by the QA station?
Where did the portable diagnostic unit go after the service engineer used it last Thursday?
These questions sound small against the scale of a factory. They aren't. In a production environment, a maintenance delay of 30 minutes waiting for a tool that cannot be located can mean a line stoppage, a missed batch, or a cascading scheduling problem that costs orders of magnitude more than the search itself.
In workshops with dozens or hundreds of tools, components, consumables, and shared instruments spread across a large floor area with multiple shifts, multiple teams, and changing personnel — keeping a shared, accurate, real-time record of where things are is genuinely hard. And it is, in many facilities, completely unsolved.
This is the problem Sortify was built to address.
---
## Why Workshops and Factories Are the Hardest Use Case — and Why It Matters Most
Homes have a few rooms and a small number of people. Research labs have a defined set of equipment and a stable team. Factories have:
**Scale.** Hundreds or thousands of tracked items. Multiple production lines. Multiple zones. Tool cribs, maintenance stores, QA stations, electrical rooms, mechanical rooms, loading docks, cold storage, hazardous materials storage, cleanrooms, offices. The physical space alone is a navigation challenge.
**Shifts.** Day shift, evening shift, night shift. The person who moved the tool isn't here anymore. The person asking for it won't see the person who knows until tomorrow.
**Contractor and visiting personnel.** Service engineers, external contractors, temporary workers. People who don't know your informal system, who use your tools, and who aren't there long enough to learn.
**Cross-functional sharing.** The maintenance team needs tools that production uses. QA needs instruments that are also needed by line supervisors. Engineering borrows from maintenance. Everyone borrows from someone.
**High-stakes consequences.** A missing torque wrench is not just inconvenient. It can mean a non-conforming product if the alternative tool isn't calibrated. A missing safety component could mean a regulatory non-compliance. A missing diagnostic tool means a longer machine downtime.
The standard solutions — toolboards with outlines, manual checkout logs, key boxes — all fail in the same way: they require the person moving a tool to do something extra. They're paper-based, they're not searchable, they don't tell you who has what in real time, and they certainly don't work across shifts.
Sortify solves this digitally, on every team member's phone, offline when needed, synchronized automatically.
---
## How a Mid-Size Manufacturing Facility Uses Sortify
**Precision Parts Manufacturing (PPM)** is a mid-size metal parts production facility with 45 production workers, 8 maintenance technicians, 6 quality control staff, 4 shift supervisors, and a facility manager. They operate three shifts and produce high-tolerance machined components for the automotive and aerospace supply chain.
When PPM's facility manager introduced Sortify, the scope was deliberately focused:
**What they wanted to solve first:**
1. Maintenance tools that disappeared between shifts
2. QA calibrated instruments that were never where they were supposed to be
3. Spare parts that were ordered again because nobody could find the existing stock
**What they did NOT try to do:**
Replace their ERP system. Sortify is not production planning software or a full warehouse management system. For PPM, it complemented those systems by solving a different, more immediate problem: **where is the physical thing right now, on the floor?**
---
## Setting Up the Workspace
The facility manager created a Sortify workspace called "PPM Factory Floor."
Given the scale of the facility, they structured it methodically:
**Rooms (facility zones):**
- Line 1 — Press Section (sublocations: Machine A1, Machine A2, Operator Station, Line Cabinet, Under-Bench Storage)
- Line 2 — Machining Section (sublocations: CNC Station 1, CNC Station 2, CNC Station 3, Coolant Area, Tool Rack)
- Line 3 — Assembly Section (sublocations: Assembly Bench A, Assembly Bench B, Assembly Bench C, Fixture Rack, Small Parts Bins)
- Maintenance Room (sublocations: Tool Cabinet A, Tool Cabinet B, Workbench, Spare Parts Shelf A, Spare Parts Shelf B, Electrical Cabinet, Hydraulics Shelf)
- QA Station (sublocations: Measurement Table, Instrument Cabinet, CMM Area, Sample Storage, QA Computer Station)
- Tool Crib (sublocations: Hand Tools — Left Wall, Power Tools — Right Wall, Calibrated Tools — Cabinet, Torque Tools — Rack, Checkout Counter)
- Electrical Room (sublocations: Panel Board Area, Cable Storage, Meter Cabinet)
- Stores (sublocations: Raw Materials Rack A, Raw Materials Rack B, Consumables Shelf, PPE Storage, Chemical Storage, Finished Goods Area)
- Loading Dock (sublocations: Inbound Area, Outbound Area, Pallet Storage)
- Shift Supervisor Office (sublocations: Desk A, Desk B, Document Cabinet, Equipment Shelf)
They spent two working days doing an initial inventory with a team of three — the facility manager, the lead maintenance tech, and the QA supervisor. Phones out, moving zone by zone, logging every item that matters.
---
## What Gets Logged
PPM's criteria for inclusion: "If it takes more than two minutes to find this thing and you need it during a production issue, log it."
**Maintenance tools:**
- All torque wrenches (each individually, with calibration dates and ranges in notes)
- All measurement tools: vernier calipers, micrometers, dial gauges, depth gauges
- Portable power tools: impact wrench, angle grinder, drill
- Specialty tools: bearing pullers, hydraulic press tools, alignment tools
- Electrical diagnostic equipment: multimeters, clamp meters, insulation testers
- Hydraulic diagnostic tools
- Portable vibration analyzer
- Thermal imaging camera (expensive, frequently borrowed, frequently "missing")
Each tool logged with serial number, purchase date, and notes on last calibration where applicable. Barcoded tools were scanned to populate brand and model automatically.
**QA Instruments:**
- All calibrated measurement instruments (CMM fixtures, micrometers, gauges)
- Each with calibration certificate date in notes, next calibration due date in expiry date field
- Logged individually even when multiple identical units exist (each with a unit ID)
**Spare parts and consumables (critical stock):**
- Hydraulic seals and O-rings for each machine type (tagged by machine compatibility)
- Drive belts by size
- Lubricants and oils (with storage location and quantity tracked as notes)
- Electrical components: fuses, contactors, relays (by type and rating)
- Filters (hydraulic, pneumatic, air)
- Bearings (by size, tracked by machine they fit)
**Safety and PPE:**
- Eyewash station locations (with last inspection date in notes)
- Fire extinguishers (with last service date)
- First aid cabinet (with last restock date)
- Defibrillator location
---
## The Shift Handover Revolution
Before Sortify, the PPM shift handover was verbal. Day shift supervisor would tell evening shift supervisor what had happened, what was in progress, and "oh, by the way, the bearing puller is on the bench by Line 2 because we had to change out the drive shaft."
The evening shift supervisor wrote it on a clipboard or tried to remember it. The night shift supervisor got a different verbal summary at the next handover. Information degraded with each cycle.
With Sortify, the end-of-shift handover includes a Sortify update pass:
- Any tool moved to a non-home location: update the location in Sortify with a note ("Borrowed to Line 2 for bearing replacement — return to Maint Room Tool Cabinet A when done")
- Any consumable that's been used down significantly: update the quantity note
- Any instrument borrowed by QA: update location
The incoming shift supervisor opens Sortify, checks the current state of key items. They know what's where before they even walk the floor. When a machine goes down and the maintenance tech needs the torque wrench for Line 3 specifically, they search Sortify immediately. "Tool Crib — Torque Tools Rack, 80-120 Nm range." They go there. They get it.
---
## The Contractor Problem, Solved
Service engineers and contractors are a persistent inventory leakage point. They come in, use tools from the facility, and sometimes items don't make it back to the right place. Or they bring their own tools and items from your facility end up mixed in with theirs.
PPM's new protocol: when a contractor arrives and will be using facility tools, the supervisor who signs them in creates a temporary "Contractor Use" note tag on the items they're issued. At end of job, the supervisor does a return check against Sortify. All items with the contractor tag should be back in home locations.
This doesn't require the contractor to do anything. The facility team manages it. It adds about five minutes to the contractor checkout process. It has prevented several tools from being unknowingly removed from the facility.
---
## Calibrated Instruments and Compliance
For facilities operating in regulated supply chains (automotive IATF 16949, aerospace AS9100, general ISO 9001), the management of calibrated instruments is not optional — it's a compliance requirement. Instruments must be:
- Identified uniquely
- Have known calibration status and calibration date
- Have a scheduled next calibration date
- Be stored and handled to maintain their calibration integrity
Sortify doesn't replace a formal calibration management system. But it solves the day-to-day physical location problem that formal systems don't address: where is the calibrated torque wrench right now, and is it the right one?
PPM's use of Sortify's expiry date field for calibration due dates gives them at-a-glance visibility of which instruments are approaching their calibration deadline. The facility manager runs a Sortify search filtered by items expiring in the next 30 days each Monday morning. That's the week's calibration priority list.
When an auditor asks "where are your calibrated instruments and can you demonstrate their current calibration status?" — the facility manager can open Sortify and show location and calibration notes for every instrument on the floor, in under a minute.
---
## Multi-Shift Item Tracking: The Complete History
In a three-shift operation, 24 hours of activity happen between when you're on the floor and when you're next on. The item history in Sortify is particularly valuable here.
Every time a maintenance technician updates a tool's location, it's logged with their username and a timestamp. The history shows:
- Day shift: Torque wrench checked out to Line 2 at 08:14 by T. Heikkinen
- Day shift end: Torque wrench returned to Tool Crib at 15:52 by T. Heikkinen
- Evening shift: Torque wrench checked out to Line 3 at 17:30 by P. Virtanen
- Evening shift: Still showing "Line 3 — Assembly Bench" at shift end (not returned)
Night shift supervisor sees this in history. They know to follow up with Line 3 at shift start. The tool is found and returned. The history makes the cross-shift accountability visible in a way that verbal handover never can.
This history is also valuable in incident investigation. If a machine produces non-conforming parts and the question is "was the calibrated torque wrench used during assembly?" — Sortify's history can show whether the calibrated wrench was in the right location during the production window, or whether it was borrowed to another line while a non-calibrated substitute was potentially used.
---
## Large Makerspaces and Community Workshops
The factory scenario scales down to community workshops, makerspaces, hackerspaces, and fab labs — which face the same fundamental problem at a smaller scale and with the additional complication that members are often completely independent of each other.
**TechHub Makerspace** (fictional, but typical) has 80 active members, a shared machine room with CNC router, laser cutter, 3D printers, and electronics bench, plus a wood shop, a metal shop, a general tools area, and a project storage room.
Members come and go at different times. Nobody is "in charge" of inventory beyond the volunteer coordinators. Tools move constantly. The 3D printers are in constant use across three zones.
Their Sortify setup:
**Workspace:** TechHub Makerspace
**Primary Users:** Two volunteer coordinators (can manage membership, settings)
**Secondary Users:** All active members (can update locations)
**Read-Only:** Trial members and guests
**Rooms:** Machine Room, Wood Shop, Metal Shop, Electronics Bench, General Tools, Project Storage Room, Filament Storage, Supply Cabinet
When a member uses a tool and returns it to a different location (or discovers it in the wrong place), they update Sortify. It's a community norm enforced gently: "If you can't find something, check Sortify. If it's wrong in Sortify, fix it."
Within a month of launch, the coordinator estimated "where is [machine/tool]?" questions in the member Slack channel had dropped by about 70%. The information was in Sortify. Members stopped asking and started looking it up.
---
## Offline Operation: Critical for Factory Floors
Factory floors, basements, machine rooms, and cold storage areas frequently have poor or no wireless connectivity. Sortify is designed for exactly this.
All operations — searching, viewing item locations, updating locations, adding items — work completely offline. The app stores changes in a local queue. When the device gets back to a network (walking back to the supervisor office, leaving the basement), the changes sync automatically.
For maintenance technicians working deep in a facility with no signal, this is not a limitation — it's a requirement that Sortify meets. They update on their phone while in the machine room. When they walk back to the tool crib, the sync happens. The change is visible to everyone else within minutes.
---
## Sync Across Shifts and Devices
With a three-shift operation and multiple teams, the speed of sync matters. Sortify syncs every five minutes when the app is active. In practice: a maintenance tech updates a tool location at 10:03pm. By 10:08pm, every other team member's Sortify shows the updated location. Shift supervisors doing their walkthrough at 10:30pm see current data.
The data goes to the organization's cloud storage account (currently Google Drive) — encrypted with AES-256-GCM. The factory's inventory data doesn't sit on MokingBird's servers. It sits encrypted in the organization's own cloud account, controlled by the facility manager. This matters for organizations with data governance requirements.
---
## The ROI Argument for Management
For facilities managers making the case to management:
**Conservative calculation for a 50-person facility:**
- Average lost time per person per week searching for tools/parts: 20 minutes
- 50 people × 20 minutes = 1,000 minutes = ~17 hours per week
- At an average burdened labor rate of €25/hour: ~€425 per week in search time
- Per year: ~€22,000
**Sortify Enterprise plan: €29.99/month = €360/year**
Even if Sortify reduces search-related losses by only 30%, the ROI is positive within the first month. Real-world reductions in facilities that implement a consistent "update when you move it" norm are typically 50–80%.
Additional value not easily quantified:
- Reduced machine downtime from faster tool location during breakdowns
- Reduced duplicate parts orders
- Better calibration instrument tracking for compliance
- Faster contractor and new hire onboarding
- Cross-shift accountability visible in item history
---
## Why Sortify Is Better Than a Standard Inventory App for Workshops
Many inventory apps are built around accounting, formal stock tables, or centralized back-office administration. They answer "how many?" well. They answer "where is it right now, and can the next person find it without chasing three coworkers?" poorly.
The real workshop problem is usually not "do we have inventory software at all." It is:
- does anyone trust the last-known location?
- can staff update it fast enough — on their phone, on the floor?
- can someone else find it without running around?
- is there a history when something goes missing?
Sortify is better suited to operational retrieval because:
- **It thinks in physical space** — rooms, zones, racks, benches, drawers — not abstract bin codes or SKU tables
- **It updates in the moment** — on a phone, in 10 seconds, by whoever is moving the thing
- **Every update is attributed** — name and timestamp on every change
- **It works offline** — on a noisy shop floor, in a basement, in a corner without signal
- **History is automatic** — no separate action needed; it builds as people use it
- **Search covers everything** — name, tag, note, serial number, barcode, room — all at once
It is not a replacement for an ERP, a WMS, or a parts procurement system. It is the missing layer between those systems and the physical reality of who has what and where it actually is.
---
## Getting Started for a Workshop or Factory
**Phase 1: Scope and Setup (Week 1)**
1. Designate a workspace owner (facility manager, production manager, or lead maintenance tech)
2. Map your facility into rooms and sublocations in Sortify
3. Invite key team members — all shifts, all relevant roles
**Phase 2: Initial Inventory (Week 1–2)**
1. Assign zones to people: maintenance does their room, QA does their station, etc.
2. Set a focused scope — start with the items that cause the most disruption when missing
3. Two to four hours of focused logging gets most facilities operational
**Phase 3: Norm Establishment (Ongoing)**
1. Brief all team members: "If you move it, update Sortify."
2. Supervisors reinforce this during shift handover for the first few weeks
3. Within 30 days, it becomes habit
**Phase 4: Expansion**
As the team sees value, they add more items, more sublocations, and refine the structure. The initial scope doesn't need to be comprehensive — it just needs to solve the most painful problems first.
**Recommended plan for workshops:**
- Small workshop or makerspace (<20 items, <5 members): Free plan
- Active workshop or makerspace: Premium (€9.99/month)
- Multi-zone factory or multi-department industrial facility: Enterprise (€29.99/month)
---
**Sortify — Shared Memory for Your Space.**
*In a factory, knowing where things are is operational. Sortify makes it effortless.*
---
*MokingBird Oy — sortify.mokingbird.xyz*
*An inside look at how Sortify keeps shared spaces in sync across devices, users, and cloud providers — without ever letting a server read your data.*
---
## The Problem We Set Out to Solve
Imagine two people share a workshop. One of them moves the label maker to a shelf on the left side. The other, not knowing, moves it to a drawer on the right. Now neither person knows exactly where it is — and Sortify has received two conflicting updates from two different devices at roughly the same time.
That scenario — two people, one shared space, two honest edits, one conflict — is the hardest problem in synchronization. And it gets harder when you add the requirements Sortify is built around:
- **The data never touches our servers.** Every workspace is stored in the user's own cloud account — Google Drive, OneDrive, or Dropbox. Sortify itself cannot read your inventory contents.
- **Encryption happens before upload.** What lands in your cloud storage is an encrypted blob. The cloud provider cannot read it either.
- **The app must work offline.** You might be in a basement, a cold room, or a shop floor. Sortify cannot require an internet connection to function.
- **Multiple people share each workspace.** Your lab partner, your housemate, your colleague — everyone's changes must merge correctly.
Most sync systems solve these problems by relying on a central server: all clients send their changes to the server, the server merges everything, clients receive the authoritative result. That approach is well-understood and works well — but it requires the server to read and process your data. For Sortify, that was a non-starter.
Instead, we built something different: a synchronization engine that runs entirely on the client, uses cloud storage purely as a versioned file store, and guarantees that two devices cannot silently overwrite each other's changes. This article explains how it works, what failed during development, and what we ultimately built.
---
## What Non-Technical Readers Need to Know
If you use Sortify and want to understand what sync actually does — without the distributed systems terminology — here is the plain version.
**Your workspace data lives on your phone.** That is the primary copy. When you add an item, move something, or rename a room, the change is saved to your device immediately, even if you have no internet connection.
**When sync is turned on, an encrypted backup goes to your cloud account.** This is not a live connection. It is more like taking a photograph of your entire workspace — encrypting it so only you can read it — and saving it to your Google Drive or OneDrive. The photo is updated automatically every few minutes, or whenever a significant change happens.
**When two people share a workspace, their phones coordinate through this shared backup.** When you make a change, your phone updates the photo. When your colleague makes a change, their phone updates the photo too. Before either phone uploads a new photo, it first checks whether the other person's phone has already updated it — and if so, it downloads the latest version, combines the changes intelligently, and then saves the combined result.
**The critical guarantee is this: neither phone can accidentally erase the other person's changes.** If two phones try to update the workspace at exactly the same moment, one of them wins, and the other one detects this, downloads the winner's version, combines it with its own changes, and tries again. No change is lost.
**Nothing you store in Sortify ever passes through our servers in readable form.** MokingBird never has access to the contents of your workspace.
---
## The Architecture: Snapshot Sync With Client-Side Merge
Sortify uses an approach called **snapshot-based synchronization with client-side merge and optimistic concurrency control**. Here is what each of those terms means and why we chose this approach.
### Snapshots, Not Delta Streams
Many sync systems send only what changed — a stream of individual edits ("item X was moved at 10:05", "room Y was renamed at 10:07"). This requires a server that can receive and apply those deltas in order, manage a shared edit history, and coordinate between clients. It is efficient in bandwidth but requires server-side computation and a server that can read the data.
Sortify sends the entire workspace as a single encrypted file. When you sync, your phone exports the full workspace database, encrypts it with a key that never leaves your device, and uploads the encrypted blob to your cloud account. When another device syncs, it downloads this blob, decrypts it, and merges it with its own local state.
The advantage: the cloud provider sees only an opaque encrypted file. No server reads or processes your data. The disadvantage: uploading the whole workspace is more bandwidth than uploading only what changed. For the kind of small-to-medium workspaces Sortify targets — a home, a lab, a workshop — this tradeoff is acceptable, and the privacy guarantee is non-negotiable.
### Client-Side Merge
When two devices have diverged — each has changes the other does not know about — one of them must reconcile the differences. In Sortify, this happens entirely on the client device. After downloading the remote snapshot, the app compares it against the local database, applies a defined set of merge rules, re-applies any local changes that have not yet been published, and produces a merged result that combines both.
The cloud provider is treated as a versioned file store — a place to put and retrieve files — not a system with any intelligence about workspace contents.
### Optimistic Concurrency Control
This is the mechanism that prevents two devices from silently overwriting each other. Before uploading a new snapshot, the app asks: "Is the remote file still the version I based my changes on?" If it is, the upload proceeds. If it is not — because another device uploaded a newer version in the meantime — the upload is rejected, and the app re-downloads, re-merges, and retries.
Each major cloud provider exposes this capability through version tokens:
- **Google Drive** uses revision metadata and supports conditional uploads using `If-Match` header semantics.
- **Dropbox** uses `rev` identifiers; uploads can specify `mode: update` with an expected `rev` value, which fails if the file has changed.
- **OneDrive** uses etags and supports `If-Match` conditional requests through the Microsoft Graph API.
Sortify stores the version token of the last successfully published snapshot. Every upload carries this token. If the token does not match what is currently on the provider — because someone else uploaded first — the upload fails safely, no data is overwritten, and the retry loop begins.
---
## What Failed First
The synchronization architecture Sortify uses today was not the first design we tried. The first version had a fatal flaw that cost users their data under specific circumstances.
### The "Absence Means Delete" Bug
The original pull logic worked like this: download the remote snapshot, compare it against local data, and delete any local rows that were not present in the remote snapshot. The reasoning was: if it is not in the remote, it must have been deleted by another user.
That reasoning is wrong in eventually consistent systems.
Suppose you add several items while offline. Those items exist only on your device. When you reconnect, the sync engine starts by downloading the remote snapshot — which, naturally, does not contain the items you just added locally because you have not uploaded yet. The engine then runs its comparison: "these items are local-only, not in the remote snapshot." And deletes them.
Items vanished. Rooms disappeared. Counts dropped to zero. The data was perfectly intact — right up until sync ran.
This revealed a critical principle in distributed system design:
> **Absence is not deletion.** A missing entry in a remote snapshot tells you nothing about whether something was intentionally deleted or simply never uploaded yet.
### Three Compounding Problems
The data-loss bug was actually the intersection of three separate failures:
**1. Incomplete journaling.** When you created or moved an item, the change was written to the local database — but not always recorded in the `change_journal`, the list of local changes that have not yet been synchronized. Without a journal entry, the sync engine had no way to know that a local item was new and not yet uploaded. It looked indistinguishable from a stale row that should be cleaned up.
**2. Destructive pull-merge logic.** The pull engine treated the remote snapshot as authoritative by default. Local rows that were missing from the remote snapshot were removed, with only a narrow exception for items that happened to be in the journal.
**3. Pull before publish.** In some sync cycles, the pull step ran before the push step. Local changes that had not yet been uploaded were already vulnerable to the destructive merge before they had any chance to be protected by a successful upload.
The fix for each of these was architectural, not cosmetic.
---
## The Fix: Eight Phases of Implementation
The rebuild of the sync engine was done in eight distinct implementation phases, each addressing a specific failure mode.
### Phase 1 — Non-Destructive Pull Merge
The pull logic was rewritten to never delete a local row based on its absence from the remote snapshot. Instead:
- If a row exists in both local and remote, the merge applies Last-Write-Wins based on `updated_at` timestamp.
- If a row exists only on the remote, it is inserted locally.
- If a row exists only locally, it is left alone. Full stop. Local-only existence is not treated as a deletion signal.
Deletion is now expressed exclusively through tombstones: `is_active = 0` with a `deleted_at` timestamp. An item is only considered deleted if it carries an explicit deletion record — not because it is absent.
### Phase 2 — Durable Sync State
A `workspace_sync_state` table was introduced. This persists, per workspace:
- The provider file reference (the ID of the encrypted snapshot in the user's cloud account)
- The version token from the last successful sync (the etag, rev, or revision ID)
- The timestamp and outcome of the last sync attempt
- Retry state and error classification
Before this, sync state was implicit — the app had to re-discover its position on every sync cycle. Now the position is explicit and durable. Debugging sync failures became dramatically easier; the sync engine always knows exactly what state it was in.
### Phase 3 — Optimistic Concurrency on All Providers
The upload path for Google Drive, Dropbox, and OneDrive was updated to carry version preconditions. Before uploading, the engine reads the current remote version token. The upload is submitted with that token as a condition. If the remote file has changed since the token was captured — because another device published in the meantime — the upload fails, and the engine begins the pull-merge-push retry loop.
This converted the system from blind overwrite to safe optimistic concurrency.
### Phase 4 — Bounded Retry Loop
Optimistic concurrency naturally produces retries. Two devices may sync at nearly the same moment; one succeeds and one gets a precondition failure. The failing device must pull again, merge again, and retry.
The retry loop is bounded — a maximum number of attempts with appropriate backoff — to prevent infinite retry cycles that drain battery or create sync storms under high-concurrency conditions.
### Phase 5 — Complete Journal Coverage
Every mutation to workspace data — item creates, updates, moves, room renames, membership changes, tombstone deletes — now writes atomically to both the local database table and the `change_journal`. The journal entry and the data write happen in the same database transaction, so they cannot diverge. Either both succeed or neither does.
The journal is the list of local intent not yet safely published remotely. Without complete coverage, any mutation that was not journaled was invisible to the sync engine and potentially vulnerable to merge-time deletion.
### Phase 6 — Deterministic Conflict Tie-Breaking
Two devices editing the same item at exactly the same timestamp is rare but possible. Without a deterministic rule for this case, two different devices might resolve the conflict differently, causing divergence that never converges.
The tie-breaker is lexical comparison of the device identifier or `updated_by` field. Equal timestamps always produce the same outcome on any device. This property — convergence regardless of which device runs the merge — is essential for eventual consistency.
### Phase 7 — iCloud Gated as Unsupported for Collaboration
iCloud Drive does not expose the same optimistic concurrency primitives as Google Drive, Dropbox, and OneDrive. There is no clean public API for conditional uploads with version token enforcement in the way those three providers support it. The CloudKit database layer does support record versioning, but adopting it would require a fundamentally different architecture for iCloud — structured record sync rather than encrypted blob sync — and would break the provider-neutral design.
Rather than simulate correctness that does not exist, iCloud collaborative sync is explicitly gated as unsupported in the current release. The UI blocks workspace creation and invitation flows on iCloud until a proper implementation is built.
This was an engineering honesty decision: better to tell users a feature is not available than to ship a feature that silently loses data.
### Phase 8 — Tombstone Delete Routing
Deletes now route through the tombstone system consistently. `is_active = 0` is set with a `deleted_at` timestamp. The tombstone is included in the exported snapshot and propagates to other devices on next sync. The merge engine on the receiving end recognizes the tombstone and applies the deletion correctly, rather than receiving a missing row and guessing at the intent.
---
## The Google Drive Scope: Why We Need Full Drive Access
Sortify originally requested only the `drive.file` OAuth scope, which limits access to files created by the app itself. That scope seemed appropriate: Sortify should only access its own workspace files.
In practice, it failed for collaborative workspaces.
When the workspace owner creates a shared folder and invites a collaborator, the collaborator's Google account needs to access the folder. But the folder was created by the owner's Sortify instance, not the collaborator's. Under `drive.file` scope, the collaborator's app cannot see or access files it did not create, even if those files are in a folder explicitly shared with the collaborator at the Google Drive level.
Collaboration requires that each workspace member's app can read and write the encrypted snapshot in the shared workspace folder, regardless of which member originally created the folder. This requires the `https://www.googleapis.com/auth/drive` scope.
Sortify uses this scope exclusively to operate within Sortify workspace folders and Sortify sync files. It does not browse unrelated Drive files, read non-Sortify content, or access folders outside the workspace structure. The scope is broader than the minimum possible, but the use is narrowly scoped to the collaboration function it enables.
The Google OAuth verification submission documents this in detail.
---
## The Encryption Model
Every workspace snapshot is encrypted before it leaves the device.
Sortify uses **AES-256-GCM** encryption with a 96-bit random IV generated per-upload. The encryption key is workspace-specific and never transmitted to any server. On Android, the key is stored in the Android Keystore. On iOS, it is stored in the iOS Keychain. The cloud provider receives and stores an opaque binary blob — it cannot read, index, or process the workspace contents.
The metadata file that accompanies each snapshot — which contains workspace configuration, version information, and member lists — is also encrypted before upload. Neither the snapshot nor the metadata is readable without the workspace encryption key.
---
## What a Sync Cycle Looks Like Today
Here is the full sequence of a sync cycle in the current implementation:
**1. Read remote metadata.** The sync engine fetches the metadata file from the provider and reads the current version token (etag, rev, or revision ID). This is a lightweight request — it does not download the full encrypted snapshot.
**2. Check whether the remote changed.** Compare the current remote version token against the last token stored in `workspace_sync_state`. If they match, the remote has not changed since the last successful sync. The pull step can be skipped.
**3. Download and decrypt (if remote changed).** If the remote has a newer version, download the encrypted snapshot, decrypt it using the local workspace key, and load it into a temporary database for merge processing.
**4. Non-destructive merge.** Apply remote-only rows locally. Apply Last-Write-Wins for rows that exist in both. Preserve tombstone deletions. Leave local-only rows untouched.
**5. Replay unsynced journal entries.** Re-apply all local changes recorded in the `change_journal` with `synced = false`. This ensures local intent survives the merge even if the remote had conflicting state.
**6. Export and encrypt the merged result.** Serialize the merged local database, encrypt it with the workspace key and a fresh random IV, and prepare it for upload.
**7. Conditional upload.** Submit the upload with the version token from step 1 as a precondition. The provider accepts the upload only if the remote file is still at that version. If another device has uploaded in the meantime, the upload is rejected.
**8. On precondition failure, retry.** If the upload is rejected, go back to step 1. The retry is bounded with backoff.
**9. On success, persist the new version token.** Store the new remote version token in `workspace_sync_state`. Mark journal entries as synced.
This produces eventual consistency across all members of a workspace without requiring a centralized merge server.
---
## Cloud Providers: What Each Supports
| Provider | Version Token | Conditional Upload | Collaborative Sync |
|---|---|---|---|
| **Google Drive** | Revision metadata + etag | `If-Match` header | Supported |
| **Dropbox** | `rev` identifier | `mode: update` with `rev` | Supported |
| **OneDrive** | etag / cTag | `If-Match` via Microsoft Graph | Supported |
| **iCloud Drive** | Weak or unavailable | Not cleanly supported | **Not supported** |
iCloud Drive's absence from supported collaborative providers is not a data privacy concern — Apple's security is excellent. It is a concurrency primitives concern: the sync architecture requires strong optimistic concurrency control semantics, and iCloud Drive does not expose them cleanly for a backendless file-based sync model.
---
## Why This Architecture Over the Alternatives
The design choice most worth defending is the snapshot-based approach. Delta sync — sending only what changed — is more bandwidth-efficient and enables finer-grained conflict resolution. But it requires server-side state: something that can receive and apply individual change records, maintain a change history, assign version numbers, and serve "give me all changes since version X" requests.
Sortify has no such server. Your cloud provider is a file storage system, not a database. Google Drive cannot answer "give me all item updates since last Tuesday." It can only give you the current file and tell you its version number.
Given that constraint, snapshot sync is not a compromise — it is the correct choice. The client-side merge engine provides the intelligence that a server would otherwise provide, and the encrypted snapshot provides the same privacy guarantee regardless of which provider the user has chosen.
The remaining cost is bandwidth: uploading the full workspace on every sync is heavier than delta sync. For the small-to-medium collaborative workspaces Sortify is designed for, this cost is acceptable. For very large workspaces, future releases may explore compression or incremental export optimization.
---
## Known Tradeoffs and Future Work
**Snapshot size.** Full-workspace uploads are heavier than delta sync. For typical Sortify workspaces, this is acceptable. Very large workspaces, or workspaces with many high-resolution photos, may eventually benefit from chunked or incremental export.
**Clock dependency.** Last-Write-Wins conflict resolution depends on device timestamps being reasonably accurate. Devices with significantly incorrect clocks may produce unexpected merge outcomes. Logical clocks or hybrid logical clocks would eliminate this dependency but add complexity. At current scale, timestamp-based LWW is a practical tradeoff.
**Retry storms under heavy concurrency.** Workspaces with many simultaneous active users could produce repeated retry cycles if multiple devices are pushing changes continuously. Future improvements may include randomized retry jitter, change batching, and sync coalescing to reduce retry pressure.
**Optional conflict review UI.** The current release resolves all conflicts automatically using Last-Write-Wins. All change history — including overwritten values — is preserved in the `change_journal` for auditability. A user-facing conflict review interface may be introduced in a future release for high-value entities where the automatic resolution is insufficient.
---
## The Core Insight
Distributed synchronization without a central authority is hard. Doing it while preserving end-to-end encryption, working offline, and keeping the user fully in control of their data storage is harder still.
The deepest architectural lesson from building Sortify's sync engine is this:
> **Synchronization correctness is less about "syncing data" and more about preserving user intent safely under concurrency.**
When items disappeared from early versions of Sortify, the problem was not that the sync engine was slow or unreliable. The problem was that the engine did not know the difference between "this item does not exist yet on the remote" and "this item was deleted from the remote." It destroyed intent — things the user had deliberately created — because it could not distinguish new from deleted.
Every major architectural change since then — tombstones, complete journaling, optimistic concurrency, deterministic merge, non-destructive pull — was a direct answer to that single insight. The goal is not merely to exchange data between devices. The goal is to make sure that what you intended to happen in your shared space is what happens, on every device, regardless of connectivity, regardless of timing, and regardless of whether your teammate was syncing at the same moment.
---
## Closing
Sortify's sync engine is unusual in its space. Most apps in the "track shared things" category either rely on centralized servers to manage all data, or they offer sync that is single-user only. Sortify attempts something harder: genuine multi-user collaborative sync, fully offline-capable, with end-to-end encryption, on infrastructure that belongs entirely to the user.
The architecture described here — snapshot sync with optimistic concurrency, client-side merge, tombstone convergence, and deterministic conflict resolution — is how we do it. It is not perfect. Snapshot sync costs more bandwidth than delta sync, and the current implementation does not yet include a user-facing conflict review UI or advanced retry coalescing. But it is correct: it does not lose your data, it does not overwrite your colleague's changes, and it does not require you to trust a server with your inventory.
For a tool built on the premise that your space's memory belongs to you — not to us — that is the architecture it deserved.
---
*Sortify — Shared Memory for Your Space.*
*MokingBird Oy — sortify.mokingbird.xyz*
*Sortify is a registered brand of MokingBird Oy, Finland.*
Sortify is developed by MokingBird. This page explains how Sortify users can delete app data without deleting their account, how users can request full account deletion, what data is deleted, what may be retained temporarily, and how to contact support. Support contact: [email protected] --- ## Delete Some Data Without Deleting Your Account Sortify lets users delete certain app data while keeping their Sortify account active. Inside the app, users can delete user-created workspace data they control, including: * items; * rooms; * workspace records; * item notes and metadata; * item movement/history records where those records are part of deleted items or workspaces; * local workspace data stored on the device; * synced workspace data where the user has permission to delete or update that workspace. To delete workspace data without deleting your account: 1. Open the Sortify app. 2. Sign in to your account. 3. Open the item, room, or workspace you want to remove. 4. Use the available delete option in that screen. 5. Confirm the deletion when prompted. Deleting a workspace, room, or item does not automatically delete your Sortify account. You can continue using the same account for other workspaces and app features. If you need help deleting specific data, or if the data is not removable through the app UI, contact [email protected]. Include the email address connected to your Sortify account and describe the specific data you want deleted. --- ## User-Controlled Cloud Data Sortify workspaces may be stored as encrypted files in a cloud provider chosen and connected by the user, such as Google Drive, OneDrive, or Dropbox. These cloud files are controlled by the user's cloud provider account. When deleting workspace data or deleting a Sortify account, users should also review their connected cloud storage and remove any Sortify workspace folders or files they no longer want to keep. Examples include: * Sortify workspace folders in Google Drive. * Sortify workspace folders in OneDrive. * Sortify workspace folders in Dropbox. Sortify cannot always remove every file from a third-party cloud account if access has expired, the provider connection has been revoked, the files were moved manually, or the provider account is no longer accessible from the app. --- ## How To Request Full Account Deletion Users can request full account deletion directly inside the Sortify app. 1. Open the Sortify app. 2. Sign in to the account you want to delete. 3. Go to Settings. 4. Open Manage Your Account. 5. Select Delete Account. 6. Confirm the deletion request when prompted. After confirmation, Sortify starts the account deletion process and signs the user out of the app. If you cannot access the app or cannot sign in, contact support at [email protected] from the email address connected to your Sortify account. Include the subject line "Sortify account deletion request" and provide the account email you want deleted. --- ## What Gets Deleted When You Delete Your Account When an account deletion request is submitted, Sortify deletes or schedules deletion of account data controlled by Sortify, including: * Sortify account profile data, such as account email, display name, and user identifier. * Authentication-related account records used by Sortify. * Workspace membership records associated with the deleted account. * Invite, access, and collaboration records linked to the account where Sortify controls those records. * Account recovery metadata and encrypted recovery envelopes linked to the account. * Notification and device records linked to the account. * App settings and account preferences stored by Sortify. * Local Sortify app data stored on the device as part of the sign-out/deletion flow. Sortify is designed as a privacy-focused app. Workspace content is encrypted, and sync files may be stored in cloud providers selected by the user. --- ## What May Be Retained Some limited records may be retained temporarily or as required by law, security, fraud prevention, billing, dispute resolution, or operational requirements. Sortify may retain: * Account deletion status records during the deletion-pending period. * Minimal audit records needed to prevent abuse or confirm that deletion was requested. * Records required for legal, tax, billing, or compliance obligations. * App store purchase records managed by Google Play or Apple App Store. * Aggregated or anonymized analytics that no longer identify the deleted account. * Crash logs or diagnostic records that are not reasonably linkable to the deleted account. Sortify does not use retained deletion records to recreate a deleted account. --- ## Retention Period After a full account deletion request, the account enters a deletion-pending period of up to 30 days. This period exists to support security, abuse prevention, recovery from accidental deletion requests where applicable, and completion of backend cleanup. After the deletion-pending period, Sortify permanently removes or anonymizes account records controlled by Sortify, unless a longer period is required by law or a legitimate compliance obligation. Local data on the user's device is cleared or made inaccessible as part of the app sign-out/deletion flow. Users may also uninstall the app or clear app storage from their device settings. For partial data deletion, deleted items, rooms, and workspaces are removed through the app flow when the delete action is completed. Synced cloud copies may require a successful sync or manual removal from the user's connected cloud provider, depending on the workspace and provider state. --- ## Subscriptions And Purchases Deleting a Sortify account does not automatically cancel subscriptions or purchases managed by Google Play or Apple App Store. Users with an active subscription should also manage cancellation through the store where the subscription was purchased: * Google Play: open Google Play, go to Payments & subscriptions, then Subscriptions. * Apple App Store: open iOS Settings, select Apple ID, then Subscriptions. If Sortify later supports direct enterprise billing, enterprise administrators should contact [email protected] for billing-related deletion and retention questions. --- ## Contact For account deletion help, partial data deletion questions, cloud-data guidance, or support with an inaccessible account, contact: [email protected] Please include: * The email address connected to the Sortify account. * Whether you are requesting account deletion, partial data deletion, cloud-data guidance, or deletion-status help. * Any relevant details needed to verify and process the request. For security, Sortify may require verification before acting on deletion requests submitted outside the app.