Before Faizan OS: How a Single HTML File Replaced My Spreadsheet
August 21, 2026 · Faizan Azhar

Before there was a Faizan OS with 20-plus modules, there was one file. No login, no sync, no framework. Just a single HTML page that tracked how much I was spending on nicotine, restaurants, and padel. This is where it actually started, and I pulled every detail below straight from the commit history so I'm not romanticizing any of it.
Table of Contents
- Replacing a Spreadsheet, Not Building an App
- The First Hour
- The Rewrite That Actually Made It an App
- The Bug That Fought Back for a Whole Day
- Where It Landed
Replacing a Spreadsheet, Not Building an App
There was no grand plan here. Before any of this existed, I was tracking my finances in Excel: one spreadsheet for expenses, another for investments. The seed data that got loaded into the first version of the app was literally pulled from those same spreadsheets, months of history copied over in one shot.
The actual instruction I gave to build the first version was blunt about the constraints: a complete personal finance tracker as a single HTML file, no frameworks, no dependencies, pure HTML, CSS, and vanilla JavaScript. That wasn't an accident or a limitation I hit later. It was the starting rule, and it's the same rule Faizan OS still follows today.

The First Hour
The first real commit landed at 4:41am on March 18, and it was one file: personal_expenses.html, 848 lines. No backend, no account, nothing synced anywhere. Everything lived in the browser's local storage under one key, and the categories were about as personal as it gets: nicotine, restaurants and snacks, padel, and a handful of others that mattered to me specifically.
That's the detail worth sitting with. This didn't start as "a finance app." It started as one category of my own spending that I was tired of tracking by hand.
Within the same hour there was already churn. A duplicate file got uploaded and deleted minutes later. An early index.html got deleted too. None of it was dramatic, it was just the normal mess of building something fast and fixing the obvious mistakes as they showed up.
By later that same day, a Cloudflare Workers config had been auto-added and a second page, home finances, showed up alongside a multi-page shell. Less than 24 hours in, and it had already outgrown being a single spending category.
The Rewrite That Actually Made It an App
For about two weeks, nothing happened. Then on March 31, everything changed at once. What the commit history calls simply "New UI" was a full rewrite, and it's the moment this stopped being a personal expenses tracker and became something closer to a real system: Income, Liabilities, and Investments all appeared in the same rewrite, alongside a proper multi-page structure.
This is also where a written prompt document shows up in the repo for the first time, the same kind of instruction set I still use today to hand off features. The pattern of describing what I wanted in plain language and getting a working page back was already the whole workflow, five months before Faizan OS existed.
The Bug That Fought Back for a Whole Day
If you want a single moment that captures what building this way is actually like, it's April 19. Six separate commits that day were just Index.html versus index.html, added, deleted, updated, deleted, updated, deleted, over and over.
Case-sensitive filesystems don't care how the file looked in an editor, and figuring that out without a background in how deploys actually resolve file paths took the better part of a day of trial and error. The stray capital Index.html this fight left behind was still sitting in the repository months later, at the most recent commit I pulled from. Some fights you win, some you just learn to work around.

Where It Landed
By April 19, the app had already gone from a single spending category to an installable PWA with a manifest and service worker. Firebase Auth and Firestore came in not long after, replacing local storage with real sync, so the numbers I saw on my phone would match what I saw at my desk.
By July, five pages had become six: Dashboard, Personal Expenses, Home Finances, Income, Liabilities, and Investments, with actual cross-linking between them, a liability payment could show up automatically in expenses, an expense could tie back to an investment.
That's the app Faizan OS eventually replaced. Not because it failed, but because it had grown as far as a single-file, six-page structure could reasonably take it. Everything that came after, the 20-plus modules, the cross-module Patterns engine, the whole rebuild, started from the same instinct that built that first 848-line file: I was annoyed at tracking something by hand, so I described what I wanted and built it instead.

Frequently asked questions
What was the very first version of Faizan OS?+
It wasn't called Faizan OS at all. It started as a single HTML file called personal_expenses.html, 848 lines, storing data in the browser's local storage with no backend or login.
Why did the original app get built in the first place?+
To replace manual spreadsheet tracking. Finances were originally tracked in Excel, and the seed data for the first version of the app was copied directly from those spreadsheets.
Why was the app built without any framework?+
That was a deliberate constraint from the first instruction given to build it: a complete personal finance tracker as a single HTML file, no frameworks, no dependencies, pure HTML, CSS, and vanilla JavaScript.
What was the biggest bug in the early history of the app?+
A day-long fight with file name casing, Index.html versus index.html, caused by case-sensitive deploy behavior. It took six separate commits in one day to work through, and a leftover stray file from that fight was still present in the repository months later.
How is this related to Faizan OS?+
This app is the direct predecessor to Faizan OS. Its data format and lessons carried forward, and understanding where it started is the first chapter in the story of how Faizan OS came to exist.
Tags
More from the blog

SEO Agency vs. Freelancer: What Small Businesses Should Actually Compare
Most small businesses compare SEO agencies and freelancers on price alone. Here is what actually separates them, and how to pick the right one for your stage.
Read →

How Much Does a Fractional COO Actually Cost in 2026? (US/UK/UAE/AU Breakdown)
Fractional COO pricing varies widely by model, market, and scope. Here is a real breakdown of what businesses actually pay in the US, UK, UAE, and Australia in 2026.
Read →

Faizan OS Week 3: A Milestone Feed and the First Privacy Bugs
Week three of building Faizan OS brought a curated milestone feed pulling from across the app, five new modules in two days, and the first bugs where real numbers showed up on screen when they should have stayed hidden.
Read →
Free operational audit
Want help building yours?
I structure and run offshore delivery teams for a living. Start with a free operational audit.