The front door

Splash, log in, sign up, forgot, reset, verify, and the one honest chooser. Seven screens, no role selection and no plan picker — you buy a product and the account type follows. More than half the people this product serves never see any of it.

1 · Log in
One credential store for both products. The screen does not ask which one you are — it does not need to, and asking is how a data-model question reaches a stranger.
Welcome back
Email
sam@hollishouse.com
Password
••••••••••
Log in I have forgotten it
Don't have an account? You get one when you buy either the binder or the builder app.
What is not on it

No continue with Google, no are you a homeowner or a builder, no plan comparison. Payment is what got them here, and the account they hold already knows which product it is.

2 · Sign up — the binder
Where a homeowner lands after paying. The house has a name before it has anything else, because every screen after this one is about a specific house.
Let's set up your binder
Three things, and then you are in. Everything else can wait until you have looked around.
Your name
Sam Hollis
Email
sam@hollishouse.com
Password
••••••••••
Eight characters or more. We won't ask you to add a number or a symbol.
Create it
Three fields

Not a wizard. The house, the spaces and the two of you all get named later, inside the product, by 04-onboarding and 09-first-run — which are already drawn and already argue that the first run is a conversation rather than a form.

The password hint is a promise

We won't ask you to add a number or a symbol. Composition rules make weaker passwords and irritate everybody, and stating that we do not have them is worth one line on the one screen where a person is bracing for them.

3 · Sign up — the builder app
The same screen. The accent, the product name and two fields differ: the company name and an optional work number homeowners can use to call their builder.
Let's set up your company
The name your clients already know you by. You can add a job in a minute.
Your name
Dave Marsh
Company
Dave Marsh Builders
Phone
(312) 555-0142
Optional. Homeowners see this as the number for their builder.
Email
dave@marshbuilders.com
Password
••••••••••
Eight characters or more. We won't ask you to add a number or a symbol.
Create it
A company, and nothing about a company

The company is still only a name, and the person creating it is the owner seat. The optional number belongs to that person, not the company or the seat; the builder seat only carries it to the homeowner's People screen. No org chart and no role matrix: roles are hats, at the median the person signing up is the owner, the estimator and the PM.

And nobody is invited

A second seat is added when there is a second person, never at signup — and at one to three homes a year there may never be one. A first-run flow asking who else is on the team teaches a solo builder in its first thirty seconds that the product is not for him.

4 · The one honest chooser
A builder building his own house. He holds two accounts, and this is the only place in the product where somebody is asked which one they are — because for once it is a real question.
Which one this morning?
You can switch whenever you like. This isn't a setting.

Your jobs

Dave Marsh Builders · four live

Your house

The Marsh place · started April

Shown once at login, never as a mode

A persistent role switch in the chrome would put the question on every screen for the handful of people who hold two accounts, and would teach everybody else that the product has modes. It does not. It has two products.

A seat is not a lesser login

Renee Boothe and Nora Hollis never see this screen: one account each, held on somebody else's subscription, and they land straight in it. Holding a seat rather than the subscription changes what you can do, and changes nothing about how you get in.

5 · Forgotten
One field, and the answer is the same sentence whether or not the address is one we know.
We will send you a way back in
Email
sam@hollishouse.com
Send it
Check your email If we have an account for that address, there's a link on the way. It works for an hour.
Still stuck? Ask us.
Why the sentence is conditional

If we have an account for that address. A screen that says no account with that email tells anybody who asks which of our customers exist. The hedge costs one word and it is the only place on this page where the copy is doing security work.

6 · Reset
Where the emailed link lands. One field, no confirmation field, and no strength meter.
Pick a new one
You will stay logged in on this device.
New password
••••••••••••
Eight characters or more.
Save it
No second field

A confirm-password field catches a typo the reveal control catches better, and it doubles the work on the screen somebody reaches while already irritated. No strength meter either: a live judgment of what somebody is halfway through typing is the product being clinical at the exact moment it should be quiet.

7 · Verify — a consequence gate
This is not on the way in. It is the moment Sam confirms a held amendment, and the code is the proof an authenticated session would have been.
Confirm it's you
We sent six digits to sam@hollishouse.com. This is the only thing on your account that asks for them.
469
What you are confirming
CO-1 · Island electrical, added circuits
+$1,850, and Thursday's rough-in holds. Once you confirm, this is on the contract.
Didn't arrive? Send it again.
Verification is a consequence gate, not an entry gate

