Small, independent software — built with care, shipped without ceremony.
Ghost Apps is a small, independent studio founded in 2025. We build apps for iOS and Android, with a focus on Kotlin, and we're available for hire.
- Gizz Tapes — iOS, Android, and Desktop apps for streaming King Gizzard and the Lizard Wizard's live shows, built with Kotlin Multiplatform.
- Light Alarm — An Android alarm clock that wakes you up with your phone's camera flash instead of a sound.
- Circle Stacker — A simple Android game: stack expanding circles, but don't let one grow larger than the last.
- Run With Knives — A silly Valheim mod that makes you run 1.5x faster with a knife equipped.
Every GitHub release ships a detached PGP signature (.asc) alongside each APK/AAB.
- PGP key:
3239 DF00 5BDF 2CD2 7898 57AF 59F8 42F7 3BAF 2A8D(keys.openpgp.org · ghostapps.rocks/pgp.asc)
gpg --recv-keys 3239DF005BDF2CD2789857AF59F842F73BAF2A8D
gpg --verify app-release.apk.asc app-release.apkSigning certificates (SHA-256) for APKs from our GitHub releases. Compare them with Verified Apps or the certificate shown in Obtainium. Builds from Google Play or F-Droid may be signed by those stores instead, and will show a different certificate.
| App | Package ID | Certificate SHA-256 |
|---|---|---|
| Gizz Tapes | gizz.tapes.fullgizz.tapes.foss |
CD:9A:8E:7D:FA:19:D4:C9:A2:3E:8A:46:51:3D:5B:71:53:E3:A0:72:8D:E6:AF:EF:A2:83:7B:85:36:B0:1E:51 |
| Light Alarm | rocks.ghostapps.lightalarm |
9E:0B:AF:B5:36:D7:43:E1:4E:82:AB:43:7C:04:72:70:29:85:DB:6C:8C:E5:46:EC:3B:EA:93:4A:EE:3C:51:F7 |
| Circle Stacker | rocks.ghostreader.circlestacker |
77:67:61:E5:9C:44:B0:18:E1:83:8A:2E:21:57:F4:31:76:CD:22:D6:64:54:34:1F:A7:D6:D8:4D:5B:1F:B8:23 |
Public key
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaBkiaxYJKwYBBAHaRw8BAQdAiDVORhO3uz3Q0D9VpXvomLTjUH+jIck5Dc9K
fdyuVAa0JUdob3N0IEFwcHMgPGdob3N0LmFwcHMubGxjQGdtYWlsLmNvbT6ImQQT
FgoAQRYhBDI53wBb3yzSeJhXr1n4Qvc7ryqNBQJoGSJrAhsDBQkFpLglBQsJCAcC
AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEFn4Qvc7ryqNK2wBALteeG1FaIQpKlKy
Vm6OSqDFU7etIedPWxeolHUgIfK9AP9DlWA7lEL8P1L4WvF01aA3Xt8rV3WzX4EZ
v1GLQWZACLQiR2hvc3QgQXBwcyA8Z2hvc3RAZ2hvc3RhcHBzLnJvY2tzPoi1BBMW
CgBdFiEEMjnfAFvfLNJ4mFevWfhC9zuvKo0FAmq5x6IbFIAAAAAABAAObWFudTIs
Mi41KzEuMTIsMCwzAhsDBQkFpLglBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheA
AAoJEFn4Qvc7ryqN5w4BANGSqNHQtRAdNPLdKPao9IOAGqToRTRCAvBMdSqHB/Eo
AP9uj8z8Hd2I5TOVZFREegRIVBwE3QLNsnd6KHNHznrUALg4BGgZImsSCisGAQQB
l1UBBQEBB0DHXDm9ob11hqMk94uf9qylVRVUiJkRbMqdOEECuj/CTAMBCAeIfgQY
FgoAJhYhBDI53wBb3yzSeJhXr1n4Qvc7ryqNBQJoGSJrAhsMBQkFpLglAAoJEFn4
Qvc7ryqNFnwA/3fVq905fPkGiMIXE49bYFtaUR3ZhY2E2W5OZHZaVL4uAQD4vRmq
OMsXWK1aH372Fu1q5BZ/CF3QGWcNjeobBGKFBg==
=X3V2
-----END PGP PUBLIC KEY BLOCK-----