Skip to content

Self-hosting guide, and no published APKs - #43

Closed
jsconu wants to merge 1 commit into
mainfrom
docs/self-hosting
Closed

jsconu wants to merge 1 commit into
mainfrom
docs/self-hosting

Conversation

@jsconu

@jsconu jsconu commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Answers the question "where do I download it?" with a guide instead of a binary.

Why there's no APK to publish

The google-services plugin compiles the Firebase project id, app id and API key into the APK at build time (kid/build/generated/res/processReleaseGoogleServices/values/values.xml), and nothing in the apps overrides it at runtime. So every build is tied to exactly one Firebase project, and whoever owns that project can see the data in it. Publishing a binary would make this repository's maintainer the operator of other families' children's usage data — which is the opposite of what this project is for.

Changes

  • docs/SELF_HOSTING.md — the whole path written for someone who isn't a developer: create the Firebase project, register both package names, enable Email/Password and Anonymous, create Firestore, publish the rules, build both debug APKs from Android Studio, install, pair. States the cost (nothing, on the Spark plan), the time (~45 minutes), and repeats the rules-and-apps-ship-together warning at the step where getting it wrong bites. Ends with a troubleshooting table keyed on what the person actually sees, including the "That code isn't active" failure from Pairing survives a project whose rules are older than the app #41.
  • docs/INSTALL_ANDROID.md — no longer assumes someone handed you two APKs.
  • README.md — the Building section points non-developers at the new guide, and the "Official builds and forks" section says plainly, where someone looks for a download, why there isn't one.

Follow-up

Runtime Firebase configuration — an app that asks for your project's config on first launch instead of baking it in — would make publishable binaries possible without anyone becoming the operator. Worth filing separately; it's the only thing standing between this project and a normal download link.

🤖 Generated with Claude Code

The apps are wired to one Firebase project at build time - the google-services
plugin compiles the project id, app id and API key into the APK - so there is
no such thing as a neutral binary. Publishing ready-made APKs would quietly
make this project's maintainer the operator of other families' children's
usage data, which is the opposite of the point.

So the supported path is that each family builds against a project of their
own, and docs/SELF_HOSTING.md is that path written for someone who isn't a
developer: create the Firebase project, register both package names, enable
the two auth providers, publish the rules, build the two debug APKs from
Android Studio, install, pair. It says what it costs (nothing), how long it
takes (about 45 minutes), and it repeats the rules-and-apps-ship-together
warning in the place where it bites.

The install guide no longer assumes someone handed you two APKs, and the
README says plainly, where a person looks for a download, why there isn't one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jsconu

jsconu commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #44, which contains these commits plus the corrections they need.

The reasoning here — that no APK can be published because every build is tied to someone's Firebase project — turns out to be true only of cloud builds. #44 adds a local flavor with no cloud code in it at all, which is safe to hand out, so the release ships local APKs after all. This guide survives in #44 as the cloud path specifically, opening with the likelihood that a reader doesn't need it.

Closing in favour of #44 rather than merging both, since they disagree about the download.

@jsconu jsconu closed this Sep 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant