/ blu
CORE
BLU
HAPPI HOME PRO
RESULTS
EXPERIMENTS
FIELD NOTES
WHAT HOLDS UP
INPUTS
CONTACT
LOOP
The product is a loop
It starts when two numbers disagree. Reports fall out along the way.
ARCHITECTURE
Split by role, not domain
Lens, brain, guard, ledger. Four roles, no domain modules.
VOICE
Two voices, one auth
Leo never lives outside my auth, so the site hears VM and I hear Leo.
SEP 4
Three things at once
The repo went live before BLU stood. Virtual Mike picks up the load.
WAS THE RULE
Starts when BLU stands
Two unfinished things is one too many. That was the rule.
LiveVM
Virtual Mike
The interface you are using. Not a chatbot on a site — the site.
2 INSIDE
VIRTUAL MIKE
The reflex is the product
The reflex is worth virtualizing. The knowledge is not.
ProjectBLU
BLU
Virtual Mike, running on Simpli Soda's stack.
2 INSIDE
HubNOW
On the bench this week
Five buckets. Two are BLU, one is the thing you are reading.
5 INSIDE
HonestAVOID
What I am avoiding
Naming the price. Dressed up as a design problem. It is not.
1 INSIDE
DesigningHHP
Happi Home Pro
Designed before built. No app code yet. Listed anyway.
2 INSIDE
14 daysR-SHIP
0
Changes noticed
Somebody outside my head noticed. That is the bar.
UnattendedR-AUTO
0
Running without me
Two weeks unattended, or it does not count.
ReversedR-BACK
4
Decisions taken back
Counted, because pretending they were right is expensive.
OpenSAY
Say something
mike@michaelpelland.com — partners, builders, people comparing notes.
ParkedX-BLUCHAR
Manifest BLU as an actual character
A visual and personality layer for the intelligence that already exists underneath it.
OriginBLU-ORIGIN
Why don’t we just build it
A boat, a flask, and a question nobody had a good answer to.
ChallengeC-UGLY
Come tell me I am wrong
Bring the ugly question. I will ask BLU the Simpli Soda version of it, live.
GroundingL-IDK
If it cannot say I do not know
Then every number it hands you is unverified by definition.
JudgmentL-CHAIR
The IP is the guy in the chair
The tool could build anything I could specify. It could not tell me I was specifying the wrong thing.
HeadlessL-HEADLESS
Not going headless is the mistake
Own the data model your business runs on, or rent somebody else’s definition of a customer.
SaaSL-SAAS
SaaS is dead
The horizontal middle dies. Infrastructure lives.
Sep 4N-904
Three designs, two limits
Built the ask, designed the login. The platform reset both.
PlatformL-DOCS
The docs are a claim
Their own documented example, rejected by their own server.
ArchitectureL-RESOLVE
The copy is not truth
Most systems operate off a copy. BLU asks the source again.
PrimitivesL-PRIMITIVES
Everything is a segment
Segment, measure, derived claim. Only two may render as a count.
Aug 27BLU-DEMOTION
The CRM was demoted
Platform to sensor. The plan was to remove it. It tells me more now.
ConvergenceBLU-ONEOS
One operating system, not two
Operations and demand, wired into the same reality.
AbsenceL-ABSENT
Absent is not zero
Zero, empty, unasked, unaskable. Four answers, not one.
ModelingL-MODEL
Modeling comes before intelligence
The model is not the hard part. Modeling the business is.
Aug 6N-REPORTS
Reports were segments
Every report I built was a segment. So I built segments.
Aug 13–14N-SLOW
The instrument went stale
Three BigQuery passes became eight. Nobody noticed for ten days.
Aug 14N-TWOREADS
Two reads can disagree
Deleted a real 2x speedup, because two paths can disagree.
StandingN-ANSWERABLE
The questions became answerable
The inputs always existed. Nobody owned the disagreement.
Focus modeOrigin · BLUCLOSE ✕

Why don’t we just build it

A boat, a flask, and a question nobody had a good answer to.

HEAR ITIN MIKE’S VOICE0:00 / 1:41

I was a HubSpot homer. I used it, recommended it, defended it and built around it for years, and for a long time I thought it was one of the better pieces of software a growing company could buy. The operative word is was.

There may or may not have been a flask involved. Single malt variety. Maybe.

THE BOAT

Software that fit the business, instead of the other way round

Hunter and I were fishing in Canada, sitting in the boat, talking about Simpli Soda and whatever else and stuff. He had just finished building a bespoke ERP for Simpli Soda, and the thing worth saying about it is not that it was good. It is that it fit our business exactly — the way we buy, the way we fill, the way we ship, the way inventory actually moves, all the weird little things specific to Simpli Soda that would make no sense to somebody designing generic ERP software for ten thousand different companies. We did not change the business to fit the software. We built the software to fit the business.

THE QUESTIONS

Households, machines and cylinders

That got us talking about the other side of the company. If we could build something that fit operations that well, why were we still cramming demand into software somebody else designed? Why were we paying a marketing contact tax — a bill that climbs every time the list grows, whether those people ever open a thing or not, so you get better at acquisition and get punished on the invoice? Why was the feature we actually needed always one tier up? Why were we buying bolt-ons to make the platform do the things the platform was supposed to do, and then paying somebody else to make the bolt-ons talk to each other? And why was our business getting flattened into contacts and companies, when what we actually have is households, machines and cylinders — three things that software had never heard of and was never going to learn?

THE ONE THAT DECIDED IT

Paying rent on a copy of our own data

Why was everything in there stale by the time we opened it? We were paying rent on a copy of our own data and calling it a system of record. And why were we adapting the business to the software instead of the other way around? At some point the obvious question came up. Why don’t we just build it? So I came home and started.

Published Updated BLU-ORIGIN
ASK