Changelog

Every NowKit update, newest first. Buyers get every update for life — pull the latest from your private repo and apply what fits your app.


July 21, 2026

Added — /kit-update-deps: update your dependencies without breaking your app. Keeping an Android project's dependencies current is a minefield — AGP, Gradle, Kotlin, KSP and the Compose compiler all move in lockstep, several libraries in the kit are pinned on purpose (Firebase BOM, the Supabase + Ktor pair, RevenueCat), and a version that compiles fine can still break the paywall or sign-in at runtime. A blind "bump everything to latest" is the fastest way to a dead build. The new /kit-update-deps command does it the safe way: it reads your libs.versions.toml, checks the latest version of each library from Maven, and sorts everything into three buckets — ✅ safe (routine library bumps, applied automatically), ⚠️ toolchain (AGP / Kotlin / Compose / compileSdk — careful, opt-in, and it hands the big migrations to the official Android upgrade skills), and 🔒 pinned (left alone unless you explicitly override, behind a loud warning + guaranteed rollback). It applies one group at a time — compile, lint, then smoke-run on your device — and makes a separate commit per group, so if anything misbehaves you revert exactly one commit. It also flags the one bump that is not optional: Google Play's targetSdk deadline, which blocks your uploads once it passes. Also updated: /kit-env-check now shows how to keep your machine tools (Android SDK, gh, ImageMagick…) current and points you at /kit-update-deps for the app's Gradle dependencies. Run /kit-update to pull the new commands, then /kit-update-deps whenever you want to freshen your dependencies (a good habit before each release).

The kit itself is now on fresher dependencies + targets Android 16. New clones ship with ~17 libraries bumped to their current stable versions and targetSdk raised to 36 (Android 16) — so you start current and ahead of Google Play's target-API deadline. Already have an app you built on an older clone? These do not arrive through /kit-update — that command only refreshes the /kit-* commands and skills, never your libs.versions.toml or build.gradle.kts (those are your code, and blindly overwriting them could clobber your own changes). Instead, run /kit-update-deps — it re-derives the current versions for your project, bumps the safe ones, and walks you through targetSdk 36 so you clear the Play deadline. Do it before your next release. (The kit stays on AGP 8.x / compileSdk 36 for now; the AGP 9 migration is a separate, bigger step we'll ship its own guided path for.)


July 15, 2026

Added — your subscription now follows the signed-in user, not the phone. Out of the box the kit configured RevenueCat with a random anonymous id per install — it never told RevenueCat who your user was. So a subscriber who reinstalled, or signed in on a second device with a different Play account, looked like a brand-new customer, and your RevenueCat dashboard showed opaque UUIDs instead of real people. (Separately, the kit had a setUser analytics call that was written but never wired up — so PostHog / Firebase were never told who the user was either.) A new SessionIdentitySync watches your auth session and, on every sign-in / sign-out, keeps both analytics and RevenueCat in sync with the app user: RevenueCat logIn(uid) / logOut(), plus the user's email and PostHog id sent to RevenueCat so the dashboard is readable and each subscriber links back to their analytics profile. The uid is your Supabase or Firebase id automatically — whichever provider you chose. Everything no-ops safely when you have no auth (anonymous is correct then), no RevenueCat key, or no PostHog. Heads-up: sending email to RevenueCat shares it with a third party, so re-run /kit-generate-legal to add that line to your privacy policy + Play Data Safety. Existing apps: run /kit-update and apply the "Link RevenueCat identity to the signed-in user" fix (only relevant if your app has auth enabled).

July 13, 2026

Fixed — cleared two Google Play "edge-to-edge" recommendations. Play flagged "your app uses deprecated APIs or parameters for edge-to-edge" and "edge-to-edge may not display for all users." Both traced to res/values/themes.xml, which set android:statusBarColor and android:windowLightStatusBar — attributes that are deprecated on Android 15 (API 35), the kit's target. The kit already calls enableEdgeToEdge() in MainActivity, which makes the system bars transparent and auto-adapts the status-bar icons to your light/dark theme — so those XML attributes were redundant, and the hardcoded light-status-bar flag actually broke icon contrast in dark theme (the "may not display" warning). Removed both lines; no visual regression, no code change. Existing apps: run /kit-update to apply the one-line theme fix.

