Faizan Azhar.
← All posts

Faizan OS Week 1: From Zero to 13 Modules

August 22, 2026 · Faizan Azhar

Laptop screen showing a grid of colorful app tiles multiplying outward

I started Faizan OS because I was tired of juggling five different apps to run my own life. This is the first entry in a weekly log of what actually happened while building it, week by week, bugs included.

Table of Contents

The Starting Baseline

The first two days were a bulk import. Thirteen modules landed at once, all of them ports of a prior version of the app I had running: Personal Finances, Home Finances, Income, Investments, Split and Owe, Liabilities, Net Worth, Habits, Odessys, Check-in, Watch Queue, Trips, and Reminders, plus Brain Dump for freeform notes.

These weren't built from scratch. Each one kept the exact same data format as the old version, reading and writing the same underlying documents, so the old app and the new one could run side by side with zero migration work. That decision saved a lot of headaches later.

Alongside the import came the first bit of real polish: Watch Queue got platform and genre metadata, and Brain Dump got optimistic UI so notes felt instant instead of waiting on a network round trip.

Thirteen distinct geometric shapes flowing together into one organized cluster

Website and Quick Capture

Day three brought two new pieces. The first was a module for publishing blog posts to my own website, complete with image uploads. The second was the start of what I call Quick Capture: a text box where I can type something freeform and have it get routed to the right part of the app automatically.

Quick Capture started small on purpose. Phase one only handled routing to Brain Dump. Everything else came later, one category at a time.

That same day I also added local due-date notifications, a simple version that ran entirely on-device with no backend involved.

The First Notification Bug

Day four is where things got more ambitious, and more painful. I replaced the local notifications with real background push, using Firebase Cloud Messaging and a Cloudflare Cron Worker running behind the scenes.

It did not work correctly the first time. Cloudflare Workers run on UTC by default, with no concept of my local timezone. Every due-date comparison was happening against raw UTC time, which meant reminders were showing up roughly five hours late. On top of that, the push messages weren't marked high-priority, so delivery itself was inconsistent.

Both got fixed within the week, but it was a good early reminder that "it works on my machine" and "it works across timezones and background delivery constraints" are two very different problems.

Tags Engine and Cleanup

Day five introduced a lightweight tags system. It started wired into Personal Finances only, then expanded outward so items across the app could carry the same tag and show up together in search.

The last two days of the week were quieter: fixing how Topic Ideas got imported, cleaning up mobile layout issues, and improving search autocomplete. Not glamorous, but the kind of work that makes everything built earlier in the week actually pleasant to use.

A paper airplane drifting off course near a glowing clock, representing a timing bug

What's Next

By the end of week one, the baseline was in place: thirteen modules, a way to publish content, a way to capture stray thoughts, and the beginnings of cross-module organization through tags. Week two is where things start to get more interesting, with new modules and the first real correctness bugs around data and privacy.

Colored tags threading through several document icons like beads on a string

Frequently asked questions

What is Faizan OS?+

Faizan OS is a personal operating system built as a single app with more than 20 modules covering finances, habits, routines, trips, investments, and more, built entirely through conversations with Claude rather than traditional development.

Why did the first version reuse the old app's data format?+

Keeping the same data format and Firestore structure meant the old app and the new one could run in parallel with no migration step, which reduced risk while the new version was still being built out.

What caused the early notification delays?+

The background push system ran on Cloudflare Workers, which operate in UTC by default. Due-date comparisons were made against raw UTC time without accounting for the local timezone, causing reminders to arrive hours late.

What is Quick Capture?+

Quick Capture is a text box that takes freeform input and routes it to the correct part of the app, like Brain Dump or Finances, using keyword parsing rather than AI.

Is Faizan OS a product other people can use?+

No, it's a private, single-user app built for personal use, with access locked to one account at the infrastructure level.

Tags

Faizan OSVibe CodingBuild in Public

Free operational audit

Want help building yours?

I structure and run offshore delivery teams for a living. Start with a free operational audit.