Vocabloot at Shipaton 2026

Everything we built and shipped in the open between 1 August and 30 September 2026: one Kotlin Multiplatform app on both stores, two open-source libraries, the app's own Kotlin on the web, a deck kit for ChatGPT, Codex and Claude Code, and German words looted on the streets of Munich.

  • 1,500+words looted
  • 10languages
  • 8games
  • iOS & Androidplatforms
  • 100%privacy first
Vocabloot on Apple Watch, iPhone, iPad, an Android tablet, an Android phone and a Wear OS watch, each showing the German word der Hund

One codebase, both stores

Kotlin Multiplatform end to end, with Compose Multiplatform drawing every screen on both phones. The same Kotlin modules also run on both watches and on the web: five compile targets, Android, iOS, watchOS, the JVM and JavaScript.

Shared code
83%

81,468 of the phone apps' 98,060 production lines live in commonMain and run on both phones.

  • Compose Multiplatform draws every screen and all eight arcade games, real-time Canvas scenes included
  • Kotlin Multiplatform carries the domain, the file-based wordbook, purchases, the 24 interface languages and every ViewModel
  • One implementation of every screen and game; only the camera preview and the widgets are native
Android-only code
7,669 lines

Only where Android has its own API.

  • CameraX camera preview
  • ML Kit subject segmentation
  • TextToSpeech word-boundary callbacks
  • Glance home-screen widget
  • Share target
  • Google Drive app-data transport
  • Data Layer sync to the Wear OS watch
iOS-only code
8,923 lines

The same seams on Apple's side.

  • AVFoundation camera preview
  • Apple Vision subject segmentation
  • AVSpeechSynthesizer word-boundary callbacks
  • iCloud Drive and CloudKit transport
  • 1,783 lines of Swift: the host, the Share Extension, the WidgetKit widget and the sync to the Apple Watch
Wear OS app
657 lines

Its own Kotlin, on 1,534 lines of shared Kotlin: 70% of the watch app is shared.

  • Wear OS is Android, so it depends on shared/reading and shared/format like the phone app, no cross-compile
  • Wear Compose Material3 draws the screens; wordCardRows() decides each card's rows and their order
  • The phone and the watch read and write one Kotlin type, WatchWordPayload
  • A Tile shows the word of the hour
Apple Watch app
779 lines

SwiftUI on 1,534 lines of shared Kotlin: 66% of the watch app is shared.

  • shared/reading and shared/format cross-compile to watchOS
  • Linked alone as VocablootReading, a small static framework, not the whole shared framework
  • SwiftUI calls wordCardRows() and PartOfSpeech from Kotlin to lay out each card
  • A Smart Stack widget shows the word of the hour
Kotlin/JS, on the web
1,534 lines

The same shared Kotlin as the phones and both watches, compiled to JavaScript for vocabloot.com, not rewritten.

  • shared/format: the deck file format, read and written by the app, the deck pages and the Deck Kit packer
  • shared/reading: which word a tap lands on, the highlight while a sentence is spoken, and the word card's rows
  • 1,461 lines of web-only Kotlin: the deck page viewer and the packer the Deck Kit runs in Node
RevenueCatPurchasesKMP SDK
One flow, both stores

Written once in shared code on RevenueCat's Kotlin Multiplatform SDK, not two native SDKs behind a bridge.

  • One paywall and one purchase flow for the App Store and Google Play
  • Our backend reads RevenueCat as the single source of truth for premium
  • The energy chip, the paywall and the daily quota never disagree
Tests
33,670 lines

29,905 of them shared, so one run covers both phones and the rules both watches use.

The same Kotlin, now on the web

#Wordathon: 100 words from the street

German words looted with Vocabloot in trams, parks and shops, each post with the snap video and example sentences. Challenge complete: 101 words against a goal of 100, in 89 posts, newest first.

On TikTok

On Instagram

Two libraries, published during Shipaton

BackupKit: your app backs up into the user's own Google Drive or iCloud, no serverBackupKit

Backup into the user's own iCloud or Google Drive. No server, no account on your side.

A Kotlin Multiplatform library that backs up app data to the user's own iCloud or Google Drive, no server required.

Featured in Android Weekly #744, Libraries, 13 September 2026.

BackupKit by Vaazh Studios is a Kotlin Multiplatform library that backs user data up into the user's own cloud, iCloud Drive on iOS and the Google Drive app data folder on Android, with no server and no accounts. It ships a sync engine with differential updates and resumable transfers.

Featured in Kotlin Weekly #529, Libraries, 20 September 2026.

Docs GitHub Maven Central klibs.io Android Weekly Kotlin Weekly

WidgetBridge: one feed from the KMP app, two native widgetsWidgetBridge

Typed handoff of data and images to Glance and WidgetKit widgets. The extension never links Kotlin.

A Kotlin Multiplatform library that hands off typed data and images to native Glance and WidgetKit widgets.

Featured in Android Weekly #744, Libraries, 13 September 2026.

Docs GitHub Maven Central klibs.io Android Weekly

Community decks, the Deck Kit and the creator program

Vocabloot Deck Kit

Six skills that turn a conversation into a deck: create, text, stickers, check, pack, publish. No API key; the assistant running the skill writes the cards, and the app's Kotlin packer checks and packs them. Open source under MIT. Runs in ChatGPT, Codex and Claude Code; submitted to Anthropic's community marketplace for Claude Code on 16 September.

GitHub Make a deck

The Deck Kit in ChatGPT

Listed in the OpenAI plugin directory since 16 September. Add it in ChatGPT, say what you speak, what you learn and the topic, and ChatGPT writes the cards and the stickers. Free, no API key, and the file it hands back opens straight in the app.

Open in ChatGPT A deck it made

Community decks

vocabloot.com/decks went live on 16 September: a catalog you can search, filter by the language you learn and the one you speak, and sort. Every deck page shows the whole list with speech and highlight, and a card dialog in the app's own detail flow. The first listed deck, German Greetings, was written in ChatGPT with the kit: 18 words, 14 with stickers.

Browse decks German Greetings Community hub

Creator Studio

studio.vocabloot.com turns six real words and stickers from an exported wordbook into a 15-second video: a liquid, mouse- and touch-reactive scene, then the App Store and Google Play badges. Runs entirely in the browser from a .slbackup file; nothing uploads. A World landmarks sample is offered if you have not exported a wordbook yet.

Open Creator Studio

Creator program

Post three times about how you use Vocabloot on TikTok, Reels, Shorts or X, at any follower count. Creator Studio turns six of your words into the video. 30+ likes earns a month of Premium, 100+ likes a year.

Join the program

