A place for your thoughts.
Drag, fling, and tap your way through boards of floating marbles. Lofi vibes, gamified, no backend, no account.
Penser = to think 🇫🇷
🌐 Web works offline as a PWA · 🍎 iOS live on the App Store · 🤖 Android is in closed test — sideload the APK, or opt in via Play · 🪟 Windows 10 1809+ / 11 ARM64 · 🐧 Linux x86_64 (glibc 2.31+)
- 🍎 iOS beta — TestFlight for bleeding-edge builds before they hit the App Store
- 🪟 Windows portable — zip from Releases: extract, run
pensine.exe, leave no trace. Good for locked-down PCs or USB-stick installs. - 🐧 Linux AppImage — single-file portable:
chmod +x pensine-*.AppImage && ./pensine-*.AppImage. No install, no root, any glibc-2.31+ distro. Delete the file to remove.
💡 Windows heads-up — SmartScreen + uninstall notes
Both Windows artifacts are unsigned while Microsoft Store listing is pending — SmartScreen warns on first launch; click More info → Run anyway.
Uninstall the installer build: Settings → Apps → Pensine → Uninstall (or "Uninstall Pensine" in the Start Menu folder). Removes all installed files and the .pensine file association. Your boards live under %APPDATA%\pensine\ and survive uninstall — delete that folder by hand for a clean wipe, or use the in-app About → Reset before uninstalling.
Uninstall the portable zip: just delete the extracted folder.
💡 Linux heads-up — .deb vs AppImage, uninstall
Two unsigned artifacts on every release:
.deb(Debian / Ubuntu / Mint / Pop!_OS) —sudo apt install ./pensine-*.deb. Installs to/usr/lib/pensine/, adds a Start menu entry +.pensinefile association. Uninstall withsudo apt remove pensine. apt will warn once about "untrusted origin" — expected, the .deb isn't GPG-signed.- AppImage (any distro, glibc 2.31+) — single file,
chmod +xand run. No install, no menu entry unless you run AppImageLauncher or similar to register it. Uninstall = delete the file.
Your boards live in your XDG data directory (typically under ~/.local/share/) and survive uninstall; use in-app About → Reset for a clean wipe.
Two ways in. The sideload route is self-contained; the Play route needs an opt-in because Pensine is still in Google Play's closed test track.
Grab the latest .apk from Releases, open it on the phone, enable "Install unknown apps" for your browser when prompted. Done — no sign-up, no Play listing to unlock.
The Play Store listing is hidden until your Google account is on the testers list.
- Join the testers group with the Google account you'll use on your phone: groups.google.com/g/pensine-testers. Free, near-instant approval.
- Install, either:
- 📱 On the phone: open the Play listing while signed in with the group account. Install button appears.
- 🌐 From any browser first: open the opt-in page to flip the per-account flag, then open Play Store on the phone as usual.
⚠️ Sideload vs. Play are not interchangeable on the same device. The sideloaded APK is signed with the upload key; the Play version is re-signed by Google. If you have one installed, Android will refuse the other with a signature-conflict error — uninstall first to switch.
Pensine hasn't been promoted to Google Play's production track yet. When it is, the testers-group step goes away and the Play listing becomes a normal one-click install like the App Store.
Pick a flavor, drop your marbles in. Every board lives inside a workspace.
| Board | What it does | |
|---|---|---|
| 💭 | Thoughts | Free-form notes that expand on tap. Long-press to edit. |
| ✅ | To-do | Tap to catch in the net (done). Reset releases everything back into play. |
| 🎴 | Flashcards | Tap to flip. Tap again = wrong (grows + flips back). Double-tap = correct (shrinks to net). |
| 🪜 | Steps | Sequential checklist with numbered marbles, one active at a time. |
| ⏱️ | Timer | Steps + stopwatch overlay. Logs a lap every advance. |
| ⏳ | Countdown | Steps + per-step timer. Auto-advances when the clock hits zero. |
Boards live in workspaces — collections of related boards (e.g. Cooking Recipes, French Vocab, Pilot Checklists). Create, rename, recolor, and reorder them from the home screen. Export a whole workspace as a single .pensine file.
- 🌓 Dark / light theme toggle
- 🫧 Drag and fling marbles around the screen
- 📳 Shake button to scatter everything
- 🎨 Per-board accent color (tints title, net, and icon)
- 🎨 Color picker and size slider per item
- 🔀 Reorder boards by long-press drag on the home screen
- 🏷️ Rename, duplicate, or change board type from the popup menu
- 🗑️ Swipe to delete with undo
- 📤 Export / import as
.pensinefiles - 📲 Installable as a PWA on mobile and desktop
- ⌨️ Full keyboard shortcuts on desktop / web
- Flutter / Dart — one codebase, 6 targets
- Local storage only — no backend, no account, your boards never leave your device unless you export them
flutter run -d chrome # web
flutter run -d windows # desktop
flutter run -d macos # desktopWeb builds deploy automatically to GitHub Pages on every push to main.
All Rights Reserved. See LICENSE.