Local Data Storage
SpinDone is local-first. The App stores activities, plans, templates, settings, history, and statistics on your device using AsyncStorage. Basalt Works does not operate a backend that receives this core planning data, and the App does not include a product analytics service.
The export feature creates a local JSON file that you can save to your device or share through your device's sharing options. A copy you export or share is controlled by you and the service or recipient you select.
Purchases
RevenueCat is active in SpinDone and initializes when the App launches. It uses an anonymous app-user identity to retrieve available products and customer entitlement status and to process purchases and restores with the Apple App Store or Google Play. RevenueCat and the relevant store may process purchase and restore information, transaction or receipt data, and entitlement status. Basalt Works does not receive or store your payment card details.
Notifications and Calendar Export
If you grant notification permission and choose a reminder, the App schedules it locally on your device after your action. SpinDone does not register a remote push token or use a push-notification backend for reminders or updates.
If you grant calendar permission and choose to export an activity, the App writes that activity's title and times to the system calendar you select. Those details then become part of the selected calendar and are handled under its settings and provider terms.
Ads and Diagnostics
SpinDone currently has no ads and contains no product analytics or crash-reporting SDK. The App does not request App Tracking Transparency permission and does not use active Expo over-the-air updates.
Apple and Google may provide crash reports and technical diagnostics through App Store Connect and Google Play Console according to their platform policies and device settings. These reports can include app, device, and operating system data, but not activities, plans, or other planning content stored locally in SpinDone.
Support Requests
If you contact support by email, we receive the information you choose to include. The website support form sends your email address, issue type and message, plus any optional device model, operating system version and app version you enter. It also sends the app name and source page. Formspree processes these submissions so we can receive and answer your request.
Product and Support Website
When you select English or Spanish on Basalt Works product or support pages, the website stores that preference in your browser's localStorage under basalt-lang. If no preference is stored, the website reads your browser language and uses Spanish when it begins with "es"; otherwise it uses English. This storage is used only to remember the display language and remains until you change it or clear the website's local storage.
These pages are hosted on Vercel. Its infrastructure may process request metadata needed to serve and protect the pages, such as IP address, request date and time, requested URL, request headers, and browser or device information.