{
  "id": 2992752,
  "title": "Building Buildhorn: Shipaton 2026 Week Three",
  "url": "https://urgent.news/2026/08/24/building-buildhorn-shipaton-2026-week-three",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-24T05:46:52.000Z",
  "source": {
    "name": "HackerNoon",
    "slug": "hackernoon",
    "url": "https://hackernoon.com/building-buildhorn-shipaton-2026-week-three?source=rss"
  },
  "original_language": "en",
  "account": "I am nearing the conclusion of my third week working on Shipaton, an app designed to deliver CI build failures to users' phones. This post marks the third installment in my series detailing my progress towards shipping Buildhorn, a multi-layered application built using Kotlin Multiplatform, an iOS app with a SwiftUI interface, and a Firebase backend.\n\nThroughout this week, the focus has been on refining the app for a polished, high-quality user experience. The application now features an end-to-end flow where failed GitHub workflow runs are recorded in Firestore storage and accompanied by push notifications through Firebase Cloud Messaging. This functionality proved crucial in confirming the app's unique value proposition.\n\nTo add personality to the app, I introduced a new Firestore-backed endpoint that ensures users always have an up-to-date list of repositories they've chosen to monitor. Additionally, custom notification sounds were incorporated during the onboarding process, while confetti animations were implemented to celebrate successful GitHub account connections. The notification copy has also been updated to include emojis and humorous build-failure jokes, enhancing the overall user experience.\n\nIn the Kotlin Multiplatform layer, there were minimal changes to dependencies, with the new cloud functions endpoint enabling the app to rely on Firestore as the source of truth for user-selected repositories. I also considered optimizing certain aspects of the business logic, but ultimately decided to keep it within the shared library for consistency and maintainability.\n\nThe iOS app introduced a new screen allowing users to customize their notification sound, catering to the diverse preferences of its users. A default sound option is provided for those who prefer not to change their settings. The notification is scheduled locally on the device, ensuring that push notifications from the server do not override user preferences. Users can revisit the sound preferences anytime through the settings screen.\n\nLastly, the Firebase backend underwent minor improvements, including the addition of a new cloud function to fetch the repositories being monitored by Buildhorn and modifications to the notification payload to include more engaging and personality-filled text.",
  "summary": "Three weeks into Shipaton 2026: The initial features for Buildhorn v1.0 are set up. Now it's time to clean up and polish 🧽",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}