Someone asked me recently which palStack app came first, and I answered with total confidence. Then I checked, and I was wrong. Two posts on this blog quietly disagree about it: one says the finance app came first, another says pantryPal came before palStack was even a name. Both felt true when I wrote them.
At work, if two reports disagree, I don't pick the one that feels right. I go find the system of record. So I pulled up my GitHub account, where every repository has a creation date nobody edits after the fact. It took me about ten minutes to realize the system of record was missing a chunk of the story, and that the missing chunk was my own doing.
We self-hosted our git, too
For the first stretch of all this, most of our code didn't live on GitHub. It lived on a GitLab server we ran ourselves. Of course it did. If the whole point of palStack is that you shouldn't have to hand your data to someone else's cloud, it would have been strange to start by handing over our source code.
The consequence only hit me while writing this. When we moved to GitHub, each repository was created on the day we moved it, not the day the work started. There's a commit in pantryPal from April 2026 whose entire message is "migration from gitlab," and everything before that line happened somewhere else. A GitHub date tells you when something arrived, not when it began.
It started with a munchie club, in 2024
The oldest idea in palStack isn't on GitHub at all.
It started with our monthly munchie club, where everyone takes turns choosing where we eat. Keeping track of whose turn it was, who was coming, and who owed what at the end was all a small amount of frustration and a steady amount of mental load, and it always landed on whoever cared most that month. So in 2024 we started building an app to hold all of that for us. It was called minglePal for a long time, and it's clubPal today.
That's also when the bigger idea took shape. Not the name or the company, just the pattern. The club app, and the money problem my wife and I were already fighting with, had the same shape: an everyday job that needed organizing, and nothing good we could run ourselves.
What GitHub can see
The oldest repository on my GitHub that turned into anything is dollardollar, first commit February 24, 2025: "Just an Opensourced locally hosted Money Management and Expense Splitting Service." Eighteen days earlier there's a repo called splitwise-go-project, which by its name was me trying to rebuild Splitwise in Go, and nothing came after it. What I needed wasn't a Splitwise clone. It was one small app that did budgets and splitting together and ran on the server in our house. dollardollar was public from day one and ended up with 325 stars, which for a side project named after a Wu-Tang lyric still makes me smile.
Two months later, in April 2025, a repo called homieHQ. That's the first home, the warranties and the water heater I didn't know needed flushing. It was renamed propertyPal in December, and it's quietly become the biggest thing I've built, with more than 1,300 commits in its private repository. A house keeps generating problems, and every problem looked like a feature.
After that, GitHub shows almost nothing for months. If I only trusted the data, I'd say I took the summer off. I didn't. That's the GitLab gap.
2025: the year it became a company
2025 is the year the pattern became a company, and the timing isn't a coincidence. On an H1B, I couldn't have done it: an H1B only lets you work for the employer that sponsors you, so building my own company wasn't something I was allowed to do. My green card came through on the last day of 2024. We formed palStack the next year, and GitHub happens to catch a nice marker of it: on October 26, 2025, a repo called PantryPal_OG, and two days later, a repo called palstack. The "_OG" makes me laugh now, because it means I already suspected there'd be a second version.
So both of my earlier posts were a little right, and both were missing the club. The club app is the oldest idea. The finance app was the first thing we put in public. And pantryPal really did beat the palstack repository by two days.
Between Christmas and New Year's came finPal, which was dollardollar rebuilt properly, this time with the architecture decided by me instead of by whatever my AI tools defaulted to.
January 28, 2026
On January 28, 2026, the palStack-io organization appeared on GitHub, and on that one day every app got its own repositories: a core repo and a mobile repo for each, plus the docs, the infrastructure and the website. Eleven repositories, one day, and pantryPal's full history followed from GitLab in April.
That day was two things at once. It's when we moved our code to GitHub. And it's when we finally set the pals up the way we'd always wanted them: separate products that share a family name and nothing else. That decision gets its own post.
Putting the record back together
With the parts GitHub can't see added back, it looks like this:
| When | What happened | Where the record is |
|---|---|---|
| 2024 | Whose turn is it at munchie club, later clubPal. The palStack idea takes shape | Not on GitHub |
| Feb 2025 | dollardollar: budgets and bill splitting for our house | GitHub, public from day one |
| Apr 2025 | homieHQ, later propertyPal | GitHub |
| 2025 | palStack becomes a company | Not in any repo |
| Oct 2025 | PantryPal_OG, then a repo called palstack | GitHub |
| Dec 2025 | finPal: dollardollar, rebuilt properly | GitHub |
| Jan 28, 2026 | The palStack-io org; every pal gets its own repositories | GitHub |
| Apr 2026 | pantryPal's "migration from gitlab" | Where the two records meet |
The first rows aren't a strategy. They're a club that couldn't keep track of whose turn it was, two people who wanted to split expenses without handing their bank data to a stranger, and a house that kept surprising us. The common thread is the one we still build around: the frustration and the mental load of keeping everyday things organized. The company came later, when we looked at those rows and realized they were one idea.
And both of my sources turned out to be summaries. My memory compressed everything into a neater story than it was. The data, the thing I went to precisely because it doesn't forget, had a hole I'd dug myself by self-hosting our git. I spend my working life telling people to check the source before trusting the dashboard. It turns out you also have to ask where the source has been.
Next, that January day properly: why we split the pals apart, what it cost, and why we'd do it again.