I’ll go first:
I have a personal photo/video app that uses B2 for storage and Vultr to host a VM (free egresss). It’s main goal is to keep archival copies that can be viewed, verified, and shared and so the server code is very lightweight: user permissions, API endpoints for thumbnails (eg /pictures/utgGhj/400x400/image.jpg), add/edit/delete endpoints, and a notification system.
The app is distributed by manually installing it (future plans to distribute via TestFlight and whatever the Android equivalent is).
The app itself is very simple: Flutter, login screen, list views that can be sorted (default to newest), and a screen for viewing an item. Share links and comments are stored in Firebase (mostly for the offline sync convenience).
Someone could probably make it in a couple weeks if they have a little backend+mobile experience.
What apps do you “cook at home”?
My stack gets smaller every year. I love Django + Postgres, but a Python script + SQLite is often better. I just have less time for maintenance and I like things that just work with minimal dependencies.
In the front-end I love VueJS. I'm still at Vue 2 mostly because I have lots of projects to upgrade and don't see any reason to do so.
Everything is dockerised because I love reproducible builds.
Recently, I've started using Caddy instead of Nginx. I don't have to fuss with SSL anymore and I love it. The config syntax is saner, but I still struggle to configure it. At least with Nginx I have a lot of recipes from old projects.
My home-cooked apps are...
- My movie server, dubbed "Nickflix" by friends. I've dramatically simplified the code last week.
- My GPS logging server for the Owntracks app, also getting simplified today.
- My timeline thing, which shows my photos, GPS tracks, diary and other things on a timeline.
- My online recipes, which are just markdown compiled by the static site generator I created for my business.
https://nicolasbouliane.com/projects
Talk 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
Carousel is for a whole new use case: building simple scripts right on my phone or tablet. Nothing else can do that as simply, I think. It's cross-platform but that's an experimental property I'm hoping to carry forward to other apps. The use case here is purely for mobile devices.
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 snooze period drops below 1 minute, the snooze button stopped working entirely.
Some snoozers I know would just consider that a victory and get back to sleep
Deleted Comment
Right now, I'm really into:
- Frontend: Astro/SolidJS
- Database + API + Monitoring + Auth: Keel (https://keel.so)
- Desktop/Mobile wrapping: Tauri (https://tauri.app)
I know building native apps with web technologies is a bit lame since it's a glorified web view on native devices and thus is somewhat limited, but as a web developer this allows me to play in those worlds a bit more.
I've tried to learn Swift/Kotlin but haven't been able to get as far as I have with JavaScript yet.
Other than that I've built some tools just for the sake of exploring some hypothesis that I had, but all of those always felt like work. The game development was something that truly felt like "cooking at home".
Solitaire: https://search.f-droid.org/?q=Solitaire&lang=en
Hotwire really is incredible (coming from someone who's primarily a JS dev in the past) and makes common things way easier.
The more I write ruby, it really feels like home cooking, whereas even the best JS frameworks (sveltekit + bun IMO) felt more like ...home maintenance? Plumbing?
I put everything that's not business critical in it. Some examples:
* A "Scoreboard" growth chart of my MRR. It syncs with Stripe's API periodically. I add some friends and peers to it so they can see my progress. When I hit pre-programmed MRR milestones, it triggers a celebration announcement.
* An RSS->Sendy tool. My company blog is hosted in Jekyll and has an RSS feed. I send email newsletters for the blog through a Sendy installation. Sendy doesn't have good email templates, so this little system applies a template to RSS feed items and creates a draft in Sendy so I can send it.
* A mini internal CRM / search engine, which an intern was helping me manage for a bit.
* Some cron jobs that send email reminders to me, such as sending electricity bills to my accountant for a home office reimbursement.
I highly recommend companies have a full-featured "toy" app separate from customer data. Customer apps have a lot of red tape to protect data and uptime. But, we underestimate how long it takes to set up an environment or pick a stack when we have ideas - even for things like "cron job that sends emails" - so a small app stack helps encourage creativity and useful little scripts with minimal effort.
I 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.nethttps://github.com/radioxeth/compass