Timeline

  1. Before Shipaton: work on the app starts with its first commit, under the name SnapLingo.
  2. Before Shipaton: Google Play asks for more testing before production, 14 more days of closed testing with real testers.
  3. Before Shipaton: the first TestFlight testers are invited, under the name Snavo.
  4. Before Shipaton: example sentences light up each word as it is spoken, and tapping a word opens its meaning. Both reach testers in build 44.
  5. Build 45 to TestFlight and the Google Play closed-testing group. Sixteen tester builds follow before 1.0.
  6. Snavo becomes Vocabloot. vocabloot.com goes live with the new name and icon.
  7. Paywall, energy chip and purchase flow built in shared code on the RevenueCat Kotlin Multiplatform SDK.
  8. The /learn lesson library launches; 114 pages across eight languages by the next day.
  9. 1.0 (46) to TestFlight and Play closed testing. Camera recovery flow for photos with no clear subject.
  10. Word nudges become teaching cards built from the learner's own snap, on both platforms.
  11. First video on the TikTok channel, @learnfrombarbarah.
  12. Listed on Maidensail.
  13. Browser games go live at vocabloot.com/games, 105 pages, plus five more comparison pages.
  14. Night artwork for every learning language in dark mode. TestFlight 57 and 58.
  15. Google Play grants production access after closed testing with our tester community.
  16. Vocabloot 1.0 on Google Play.
  17. Vocabloot 1.0 on the App Store, after App Review.
  18. Listed on Startup Fame.
  19. Listed on the Munich Startup platform.
  20. Hand-painted art lands in the games: Sky Rescue first, then game chrome, score screens and haptics.
  21. 1.1 on both stores: flat pricing, redeem-code row, painted Vault, Flooded Hold, Intercept, Warp Run and Pop Quiz.
  22. Personal cloud backup built: domain, reconciler, scheduler, restore assembler. iCloud Drive and Google Drive transports the next day.
  23. Product Hunt launch.
  24. Fazier launch.
  25. #Wordathon starts on X: 100 German words, just by walking around Munich. 1/100 der Bus.
  26. Uneed launch.
  27. App Store listing rewritten for 21 storefront localizations from keyword data, pushed with fastlane. 1.2 (66, 67) to testers.
  28. Restore in onboarding ships in 1.2 (68). #Wordathon reaches 5/100, der Zug.
  29. Backup asks every user first, on both platforms. 1.2 (69). BackupKit 0.1.0 on Maven Central.
  30. 1.2 (70) on both stores. WidgetBridge 0.1.0 on Maven Central; the Android widget now reads through it.
  31. 0.2.0 of both libraries: docs sites, samples and -test artifacts of fakes.
  32. BackupKit 0.3.0: resumable Drive uploads, shrink guard, fake knobs.
  33. Android Weekly #744 picks both libraries for its Libraries section; both listed on klibs.io. Release-build widget fix ships to the app and the library the same evening.
  34. About 19,000 lines of leftover starter-template code deleted, sign-in screens the app never used among them; Vocabloot has no accounts. The shared-code share is re-measured on what ships.
  35. Wordathon posts 6 to 14, then a Vault round on the looted words.
  36. WidgetBridge 0.3.0: consumer keep rules for WorkManager's reflective constructors.
  37. Wordathon posts 15 to 31 in one evening: a house with solar panels, a supermarket run, the Packstation, the Pfandautomat.
  38. shared/format gains a JavaScript target. The deck viewer and the deck packer are the app's Kotlin compiled for the browser and Node.
  39. vocabloot.com/community and /decks go live: a catalog with search, filters and sorting, the community hub, and the Make-a-deck page.
  40. Vocabloot Deck Kit on GitHub: six skills for ChatGPT, Codex and Claude Code, no API key. Published in the OpenAI plugin directory the same evening and submitted to Anthropic's community marketplace.
  41. Wordathon posts 32 to 36, then a Sky Rescue round on the looted words.
  42. German Greetings, the first community deck, written in ChatGPT with the kit and listed on /decks: 18 words, 14 with stickers.
  43. Deck Kit 0.1.1: every skill shows its work, lazy tokens are refused by the kit and the packer alike. The word card's rules move into shared/reading, so the web viewer renders exactly what the app shows.
  44. 1.3 (71): reminders in a window you choose, a third sticker style, the word page opens faster. Live on Google Play; iOS in App Review.
  45. Kotlin Weekly #529 picks BackupKit for its Libraries section.
  46. The Wordathon and TikTok sections become reels: the newest six in a row, Show all loads the rest.
  47. TechBase Directory launch.
  48. Wordathon posts 37 to 71: a football stadium, a streetcar, an espresso machine, a spice rack.
  49. Wordathon posts 72 to 85 in one evening: a teapot, a loading dock, a tower crane, a newspaper vending machine.
  50. FoundrList launch.
  51. The write-up of the app's Kotlin on the web goes up on dev.to: Android, iPhone and the browser on one copy of the rules, with the screens from all three.
  52. Wordathon posts for words 86 to 101 on X, then the last one: challenge complete, 101 German words against a goal of 100, in 85 posts.
  53. 1.3 live on the App Store, so both stores run 1.3.
  54. The Devpost story gets real screenshots and GIFs throughout, camera to sticker, tap-a-word, the widgets, WhatsApp stickers, the German Greetings deck page. The code-split card stops overclaiming, and 1.0's two launch dates come back correctly: 24 August on Google Play, 26 August on the App Store.
  55. More Devpost story captures: snapping a tram to die Straßenbahn, the energy chip's three states rendered straight from the app's own Compose code, and the Reddit reply that started the decks idea.
  56. A one-time paywall at the end of onboarding for new installs. The last Devpost story assets go up: the six notification types on lock screen and home screen, and the two Creator Studio GIFs re-encoded lighter.
  57. Games start bringing back missed words: each session mixes in up to three in ten, rotating through the rest of the wordbook. The home-screen widget takes its colour from each word's own sticker instead of a fixed tint, confirmed on a physical iPhone.
  58. Vocabloot ships on the wrist: an Apple Watch app with word cards laid out by the shared Kotlin rules, swipe-to-sticker, and a Smart Stack widget, plus a matching Wear OS app with a Tile. First on TestFlight, 1.4 (73).
  59. Games and app layouts adapt for iPad and Android tablets. A game-feel pass makes Pop Quiz, Sky Rescue and Warp Run animate on the real frame clock, and sounds and haptics follow the Settings toggles.
  60. The Devpost demo video is re-cut to show both phones side by side.
  61. Android Weekly #746 picks the Kotlin-on-the-web write-up for its Articles & Tutorials section.
  62. The code split is re-measured with both watch apps in it. The phones stay 83% shared; the Wear OS app is 657 lines of its own Kotlin and the Apple Watch app 779 lines of SwiftUI, both on the same 1,534 lines of shared Kotlin that vocabloot.com runs.
  63. Both watch apps go to the stores: 1.4 with the Apple Watch app and the Wear OS app is waiting for review on the App Store and Google Play.
  64. TinyLaunch launch.
  65. 1.4 live on the App Store: the Apple Watch app and its Smart Stack widget, tablet layouts, and reminders that keep arriving after the app is backgrounded.
  66. Google Play rejects the Wear OS app: the store listing never mentioned its Tile. The listing gets a Wear OS Tile section, the ten app languages without a Play listing get one, and the watch's word pager gains a page indicator. Resubmitted the same morning.
  67. The Wear OS app is live on Google Play, so Vocabloot is on both watches.
  68. Redesigned store screenshots on the App Store and Google Play, for phones and tablets.
  69. Bug fixes from crash reports and large-text testing: a restored Android app no longer crashes on its tabs, iOS crash reports show the real error, consent choices stay on screen at 200% text, long German words never split mid-word, and every word in an example sentence answers a tap, in the app and on the deck pages.
  70. The Shipaton submission video goes up and is linked on Devpost.