The same mechanism as email verification, used at the moment it is worth something rather than at the door. Nobody is ever stopped on the way into their own house to prove they own the address they signed up with.

And what is being confirmed is on the screen

A code screen that does not restate the consequence is asking somebody to authorize a number. The amendment is on the screen above the field, in the same words the money screen used, so the confirmation is of a thing rather than of a session. It sat in a card until 2026-09-06 and does not need one: a card is an object you can act on or cite, and this is the sentence the code is about.

The reader here is not Sam, and that is a correction

This frame was drawn with sam@hollishouse.com in the sentence, and 13-money frame 3 says plainly that a paid homeowner never sees this code, because being signed in is already the proof. Both cannot be right. The screen is correct and the reader was wrong: it belongs to somebody confirming an amendment without a session, which is Ben, Ana or Tom rather than Sam. It is drawn against the right person, on link chrome and leading with the builder, on 36 · Proving it was you. This one stays as the front door's own statement that verification is never an entry gate.

Rung 2 · spoken
8 · Too many attempts
The one failure state that lives on this surface. It carries time, because time is the only thing that resolves it — and that is the exception to the rule about clocks on a homeowner's screen.
Welcome back
A clock is running Let's pause for five minutes There have been a few tries recently. Nothing is wrong with your account and nothing has been locked. You can try again at 9:22.
Email
sam@hollishouse.com
Password
••••••••
We don't recognize that pair.
Why the clock is allowed here

Time is information to Dave and anxiety to Sam, and a timestamp on a homeowner surface normally fails that test. This one passes it: the wait is the state, five minutes is short enough to be a fact rather than a sentence, and not saying when would leave somebody retrying into a wall.

Nothing has been locked

Said outright, because it is the thing the reader is afraid of. And the message under the fields is we do not recognize that pair — not which half is wrong, which would be a free oracle, and not invalid credentials, which is the system naming itself.

9 · Claiming a seat from a link
The ninth door, and the only one somebody arrives at without choosing to. Dave added his office manager to the company; this is the token in her text turning into a seat.
Dave Marsh Buildersadded you as an office manager
Set a password and you are in

Renee Okafor · Dave set your name, your email and what you can do. Nobody but you sets the password.

A password
At least ten characters
You are joining a company that already exists. There's nothing here to set up.
Open the builder app

This link works once and it's yours. If it has already been used, ask Dave to send another rather than trying it again.

A claim is not a signup, and it must not look like one

Everything about the company already exists: the jobs, the people, the contract types, her role and the capabilities that gate it. Asking her to name a company, pick a plan or choose which product she is in would be asking her to re-decide what Dave decided, and the other eight frames on this page are all about somebody who genuinely has those choices. She has exactly one, and it is a password.

Same token machinery as every other link

One use, and a used one is spent rather than broken. The eight states on 30 cover this without extension: a claim link already used is answered by you, and a rescinded one is withdrawn. What it never becomes is invalid, which is the only 401 in the product and belongs to a token that never existed.

And it never mentions that she had no account

The same rule that governs every account-less surface. A year from now the register must be unable to tell whether Renee arrived by claim link or by signup, and must not care.

The two things this page is easiest to build wrong

An account-less person must never meet any of it. More than half the people this product serves have no account and never will: subs, vendors, a homeowner whose builder is paying, a builder whose homeowner is. Somebody answering a text about a tile must never hit a login wall, a verify your email to continue, or a password reset they did not ask for. An action from a link proceeds, and only expensive consequences wait on identity — which is frame 7, and frame 7 is not on the way in.

There is no role picker, and adding one will feel reasonable. It will be proposed as a convenience the first time somebody signs up on the wrong product, and it will be wrong for the same reason it is wrong today: it asks a question the purchase already answered, of somebody who does not yet know our vocabulary. Two products, two front doors, one credential store. Where a login lands depends on what that person holds — one account goes straight in, a seat on somebody else's account lands in that account, and only the genuine two-account case is asked, once, at login.

What this page does not settle

Two-factor. It appears zero times across all six specs. The mechanism for it already exists here — frame 7 is a six-character code sent to an address, and it is the same code the signature confirmation uses — but whether an account may require it at login is an authority question rather than a drawing one.

Where the second seat's invitation lands. Nora and Renee both hold a seat rather than a subscription, and the screen that turns an emailed invitation into a login is drawn by 14-two-of-us for the homeowner side. The builder side reuses it, and neither is on this page, because an invitation is a product event and not a door.