July 8, 2026

Fixed — your app icon now actually changes on the phone. In /kit-publish-to-play's app-icon step, giving your own PNG (or a Gemini-generated one) only rewrote the legacy icon bitmaps — but the kit's minSdk is 26, so every device shows the adaptive icon (foreground + background), which was left untouched. Net result: you'd set a new icon, upload it to Play, and your phone still showed the old NowKit placeholder. Now the step regenerates the adaptive foreground/background (your art centred in the icon safe-zone so no launcher mask clips it) and the legacy bitmaps and the 512 Play icon — and, crucially, reinstalls the app on your device (a Play upload never updates the app on your phone, and Android caches launcher icons), then tells you to eyeball the home screen before moving on. icon.kitchen output already did the adaptive part; the reinstall applies to that path too. Ships for all five agents. Existing apps: run /kit-update, then re-run the icon step in /kit-publish-to-play.

July 5, 2026

Fixed — /kit-generate-legal now writes a Data safety CSV you can actually trust. The old flow asked the AI to hand-fill Play's 780-row Data safety import CSV, separately from the human-readable play_data_safety.md table. In practice the two drifted: a published app could declare 2 data types when it actually collected 10 — under-reporting that contradicts your own privacy policy, which is exactly what Google strikes apps for. It also sometimes left the two required deletion-URL rows blank, so the import failed with "Response missing for PSL_ACCOUNT_DELETION_URL". Now the .md is the single source of truth, and a bundled generator (scripts/DataSafetyCsv.java, runs on the JDK you already have — no install) derives the CSV deterministically from it and refuses to write a wrong file: it hard-fails, listing the exact problem, if any data type is non-canonical, a purpose is unrecognised, a URL row is missing, or the CSV wouldn't match the .md. Both deletion-URL rows are always filled. Verified end-to-end against real Play Console. Existing apps: run /kit-update, then re-run /kit-generate-legal and re-import the CSV — check your live Data safety lists every type your privacy policy does.

Fixed — /kit-publish-to-play first-release maze, three real snags buyers hit.

  • Set countries/regions. A first Production release starts with 0 countries and Play silently blocks rollout ("you must select at least one country/region") until you add them. The command now has an explicit step: Production → Countries / regions tab → Edit countries. (Also noted on the update path.)
  • Advertising ID declaration. Because the kit ships Firebase Analytics, your manifest includes the AD_ID permission, so Play requires an Advertising ID declaration — a step outside the 11-task checklist that only surfaces as a "1 issue" at the final review and blocks rollout. New Phase 5.4b walks it (declare Yes, purpose Analytics), plus a catch at submit time.
  • App signing / SHA-1 moved. Google relocated the app-signing page; the SHA-1 step now points at Protected with Play → Play Store protection → Manage Play app signing (was the old Test and release → App integrity path).

All changes ship for every agent (Claude Code, Cursor, Antigravity, OpenCode, Codex). See the Commands reference.

July 3, 2026

New

  • New command: /kit-plan-monetization — decide how your app makes money, then wire it in. Until now the kit set up the paywall plumbing (/kit-setup-paywall) but left the actual money strategy to you: which model, what to lock, what to charge. This new command fills that gap. Run it after /kit-design-app and it reads your real screens, helps you pick a model (freemium, free-trial, or pay-once), recommends which features to lock and what to price them at, then wires the premium gates into your screens for you. It's strictly entitlement-only — your app just checks the premium switch, so products, prices, trials, and paywall design stay editable in RevenueCat with zero code changes (nothing is hardcoded). If your paywall isn't set up yet, it runs /kit-setup-paywall first; at the end it walks you through creating the products, attaching them to premium, and publishing the paywall — and it'll even review a screenshot of your paywall for conversion tips. Ships for all five agents (Claude Code, Cursor, Antigravity, OpenCode, Codex). See Pricing Strategy and the Commands reference.

