Mobile & Swipe Gestures

Closed beta

The iOS companion app is currently in closed beta. If you’re not already on the allowlist, features that require the native shell — notably two-way Apple Reminders sync — won’t be available to you yet. Everything else in this page works for everyone on mobile web.

Reach out if you want access.

Mobile web

The web UI works fine on a phone browser, but a few interactions are tuned specifically for touch.

Swipe gestures

On an item in the loop:

  • Swipe right → complete the item. A green “✓ Complete” panel reveals as you drag; release past the threshold and the item flies off.
  • Swipe left → open the snooze menu. Pick a quick option (30 min, 1 hour, tonight, tomorrow, next week) or type a natural-language duration.

Short drags snap back; vertical drags still scroll naturally. A tap opens the edit view — the gesture system uses a ~10px threshold and direction-locking to keep click and swipe unambiguous.

Mobile action panel

Selecting an item on mobile reveals an inline action row: Edit · Urgency · Top of Mind on one line, Snooze · Done on the next. Same shortcuts you’d use on desktop, just finger-friendly.

iOS companion (closed beta)

The iOS app is a thin Capacitor shell around the web UI. Most of what it adds is access to iOS-only APIs:

  • EventKit / Reminders — for two-way sync with Apple Reminders

When the shell is installed, the web app detects it via window.NativeBridge and exposes the extra features automatically. Running in a regular mobile browser, those native calls are safe no-ops — you just don’t see them.

iOS Reminders stream (allowlist only)

The iOS Reminders stream type is gated to a small allowlist right now. If you’re allowlisted, you’ll see “📋 iOS Reminders Stream” as an option when creating a new stream; otherwise it won’t appear, and the server will refuse to create one even if you try.

Once configured, it’s a two-way sync:

  • Reminders you create in Apple Reminders become items in your loop (with an optional list filter to scope the sync)
  • Completing in Loopr marks the reminder complete in Apple Reminders
  • Completing in Apple Reminders syncs back to Loopr

Push notifications

Optional push notifications for urgency-5 items. Enable in Profile → Push Notifications. Works on mobile web (where supported) as well as the native app.

Developing against a local server

If you’re building the iOS shell and want to point it at a local Phoenix server, edit capacitor.config.ts to point server.url at your LAN IP, then npx cap sync ios && npx cap open ios.