Mission debrief · 01 / 05

Mission Control

A request desk for my website care plans. Clients ask for a change by form, by email or on a call, and every ask gets a number, a status page they can check without logging in, and a line in a monthly report that arrives in their own brand, free time included.

Crew levelPlain-English briefings. Switch to Engineer for the technical details.
Client
Barajas Design · in-house
Mission type
App
UI/UX
Development
Role
Designer + developer
Year
2026
Platform
Custom code · Vercel · Supabase
Status
/mission-control · 5 channels

Mission control

Switch channels to run the real build, compare the design file to the finished site, and see it on a phone.

CAM-01 · ChannelREC00:00:00:00
Mission control
ChannelsKeys 1–5
Telemetry●
Frame rate--
SignalNominal
Channel1 / 5
Source--
Open the live site
/briefing

The objective

Care-plan clients send changes however they think of them: a text on a Saturday, an email with a screenshot, a mention at the end of a call. Things slip, and nobody knows how many hours are left. Mission Control gives every ask the same path. The client uses their private form link, emails requests@, or just tells me and I log it. They get a reference number right away and a status page they can check any time, no password. If I need something, they answer on that page or by replying to the email. When it's done, they get one or two plain sentences on what changed. At the start of each month, a report in their own logo and colors shows what changed, their hours, and the time I didn't charge for. Every business in these screens is made up.

Static pages and a handful of Vercel functions on Supabase and Resend, no framework, coded by hand after a clickable prototype and wireframes in Figma. Clients never sign in: their form link and every status link are signed tokens, and only a hash of each is stored. Email intake is an Apps Script in Google Workspace that checks requests@ every five minutes, turns mail from known contacts into tickets and threads [REQ-n] replies onto the right timeline. Hours are kept in quarter hours with one month of rollover, and every entry is tagged plan, no charge, included fix or monthly check, so the report can show the free time too. The tracker installs on a phone, signs in with a six-digit email code, and its Stats tab compares each client's real hours with every plan. Before launch the whole flow ran against a local stand-in for the database, the same one that made every render on this page, filled with made-up clients.

