Weekly Weather 4.0: From the Weather Now to Tonight's Sky

Weekly Weather 3 gave the app a radar map. 4.0 is the biggest update it has had: the weather card became four pages you swipe through, from the weather now to tonight’s sky, and the map got a rain forecast, labels for every city and a layer for dark skies. It went to Google Play today.

Weekly Weather 4.0: the weather card with each day's hours below

My Self-Hosted Setup: Two Boxes, One Repo and an AI Co-Admin

There are a hundred “what I self-host” posts out there, and most of them are a list of apps. Mine runs a lot of the same apps, so the list isn’t the interesting part. What’s different is how it’s put together and how it’s run:

  • Two machines with different jobs. A cloud droplet for everything public, a mini PC at home for everything private.
  • Nothing at home is reachable from the internet. Not even Jellyfin. No port forwards at all.
  • The whole setup lives in one git repo, and I run it day to day with Claude Code as a co-admin, with guardrails.

sBrowser 5.0: Rebuilding a Small Browser for Today's Web

sBrowser started life as a teaching app for a workshop at 091 Labs: a WebView, an address bar and a few buttons. It grew bookmarks, an ad blocker and a video player over the years, was rewritten in Kotlin and Jetpack Compose in January 2024 (3.x), and 4.4 shipped in March this year. When Google Play’s new rule to target Android 16 (API 36) came due, I sat down to bump a number and ended up rebuilding most of it. sBrowser 5.0 went to Google Play for review today.

sBrowser 5.0 showing a Wikipedia article, with the address bar at the bottom

Hyprr: Trade Hyperliquid From Your Phone, Keys Included

Hyperliquid is an on-chain exchange for perpetuals and spot that feels like a centralised one: an order book, sub-second fills and a public API for everything. Its website works on a phone if you’re patient, but I wanted a real app in my pocket. So in March I started Hyprr, a native client for it. It’s been on Google Play since the end of June, and version 1.1.1 went out today.

Hyprr: a wallet's portfolio with equity, margin and performance stats

Umami Analytics for Mobile Apps Without a WebView

Umami is a great privacy-focused, self-hosted alternative to Google Analytics. But its documentation assumes you’re tracking a website. If you want to use it in a mobile app, the docs point you toward embedding a WebView — which is clunky, adds overhead, and feels wrong for native apps. There’s a better way: hit the Umami API directly.

FreqDroid 1.2: Rich Exit Notifications and Notification History

FreqDroid 1.2 is out with two notification upgrades: a new in-app notification history screen and support for rich exit notifications via FreqTrade’s strategy callback — giving you Telegram-style trade alerts without Telegram.

FreqDroid: Manage Your FreqTrade Bots From Your Phone

I’m excited to announce that FreqDroid is now available on the Google Play Store. FreqDroid is a mobile client for FreqTrade, the popular open-source cryptocurrency trading bot framework, bringing full bot management to your pocket.

FreqDroid multi-bot comparison dashboard

Weekly Weather v3: Radar Maps, New Settings, and Landscape Support

Version 3 of Weekly Weather is out, and it’s a significant update. The headline addition is an interactive radar map with animated precipitation overlays, but there’s a lot more packed into this release.

Weekly Weather forecast screen

When AI Crawlers Attack: A Server Performance Horror Story

How ClaudeBot brought my Gogs server to its knees and taught me about the hidden costs of the AI gold rush

When AI Crawlers Attack: A Server Performance Horror Story

Building PublicPoolAndroid in One Day with Cursor

Today I want to share how I built a complete cryptocurrency mining monitoring app in just one day, from initial concept to Google Play Store submission, using Cursor as my IDE.

Public Pool Android App

The Evolution of Software Development in the AI Era

When ChatGPT was released on November 30, 2022, few of us understood how dramatically it would transform the software development landscape. As someone who’s worked through this transition, I’ve witnessed firsthand the remarkable shift in how we approach coding and problem-solving.

The Evolution of Software Development in the AI Era

Move /home Folder

You can move the /home folder on Ubuntu, but you must do it carefully to avoid breaking your system. Below are the steps to safely move /home to a new location.

React Native vs Kotlin Multiplatform

Introduction

In the ever-evolving world of mobile app development, choosing the right cross-platform framework can be a game-changer for businesses and developers alike. Two prominent contenders in this space are React Native and Kotlin Multiplatform (KMP). Both offer unique approaches to the challenge of writing code once and deploying it across multiple platforms. This article will dive deep into the strengths and considerations of each, helping you make an informed decision for your next project.

Simplifying MVI Architecture

Model-View-Intent (MVI) is a powerful architectural pattern for building user interfaces, especially in Android development. In this post, we’ll explore a helper class that simplifies the implementation of MVI, making it easier to manage state, handle user intents, and emit actions in your application.

When .gitignore Doesnt Seem to Work: A Quick Fix

As developers, we’ve all been there. You’ve added a file or folder to your .gitignore, but Git keeps tracking it anyway. What gives? Let’s dive into why this happens and how to fix it.

Configuring SSH Keys for Individual Git Commands

When working with Git repositories, you often need to authenticate using SSH keys. While you can configure SSH settings globally, there are times when you need to use a specific SSH key for just one command. This is particularly useful when cloning a new repository or adding a submodule, where there isn’t yet a local .git/config file to modify.