Fixed

  • The app no longer crashes on the paywall when RevenueCat isn't set up yet. If you had the paywall switched on (PAYWALL_ENABLED = true, the default) but hadn't added your RevenueCat API key yet — e.g. you ran the app before finishing /kit-setup-paywall — the app crashed the moment the paywall appeared (usually right after onboarding) with "There is no singleton instance… configure Purchases…". RevenueCat's prebuilt paywall reads its SDK singleton on creation and throws when it isn't configured, and the kit was showing that paywall unconditionally. Now the kit skips the paywall when RevenueCat has no key and continues to your app, so a half-finished setup (or a paid app mid-build) runs fine; the paywall appears as soon as the key is in. Existing apps: run /kit-update and apply the paywall-crash fix.

July 2, 2026

Docs

  • Setup guides now install the GitHub CLI (gh). gh is what /kit-save-to-github uses to create your private repo and push — the macOS, Windows, and Linux setup pages now include it as a step (install + gh auth login), with GitHub Desktop mentioned as an optional GUI.
  • Codex is now a first-class agent in the docs. NowKit's /kit-* commands already shipped for OpenAI Codex — the setup guides and Requirements page now list it alongside Claude Code, Cursor, Antigravity, and OpenCode (with install command + pricing).
  • Cleaner Requirements page. The "Optional accounts" table is now easy-to-scan per-service cards (like GitHub), and the AI-agent section has a proper comparison table — what each agent is, its cheapest plan, and notes — plus a "cheaper plan still ships a full app" explainer.
  • Dropped Holo from the setup guides and /kit-env-check. The optional terminal profiler confused people, so it's gone everywhere — one less thing to think about. scrcpy stays as the optional screen-mirroring tool. (Also fixed the Windows setup page's sdk.dir note to use escaped backslashes.)
  • Proper step-by-step Setup Linux page. Linux used to be a single crammed code block at the bottom of the macOS page — it's now a full guide (apt / .bashrc, each step with a verify) alongside Setup macOS and Setup Windows.

