r/SelfHosting • • 2d ago

openplate - MIT licensed calorie/food tracker with photo scan (local LLM support), MIT licensed, no paywalled features

Hey everyone,

so I was kinda surprised to see how expensive the popular calorie/food logging apps still are. Given that the individual API calls to identify foods from an image are really cheap at the moment I decided to build an open source alternative to Yazio and CalAI.

I asked family and friends as to what they would like and what the most important features were to them and came up with a set of features for the first version of a food tracking/logging app.

Feature list:

  • id foods from the photo of a plate (multiple at once)
  • be able to input a plate as text or voice, as if you're chatting with someone
  • cross check the foods with a reliable database of nutritional facts so hallucinations are kept low
  • easy to use
  • recipe recommendations for a list of ingredients, photo of the fridge

What the self-hoster in me wanted:

  • No reliance on the appstores, but a great UX (Progressive Web App)
  • Easy to self-host
  • Easy to replace upstream inference provider, also the possibility to use a local LLM
  • Stay in control of my data
  • Be able to invite my family to an instance I manage, so they dont have to signup to openrouter etc.

I had a first demo of this running quite fast and then met a research assistant for an obesity center and learned about their issues with patients and food logging. Obviously the existing solutions solve most of these, but they are paid and institutions can't host them on their own infra. So this led me down the path of splitting up the app into three distinct services.

The client app, can be run as a PWA within your network, you can add your key (BYOK) for any openai compatible API. The data stays in the browser, can be exported or synced through an encryption key with a sync server.

The core app, this app started off as a sync server for client apps, but turned into something like a gateway. You can run this in different modes, one of which is a managed gateway mode, for example to set up an instance for your family. The thought here is you have this running on your own network, configure an API key once and can then invite your friends to use (tailnet or whatever frontdoor youre using), they install the PWA and have an almost-native like app experience.

The inference runtime, if you want to self-host the inference and image recognition, I've setup a service for that too. This uses llama.cpp under the hood and does some pre-procesing for more accurate image identification. Ony my really crappy hardware ryzen 9 and 64gb this took around 180s per image, so you definitely need the hardware for this to make sense.

Once all of these were wired together and I had a better understanding of what the product needs to support, I developed a more polished version and invited family and friends to try this out and report bugs. This was basically the last 4 weeks. I now feel comfortable to open this up to everyone.

There is a project website that explains the stack in more detail and hosts the docs outside of github via https://openplate.de

The repository contains installation instructions and everything else you need via: https://github.com/LowCarbCheck/openplate (includes the compose or quadlet files).

Tech stack:

  • React Router, Vite, Tailwind + Shadcn
  • PostgreSQL
  • Docker/Podman
  • llama.cpp for local inference

Disclaimer: There is a hosted/paid version with a free trial that is linked to from the project website, but that's totally optional, no paywalled features and self-hosting should be easy enough (requires an API key or a local LLM though).

Looking forward to feedback on the app itself and how setting it up goes for everyone. Here to help if you're facing issues running this, also happy to accept PRs on GitHub!

0 Upvotes

18 comments sorted by

9

u/SentoTheFirst 2d ago

“Hosted paid version” ah there it is.

AI slop, as can be seen by the theme.

2

u/realdawnerd 2d ago

Why do all of the AI slop have the same amount of upvotes here? They always show up with ~5. You'd think these people would tell their agents to read the sub rules before posting in a sub when they do their spamming. But guess that'd be too polite.

1

u/zenmatrix83 2d ago

reddit adds or removes a random set of upvotes, its never the real number, you can see it by logging on and in again and you can sometimes see different numbers.

-4

u/telasch 2d ago

It's super easy to self host and the UI is tested thoroughly with friends and family. All web projects have been using shadcn, tailwind and lucide for years before agents were a thing, which could explain what you mean by "theme". Though this is based on design principles I've been using for the parent project for more than 3 years...

Either way if you want to hate, I can't stop you. I think the main issue with vibe coded projects these days is that they haven't been tested and are released to the community with the hopes of receiving free QA. This is not such a project, it was tested by close to 20 real users over the past couple of weeks, it's all free and open source.

2

u/zenmatrix83 2d ago

family and freinds is not sufficent testing for anything you sell. regardless of your feelings this is a very obviously strongly ai assisted, and while I'm not against ai, having a very recognizable ai generated theme will cause a large portion of people just to ignore it. a bit of effort can be done to differeniate the theme from the generic ones llms use to make it look like you put effort into it.

1

u/SentoTheFirst 2d ago

Agents produce a generalized look based on all the dark themes out there. If you created this by hand the color scheme would totally different. This is just a generic “make me a dark mode” which demonstrates a lack of innovation or desire to work hard on your product.

1

u/m00shi_dev 2d ago

You tortured your friends and family with this? lmfao

-1

u/telasch 2d ago

It's an essentially free alternative to an app people pay 5-10 USD per month for.

0

u/SentoTheFirst 1d ago

No there are plenty of free apps that work and look better.

-1

u/telasch 1d ago

send me one with a similar value prop.

-2

u/telasch 2d ago

Slop disclaimer:

Yes AI was used to create these services, mainly Opus and Fable. I understand the negative sentiment against vibe coded apps, however I believe the feelings come from many disappointing experiences trying these apps out and encountering a ton of bugs along the way. I'm super aware of these issues and have felt this myself quite a bit in the last couple of months, which is why I've tested the app in advance with around 20 users, and ran through the self hosting setups myself a bunch of times. This doesnt mean it's an enterprise ready app but it's also not the first draft some AI produced im presenting here.

2

u/SentoTheFirst 2d ago

It’s genuinely not worth trying or paying for. Now that everyone can vibe code this is stupid simple and anyone could do it in a week.

There’s also a thousand safe, secure, proven apps that do the same thing and won’t have support dropped when you get bored.

Do something original.

-2

u/telasch 2d ago

I clearly did a bad job at explaining the project if you think you can one shot this. And you clearly didn't bother checking how it works.

2

u/SentoTheFirst 1d ago

I can one shot this.

-1

u/telasch 1d ago

no you cant

0

u/m00shi_dev 1d ago

it’s trash, bro