LabFox - A GitLab Client Built to Use From a Phone
Read merge requests and diffs, check pipelines, and approve from your phone. Self-hosted GitLab works too.
When a pipeline breaks on the commute
The notification arrives and there's nothing you can do from a phone. The web UI does open in a mobile browser, but reading a diff or scanning a job log on a small screen wears thin fast. So it waits until you're back at a desk.
I wanted that loop to work from a phone, so I built it.
It doesn't port the whole web UI
Trying to cover everything GitLab's web UI does means nothing ends up good. Instead it focuses on making one loop fast, the one developers repeat every day.
Check notifications → open the issue or merge request → read the diff and review → check pipeline status → check the job log → approve, merge, or retry.
Anything off that path waited. A diff that loads quickly matters more than an elaborate settings screen.
What's inside
- Projects, issues, merge requests, the to-do inbox, and search
- A diff viewer with line numbers, and review actions
- Pipeline status and colour job logs
- Both gitlab.com and self-hosted instances
It branches on width, not platform
The same code branches on screen width rather than platform. A tablet gets a navigation rail and room to show twenty merge requests at once. Building a separate "tablet layout" means building every screen twice. Splitting on width also handles a narrowed desktop window for free.
Tokens never leave the device
Personal access tokens and OAuth tokens are stored only in the device's secure storage, Keychain or Keystore. They are sent only to the GitLab instance you configured. They don't pass through sloki9637's servers, and they don't appear in logs or error reports.
Projects, issues, merge requests and files come straight from the instance you signed in to and are rendered on your device. For a team on self-hosted GitLab, whether internal data passes through an outside server decides whether the app can be used at all, so it was built that way from the start.
Where it stands
Android is on Google Play. iOS, macOS and Windows build from source, with store releases in preparation. Built with Flutter; the code is Apache-2.0.