Recently I've felt overwhelmed by the amount of ads in a simple solitaire game (from many distributors). So I've spent some time learning Unity and built my own Solitaire Game to play during my commute, with no required internet connection, and no loading screen, just like the old days of Solitaire in Windows 98. I'm still pending on adding some features to make the game more complete, but it has been a joyride to le…
It’s really cool that you’re doing this for yourself… but reading this also makes me kinda sad that solitaire gets flooded with ads.
Ask HN: What's the stack for your "home-cooked meal" apps?
21–30 of 37 posts
Re: Ask HN: What's the stack for your "home-cooked meal" apps?
#22About 1/3 of the applications I use regularly are ones I've written myself, from the trivial to one that are very large and complex. My favorite one, though, was a simple alarm clock app I wrote (back when I used alarm clocks). It had the one thing I wanted from alarm clocks that nobody provided: every time you hit the snooze button, it snoozes for half the time you got the last time you hit the snooze. When the snoo…
What does it do when it quits working? Some snoozers I know would just consider that a victory and get back to sleep
Re: Ask HN: What's the stack for your "home-cooked meal" apps?
#23Earlier quoted context omitted.
The snooze key/process quits working, and it just keeps beeping until you complete the turning the app off process.. probably. (Not OP)
Yes, that's right. And you had to enter a code to turn the alarm off. You couldn't just close the app or hit a button.
It had modes where you could either shake the phone xx amount of times, or solve math problems, or even take a picture of a barcode (I set mine to my shampoo bottle).
It all worked great until once a 4am alarm got set as 4pm, and I lost access to my phone at 4pm (since I didn't have access to the shampoo bottle). I was offroading on a motorcycle in the middle of the forest, and my phone with offline maps was my navigation. Almost turned into a crazy Darwin awards story in a way.
Re: Ask HN: What's the stack for your "home-cooked meal" apps?
#24html, js, indexeddb, uwebsocket, redis, byob for private backup (uses s3 by default, I use r2 personally, also support google drive)
js dependencies are dexie, uwebsocket.js, luxon, morphdom.
Using indexeddb means all updates are persisted before rendering and transmission. Rendering is deterministic based on local db values, there is effectively no indeterminate state. Dropped socket connections are nbd as all updates are either timestamped or timestamped & crdt so data is always in sync and can be upserted with dexie. Delivering messages multiple times is rare but inconsequential.
Morphdom keeps ui updates fast and lets me use escaped template literals and a more laissez faire approach to query & rendering for ui components.
DOM node names/ids are distinct & semantic. They aren't obfuscated by a rendering pipeline so it's very easy to trace ui to db and code without relying on an IDE.
Components and dom node names are namespaced using js Sets and Proxies so that the apps namespaces are kept conflict free and it alerts you in console if you create a name conflict.
Only data the user hasn't synced is kept in memory on server, load is distributed by all servers having a persistent socket connection with each other and I use N character subdomain dns resolution to match first two characters+ of users uuids (aa.site.com, ab.site.com) to handle message passing against a redis pool.
This effectively means I have presharded the socket load by user but means I don't have to spin up new servers until the load warrants it for each subdomain. It runs on 1 server as simply as 20 and everything is fully evented.
This all means that the server is a single js file I can overwrite to hot reload.
Same with the client file except it's an html and js file.
The longer I've been doing this the more I believe that everything comes down to a proper data/database implementation. If you are disciplined with your schema, always use ids, and ensure data comes first... everything else becomes disposable and easily refactored.
Also, DOM ID obfuscation is insane for front end rendering engines, keep it semantic and matching your names/ids in code/db.
Re: Ask HN: What's the stack for your "home-cooked meal" apps?
#25Earlier quoted context omitted.
Yes, that's right. And you had to enter a code to turn the alarm off. You couldn't just close the app or hit a button.
There was a great Android alarm app years ago that you'd run in some kind of super admin mode, and you couldn't exit out of it no matter what. Restarting the phone just made it autoload instantly again and stop you from taking focus away from it. It had modes where you could either shake the phone xx amount of times, or solve math problems, or even take a picture of a barcode (I set mine to my shampoo bottle). It all…
Re: Ask HN: What's the stack for your "home-cooked meal" apps?
#26Talk about some of my apps in isolation: https://akkartik.name/freewheeling
Demo showing me combining my apps in workflows: https://archive.org/details/akkartik-freewheeling-2023-07-06
Now I've also been getting into mobile development: https://akkartik.itch.io/carousel
Re: Ask HN: What's the stack for your "home-cooked meal" apps?
#27Earlier quoted context omitted.
Yes, that's right. And you had to enter a code to turn the alarm off. You couldn't just close the app or hit a button.
There was a great Android alarm app years ago that you'd run in some kind of super admin mode, and you couldn't exit out of it no matter what. Restarting the phone just made it autoload instantly again and stop you from taking focus away from it. It had modes where you could either shake the phone xx amount of times, or solve math problems, or even take a picture of a barcode (I set mine to my shampoo bottle). It all…
Re: Ask HN: What's the stack for your "home-cooked meal" apps?
#28- hono for routing on the server
- preact for building the ui
- goober for styling
- wouter-preact for client-side routing
The whole thing has 6 prod dependencies, 3 dev dependencies, and 17 dependencies total if you include transitive dev and prod dependencies. It can be deployed to any JS runtime (including edge runtimes like Deno Depoy and Cloudflare Workers).
Re: Ask HN: What's the stack for your "home-cooked meal" apps?
#29I built a simple compass web app so I can know which direction I'm driving. I want to access some other sensor APIs to make it more like a compass (you have to be moving for it to work).
https://compass.nad27.net https://github.com/radioxeth/compass
Re: Ask HN: What's the stack for your "home-cooked meal" apps?
#30I've settled on much the same as you, Flutter/Dart and Vultr. Haven't needed much in the way of cloud storage so just use the filesystem and MySQL. For anything webby, Vue/TypeScript on Netlify + CloudFlare. The backend language/framework can vary if I'm interested in something at the time (e.g. F#/Giraffe).
Honestly imo with SSDs being as fast as they are, the filesystem is wildly underrated. I have a scraper grabbing items from a mobile app and I just store each item as the JSON file then check it in to git. Push triggers some processing and everything new gets messaged directly to me.
It’s never crashed and never missed a beat. I could also throw up a simple web UI that just parses everything in the items directory and get <200ms response times on the lowest-cost vps.