Download

Light a wisp
in five minutes.

Get the prebuilt APK and sideload, or clone the source and build from your machine. Either path takes about five minutes.

  • Android 8.0+ (API 26)
  • Camera and notification permissions
  • Google account for sign-in
Welcome & Sign In
Path A · Sideload

Just give me the APK.

The fastest way. Download, allow your browser to install unknown apps, tap install. Done.

01 · DOWNLOAD

Grab the .apk

Download the latest release from the GitHub releases page (link will be added when published).

Download wisp.apk
02 · ALLOW

Trust the source

In Settings → Apps → Special access → Install unknown apps, allow your browser to install APKs once.

03 · INSTALL

Tap and go

Open the downloaded APK, tap install, sign in with Google, and you're glowing.

Path B · Build from source

Build it yourself.

If you'd rather see the inside, clone the repo, drop in your own Firebase config and Imgur Client-ID, and Gradle does the rest.

Step 1

Clone the repo

git clone https://github.com/MartinHoly00/wisp.git
cd wisp
Step 2

Add Firebase config

Drop your google-services.json into app/. Get one from the Firebase console — Spark plan is enough.

Step 3

Add Imgur Client-ID

Register at api.imgur.com/oauth2/addclient. Add the Client-ID to local.properties:

# local.properties
IMGUR_CLIENT_ID=your_client_id_here
Step 4

Build the APK

./gradlew assembleDebug
> output: app/build/outputs/apk/debug/app-debug.apk
Step 5

Run tests

./gradlew test
./gradlew koverHtmlReport
# open app/build/reports/kover/html/index.html
Step 6

Install on a device

adb install app-debug.apk
> success — open Wisp on your phone
Requirements

What you'll need.

For sideloading

An Android phone (API 26+), 80MB of free storage, a Google account, and one minute.

For building

Android Studio Hedgehog or newer, JDK 17, the Android SDK with API 34, and a Firebase project.

For running

A real device (the camera flow benefits from real hardware — emulator works for everything else).

Troubleshooting

If something glitches.

Build fails: "google-services.json not found"

You're missing your Firebase config. Create a Firebase project at console.firebase.google.com, register an Android app with package com.example.wisp, and download the JSON into app/.

App opens but image upload fails

You're probably missing your Imgur Client-ID. Check that IMGUR_CLIENT_ID is set in local.properties, and rebuild with ./gradlew clean assembleDebug.

Notifications don't arrive

Make sure the FCM service is enabled in your Firebase project, and that you've granted notification permissions on Android 13+. Wisp asks for them on first launch.

Camera shows a black preview

Camera permission was denied. Go to Settings → Apps → Wisp → Permissions, enable Camera, and reopen the app.

I'm getting Firestore quota errors

The Firebase Spark plan caps you at 50K reads/day and 20K writes/day. Wisp's offline-first cache keeps reads cheap, but if you've shared the build broadly, you may need to upgrade or wait for the daily reset.

All set

Welcome to Wisp.

Once you're in, post your first wisp, add a friend, and watch it fade with the next sunrise.