# Grocy Android is a phone client for a Grocy server you host yourself

> Grocy Android is an open source Android app that talks to a self-hosted Grocy instance through its official API, adding barcode scanning, an in-store shopping mode and offline shopping lists to a server side product manager. It is a companion app by design: it cannot manage products on its own, and it has been maintained by one person since his brother stepped back in 2024.

**patzly/grocy-android** — ERP beyond your fridge, now on your phone – An awesome companion app for Grocy

- Repository: https://github.com/patzly/grocy-android
- Website: https://patrickzedler.com/grocy/
- Stars: 1,204 · Forks: 144
- Language: Java
- License: GPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/patzly-grocy-android

## A client for software you already run

Grocy Android is an open source Android client for Grocy, which is a self-hosted grocery and household management solution for your home. The project description is the whole idea in one line: ERP beyond your fridge, now on your phone.

Grocy lives on a server you run, and the Android app is a front end for it. It uses Grocy's official API, and the readme describes the result as a beautiful interface on your smartphone with powerful barcode scanning and intuitive batch processing, all what you need to efficiently manage your groceries.

There is a constraint stated in bold, and it is the one to read first. This app requires a running self-hosted instance of the Grocy server application. It is a companion app, therefore it cannot run standalone or manage products itself. The mitigation for a user who wants to look before they commit is a demo option on the login screen, and there is a separate iOS and macOS client for Grocy, Grocy-SwiftUI, for anyone whose phone is an Apple one.

So the audience is a household or a small group who has already decided to run their own product and shopping management, and who wants the physical part of that, the shopping in the shop, to be a phone application rather than a web page opened in a browser with a barcode scanner connected over a cable.

The application is Java, licensed GPL-3.0, and the repository is a conventional Android project with an app/ directory, the Gradle wrapper committed, a fastlane/ directory for release automation, an FAQ.md and a .github/ directory for the issue and release workflow.

## What the app does, and the one thing that works offline

The feature list is short and every item is tied to the physical act of shopping.

Stock overview is the first, which is the read side of what Grocy holds. Shopping lists with offline support is the second, and the offline part is the interesting detail: the list is available when the phone has no connection, which is exactly the situation in a shop basement or a store with poor signal. It is worth being precise about the scope of that, because the app is otherwise a thin client: the server holds the data, and the offline support is for the list you are working through.

In-store shopping mode with big UI elements is the third, and it is a design decision rather than a feature: the same screen is used at home and in a shop, and the shop version has larger targets because you are holding a basket and reading with one hand.

Fast barcode scanning is the fourth and is the reason many people install such an app at all. Scanning an item adds it to the list or consumes it from stock, and a camera based scanner that is fast enough to use while walking is the difference between an app you use and an app you abandon.

The fifth is the OpenFoodFacts and OpenBeautyFacts implementation, which is how a scanned barcode becomes a product with a name and a brand rather than a number. Master data editing is the sixth and is what makes the app more than a scanner: the product records in Grocy often need fixing, and a phone is a reasonable place to fix them while you are holding the item.

Dark mode and dynamic color support are the seventh, and the last is the one that decides whether to trust an app with your shopping data: no ads and no analytics.

## TLS is where self-hosting gets complicated

The compatibility section is mostly about certificates, and it is the part of the documentation that will take you the longest if you host Grocy yourself.

The app supports https encryption in two scenarios. The first is a server using a certificate signed by a public and trusted certificate authority, and the documentation suggests a free certificate from letsencrypt.org for that case. The second is a server using a self-signed certificate, in which case the certificate has to be stored in the Android user certificate store.

That second scenario is the friction. A self-signed certificate has to be installed on the phone as a user credential rather than a system one, which is a different set of steps on each Android version, and a user certificate is trusted by applications in a way that is not always obvious to people who have not done it before.

The interesting engineering decision is how the project handles old devices. Old Android devices can have problems with newer certificate authorities because their internal list of trusted certificate authorities can be outdated if they do not receive system updates any more, and the project has integrated Conscrypt into the app to support current certificate authorities on all Android versions.

That is a real solution to a real problem: a phone that stopped receiving updates in 2021 still cannot talk to a 2026 Let's Encrypt chain, and shipping a modern trust store inside the application makes the difference between working and not.

The other compatibility point is the minimum Android version, Android 6.0 Marshmallow, and the promise that the app works properly on devices without any Google service installed, which is a meaningful commitment given that barcode scanning and camera access are usually assumed to come with Google services on the platform. The app is also usable through the Grocy add-on on a Home Assistant server, with instructions linked from the FAQ.

## Where to get it, and what the nightly channel is really for

The app is distributed in three places, and the third one is the interesting one.

There is a Google Play listing, an F-Droid listing and the GitHub releases page, with badges for each. For a user, F-Droid is the more interesting of the two stores, because the project is GPL licensed and publishes its source, and F-Droid builds from that source rather than distributing a proprietary build.

The third channel is for people who want to try features as soon as they are developed: the readme points at an unsigned nightly build APK on a nightly release tag.

There is a small oddity in the release history worth noting. The recent tags are the nightly tag, dated 2022-10-11, and v3.8.2 and v3.8.3, both dated 2026-01-02, the two versioned releases on the same day. The nightly tag is therefore years older than the current releases, which suggests the nightly channel stopped being refreshed as a tag, or that the tag is now a rolling pointer rather than a dated build. Either way, someone wanting the nightly build should check the releases page rather than assume the tag is current.

