Fun project. The article is a bit light on details. I find it astonishing that a project like this runs into performance issues. I would have liked to learn more about what these resource-constrained widgets looked like, what they did, and what caused the performance issues.
bnj [3 hidden]5 mins ago
Plenty of comments about using an LLM to assist with this, and I was happy to be able to read about a learning experience where the stakes were pretty low and the feedback loop pretty tight. Thanks for writing it up; for me, it reminds me that some of the use cases where an LLM might be an efficient tool are also the places where it can be wise to take the opportunity to learn and sharpen new skills.
DreaminDani [3 hidden]5 mins ago
Great writeup and also a great example of where LLMs can step in to help fill the gaps in areas where you don't have as much skill or interest. For instance, your wife used ChatGPT to come up with a name and you used AI to generate the admin flows that you weren't interested in building.
Sounds like Flutter was a good technology choice too, given its flexibility across platforms. As a designer, I know how frustrating it can be that the Google and Apple interface guidelines aren't too prescriptive but patterns vary so much across domains, that it's better to do what you did and evaluate what others do to solve similar problems. Great work!
avicado0o [3 hidden]5 mins ago
Flutter was good, but now with Liquid Glass™ I find react native (specifically expo) using expo-ui far far better at designing apps that match their native look and feel.
chabad360 [3 hidden]5 mins ago
Heh, this is indeed rather unfortunate. Right as I finally got the look and feel to a relatively polished point, Liquid Glass dropped, making it rather obsolete. But to be honest, the app doesn't feel that out of place anyway. I don't know if that says something about me or about Liquid Glass, but it does say something.
fmajid [3 hidden]5 mins ago
Manual data entry is just too unreliable and time-consuming. I don't see how this could work short of integrating OBD-II fuel consumption data combined with some sort of presence tracking.
chabad360 [3 hidden]5 mins ago
I agree with you that at a large scale this is a problem. The one thing I decided very early on (when thinking about if/how I would grow this app beyond my family), is that this is for people who trust each other. If you don't trust the other people in your group to be responsible with the vehicle, then this app isn't gonna help. I'm trying to make the experience more smooth, not necessarily completely painless.
Regarding automatic tracking tho, the easiest option is Bluetooth based, the app knows the identity of the car, when the phone connects, it knows you're probably starting a trip. And the same goes for connected car APIs, those can much easier take the place of an OBD-II reader.
avicado0o [3 hidden]5 mins ago
also fwiw for small things like this, unless you want to really learn image recognition, just send the image to gemini-flash-3 or something. Sure it's 0.5-1s latency, still faster than entering it manually and it's pretty cheap, I'd reckon it's under the free tier at least for you and your family.
chabad360 [3 hidden]5 mins ago
That's actually not a bad idea, if I pick this up again, I will definitely try that. Thanks.
nottorp [3 hidden]5 mins ago
Hmm an app where you can count the users on your fingers, and where it's not a big deal if it's slightly wrong.
Safe to LLM generate it, unless you want to learn something in the process, in which case do whatever parts you want to learn about manually.
Had an 100% generated app with one user - me - on my phone's home screen since some time last year.
avicado0o [3 hidden]5 mins ago
im curious, what did your app do?
nottorp [3 hidden]5 mins ago
It has a button, records button presses for the last 7 days, saves them to local storage. Then it presents totals per day and detailed timestamps for today's button presses.
This is how I described it to the LLM (which wasn't even one of the coding assistants, just Gemini free). Not the exact prompt, that was more detailed, but that's the idea. I did like 3 iterations just to add features, because everything worked the first time.
It's a javascript app configured to work as a PWA on my phone's home screen. I don't know javascript or what a PWA is, I just told the LLM make it into a PWA and it generated the extra files and told me how to set them up on my web server.
The goal is to record when I smoke in hope that seeing the totals will help me cut down. Unfortunately what a LLM can't solve is me remembering to open the damn app and press the button every time I light one, but at least I'm trying...
Edit: and just for the record, in spite of the above I still think 95% of the "AI" evangelism is lies, bullshit and stuff like that.
avicado0o [3 hidden]5 mins ago
Oh nice! kinda funny story : I wanted the exact same thing as you a while ago so I used 'inhaler usage' on apple health app as a proxy for cigarette counter.
Also i know cigarettes & vapers do not always mix, but man I do always dream of creating a vape that can be set to a limited number of puffs/hour. It's probably the only way of actually controlling it or at least warning you, like you mentioned.
But still, fun that we can make these apps so easily now!
nkrisc [3 hidden]5 mins ago
Every time you finish a pack, save it. Seeing the empty packs will be more impactful. And they’ll take up space as an additional consequence of smoking more.
nottorp [3 hidden]5 mins ago
I'll try any advice but that doesn't really work for me because I already save them.
One day I'll run into something that works for me...
ottomanbob [3 hidden]5 mins ago
Interesting, was actually planning on setting up a carshare for our cul-de-sac in Honolulu. This is a great reference, thanks for sharing.
koala-news [3 hidden]5 mins ago
Honestly, this is kind of the sweet spot for LLM-built apps.
Small thing, used by a few people, solves one annoying problem, and nobody really cares if it’s not “proper software”.
mettamage [3 hidden]5 mins ago
It's family software, haha
fragmede [3 hidden]5 mins ago
Integrate an OBDii dongle with Bluetooth and have the app read it from there.
harrouet [3 hidden]5 mins ago
Next: "How I made one whole website to host one HN-featured blog post"
utopiah [3 hidden]5 mins ago
wow... so much yak shaving, including priceless bits like "sat with ChatGPT for a bit [...] we came up with OurCar" (I mean... how original is that, clearly powerful datacenters computing over a dump of the Internet was needed), I'm impressed.
All this to avoid doing one subtraction (km before, km now) then multiplication (result times average litter/km) in your head.
That's a LOT of effort to be lazy.
bartvk [3 hidden]5 mins ago
My ex isn't good with numbers but nevertheless she has a master in education. She has helped many, many children with learning deficiencies. For lots of people, the math is a significant barrier.
jeroenhd [3 hidden]5 mins ago
The log for "who took the car for how long when and did they fill it up" seems to be much more relevant.
Nothing a notebook and a pencil can't fix, of course, but an app is more fun.
I don't think it's laziness, I think it's an excuse to do a personal hobby project. Makes perfect sense to me.
> index.html to make it available to anyone, Worldwide, for free!
For the fancy version I'd make priceperlitterperkm URL parameter to make it work not just for my area. But that's like an entire additional like of code.
My point being... I'd make a Web page, on app, no deployment, no tracking.
darkwater [3 hidden]5 mins ago
echo <input id=kmbefore><input id=kmafter onleave='alert( (kmafter.value - kmbefore.value) * priceperlitterperkm )'>
> index.html to make it available to anyone, Worldwide, for free!
You are conveniently leaving out that you already must have:
* a server running 24/7 on the internet, paid for each month
* purchased, setup and keep paying every year a domain name
* configured a web server in that server, ideally with automated SSL certificate issue and renewal
PS : echo "blabla" > index.html is actually becoming my new World reaching publishing method. I do have a home server with a Web server. I connect to it via ssh keys... so
ssh homeserver 'echo hi >> /var/www/self-published/index.html' and voila. I'll probably share my gist this way from the CLI.
ssh homeserver "echo '$(ls)' >> /var/www/self-published/index.html" if I want to run a command locally first, not on homeserver (notice the " vs ').
throwy98888 [3 hidden]5 mins ago
Cool, glad you had fun building it.
Notably, the only parts of this that could not have been done by a well configured agent in a weekend with SOTA today is the futzing with app stores and the UX iterations.
gandutraveler [3 hidden]5 mins ago
Best family app to me is home assistant.
It's so powerful and you can build so many custom UIs on it.
I started it for smart home automations but on daily basis I use it more for managing tasks,scheduling reminders.
And with Claude code remote even my not so technical wife uses it to build her tiny utility apps.
Sounds like Flutter was a good technology choice too, given its flexibility across platforms. As a designer, I know how frustrating it can be that the Google and Apple interface guidelines aren't too prescriptive but patterns vary so much across domains, that it's better to do what you did and evaluate what others do to solve similar problems. Great work!
Regarding automatic tracking tho, the easiest option is Bluetooth based, the app knows the identity of the car, when the phone connects, it knows you're probably starting a trip. And the same goes for connected car APIs, those can much easier take the place of an OBD-II reader.
Safe to LLM generate it, unless you want to learn something in the process, in which case do whatever parts you want to learn about manually.
Had an 100% generated app with one user - me - on my phone's home screen since some time last year.
This is how I described it to the LLM (which wasn't even one of the coding assistants, just Gemini free). Not the exact prompt, that was more detailed, but that's the idea. I did like 3 iterations just to add features, because everything worked the first time.
It's a javascript app configured to work as a PWA on my phone's home screen. I don't know javascript or what a PWA is, I just told the LLM make it into a PWA and it generated the extra files and told me how to set them up on my web server.
The goal is to record when I smoke in hope that seeing the totals will help me cut down. Unfortunately what a LLM can't solve is me remembering to open the damn app and press the button every time I light one, but at least I'm trying...
Edit: and just for the record, in spite of the above I still think 95% of the "AI" evangelism is lies, bullshit and stuff like that.
Also i know cigarettes & vapers do not always mix, but man I do always dream of creating a vape that can be set to a limited number of puffs/hour. It's probably the only way of actually controlling it or at least warning you, like you mentioned.
But still, fun that we can make these apps so easily now!
One day I'll run into something that works for me...
Small thing, used by a few people, solves one annoying problem, and nobody really cares if it’s not “proper software”.
All this to avoid doing one subtraction (km before, km now) then multiplication (result times average litter/km) in your head.
That's a LOT of effort to be lazy.
Nothing a notebook and a pencil can't fix, of course, but an app is more fun.
I don't think it's laziness, I think it's an excuse to do a personal hobby project. Makes perfect sense to me.
echo <input id=kmbefore><input id=kmafter onleave='alert( (kmafter.value - kmbefore.value) * priceperlitterperkm )'>
> index.html to make it available to anyone, Worldwide, for free!
For the fancy version I'd make priceperlitterperkm URL parameter to make it work not just for my area. But that's like an entire additional like of code.
My point being... I'd make a Web page, on app, no deployment, no tracking.
* a server running 24/7 on the internet, paid for each month
* purchased, setup and keep paying every year a domain name
* configured a web server in that server, ideally with automated SSL certificate issue and renewal
ssh homeserver 'echo hi >> /var/www/self-published/index.html' and voila. I'll probably share my gist this way from the CLI.
ssh homeserver "echo '$(ls)' >> /var/www/self-published/index.html" if I want to run a command locally first, not on homeserver (notice the " vs ').
Notably, the only parts of this that could not have been done by a well configured agent in a weekend with SOTA today is the futzing with app stores and the UX iterations.
It's so powerful and you can build so many custom UIs on it.
I started it for smart home automations but on daily basis I use it more for managing tasks,scheduling reminders.
And with Claude code remote even my not so technical wife uses it to build her tiny utility apps.