Fixed

  • /kit-generate-legal no longer flashes an "invalid tool parameters" error mid-run. Its question step tried to use a fixed-option picker for free-text answers (your company name, email, region) — now the open-ended questions are asked as plain prompts and only the yes/no ones use the picker. (It recovered before, but the red error was confusing.)
  • /kit-generate-legal now catches services you added by hand — and never invents a claim. The scan used to only recognise the kit's own SDKs and Retrofit endpoints, so if you wired up a transcription service (Deepgram, AssemblyAI), your own OpenRouter call, or anything over raw OkHttp/WebSocket, it was missed — and the agent could write a confident but wrong line like "voice is on-device, audio isn't sent," which is exactly the kind of Data Safety mismatch that gets an app pulled from Play. It now scans the whole codebase for raw HTTP/WebSocket calls, external hosts, API keys, and audio/camera/location/file capture; always asks what you added and whether you send audio/media/files/location anywhere; discloses third-party sharing (a service that receives your audio or text is a recipient); and is forbidden from claiming "on-device / not sent / not stored" unless it's verified from the code. If you shipped a policy before this, re-run /kit-generate-legal and double-check it.
  • /kit-publish-to-play points at the real Play Console for your version code. The "find your highest uploaded versionCode" step named App bundle explorer, which Google removed — it now sends you to Test and release → Latest releases and bundles → Latest app bundles (the Version code column).
  • Windows setup now writes a correct sdk.dir. On Windows, /kit-start-setup wrote the Android SDK path with forward slashes (and sometimes left the macOS placeholder line behind), which fails on some machines. It now writes exactly one line with doubled backslashessdk.dir=C:\\Users\\<name>\\AppData\\Local\\Android\\Sdk — the format a Java .properties file actually needs.
  • /kit-update now pulls the Data safety template too. The one-click Data safety CSV needs data_safety_sample_reference.csv (Google's import schema); /kit-update only refreshed the command files, so apps cloned before that template existed didn't get it and /kit-generate-legal had nothing to fill. /kit-update now fetches it alongside the commands.

June 30, 2026

New

  • Your store listing's feature graphic is now generated for you. /kit-generate-screenshots creates playstore/feature_graphic.png (1024×500 — required by Play) with your logo + app name on your brand colour, in every screenshot path. No more getting blocked at the listing because you don't have a 1024×500 banner.
  • /kit-publish-to-play now registers your release SHA-1 and checks paywall billing. Two things that quietly broke launches are now in the flow: a Register your release SHA-1 step (after the checklist) so Google sign-in actually works on Play builds — Play re-signs your app, so the debug fingerprint you registered during setup isn't the one users get — and a paywall billing-readiness check before the build (uncomments the BILLING permission, confirms your RevenueCat ↔ Play products are live) so purchases credit real users.
  • Shipping an update now catches stale legal + lets you track the release. /kit-publish-to-play's update path asks whether you changed any SDK since last release (paywall, analytics, AI, auth) and, if so, regenerates your privacy policy + Data Safety and re-hosts them — so you don't ship a Data Safety declaration that no longer matches your app (which Play strikes). It also offers /kit-plan-release-analytics before the build so a new feature ships with its funnel.

Changed

  • /kit-upload-on-google-play has been removed — use /kit-publish-to-play. The newer command does everything the old one did (and walks the Play Console in the right order, one step at a time), so the legacy command is gone to avoid confusion. Anything that used to point at /kit-upload-on-google-play now points at /kit-publish-to-play, and /kit-update deletes the old command file from your repo if you still have it.

Fixed

  • /kit-publish-to-play now matches the real Play Console, screen for screen. The "Set up your app" steps used to send you to menus that no longer exist (the old "App content" nav, "App access"). Every task now opens its row in the Dashboard checklist with the exact current wording — Sign in details (incl. the full "Add sign in details" reviewer-account dialog), Ads, Government apps, store listing, and the rest. The command also now tells you to dismiss the per-save "Go to Publishing overview?" dialog with Not now, and ends with the one batched Publishing overview → Send app for review submission (the production submit for accounts exempt from the 14-day test).

  • Data safety is one-click again — the CSV is actually created now. /kit-generate-legal fills playstore/play_data_safety.csv from your app's SDKs (it previously only made the reference page, so there was nothing to import). In Play, Data safety → Import from CSV and the whole form fills. (It also stopped pointing at the dead "App content" menu.)

  • /kit-generate-landing stopped using the old "App content → Privacy policy" path too.

  • /kit-publish-to-play — the rebuilt 0-to-Google-Play command. Walks the whole Play Console journey in the right order, one step at a time (no more dependency maze), generates a Data safety CSV you import in one click, and covers the 12-tester / 14-day closed-testing gate through to production. Replaces the legacy /kit-upload-on-google-play.

Improved

  • /kit-sign-release now archives every build. Each signed AAB is copied to releases/ under a versioned name (e.g. Focus5_v1.0.0_1.aab) so your build history is kept instead of Gradle overwriting app-release.aab each time.

  • /kit-publish-to-play now makes your app icon. Phase 1 adds a launcher-icon step (before the build) with three ways to make it: icon.kitchen, generate with Gemini / Nano Banana (the command writes the image prompt from your app's purpose + brand colour), or bring your own ≥512×512 PNG — then it resizes into every density + the 512×512 Play icon for you.

  • The Gemini icon prompt now copies to your clipboard. Instead of printing the prompt in the terminal (where the gutter and line-wrap made it impossible to copy cleanly), the command saves it to playstore/icon-prompt.txt and copies it straight to your clipboard, then walks you through generating the image on gemini.google.com (Create images → Thinking / Nano Banana Pro) and downloading the PNG — no guessing where to paste.

  • /kit-publish-to-play builds after the landing page now. The build step moved to run once your hosted privacy/terms URLs exist and are written into KitConfig, so the shipped app's in-app Settings → Privacy / Terms links are correct (they used to point at placeholders).

  • /kit-publish-to-play now remembers where you left off — across restarts. A first release is multi-day, and the screenshots step makes you restart Claude Code (for the image MCP), which used to wipe its progress and dump you back at Step 1. It now saves a small playstore/.publish-progress.md and reads it on every run, so it resumes at the exact phase you stopped at — your finished icon, created app, and installed MCP are all recognised instead of re-asked. (The file is git-ignored.)

  • You no longer run the Gemini MCP setup by hand. When /kit-generate-screenshots needs the image MCP, the agent now runs npm install -g @houtini/gemini-mcp and registers the server itself (via claude mcp add) — you only paste your API key and restart, instead of copy-pasting install + config commands.

  • Screenshots now have a free, no-distortion option. /kit-generate-screenshots analyses your app and writes the ASO captions once, then lets you pick how to render: the new free framed editor (ParthJadhav app-store-screenshots, MIT) frames your real screenshots with captions + a background at the exact Play resolution — no AI, no stretching (the old Gemini-only path stretched shots to fit and could look distorted) — or the Gemini AI path for richer marketing scenes (now flagged as paid: API credits + MCP setup + restart). Both reuse the same captions and your raw shots.

Fixed

  • Screenshot MCP setup is now correct + step-by-step. /kit-generate-screenshots walks the Gemini (Nano Banana Pro) image-MCP setup one step at a time using the skill's actual package — @houtini/gemini-mcp — instead of dumping a different fork's instructions in one wall of text.
  • The agent runs the build (and other non-interactive steps) itself. /kit-sign-release (and /kit-publish-to-play Phase 4) sometimes asked you to run ./gradlew :app:bundleRelease by hand. The signed build is non-interactive — the keystore passwords live in local.properties — so the agent now runs it directly, same as npm install and other setup commands. You only run things that genuinely need you (logins, browser steps). A guard in AGENTS.md keeps every command consistent.
  • First release no longer collides with your RevenueCat placeholder build. /kit-publish-to-play used to leave versionCode = 1 on a first release — but connecting RevenueCat already uploads a placeholder build at code 1, so Play rejected your real build as a duplicate. Phase 1 now asks whether any build is already on a track and bumps versionCode above it before building, so the upload goes through the first time.

June 28, 2026

New

  • /kit-pre-register-setup — put your app on Google Play pre-registration so the listing goes public before launch and collects sign-ups + day-one installs. Reuses the signed AAB from /kit-sign-release (nothing new to build) and can wire a reward — for subscription apps a free 30-day Premium pass. (Play forbids subscriptions as rewards and grants one-time products for life, so the kit time-boxes the pass in code from the Play purchase date — survives reinstalls.) Walks the Play Console + RevenueCat steps and the new-account closed-testing requirement up front.

Improved

  • Entitlements now refresh when the app returns to the foreground — an entitlement granted outside the app (a pre-registration reward claimed in the Play Store, or a purchase made on another device) unlocks premium the same session instead of waiting for the next cold start. Code change — /kit-update applies it.
  • /kit-upload-on-google-play now walks the "Set up your app" content declarations — content rating, target audience, ads, financial features, health, government — the ones that block a release with "you must complete…" errors. It's codebase-aware: it reads your app to suggest each answer with the evidence (e.g. "Ads: No — no ad SDK") and notes that a paid subscription is not a "financial feature".

Fixed

  • Cursor, OpenCode, and Codex got the full versions of three commands. Their copies of /kit-upload-on-google-play, /kit-setup-auth, and /kit-start-setup had drifted behind the Claude versions and were missing whole sections (the release flow's later steps, the Google sign-in sub-steps, the resume + later setup steps). All three are now back in full parity across every agent.

June 25, 2026

New

  • Automatic Google Play ↔ RevenueCat connection. /kit-setup-paywall asks "automatic or manual?" — pick automatic and the agent uses gcloud to provision the Google Cloud service account, APIs, and roles for you (reusing your Firebase project if you have one). You're left with two clicks: grant Play access and upload the key to RevenueCat. Manual still available.
  • Pick up setup where you left off. The long flows (/kit-start-setup, /kit-design-app, /kit-upload-on-google-play) can be stopped half-way and resumed later — even the next day or in a new chat. Re-run and the command reads your project, shows a "welcome back" status, and continues from the next unfinished step.

Improved

  • A few more commands got smarter about not repeating work: /kit-change-app-id notices if you've already renamed, /kit-generate-legal asks before overwriting existing policy docs, and /kit-translate + /kit-translate-listing skip languages you've already translated.

June 23, 2026

Fixed

  • No more "domain not verified" warning in Play Console. The kit shipped an active App Links filter for shipkaro.dev your app inherited, so Play tried to verify a domain you don't own. Now disabled by default (opt-in template for your own domain). Code change — /kit-update applies it.
  • Open source licenses screen no longer crashes (and is back in Settings). It called a Compose API whose signature changed; the kit now renders the license list itself, stable across Compose updates. Code change — /kit-update applies it.

June 22, 2026

New

  • /kit-update — pull the latest NowKit commands + skills into your app, with your code untouched. It refreshes only the /kit-* commands and skills (on a review branch, no merge conflicts even though you've renamed + customised your app), then offers to apply any code-level bug fixes from this changelog that you choose. Lifetime updates, the safe way.

June 21, 2026

Fixed

  • Paywall purchases now unlock premium immediately. RevenueCat's prebuilt paywall completed the purchase but never refreshed the kit's subscription state, so a paid user could stay locked out. The paywall now refreshes entitlements on purchase and restore.
  • Supabase profile name + avatar no longer come back quoted. Name showed as "name" and the avatar URL wouldn't load because the JSON value kept its quotes. Both now read as clean strings.

Improved

  • Billing setup is gentler. The service-account JSON and RevenueCat (products → entitlement → offering → paywall) steps are now walked one at a time with a "done" gate after each — no more wall of ~12 instructions at once.
  • The Google sign-in setup dropped its overwhelming up-front overview — it just walks the next step.
  • Data Safety answers now print as a table in the terminal (and in the file), so you can fill the Play form without opening anything.
  • RUN.md gained a one-command build + run (./gradlew :app:installDebug && …), printed when it's created so you can paste it into a terminal and launch the app yourself.

June 14, 2026

New

  • /kit-generate-changelog — writes your Play Store "What's new" notes from your git history, as plain user-facing bullets.
  • /kit-translate-listing — translate your store listing (title, short + long description, "What's new") into multiple languages.
  • /kit-run-app writes a RUN.md — the plain build / install / launch commands, so you can run your app from a terminal without an AI agent.

Improved

  • /kit-design-app now reproduces your design faithfully. It asks Reproduce exactly vs Adapt to the kit's look — in Reproduce mode it matches your Stitch / Figma / mockup layout, colours, and copy, then diffs the result against your source.
  • Cleaner default look — the kit's default neutrals are now Material-classic gray (gray background + white cards) instead of purple-tinted, so any brand colour sits on neutral surfaces.
  • /kit-generate-landing now hosts the page for you — pick GitHub Pages (fully automated), Firebase Hosting, Vercel, or self-host, and get your public privacy-policy URL.
  • /kit-upload-on-google-play bumps your version automatically before every build, so re-uploads never hit Play's "version code already used" error.
  • Release SHA-1 lookup updated for Google's current console (Protected with Play → Manage Play app signing).
  • Data Safety guidance now explains the "processed ephemerally" and "required vs optional" toggles.

Known issue

  • The Settings → Open source licenses screen is temporarily hidden pending a dependency update (it crashed on some setups). Everything else is unaffected.

June 13, 2026

Improved

  • Billing setup walks the order that actually works — create the Play app → signed build on a testing track → products → service-account JSON → attach the entitlement → publish the paywall. (Play blocks product creation until a billing build is on a track — this stops the #1 thing people got stuck on.)
  • Create-app step walks the real Play form and pre-fills your package name — no more guessing your applicationId.
  • The paywall's "set up real billing now?" question no longer interrupts initial setup — it's asked after your first build runs.
  • Products + RevenueCat steps expanded with the fiddly bits (Subscription → Base plan with "activate both", and attaching products to the premium entitlement).
  • Google sign-in setup updated for Google's new Google Auth Platform consent screen.

Fixed

  • Onboarding / auth / permission screens respect system bars (buttons no longer hide under the status or navigation bar).
  • /kit-design-app no longer detours into onboarding mid-flow.

June 12, 2026

New

  • /kit-sign-release — create a release keystore, build a signed AAB, and upload it to a testing track. This is the build RevenueCat needs to verify the Play billing connection — no products required yet.
  • Every /kit-* command now ships for all supported agents — Claude Code, Cursor, Google Antigravity, OpenCode, and Codex.

June 11, 2026

New

  • /kit-generate-aso — Play Store listing copy (title + descriptions) from a keyword strategy.
  • /kit-generate-landing — a simple static landing page (hero, features, privacy, terms, contact).
  • /kit-save-to-github — back up your app to your own private GitHub repo.

Improved

  • Ships Material icons by default; Feather / Tabler are opt-in.
  • Paywall declares the billing permission and gates RevenueCat release-time setup, with an option to start the slow billing clocks early.

June 1–4, 2026

New

  • /kit-generate-screenshots — ASO-optimised Play Store screenshots.
  • /kit-env-check — verify your machine has every tool the kit needs.
  • /kit-setup-ai (OpenRouter), /kit-setup-review-dialog, and the in-app review prompt.
  • 8 full-screen permission flows (camera, notifications, location, …).
  • 20+ new design-system components (pickers, snackbars, shimmer, badges, bottom-nav, and more) + a Components catalog screen.
  • Timber logging, Sentry crash reporting, and an encrypted SecureDataStore.

Improved

  • Every /kit-setup-* command now detects what's already configured and is paced with stop-and-wait steps (no walls of instructions).
  • Open-source licenses screen switched to AboutLibraries (lists every dependency, not just Google's).

Fixed

  • Removed a Sentry launch crash and the duplicate in-app splash screen.

v1.0.0 — Launch

The first public release. Everything you need to take an Android app from idea to the Play Store, driven by slash commands.

In the box

  • 🔑 Auth — email + Google sign-in (Supabase or Firebase)
  • 💳 Paywall — RevenueCat, soft or hard
  • 📊 Analytics — PostHog, Firebase, Crashlytics, Sentry
  • 🤖 AI — OpenRouter (one key, 100+ models)
  • 🎨 Design system — 40+ Compose components in your brand color + icon pack
  • 🧭 Onboarding — simple 3-page intro or a personalised questionnaire flow
  • 🛡️ Permissions — 8 prebuilt full-screen permission flows
  • 🌐 Localization — English by default, any language on demand
  • ⚙️ Ops — remote config, force/soft update gate, maintenance mode, changelog
  • 🚀 Release — Play Store assets, listing copy, privacy policy, Data Safety, upload

Setup commands

A full set of /kit-* commands your AI agent runs for you — /kit-start-setup, /kit-setup-auth, /kit-design-app, /kit-upload-on-google-play, and more.

📖 Full docs: kit.shipkaro.dev/docs


Updates are diffs + migration notes — you own the code, so you apply what fits your app.