Urgent.News

What's breaking now, across thousands of outlets.

Tech

From a phone app to a cluster

Originally published at eyosias.me . This is a chapter in the Ivyk8 series. TL;DR Ivyk8 is Ivy + k8s: a read-only desktop dashboard for the backups my phone app writes to Google Drive. The first blueprint was a flagship platform: Postgres with replicas, Redis, a service mesh, GitOps, canaries. A critique of it said it was about 18 months of work for a team. On Oct 1 I cut it to three stateless…

Ivy Wallet+ started as an open-source money manager for Android but faced the owner's decision to archive it. The author forked it, adding features like photo and audio attachments, transaction location, balance at day, SMS auto-fill, and a reports filter. The data captured by the phone app inspired the idea of creating a read-only desktop dashboard to analyze the backups stored on Google Drive.

The first blueprint for the dashboard was ambitious, incorporating features like a Kotlin sync client, Go sync API, Postgres database, Redis cache, Istio service mesh, GitOps, canaries, and an observability stack. However, a critique from Claude Code revealed that the proposal would take about 18 months to build and had several flaws, such as using Redis as both cache and queue, breaking read-your-writes with read replicas, and lacking an identity layer.

The author then made significant changes, cutting the project down to three stateless TypeScript services, Kubernetes for delivery, and five architecture decision records (ADRs) outlining the decisions made. These decisions included using stateless services, removing the database, limiting Google Drive access, ensuring Kubernetes is the only delivery path, and using ECB exchange rates as the default source.

The goal was to build, secure, test, and deliver the product like a production software, with the personal dashboard being the final point. The series of posts will cover the dashboard's features and the transition from a local k3d cluster to three machines at home, with each issue addressing the challenges faced during the process.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Why your push notification didn't arrive: the FCM and APNs errors, and the failures nobody reports

A push notification has two lives. In the first, your server asks Firebase Cloud Messaging (FCM) or Apple's APNs to deliver it, and gets an answer.

  • FCM and APNs handle push notifications in two stages: server request and user phone decision.
  • FCM reports acceptance based on Google Analytics, which can be delayed up to 24 hours.
  • APNs returns a 200 status for acceptance, but does not signal notification display.

Building an offline snag-list app with Expo, Skia and pdf-lib

A snag list (a punch list in the US) is the walk-round at the end of a job: you photograph every defect, mark it up, note where it is, and send the builder one numbered report.

  • PunchSheet is an offline snag list app priced at $9.99
  • Uses Expo SQLite for data storage and React Native Skia for markup
  • Backup achieved through single .punchsheet file

More from Thursday 29 October →