The other notable thing about the distribution is that the app is signed by a release pipeline rather than by hand, with fastlane in the repository, and that the nightly artefact is explicitly unsigned, which is why it is a separate channel and not part of the store listings.

## One maintainer, and what that means for a pull request

The readme opens with a warning that is unusually direct, and it tells you the state of the project better than any badge.

Because the author does not have much time for Grocy Android in addition to his studies, work and other spare time activities and projects, pull requests for closing issues, adding improvements or implementing new features are highly appreciated. That is a maintainer telling you, in the first line of the readme, that the project survives on contributions.

The About section explains how it got to that point. The app is a project of the author and his brother, and they started working on it during the first months of the Corona pandemic in Germany, just before their Abitur in 2020, when the schools had to close. Because his brother switched to Apple devices in 2024 and does not actively use Grocy himself, he has withdrawn from the project, leaving the author as the sole maintainer.

So the app that started as a pandemic project between two students is now maintained by one of them, and the Grocy-SwiftUI client for Apple platforms is the practical consequence of that brother's change of devices.

The contribution guidance is correspondingly specific. Bugs and missing features go to the issue tracker, and if you have a good knowledge of Java, pull requests are highly appreciated. The readme also asks for help with translations through Transifex, explains that the main language is English while the author also maintains the German translation because it is his mother tongue, and sets the bar for inclusion: translations which reach a completion level of 80 percent will be included in releases.

That last rule is a sensible way to run a translation programme with one volunteer, and it also means that a language below the threshold is not in the build you download, which is worth checking before you install for someone who does not read English or German.

## Licence, releases and what to check before you install

The licence is the GNU General Public License version 3, and the copyright lines are worth reading because they show the handover: copyright 2020 to 2024 for Patrick Zedler and Dominic Zedler together, and copyright 2024 to 2025 by Patrick Zedler alone. The standard GPL text is reproduced in the readme, with the redistribution and no warranty clauses, and the licence file is in the repository root.

The release history is the last piece of context. The two recent versioned releases, v3.8.2 and v3.8.3, are both dated 2026-01-02, so the project is on a 3.8 line with a patch release at the start of the year, and the last push was on 2026-08-25 with the repository not archived. The readme asks that if you are asked for help in chat or to open a bug report, you make sure your copy is up to date, which is the standard advice and is also a sign that version mismatches are a known source of confusion.

The question the project is really answering for a user is whether a phone is the right place to manage a household's groceries when the data lives on a server someone else has to keep running. For a household that already runs Grocy, the answer is clearly yes, because the scan-and-consume workflow is what a phone is good at. For a household that has not yet decided to self-host a server, the demo option on the login screen is the way to find out whether the workflow suits you before you commit to running the server side.

And for a user who needs the app to keep working for years, the honest reading of the readme is that it is maintained by one person with a full life, that the fastest way to keep it improving is to send a pull request, and that the companion app model means the server is the part you have to own.

## Conclusion

Grocy Android suits a household or a small group already running Grocy on a server and wanting to scan items with the phone instead of typing them, and it suits a user on a device without Google services, which the app is explicitly built to work on. It is the wrong choice if you want a standalone shopping list app, because the app cannot run without a Grocy instance and says so plainly, and a poor match if you need a heavily maintained project, since a single maintainer now handles it and the request for pull requests in the readme reflects that. Before adopting, decide how you will handle the certificate on your server, because a self-signed certificate has to be in the Android user certificate store, and note that only the shopping lists work offline.

## FAQ

### Does the Grocy Android app work without a Grocy server?

No. The app requires a running self-hosted instance of the Grocy server application, and it is a companion app, so it cannot run standalone or manage products itself. There is a demo option on the login screen if you want to try it first, and shopping lists have offline support.

### What can the Grocy Android app do?

Stock overview, shopping lists with offline support, an in-store shopping mode with big UI elements, fast barcode scanning, an OpenFoodFacts and OpenBeautyFacts implementation for product data, master data editing, dark mode with dynamic color support, and no ads or analytics.

### How does the Grocy Android app handle HTTPS on a self-hosted server?

It supports a certificate signed by a public and trusted certificate authority, with Let's Encrypt suggested, and it supports a self-signed certificate provided that certificate is stored in the Android user certificate store. Conscrypt is integrated so that current certificate authorities work even on old devices whose built in list is outdated.

### Who maintains the Grocy Android app and how do I contribute?

It is a project of Patrick Zedler and his brother Dominic, started during the first months of the Corona pandemic in 2020, and since the brother withdrew in 2024 Patrick has been the sole maintainer, who asks for pull requests. Translations go through Transifex, and those reaching 80 percent completion are included in releases.

## Sources

- [License: GPL-3.0](https://github.com/patzly/grocy-android/blob/master/LICENSE)
- [patzly/grocy-android on GitHub](https://github.com/patzly/grocy-android)
- [Project website](https://patrickzedler.com/grocy/)
- [README](https://github.com/patzly/grocy-android/blob/master/README.md)
- [Releases](https://github.com/patzly/grocy-android/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/patzly-grocy-android