Mission parameters
    /systems · 6 deployed

    Systems deployed

    Open a system to see what it does, why it matters and, in Engineer mode, how it works.

    What it does

    Clients never make an account. Their form link and the link in every email are the key, and I can retire a form link in one click.

    Why it matters
    A password screen is where a busy owner gives up and sends a text instead.
    Under the hood

    Links are HMACs of the client or request id with a server secret. Only a SHA-256 of each token is stored, and bumping a client's link version retires the old form link at once.

    Curious how it works?

    Switch Crew level to Engineer for the technical breakdown.

    What it does

    The form, an email to requests@, or a quick call all end the same way: a numbered ticket and the same confirmation email.

    Why it matters
    People ask the way that's easiest in the moment. The desk meets them there.
    Under the hood

    An Apps Script in Google Workspace checks requests@ every five minutes and posts to an intake function behind a shared secret. Each Message-ID is handled once, unknown senders are labeled Unmatched instead of ticketed, and mail from my own addresses is skipped so nothing loops.

    Curious how it works?

    Switch Crew level to Engineer for the technical breakdown.

    What it does

    The status page and every Done email show hours used and left. Unused hours roll over for a month, and if a job would go over, I say so before I start.

    Why it matters
    Most retainer friction is a surprise on the invoice.
    Under the hood

    Balances are computed from plan history and time entries on every read: rollover is used first and expires after a month, only plan time counts, and an estimate bigger than what's left puts the ticket under Needs you.

    Curious how it works?

    Switch Crew level to Engineer for the technical breakdown.

    What it does

    Small fixes the plan covers, monthly checks and favors are logged too, and the report lists them under Not counted, next to the requests they belong to.

    Why it matters
    Goodwill nobody sees doesn't feel like goodwill.
    Under the hood

    Each time entry is plan, no charge, included fix or monthly check. Only plan time reduces the balance; the report groups the rest by kind and request.

    Curious how it works?

    Switch Crew level to Engineer for the technical breakdown.

    What it does

    Each client's logo and three colors. The report page prints to PDF, and the email brings the headline numbers and a short In short.

    Why it matters
    A report that looks like their own company gets forwarded to whoever signs the checks.
    Under the hood

    The desk half (hours, what changed, waiting on you, not counted) is computed fresh when the page opens. My half (Google, AI assistants, site health, next month) is saved per month and carried forward as a draft, reviewed, then sent to every active contact.

    Curious how it works?

    Switch Crew level to Engineer for the technical breakdown.

    What it does

    A private table compares each client's real hours over the last full months with every plan, including what extra hours would cost.

    Why it matters
    It keeps the plans honest both ways: an upgrade when someone keeps going over, a smaller plan when they don't need the hours.
    Under the hood

    Last three and six full months, plan price plus extra time at $125 an hour against each tier, with the Topicweave tier left out. The same tab has the year in review and an effective hourly rate that counts the free time.

    Curious how it works?

    Switch Crew level to Engineer for the technical breakdown.

    /impact · 5 problems solved

    Problems solved

    What the site does for the people who run it and the people who visit it.

    SolvedFor visitors

    Requests in five places

    Before
    Asks come by text, email and at the end of calls, and some get lost.
    Now
    Form, email and phone requests all land as numbered tickets in one list.
    Result
    Nothing depends on remembering a Saturday text.
    Under the hood

    Every request carries its source (form, email or tracker) and gets the same confirmation either way.

    SolvedFor visitors

    “Did you get my email?”

    Before
    Clients can't tell whether a request was seen or where it stands.
    Now
    A confirmation with a reference number in seconds, and a status page that's always current.
    Result
    Nobody has to ask. The link answers.
    Under the hood

    Status changes are timeline events; the client page shows the visible ones, my private notes stay private.

    SolvedFor visitors

    Hours nobody can see

    Before
    Retainer hours live in my head or a spreadsheet, so going over is a surprise.
    Now
    Hour meters on the status page, in every Done email and in the tracker, and a warning when an estimate won't fit.
    Result
    Extra time is agreed before the work, never after.
    Under the hood

    Meters turn amber, orange and red as the month fills; an estimate over what's left flags the ticket.

    SolvedFor visitors

    Free work disappears

    Before
    Quick fixes and favors never show up anywhere, so the plan looks smaller than it is.
    Now
    Every minute is logged with a kind, and the report lists the time that didn't count.
    Result
    The client sees the whole month, not only the billed part.
    Under the hood

    Not counted is grouped by kind (no charge, included fixes, monthly checks) with the requests it belongs to.

    SolvedFor visitors

    Reports nobody reads

    Before
    Template reports with someone else's logo get skimmed and deleted.
    Now
    Each client's own logo and colors, a plain-language In short, and what changed in a sentence or two.
    Result
    A report the owner forwards instead of deleting.
    Under the hood

    Suggest from this month drafts the In short from desk data; I edit it before it goes out.

    /manifest · what shipped

    Mission manifest

    Everything this mission delivered, planned and mocked up in Figma first, then built.

    0 / 0 pages shipped · hover a tile

    Every page, designed then built

    A live desk at desk.barajasdsgn.com: a private form link per client, status pages, eight automatic emails, email intake through Google Workspace, an installable tracker and monthly reports in each client's brand.

    Mission · planet
    Role

    Designer + developer

    Platform · Year

    CMS collections

    Collections

      Mission type

      Disciplines

      Drag the tags
      Mission parameters

      Parameters met

        Status

        Live

        Where it lives

        ↗
        /telemetry

        By the numbers

        3

        ways to send a request: the form, an email, or just telling me

        0

        passwords for clients: the links in their emails are the key

        5

        minutes at most from an email to a numbered ticket

        8

        automatic emails, so nobody has to ask where things stand

        /stack · 0 tools

        Tools in orbit

        Every tool this mission ran on. Pull one out of orbit and let go; it finds its way back.

        Hover a tool

        Tools in orbit

        /observatory · from this mission

        Observations from this mission