{{ mailTabConfirmCount }} filed here goes back to the Inbox. Nothing is deleted.
RemoveKeep it
{{ mcTitle }}×
ToCc / Bcc
Cc
Bcc
Subject
{{ mcQuoteLabel }}
{{ mcQuote }}
{{ mcAttNote }}
{{ mcThreadNote }}
{{ mcErr }}
Throw this email away?Keep writingDiscard
From info@stephenmcanulla.comCancel{{ mcSendLabel }}
{{ mailSentNote }}
Pick a message
It opens here and the list stays put, so you can work straight down the inbox.
←
{{ mailSubject }}
{{ mailFrom }} · {{ mailFromEmail }}
{{ mailWhen }}
ReplyReply allForward
{{ mailStarLabel }}MARK UNREADARCHIVE{{ mailPinHereLabel }}Move to
{{ f.name }}{{ f.mark }}
{{ a.name }} {{ a.size }}
Opening…
{{ mailBodyErr }}
{{ mailPlain }}
Messages⌄
{{ msgStatusLine }}
{{ msgSelectLabel }}+×
NEW MESSAGEclose
{{ cStatus }}
{{ cErr }}
{{ cNote }}
{{ c.name }}
{{ c.detail }}
{{ cResErr }}
{{ cResWho }} {{ cResNum }} — you already have a conversation.
Open conversation
{{ cResWho }} {{ cResNum }} — new conversation.
{{ cSendErr }}
{{ cSendLabel }}
{{ cResWho }} {{ cResNum }} — texting a new number is switched off.
{{ cTelFix }}{{ cTelCopyLabel }}
New number. Give them a name and it goes into Google Contacts and your Mac's Contacts.
{{ cSaveLabel }}
{{ msgHealthLine }}
{{ msgStaleLine }}
{{ qf.label }}{{ qf.count }}
{{ msgAppLabel }} ▾Service ▾
{{ mi.label }}{{ mi.note }}
{{ pz.line }}{{ pz.label }}
{{ msgCtlNote }}
WHEN A MESSAGE ARRIVES
✓{{ s.name }}{{ s.note }}PLAY
It plays once however many arrive at the same time, and whether or not this panel is open.
WHERE THE MAC IS REACHED
On the Mac itself, leave it empty. From your phone, put the Mac's Tailscale address here — then Claude, messages, mail tools and invoices all work away from the desk. Saving reloads the app.
A permanent folder — it stays at the end and cannot be renamed or removed.
{{ tb.colourLabel }}
{{ tb.colourNowText }}Clear
{{ sweepLabel }}
{{ sweepNote }}
+
{{ msgTabConfirmTitle }}
{{ msgTabConfirmBody }}
Remove itKeep it
←
LOOKING FOR
{{ matchName }}
{{ matchLead }}
{{ m.name }}{{ m.sureMark }}
{{ m.detail }}
{{ m.preview }}
Back to all threads
←{{ newToAvatar }}
{{ newToName }}
{{ newToNumber }}
{{ newToSaved }}
NO CONVERSATION YET
The messages service can only send into a thread that already exists, so the first text has to go from your phone. Once they reply the thread shows up here and everything works normally.
{{ newToNote }}
CLAUDE WROTE THIS FOR YOU
{{ newToDraft }}
{{ copyDraftLabel }}Copy the numberBack
Pick a conversation
It opens here and the list stays put, so you can work straight down the inbox.
Photos from the desk haven’t been proven on this Mac yet. Send the first one to yourself.
{{ fsFix }}
This is a text-message conversation: they’ll get a small, lower-quality copy of the video. For full quality, send a gallery link.
{{ fi.video }}
{{ fi.chipLabel }}
{{ fi.name }}{{ fi.meta }}Goes out as: {{ fi.goesAs }}
×
This photo has its location in it. The client will be able to see where it was taken.
{{ fi.errText }}
{{ fsCount }}
{{ fsErr }}
{{ fsBlockNote }}
Cancel{{ fsSendLabel }}
{{ msgLbMedia }}
×
{{ msgMoreLabel }}
{{ msgMoreNote }}
{{ convoSeenNote }}
{{ convoStaleNote }}
{{ joinNote }}
Opening the conversation…
This drives a real browser — thirty to ninety seconds is normal.
COULD NOT OPEN IT
{{ msgConvoErr }}
{{ b.switchText }}
{{ b.quoteFrom }}
{{ b.quoteText }}
{{ att.note }}
{{ att.fix }}
Open in Messages
{{ b.media }}
{{ b.body }}
{{ b.caption }}
{{ b.reaction }}
{{ b.at }}{{ b.status }}
{{ fb.name }}{{ fb.size }}
{{ fb.words }}
{{ fb.status }}{{ fb.mms }}{{ fb.capNote }}
{{ fb.mark }}{{ fb.headline }}
{{ fb.message }}
Open in MessagesOK
{{ fh.text }}
Waiting for the photo…
{{ fk.text }}
{{ fk.note }}Put back in the box
{{ msgSendLabel }}Copy
{{ msgSendNote }}
{{ fsDropNote }}
{{ msgBlockedNote }}
Notes on {{ nCardWho }}
{{ nCardWhen }}
Redo×
Cleaning up your notes…
{{ nCardErr }}
{{ nCardBody }}
{{ nCardRaw }}
{{ dlName }}{{ dlLine }}×
PICKING DAYS{{ selCount }}Drag across days to add them. Drag over picked days to remove. Change months and keep going — the selection follows you.undoredoClearApply
Or click any day on the calendar to jump the date there.
TIME
LENGTH IN MINUTES
{{ o.label }}
PRICE
{{ priceNote }}
WHAT’S INCLUDED
PAYMENT
PaidAwaitingLeave blank
LOCATION
PHONE
EMAIL
PRIVATE NOTES
{{ formMissing }}
{{ formError }}
{{ reviewLabel }}Cancel
Archive this booking
{{ parkLabel }}
{{ archStatus }}
Archived sessions
Nothing here was deleted. Every field is intact and any of them can go back on the calendar.
{{ archNote }}
Nothing archived yet.
{{ a.client }}RESTORE
{{ a.when }}
{{ a.meta }}
Back to the day
{{ genCount }}{{ criteriaToggleLabel }}
{{ genTitle }}
{{ genBlurb }}
SESSION MINUTES
{{ o.label }}
FINISH
{{ o.label }}
to{{ winNote }}
MAX A DAY
{{ o.label }}
GAP
{{ o.label }}
WHEN TO LOOK
{{ o.label }}
{{ monthsLabel }}{{ dowLabel }}clear months
{{ monthsNote }}
{{ mc.label }}
{{ dc.label }}
{{ ds.label }}
{{ genNote }}
{{ r.day }}{{ r.dayNote }}
{{ r.premiumTime }}
{{ r.premiumTail }}
{{ r.premiumBadge }}
{{ o.time }}
{{ copied }}
{{ gc.label }}
{{ grabLabel }}how manyClose
REMOVE THIS BOOKING
{{ removeName }}
THIS IS NOT A DELETE
It sets archived to true. The row stays in your table and disappears from this app. Nothing is erased, and flipping one boolean brings it back.
{{ writeError }}
{{ removeLabel }}Back
CONFIRM THE WRITE
This goes into your live bookings table
{{ r.label }}{{ r.value }}
WHAT THIS DOES NOT DO
It writes one row to public.bookings and nothing else. Your Google Calendar is not touched. No invoice is sent. No email goes out. Nothing is updated or deleted.
{{ writeError }}
{{ commitLabel }}Back
CHANGE PASSWORD
Pick one I don’t know
This replaces the temporary password on info@stephenmcanulla.com. It goes from this browser to Supabase and is stored nowhere else.
NEW PASSWORD
AGAIN
{{ pwError }}
{{ pwOk }}
{{ pwLabel }}Close
WRITTEN
{{ done.headline }}
{{ done.detail }}
ROW ID
{{ done.id }}
{{ gcalNote }}
{{ gremNote }}
STILL ON YOU
Send the invoice, and put it on your Google Calendar. The details email and the confirmation text are drafted for you on the left.
Nothing on the plate yet — say it below and the coach files it.
{{ pl.time }}{{ pl.name }}{{ pl.macro }}
Log it with the coach
Say it how you'd say it — no forms. {{ fLogHint }} The coach opens, tallies it, and talks it through; if he got something wrong, tell him and he corrects it.
FIXING AN ENTRY BY HANDCancel
{{ mt.label }}
{{ fEditNote }}
{{ fEditSaveLabel }}{{ fEditDelLabel }}
{{ t.big }} {{ t.unit }}
{{ t.cap }}
{{ t.sub }}
+
Capture a haul — paste it, drop it, or photo it
Click and ⌘V a receipt, drag text or an image straight onto this card, or choose a photo — the coach reads it, grades it, and files every item.
{{ fHaulImgName }}✕ remove
File it with the coachChoose a photo…Cancel{{ fHaulErr }}
Already have:"half a bag of rice, frozen peas, two cans of black beans…" — just tell it, no formTell the coach
{{ fPantryHead }}
Tap items to select — use up, fix, or toss.GridList{{ fFitLabel }}
{{ fFitNote }}Rate them with the coach
No use-by dates yet — the coach will walk your perishables with you and file the real dates off the packages.Date my perishables
{{ fSelLabel }}{{ fSelNames }}✓ Used them upRemove allLyla’sMineMove to…Clear
{{ mv.label }}
{{ pc.chev }}{{ pc.label }}{{ pc.count }}✎+ add
RenameCancel
{{ ch.label }}
{{ pc.pickName }}✕
{{ pc.pickNotes }}
✓ Used it upEdit{{ pc.rateLabel }}{{ pc.ownerLabel }}RemoveMove to…{{ pc.dateLabel }}
{{ mv.label }}
Save dateClear dateCancel{{ pc.dateErr }}
{{ pc.editErr }}SaveCancel
Add itCancel
Create — then add its first itemCancel
+ New section
HOUSE RULES · TAP ✕ TO DROP ONE
{{ hr.label }}✕
{{ rw.label }}Add rule
{{ fHaulHead }}
{{ fHaulNote }}
{{ ct.label }}
The rule: ideas use only what's in your kitchen right now — never Lyla's shelf — and they fit what's LEFT of today's numbers.
{{ mc2.label }}
Clear{{ fIdeasGoLabel }}
{{ iw.label }}×{{ fIdeasBudget }}
Nothing generated yet — pick the meal, say what you're in the mood for if you like, and hit the button. The coach reads the kitchen, the spoil-first list, and today's tally before suggesting anything.
Plain terms, always. Calories and carbs follow the Goal card — flip the diet mode or the pace and these targets move with it. Sodium and sat-fat stay locked for the blood pressure and the cholesterol.
{{ clientsNote }}
Clients
No clients came back. The table may be scoped differently than expected — worth a look.
Ask him anything — what a text message said, who owes you money, whether a Saturday is worth splitting. He can see what month you are on and what the date finder is set to.