How much of the plan is built
39/82 items built, up from 28 on 1 October. The app's code was put online on 22 October together with the database changes it needs, and it carries everything landed in the main code through that day except the pieces this page names as not online (the shared VYBE Note writer, which landed in the main code after that update, and the video watch page). Nothing has been sent to any reader, the send timer is off, and the app has no Lofty key yet. Descriptions below that say "not online" were written on the day they describe, before 22 October. On 11 October the send screen and the 5-minute send timer passed independent review and were added to the main code, which moved three sending items to built (the checks on every version sent, never sending twice, the send log) and two to partly built (the sender, sending through Lofty). On 12 October the wiring for the first real send was added, for a group of two readers who agreed to get it. On 14 October, on Billie's instruction, the three holds that stopped every real send while written answers from the brokerage and a lawyer were missing were removed after a full independent review; no written answer is on file. On 15 October the tool that puts the app online was updated to the current code and installed: it knows which agent sends, the send timer stays off, and it carries the Severna Park office address for the footer, which goes in only after a final check and whose suite number was corrected to Suite 205 and approved on 15 October. Later that day the talk button was brought to its approved design, and new pieces for the video watch page, a print version, each agent's reminder schedule, loading agents from a spreadsheet and a leadership summary passed review and were added to the code, not yet connected. Much of the work since 1 October is in the code but not yet connected to a screen or a sender, so it does not move the built count; the Progress since 1 October section shows it by day. Billie decided that each agent approves and sends their own newsletter, with no separate reviewer. The paid Cloudflare plan has been active on the app's account since 9 October (read on its billing page), the cards are on both accounts, and the five database changes were applied to the live database on 5 October (49 tables; the online app does not use the new ones yet). Lofty access is now through Billie's own Lofty login; the app's own connection to Lofty has not been tested with a real account yet. Before the first real send: the deploy steps, with a final review of the package and Billie's go-ahead; a test session with a real Lofty account; the Maryland compliance rules reviewed by the person Billie chooses, with his written sign-off; and the AI key and spending limits. On 15 October Billie answered the question from 6 October: an opt-out follows the email address, not the person; that change passed review and is in the code. On 16 October the agent's own button for sending that link back was added to the code and passed review too; it went online on 22 October but cannot reach any reader, because the app has no Lofty key. On 16 October Billie answered the last open question on approvals: once a newsletter is edited, the earlier approval never counts again. That moved the approval lock to built. The read-through confirmation passed review and is in the code too and went online on 22 October. The small wording fix on the read-through lines ("your VYBE account" in place of "your name") passed review and is in the code too. On 16 October the preview's own-words check was connected to the approved copy, and the agent's Settings screen (the look choices and the agent's own closing line) passed independent review and was added to the code. Both went online on 22 October; the look's database file was applied that day. On 17 October the small problems the review found in the Settings screen were fixed, and the newsletter now prints the agent's own closing line (a line that uses wording the send's checks forbid still needed one more fix). That fix passed review later the same day: the Settings screen now refuses such a line in words. A legal wording read asked for a few small word changes, and a related problem on section headings an agent types was found and fixed; both passed review and went online on 22 October. The test tool for the AI thought partner passed review and is in the code; it is a test tool, not part of the running app, and makes no paid call by itself. The three small safety fixes (BS-1) passed review and went online on 22 October. The follow-up fixes the reviewer asked for on that test tool (K5HC) passed review and are in the code too; the test tool still makes no paid call by itself. On 18 October the tap viewer was changed to hide taps older than 90 days instead of deleting them and the saving path stopped deleting anything (recording stays off), and the monthly check-in got a last choice, "Nothing this month", that counts as an answer. On 19 October the unsubscribe page got an optional third question (what would make the reader want the newsletter again; its database file was applied on 22 October), and Your issue got a text link that opens a printable copy of the agent's own approved newsletter, with no unsubscribe link in it. All four passed independent review, are in the main code, and went online on 22 October. A further piece, a line saying "This email is an advertisement." at the start of every reader's footer that the legal reader asked for on 19 October, is built and its independent review is not finished. A legal reader's answers on the shared VYBE Note and on the unsubscribe wording were filed, and the VYBE Note build has started. On 22 October the app was put online: the going-live toolbox was updated, the database was brought up to date (55 tables, 72 indexes), a 30-minute limit for held AI money was stored, and the new version was uploaded and checked from outside. The same day Billie tried it. On his Windows computer the talk button failed in the Brave browser (it works in Chrome, where text lands when the speaker pauses), and he asked for longer answers and a counter on each answer box, so check-in answers now hold up to 5,000 characters and the About-you boxes up to 2,000, and every box an agent writes in each month shows its own count against its limit (for example 255/5,000). That update passed independent review and went online the same day. Later that day the line "This email is an advertisement." (first sentence of every reader's footer) also went online. Still not online: the shared VYBE Note writer (in the main code and independently reviewed, with its switch off and two fixes owed before anyone can turn a note on) and the video watch page (built, not connected). .
This page shows what is actually written and tested, and what is still owed to make it real. The storyboard shows the screens. The asks page is the one place everything needing Steve's answer lives, gathered so nothing is buried at the bottom of a long page and nothing is asked twice.
Progress since 1 October
The headline numbers above count an item as built only when its code is in the app's main code, has passed independent review, and does not wait on a screen or a sender that does not exist yet. Much of the work since 1 October has passed review but is not connected to a screen or a sender, so it does not move those numbers. On 11 October the send screen and the send timer were added, which connected the sending pieces and moved three sending items to built. This section shows the movement the numbers cannot. 85 reviewed changes have been added to the app's code since 1 October (169 before, 254 now), including the send screen, the send timer and their five follow-on fix rounds on 11 October. None of it was live until 22 October, when the app was updated; each day's entry below describes that day, so "not online" there means as of that day. The live app now carries everything described here except where stated.
What was delivered, by day
- 2 Oct The agent approves their own newsletter, and the approval is locked to the exact words approved. The unsubscribe page with its one-click link. The send queue with the agent's own test copy and a resend switch. Bot protection. The links between the ZIP box, the unsubscribe record and the monthly events steps.
- 3 Oct A safety sweep before anything is connected: the old admin newsletter pages removed, one unsubscribe address, one rule for who is blocked, safe tap-to-call links. The approved issue is now built from real data only.
- 4 Oct The loader that safely brings in the Maryland compliance rules, with two more safety checks.
- 5 Oct Reader wording fixed after two reviews. The agent's own market figures screen. The connection to Lofty. The reader list merged with the do-not-send list, and the sender locked to one agent.
- 6 Oct The step that takes each reader's own copy and checks it against ten rules before it can go. The monthly check-in, the combined set-up page and the talk button, rebuilt.
- 7 Oct Safer loading of the compliance rules. The monthly check-in now shows exactly what was saved.
- 9 Oct Form protection on the older screens and the October due date. The first version of the family-name privacy protection: with the family switch off, family names are removed before anything reaches the AI writer.
- 10 Oct Privacy fixes (a name written like "Cat (daughter)" is now caught). The design of the send screen came back, and its wording was checked by a legal reviewer. The send screen and the 5-minute send timer were built that night.
- 11 Oct The send screen and the 5-minute send timer passed the full independent review and, with five follow-on rounds, were added to the main code. Send now stays hidden while the broker and lawyer answers are missing, and a second press is refused. The reviews found and closed: a short Lofty outage could end a send with nobody sent (the send now stays open and retries until Lofty answers or the six-hour window ends); readers still waiting on Lofty were listed as skipped, and a rejected Lofty connection read as Lofty not answering (both reworded, with a date on the checked-at time); a random unsubscribe code could occasionally look like unfinished text and hold a good copy (codes can no longer do that, and old links still work); and a person who unsubscribed in Lofty could be mailed again if someone later cleared the flag there (the app now remembers the unsubscribe itself). The newsletter's identification block now prints the full legal line, and the same line now sits beside the broker's name on the public sign-in and sign-up pages. A legal reviewer read all the new wording. Each round passed its own full review. Three sending items moved to built and two to partly built. None of it is live.
- 12 Oct The first-send wiring passed the full independent review and was added to the main code. The first group of readers is two people (Billie and one other person who agreed): the agent presses Load readers and only people carrying the agent's own Lofty tag are loaded, up to two, and a third is refused with nothing changed. The line for how to reach the team has one empty slot to fill later. A refused Lofty connection now shows as a plain line on the admin screen. The send timer works for one agent only. A test proves the Lofty write-back stays off and unwired. The legal reviewer read the new wording and asked for seven changes (the consent comment, the refused-connection line, and the instruction about whom to tag); those were built, passed review and were added to the main code. A last small round of test hardening (a stronger check that the Lofty write-back can never be wired in, a leak check that now includes the Lofty key, and a check that the refused-connection line is escaped) passed a quick review and was added the same day. The reviewer also found the REALTOR mark prints for every agent, so Billie confirms his membership before the first send. None of it is live, and the holds that stop every real send are still in force.
- 14 Oct On Billie's instruction, the three holds that stopped every real send (all waiting on written answers from the brokerage and a lawyer) were removed from the main code after a full independent review. No written answer is on file, and the app's own history says so. Every real check still stops a bad send: the unsubscribe link, the mailing address, people who unsubscribed, the two-reader limit, recorded permission, a change after approval and the ten compliance checks. Twelve new tests prove a good copy can now send and a bad one still cannot. A follow-up round passed its own full review and was added the same day: a test that proves the send screen refuses a copy that fails a check, the waiting message and the Read it back line reworded so they stay true, and the legal reviewer's wording for every new sentence (the history now says the app's developer lifted the wait, with no written answer on file). Nothing is online and nothing has been sent.
- 15 Oct The tool that puts the app online was updated to match the code as it stood at the start of that day and installed: it now knows which agent sends, it uses the Severna Park office address only after a final check (its suite number was corrected to Suite 205 and approved on 15 October), and the send timer stays off. Three plan rows were corrected from not started: listings in the newsletter were already built, and the Lofty unsubscribe check and the spam-folder settings check already existed. Later the same day four more pieces passed review and were added to the code, not yet connected: the video watch page, a print version that saves as a PDF, each agent's own reminder schedule, and loading agents from a spreadsheet with a leadership summary. Then the talk button was brought to the approved design, the spam-folder settings checker was corrected, and a test of the whole first-send chain was added. With that, no item in the plan is still marked not started. Later that evening the way back for readers who unsubscribed (a link their agent sends, and a page where only the reader's own press records the yes) passed review and was added, not yet connected.
- 16 Oct The agent's own button for sending the way-back link (on Your issue) passed independent review and was added to the code, together with a fix round: a Lofty unsubscribe is now remembered even when the reader's own opt-out came first, and the legal read's three wording changes are in. Neither is online. The legal read of the button also found that a link could be sent to a reader the newsletter cannot reach (a reader who lost the agent's tag, for one). A check for that and the final wording are being built now, and the button must not go online before the Lofty test session shows the agent cannot open the reader's link. Billie also answered the last open approval question: once a newsletter is edited, the earlier approval never counts again, and if an agent changes it back to exactly an earlier version they make one small change before approving again. That moved the approval lock to built. Later the same day the read-through confirmation Billie asked for (an agent confirms they read the whole draft before Approve unlocks, on the page and on the server) and the final opt-in words from the legal read, with a check that a link goes only to a reader the newsletter can reach also passed independent review and were added to the code. Neither is online, and the confirmation's database file is not applied anywhere. The two lines that said "your name" now say "your VYBE account", because the app keeps the agent's account and no name; that small wording change passed its own short review the same day and is in the main code. The preview and its report now check the agent's own words against the approved copy, as the send step already did; a review found one contradiction on Read it back when an agent had readers loaded, and a follow-up fixed it. The agent's Settings screen passed review and was added: a small gear in the top bar opens it, the agent picks Basic or Advanced and chooses among the six look choices, and can type their own closing line and where a tap goes. The look really changes the newsletter and makes the agent approve again; it needs one more database file before it can work. The closing line is saved but the newsletter does not print it yet. None of it is online.
- 17 Oct The small problems the review found in the Settings screen and the Read it back screen on 16 October were fixed and passed review: a disallowed word is no longer shown back to the agent who typed it, a refused save now brings the agent straight to the reason, Save no longer silently does nothing when a hidden box holds a bad web address, and a pasted special space no longer makes Read it back say the agent's writing changed before they approved anything. The newsletter now prints the agent's own closing line with the tap they chose (reply, their website, or call), and an agent who has not saved a line gets exactly the same newsletter as before, proved byte for byte. The review found one problem to fix before release: a closing line that uses wording the send's own checks forbid saves fine, but then the whole issue cannot be sent. Nothing wrong can reach a reader. That fix passed independent review later the same day and is in the code: the Settings screen now refuses such a line in words, before it says Saved, and a line the send would refuse prints the standard sentence. Two smaller fixes passed with it: a Call me tap with no phone number on the account prints the standard sentence, and the This month page no longer shows a disallowed word back. A legal wording read of the new sentences asked for a few small word changes; they passed review and are in the code, in two rounds. The older problem the review found, where a section heading an agent types can hold wording the send refuses so that every copy fails at send, is fixed too and passed review: the section-name save now refuses such a name in plain words, and a name already saved that way prints the section's default heading. Two narrow cases still slip through and fail safe, because every copy is held at send: a banned phrase typed with a run of extra spaces, and the mail provider's own postal address typed as a name. Both are on the after-launch list. The test tool for the AI thought partner (a capped runner that makes no paid call by itself, a blind judging pack and a scorer) passed independent review and was added to the code; the review set conditions that must be met before the first paid call. Three small safety fixes passed review and were added too: a test that holds the spam-settings checker to the standard's own example (its fix was already in since 15 October), a guard that the older unused listings table is never used, and a form token on Write my draft so a forged post from another website cannot start a paid AI draft. None of it is online.
- 18 Oct Three pieces passed independent review and were added to the main code. Tap recording no longer deletes anything on its own: the viewer hides taps older than 90 days instead of deleting them, and at 5,000 saved taps an agent's new taps wait until taps are cleared (Billie chose to keep the 5,000 limit; recording stays off). The monthly check-in got a last choice, "Nothing this month", on questions 2 and 3, so an agent with nothing to report can finish; it puts nothing in the newsletter draft and uses the legal reader's exact words. The follow-up fixes the reviewer asked for on the AI test tool passed too (a spending-record bug, spending-limit gaps, a confirm value that now covers all 180 prompts); the test tool still makes no paid call by itself. None of it is online.
- 19 Oct Two more pieces passed independent review and were added to the main code. The unsubscribe page got its optional third question ("What would make you want to get this newsletter again?"); the answers go to a new table that holds no email address, no identifying code and no time of day, the table is written but not applied anywhere, and the unsubscribe never depends on it. Your issue got a text link, "Open a printable copy", that opens the agent's own approved newsletter as a clean page to print or save as a PDF; it shows only for an approved newsletter, carries no unsubscribe link, and a strip at the top tells the agent not to email it to anyone who unsubscribed. Billie decided the app does not show agents which readers unsubscribed. The legal reader's answers on the shared VYBE Note and the unsubscribe wording were filed, the "This email is an advertisement." line was built (review not finished), and the VYBE Note build started. Nothing is online.
- 22 Oct The app was put online. The going-live toolbox was updated and checked (379 of its own tests pass), the database was brought up to date one file at a time with a saved restore point around each step (now 55 tables, 72 indexes), the 30-minute limit for held AI money was stored, and the new version was uploaded, matched to what the toolbox recorded and checked from outside. Nothing was sent, the send timer is off and the app has no Lofty key. Billie then tried it: the talk button failed in Brave (Brave blocks the browser's speech service; a clearer message for that case is drafted for the legal reader and not built) and worked in Chrome, where text lands when the speaker pauses. At his request, check-in answers now hold up to 5,000 characters (they were 280) and the About-you boxes up to 2,000 (they were 300), and every box an agent writes in each month shows its own count against its limit; the family-name privacy cutter was reused so long answers are scrubbed in pieces and not dropped. That update passed independent review (the reviewer re-ran the family-name tests: 247 planted names, none leaked) and was online the same day.
- 22 Oct, late The shared VYBE Note writer (admin screen, store, on and off switch, and the note in every agent's newsletter when it is on) passed independent review and was added to the main code. It is not online and its switch is off. The review found two medium problems to fix before anyone turns a note on: a locked note that a later check refuses would stop that month with no way back in the app, and the note box keeps hidden characters that other typed text refuses. The line "This email is an advertisement." and the longer answers with counters are online.
The code path to a first send
What stands between today and one real agent's newsletter going to a small named group of readers. Lofty access is now in place through Billie's own Lofty login (15 October). The people steps that remain are named in the last two lines below; no amount of building shortens them.
- Built and reviewedThe agent writes, reads back and approves their own newsletter; the approval is locked to the exact words approved.
- Built and reviewedUnsubscribe: the page, the one-click link, and a record that stops any more email to that person.
- Built and reviewedReaders: the Lofty connection, the reader list and the do-not-send list, locked to one agent.
- Built and reviewedThe send queue: no double sending, three tries 10 minutes apart, and a check of each reader's own copy against ten rules.
- Built and reviewedPrivacy protection for family names in what the AI writes.
- Built and reviewedThe agent's own market figures screen, built and reviewed but not yet reachable from the app's menus (no real month of figures has been loaded yet).
- Built and reviewedThe Send button, the send screen and the 5-minute send timer, with five follow-on rounds (a short Lofty outage no longer ends a send; clearer waiting and refused-connection messages; unsubscribe codes that can never look like unfinished text; an unsubscribe that is remembered even if cleared in Lofty; the full legal line in the newsletter and on the public pages). All of them passed the full independent review and were added to the main code on 11 October. Online since 22 October.
- Built and reviewedThe three holds that blocked every real send (one waiting on a written answer about brokerage permission, two about the identification block) were removed on Billie's instruction on 14 October, after a full independent review. No written answer from the broker of record or a Maryland lawyer is on file. On 17 October Billie reported that an attorney read the whole packet cover to cover and gave a verbal OK to proceed; nothing is in writing yet. Every other check still stops a bad send. Online since 22 October.
- NextBefore a first send: a test with a real Lofty account, a check in Lofty that exactly two people carry the reader tag, Billie's REALTOR membership confirmed (or the mark comes off), the other reader's yes on record in writing, the AI key and spending limits, the corrected first-run plan, and the final version frozen and put online. The deploy kit was updated on 15 October (the sending agent is set and the send timer stays off); the office suite number in it is being corrected.
- Needs peopleThen Billie's own confirmation to go live and his yes to switch the send timer on, and the small first send.
When can real accounts be created
The two milestones Billie asked about directly: can an admin be given a login, and can a real estate agent be given a login. Both are now live: a real person has signed in and used each one on the live app. What is still owed before other people use it is listed under each card.
Admin account creation
Live. Billie is the app's first admin: he signs in with Google on the live app, opens Approvals, and approved the first agent account on 23 September. The app itself does not check an agent's real Maryland license before approving. Billie confirmed on 22 September that this is Steve's admin team's own manual check. Since the 25 September release, the approval page links to the state license roster and records what the reviewer saw (P1-28). Approval opens only for Maryland-licensed agents.
Still needed before this is real, not just code-ready:
- VYBE's own Cloudflare and Auth0 logins in place of the development ones (Phase 0, waiting on Steve)
- The paid sign-in plan: Billie said on 15 October that the card is now on the account; whether the paid plan itself is switched on has not been checked (the free trial was due to end around 1 October)
- Accounts for Steve's admin team, added once the VYBE logins are in place
Real estate agent account creation
Live. Billie's own agent account is approved and active. On the live app he set up his sections and ZIP code, filled in his month, and pressed Write my draft; his first AI-written draft came back on 24 September. This milestone does not include sending the finished newsletter: that is a separate milestone (Phase 4: 3 of 13 items built in the code, none online).
Still needed before this is real, not just code-ready:
- A second, separate person signing up and being approved (a second agent record was seen in the live database on 15 October; whether it was approved and used was not checked)
- The same VYBE-owned logins and paid sign-in plan listed for admin accounts
- Sending, which is built in the code but not online and never tried against a real Lofty account, before any newsletter reaches a client
How much of the plan is built
- BuiltIn the code and passing all 6423 automated tests3947.6%
- Partly builtStarted, with a specific piece still missing3947.6%
- Not built44.9%
- Not started00.0%
- Waiting on a person44.9%
Ready for the next deploy
The live app already carries everything finished through 22 October 2026; this pie counts what is ready for the next time the app is updated. The same 82 items, counted a different way: an item counts as "ready" here once the code is done, even if it is still waiting on a real agent account, a Steve account, or Steve's own info (an address, a phone confirmation), because none of that needs more building. 52% of the plan is ready in that sense today.
- Ready for the next deploy4352.4%
- Still being built3441.5%
- Waiting on Billie56.1%
Where the remaining work sits, and how long it should take
The same 82 items, split by the plan's phases. Bar length is the number of items, on one scale for every phase. Time left is an estimate of build time only; the line under it names what else it waits on.
Reading the numbers
- Time estimates are ranges, not dates. They come from the pace measured on this build so far and the plan's own effort estimate, and they count build days only. When the work starts depends on the people and approvals named under each phase. They were re-estimated on 15 October from the pace measured that day: about 3 to 5 hours for each finished piece of work, including its independent review.
- These are item counts, not effort. One item can take an afternoon or two weeks; building every screen to the approved design is a single item and the largest in the plan. 48% of items built is not 48% of the work done.
- Built means the code is in the app's main code, was independently code-reviewed before it was accepted, and passes all 6423 automated tests (3,068 in the logic suite, with 2 more that deliberately record known gaps still to fix, and 3,355 in the app suite, with 2 more that record known gaps, on the main code as it stands on 22 October). Work that passed review but is not in the main code yet counts as partly built, and so does a piece that is written but not yet reviewed. Built is also not the same as live: the shared VYBE Note writer, added to the main code after the 22 October update, is not online.
- What moved since 28 September. Between 28 September and 10 October no item became built; on 11 October three sending items became built and two more moved to partly built (see the section below). Seven more changes were checked by a second reviewer and added to the main code: four for tap recording on 28 September, and three on 1 October (finding an agent's monthly video by its title, planning each send run, and the photo upload check). The test count has risen from 4246 to 6423 as new pieces were added. None of them is connected to anything in the app yet. Two items moved from not started to partly built: the agent's own monthly video, because the piece that finds it by its title is now in the main code, and the three video options, because the Your video page, where an agent saves a YouTube link for the month, has been in the live app since 25 September and was not counted before. On 15 October three more items moved to built after a check of the code (listings in the email, the rule that no email goes out without an approved compliance pack, and the About you page), and every item that had not been started moved to partly built. The time estimates were redone on 15 October.
- Waiting on a person covers the handover of both accounts to VYBE's logins, the AI service account, the app's Lofty connection and its test session, and the Maryland license-board checks.
- Not counted here: ongoing quality and security hardening of the compliance checks, and the open questions for the broker and team lead, which live on their own Asks for Steve tab.
Full checklist
Every item in the plan with its current status, phase by phase. Within each phase, finished work is listed first.
Build codes: the code in brackets before an item is the piece of work that built or changed it
- BS-18 Longer answers (5,000 characters for check-in answers, 2,000 for About-you boxes) and a counter on each box agents write in each month, from Billie's first test of the live app · In the main code, online since 22 October
- BS-6 The shared VYBE Note writer and its on and off switch (admin screen, store, and the note in every agent's newsletter when on) · In the main code (independently reviewed); not online, switch off, two fixes owed before a note is turned on
- BS-17 The line "This email is an advertisement." as the first sentence of every reader's footer (with a check that it is there), and two small unsubscribe-page word changes · In the main code, online since 22 October
- BS-5 Printable copy: a link on Your issue that opens the agent's own approved newsletter as a clean page to print or save as a PDF · In the main code, online since 22 October
- BS-4 Third optional unsubscribe question, with a new table for the answers (written, not applied) · In the main code, online since 22 October
- BS-3 A "Nothing this month" choice on the monthly check-in · In the main code, online since 22 October
- BS-2 Tap recording stops deleting taps by itself: the tap viewer hides taps older than 90 days instead of deleting them, and the saving path no longer deletes anything · In the main code, online since 22 October
- K5HC Fixes the reviewer asked for on the AI test harness before any paid test: a spending-record bug, a stale spending header, spending-limit gaps and tests for three scoring slips (all three passed review) · In the main code, online since 22 October
- BS-1 Small safety fixes: a test for the spam-settings checker (its fix was already in), a guard on the unused listings table, a form token on Write my draft · In the main code, online since 22 October
- K5H Test harness for the AI thought partner (a capped, confirm-first runner, a blind judging pack and a scorer); it makes no paid call by itself · In the main code, online since 22 October
- CB-5 Two sentence changes from the second legal read, and a display fix for renamed sections · In the main code, online since 22 October
- CB-4 Small word changes from the legal read, and a check on section headings an agent types · In the main code, online since 22 October
- CB-3 Closing-line and "Call me" fixes · In the main code, online since 22 October
- Kit v5 Going-live toolbox update: stores the 30-minute time-out for held AI money · Put into the deploy tool on 22 October
- CB-2 Settings and closing-line round · In the main code, online since 22 October
- CB-1 Read-through, Settings screen and call-to-action round · In the main code, online since 22 October
- NS-A4, NS-A4b Read-through confirmation before Approve · In the main code, online since 22 October
- NS-A1, NS-A2, NS-A3 Screen round: talk button and help labels, phone navigation, Read it back trace view · In the main code, online since 22 October
- NS-B2 Watch page, PDF version, reminder schedule and agent spreadsheet import · In the main code, online since 22 October, not connected to a screen
- OO-1a, OO-1b-1, OO-1b-2 Opt-out and opt-in · In the main code, online since 22 October
- K3a, K3b, K3c, K3d Deploy-tool jobs: load the compliance pack, release version, safety fixes, office address file · In the deploy tool
Rows with an older label in brackets show the job names from that row's review files, newest first; this key does not explain them. Rows with no brackets were set up or built before jobs were tracked, or have no review file.
0 · Setup3 of 7 built
- What it is: The Cloudflare account that hosts the database, the storyboard and (later) the app itself.
- What's left: Nothing further. It now holds the live app as well as the database and the storyboard.
- What it is: The sign-in service (Google sign-in, through Auth0) the app uses to log agents in.
- What's left: Nothing further for this login. The free trial was due to end around 1 October; on 7 October the account read as the free plan with no card. The card is now on the account (Billie, 15 October), and Steve's VYBE login was added to it as Team Owner (read on 9 October).
- What it is: The colors, spacing, type and other visual values the screens are built against.
- What's left: Nothing further for what has been designed so far. Later design passes (Phase 3) add more, not replace this.
- What it is: VYBE's own Cloudflare and Auth0 logins, replacing the development ones Billie set up to build with.
- What's left: Nothing to build. What is left is the handover: when Billie turns the app over to VYBE, VYBE's logins replace the development ones he built with.
- What it is: VYBE's own account with the AI writing service, so newsletter writing runs on VYBE's bill instead of the development one.
- What's left: Steve provides VYBE's own AI key; Billie sets it on the app himself, with a spending limit (the app refuses AI writing until a limit is set).
- What it is: Access to Lofty, the CRM that holds each agent's contacts, needed for sending, recipient contact data and local events.
- What's left: Access exists. Not yet verified: the app's own Lofty connection key set on the app, and a test session with the real account (the From line as Lofty sends it, an unsubscribe click in a delivered copy, and whether a reader's reply reaches the agent). Billie sets the app's keys himself.
- What it is: Confirming the phone number in the required identification block actually reaches the broker, by checking it against the Maryland license-board record.
- What's left: One step left: checking the printed broker phone number against the state license record; the code keeps it marked not checked until a recorded read exists. Nothing in the app waits on it. This is a one-time check for the broker's own listed number, not a per-agent license check (that is a separate item, P1-28).
1 · Core app25 of 34 built
- What it is: The automatic checks every newsletter draft is run through: fair housing wording, unsubscribe link, mailing address, factual claims, sourcing, banned words, and more.
- What's left: Nothing further to build. Since 11 October, in the main code, each reader's own copy is checked against all ten at the moment it is about to be sent (see Phase 4). It is online since 22 October and has not run on a real send.
- What it is: The system that takes an agent's chosen sections and assembles them into one newsletter.
- What's left: Nothing further, done and tested.
- What it is: Turns the assembled content into the actual HTML email, personalized per agent and per recipient.
- What's left: Nothing further, done and tested.
- What it is: The database structure everything else is built on: agents, drafts, sections, approvals, sends, and more.
- What's left: Nothing further, loaded and live on Cloudflare.
- What it is: The list of section types an agent can put in their newsletter (market update, local events, listings, etc.), including Steve's reading-and-listening merge.
- What's left: Nothing further to build.
- What it is: The map of every Maryland ZIP code, used to match agents and recipients to local areas.
- What's left: Nothing further, loaded and covers 33,791 areas.
- What it is: The math that calculates distance between two points, needed for the 20-mile local-event filter.
- What's left: Nothing further to build. It is in use in the main code when an issue is built; the monthly event gathering that also uses it is not started by anything yet (Phase 2).
- What it is: The test suite that proves the code works, plus a checker that catches tests written to pass rather than to actually verify anything.
- What's left: Nothing further, and it grows with every new piece that gets built.
- What it is: A rule meant to guarantee an agent's own hand-written words are never silently altered after they approve them.
- What's left: Nothing left to build for the check itself. Goes live with the next deploy. The one small case found in the final review (a pasted special space in an agent's saved paragraph could make the Read it back screen wrongly say "Your writing changed after you approved it" before the agent had approved anything) was fixed on 17 October and passed review; so were the two old sentences that still described the earlier state. One small wording idea (a separate sentence for "could not check right now") is queued.
- What it is: The 18 visual choices an agent can pick for their newsletter (colors, spacing, etc.).
- What's left: Nothing left to build for the look. Went live on 22 October, after the new database file (0019) was applied. On 17 October Billie reported that the attorney read the whole packet cover to cover and said verbally it was ok to proceed (nothing in writing yet; whether this screen's words were in the packet is not confirmed). The three small problems found in review (an error message that could sit out of sight after a refused save, a hidden box that could make Save do nothing, and a disallowed word shown back to the agent who typed it) were fixed on 17 October and passed review. Before release: a real-phone check. A legal wording read asked for two small word changes on this screen (the look-saved sentence should say the issue uses the new look, and the closing-line saved sentence should say to approve again); they passed review and are in the code.
- What it is: A rule that blocks any newsletter from going out if this month's Maryland compliance pack hasn't been reviewed and approved.
- What's left: Nothing further to build for the rule. Before the first send: the Maryland pack is reviewed by the person Billie chooses, Billie writes the sign-off record, a final check approves both, and the pack is loaded into the live database through the deploy tool.
- What it is: The prompt at the end of a newsletter asking the reader to do something (call, reply, visit a listing).
- What's left: Fixed on 17 October and passed review: a closing line that uses wording the send's own checks forbid (a market claim such as "now is the time to sell", or link words such as "unsubscribe") is now refused on the Settings screen in words, before it says Saved, and a line the send would refuse prints the standard sentence. A few deliberate odd inputs can still save and then fail at send; they are on the after-launch list. A legal wording read of the Settings sentences asked for small word changes (for example, after saving a closing line the screen should say the issue uses it and that an approved issue must be approved again); they passed review and are in the code. Billie decided on 2 October that phone-number links are allowed, and since 3 October the email builder accepts them in one narrow, safe form (tel:, an optional +, then 3 to 15 digits).
- What it is: The backend server every screen and every AI step talks to.
- What's left: Nothing left to build. It proves itself under load once more agents than Billie are using it.
- What it is: Google sign-in (through Auth0), and the app remembering who is signed in and what role they have.
- What's left: Nothing left to build. Every future agent signs in the same way.
- What it is: The screen where a new agent requests access, and the queue a reviewer uses to approve or decline them.
- What's left: Nothing left to build. A second agent record, the team owner's, now exists on the live app (read on 15 October). Whether it went through the approval queue is not recorded, so the planned test of a second person signing up from a separate account and being approved is not confirmed.
- What it is: Where an agent records their own writing style and tone, so AI-written sections sound like them.
- What's left: Nothing left to build.
- What it is: Where an agent turns sections on or off, renames them, reorders them, or adds new ones.
- What's left: Nothing left to build. Fixed on 17 October and passed review: a section name an agent types is checked by the send's own checks at the save and refused in plain words, and a name already saved that the checks refuse prints the section's default heading. Two narrow cases still slip through and fail safe (every copy is held at send): a banned phrase typed with a run of extra spaces, and the mail provider's own postal address typed as a name; both are on the after-launch list.
- What it is: A one-tap option that sets up the standard six newsletter sections at once, instead of an agent starting from a blank list.
- What's left: Nothing left to build.
- What it is: Where an agent records which ZIP codes they work and what kinds of local events their readers care about.
- What's left: Nothing left to build for the picker itself.
- What it is: The screens an agent sees first: signing in, and their home dashboard.
- What's left: Nothing left to build.
- What it is: The form an agent fills out each month to feed that month's newsletter (what to cover, any personal updates, etc.).
- What's left: Nothing left to build. The fix landed in the main code on 6 October, with the same protection on six other screens: the app refuses a save older than the one it already holds, so older words can never overwrite newer ones, including across two open tabs. It goes live with the next deploy. One small follow-up (a confusing Not saved message after a mistyped ZIP code) was planned for after it landed.
- What it is: The AI step that writes the newsletter draft from the agent's intake and voice profile.
- What's left: Nothing left to build for drafting. Two low findings in its filters (a price written without a dollar sign, a dash look-alike in the barred name) wait on Billie: fix after the demo, or accept.
- What it is: Where an agent reads, edits, and approves their AI-written draft before it goes further.
- What's left: Nothing left to build.
- What it is: The screen where a reviewer approves a new agent, checking their real Maryland license status first.
- What's left: Nothing left to build. By design the app never checks a license on its own and never re-checks one later; a person reads the state page every time.
- What it is: The rule that stops one agent from ever seeing or editing another agent's data.
- What's left: Nothing left to build. The live app now holds two agent records, Billie's and the team owner's (read on 15 October); a check on the live app that neither can see the other's data has not been recorded.
- What it is: A requirement that any factual claim the AI writes must be sourced, while opinions are labeled as opinions.
- What's left: Switching the drafting step on (see P1B-05). Whether an opinion-worded claim needs a source is a legal question still open.
- What it is: The required postal address that must appear in every newsletter email.
- What's left: A way for each agent to change the address to their own local office (Billie, 9 October), with checks on what is typed and a legal check, is not built. Before the first send, the corrected office address is loaded into the live database through the deploy tool after a final check.
- What it is: Pictures in the newsletter.
- What's left: Section photos: the upload screen, then connecting the safety check and the piece that decides where each photo is stored, which also needs file storage, not set up yet. Before it is connected, Billie decides whether a small preview picture some cameras store inside a photo may stay (the paid Cloudflare plan has been active since 9 October, so the free plan's processing limit no longer applies); the upload step also has to be squared with an existing test that stops the app from ever receiving audio.
- What it is: The AI step that writes a short local market update section.
- What's left: Connect the agent's own market figures screen, load a real month of figures and produce the first brief carrying them. Uploading a market report file is paused since 6 October while Bright data access is pending. The reader-friendly market section (P1-33) changes how it reads. The market upload plan also holds the screen until there is a written answer on the right to use the RPR market data; the 14 October removal of the three send holds did not cover this. On 17 October Billie reported "yes" to whether the attorney's verbal OK covered using the RPR and Bright market numbers; nothing is in writing yet, and RPR's own consent is a separate matter that was not asked.
- What it is: The screen where a reviewer sees the whole month's run across every agent, who's approved, who's pending, what's ready to send.
- What's left: The approved-so-far tile (the data exists since 2 October; whether to show it is Billie's call), the three tier cards (they count a default market-only issue that does not exist yet), and a drawn design for the per-agent list (design prompt 6, ready for Billie to run).
- What it is: Tracking exactly what every AI call costs, and refusing a call if it would cross a spending limit.
- What's left: Confirm the time-out setting is filled in on the live app (not yet checked), and optionally add a scheduled clean-up so release does not depend on a draft being pressed.
- What it is: Making every screen in the app match the approved visual design, not just work correctly.
- What's left: The largest single item in the plan. The remaining screens still need to be brought to the design and measured.
- What it is: Rewrites the market part so any reader can follow it: one email for everyone, with a clear part for buying, selling and owning a home.
- What's left: Connect the section to a screen and the sender, the agent's stored closing line is already kept in the agent's own section row (no database change), then a design pass.
- What it is: Records where agents tap in the app (the screen, what was tapped, where on the screen, the screen size and the time) so the VYBE team can see which spots are hard to use. It covers agents using the app only, never newsletter readers, and never what anyone types. Each agent sees a notice first, and nothing is recorded without their yes. Taps stay with VYBE.
- What's left: The code now matches Billie's 1 October decision (18 October): nothing deletes taps on its own, and the notice makes no promise about deleting taps after 90 days (keep it that way). New viewer wording is needed before recording is ever switched on, and the attorney's answer on keeping taps with no end date. Build the two admin controls Billie asked for on 1 October, a switch to turn tap recording on and off and a button to delete the tap history when he chooses; neither is built yet. Put the final consent wording in, add a link on the Profile page to change the answer, make the recorded yes cover every word on the notice screen, add a check against form fields named from client data, and Billie writes down that tap data is never used to grade or rank an agent. Connect the heat map piece to the tap viewer. Billie decided it will be on for everyone during the beta and off after. Goes live with the next deploy. Billie decided on 2 October: before any clearing, an export of the taps must be confirmed, and clearing deletes only taps before a date he picks.
1b · Steve's feedback features6 of 10 built
- What it is: The first four fixes from Steve's feedback, including saving when you click out of a box.
- What's left: Nothing left to build.
- What it is: Marks any sentence in a draft that is not in what the agent told us, and refuses a draft it cannot check.
- What's left: Goes live with the next deploy, the paid Cloudflare plan is now active on the app's account (read on 9 October); this still waits on the deploy steps.
- What it is: Tap to talk instead of typing; the words go straight into the box. The app never receives the audio.
- What's left: Goes live with the next deploy. Before release: a real-phone check, a screen-reader test, and the iPhone Safari header result.
- What it is: On a phone, Your month shows one question at a time with Back, Next and "N of M". Desktop is unchanged.
- What's left: Goes live with the next deploy, the paid Cloudflare plan is now active on the app's account (read on 9 October); this still waits on the deploy steps. Before release: a check on real phones, including whether the phone asks for the microphone again after each Next.
- What it is: A page where an agent tells the app about themselves once, with the talk button and phone screens.
- What's left: Nothing left to build. Before release: real-phone checks. Goes live with the next deploy.
- What it is: Bring the new screens to the approved design.
- What's left: Nothing left to build. The read-through confirmation Billie asked for on 15 October (an agent confirms they read the whole draft before Approve unlocks, on the page and on the server) and the legal read's "your VYBE account" wording on the two lines that record the press and the approval are both in the main code and passed independent review. Live since 22 October, after the confirmation's database file (0018) was applied. Before release: a real-phone check and a screen-reader test. The caption on the administrators' Approvals screen now reads "your admin account" and is in the main code (landed 16 October after review); like the rest of the new wording it is covered only if it was in the packet the attorney read: Billie reported a verbal OK on the whole packet on 17 October, and which sentences were in it is not confirmed.
- What it is: The drafting step. It writes the agent's own words in the agent's own voice, fixes spelling, grammar and clarity on its own, and never adds a fact. Every section always comes with a plain summary of what was changed and why, or a line saying nothing was changed.
- What's left: A recorded decision on the damaged-card case (two Family entries in the saved row): accept it after a read-only count of live cards at release time, or fix it if any are found. The final list of everyday words the name remover leaves alone: on 10 October Billie asked the build lead to decide it, and it is a draft he can still change. The name remover already runs inside the draft step, so no separate connecting step is planned. A legal read of the final wording by an attorney (Billie reported a verbal OK on the whole packet on 17 October; whether this wording was in it is not confirmed). The test tool for the side-by-side test against the current drafting (about 180 paid AI calls) is built, passed independent review and was added to the code on 17 October; the review set conditions before the first paid call: one spending-record bug to fix, a few spending-limit gaps to close, and Billie's decision on how strict the pass rule is. Then Billie's typed go and the exact price; nothing turns it on until that test passes. The deploy tool's saved fingerprints for the two AI files it changed were refreshed, reviewed and installed on 15 October.
- What it is: A short monthly check-in, with the talk button and phone screens.
- What's left: Before deploy: a design and legal review of the check-in wording, real-phone and screen-reader checks. Three small phone-screen problems found in review are queued for a cleanup job: the first press on Next can miss after a "Not saved" line, that line names Save where phones show Next, and a hint sits below what it points at. The send-date gate with the settings job (backlog 29). Goes live with the next deploy.
- What it is: One set-up flow instead of separate steps. It is also where the agent first teaches the app who they are.
- What's left: Exact-value fields (ZIP, license number, email, phone, web address) stay typed, not spoken. A legal wording check beside the new set-up buttons is still owed. Goes live with the next deploy.
- What it is: Agents pick what kind of event they are describing.
- What's left: Before it is connected: Billie decides the balance between fewer wrong types and fewer missed events, after a Fair Housing review, and the matching words are fixed so Fair Housing events are never filed as fairs. Then decide how much a venue name alone should count, settle the six names, and connect it. Update 2 October: Billie approved the six proposed names. The sorter still files some events wrongly (for example a training class under Pro sports) and must be fixed before the names are used.
2 · Local events0 of 6 built
- What it is: Setting up which local areas/venues get researched for each agent's recipients.
- What's left: Add something that starts the monthly events run (nothing does yet, and the review asked for one small test fix before that), then run it for real agents and their recipients.
- What it is: Actually pulling in real local events to feature in the newsletter.
- What's left: The part that actually pulls in real events. Lofty access is now in place through Billie's own Lofty login (15 October); the app's own Lofty connection has not been tried against a real account yet. Update 2 October: Billie added that county event pages and other local events should also be scanned. Each source needs a legal check of its terms before anything scans it, and a plan first.
- What it is: Stopping the same event from being listed twice.
- What's left: Nothing further to connect: the monthly events run already uses it. It does its job once something starts that run and real events are being gathered.
- What it is: Placing each recipient on the map so nearby events can be matched to them.
- What's left: Connect it to real contacts. One open check: the Census "no match" and "tie" answer layout is not yet confirmed against the live service.
- What it is: Only showing a recipient events within 20 miles of them.
- What's left: Nothing further to connect: the monthly events run already uses it for each recipient. It does its job once something starts that run with real events and real recipient locations.
- What it is: Pulling each contact's consent status from Lofty so the app only emails people who've agreed to it.
- What's left: Never tried against a real Lofty account: every Lofty behavior is documented, not observed. Lofty access is now in place through Billie's own Lofty login (15 October); what is still needed is a test session with the real account.
3 · Content types1 of 8 built
- What it is: Displaying a featured listing inside the newsletter email itself.
- What's left: Nothing further in the code. The newsletter preview in the live app has shown an agent's listings since late September; the newer version that builds the newsletter for sending went online on 22 October, and nothing has been sent. Shows text and a link; no photo.
- What it is: Giving an agent three ways to include a video in their newsletter.
- What's left: Billie decided on 2 October to keep all three options. The link option is built and live, and when an agent sets their market update to video, the saved link goes into their newsletter. The agent's own video is covered by the next item, and written text in place of a video still needs building and a design pass.
- What it is: Each month the agent films a short video and uploads it to their own YouTube channel themselves, as a public (listed) video, with the month and year at the start of its title, for example "October 2026 market update". The app finds that video by its title and features it in the newsletter. If there is no video for that month, the newsletter uses AI-written text instead. The app never uploads anything to YouTube for the agent.
- What's left: Connect to YouTube to look up the agent's recent videos, which needs a YouTube access key; add a setting where the agent enters their channel; decide what happens when two videos match the same month; connect it to the watch page, whose logic is now in the code but not connected (the newsletter email carries only a link to a video, never a player); then connect it to the monthly newsletter, with the written-text fallback.
- What it is: A branded page where a recipient watches the agent's video.
- What's left: The page design (design prompt 5, Billie runs it in Claude Design), the page route that loads the agent's own video, the identification block and a privacy step (a legal wording check), and a live check that YouTube plays.
- What it is: Where an agent enters a property listing to feature.
- What's left: The listing table is settled (the app's own table, agent_properties; the older one stays empty), and a guard test that the app never uses the older one landed in the main code on 17 October. Then finish the listing rules in the plan.
- What it is: A section where an agent's own longer writing appears exactly as they wrote it, with no AI rewriting.
- What's left: No database decision is needed any more: since 6 October the approved version is taken from the newsletter the agent approved, without a database change. The preview shown before approval cannot pass this check, because nothing is approved at that point. Not yet run on a real send.
- What it is: A section carrying an official VYBE-wide message, the same across every agent's newsletter that month.
- What's left: Fix the two review findings and connect the checker to the writer. When the checker is connected, the app's own section rules must also run on what it produces, because the review found a few cases the checker lets through.
- What it is: The visual design for the email itself, the video watch page, and the unsubscribe page.
- What's left: The watch page's design prompt (design prompt 5, written 15 October) waits for Billie to run it in Claude Design. The unsubscribe page's design prompt (drafted 2 October) waits for a legal wording check of its layout, then Billie's run.
4 · Sending4 of 13 built
- What it is: Making sure the 10 compliance checks run again on the exact final version before it goes out, not just when it was drafted.
- What's left: Nothing further for this item in the code. It has not yet run on a real send.
- What it is: Guaranteeing what actually gets sent is byte-for-byte what a reviewer approved, not something edited afterward.
- What's left: Nothing further in the code. Billie answered the open choice on 16 October (see the note). The wording of the line the agent reads in that case is a draft that has not been finalized. Not yet run on a real send.
- What it is: Stopping the same newsletter from accidentally going out to the same person twice.
- What's left: Nothing further in the code. The resend switch is a later job. Not yet run on a real send.
- What it is: A permanent record of what was sent, to whom, and when, for compliance and troubleshooting.
- What's left: Nothing further in the code. No real delivery has been recorded because nothing has been sent.
- What it is: The actual piece of code that sends an email out to the internet.
- What's left: A test session against a real Lofty account, the deploy itself, Billie's yes to switch the send timer on (the deploy kit updated on 15 October keeps it off), and Billie's own go-ahead. Sending to a real reader stays blocked until then. The written broker and lawyer answers no longer hold it: on Billie's instruction that hold was removed on 14 October, and no written answer is on file.
- What it is: Routing the send through Lofty so it uses VYBE's existing contact and consent records.
- What's left: A test session with a real Lofty account, including a check that Lofty's own one-click unsubscribe header works. Lofty access is now in place through Billie's own Lofty login (15 October).
- What it is: Pacing sends out so they don't all fire at once and don't overwhelm the sending service.
- What's left: The settings screen (the test-copy opt-in and the resend switch), a verified agent email address, an alert to the agent and to Billie when a test copy fails, then the deploy-kit update and Billie's go-ahead.
- What it is: A working link that actually removes someone from future newsletters.
- What's left: The third optional question is built (19 October); it is online since 22 October with its database file (0020) applied, and nothing yet shows anyone the answers. The form already asks why they left and what they liked and did not like, never blocks unsubscribing, and saves what is typed. Billie also chooses how the page behaves: one button that confirms (the current setting) or unsubscribing as soon as the link is opened. The way back for readers who unsubscribed is in the code but not yet connected (15 October): a link their agent sends, which works once for 7 days, and a page where only the reader's own button press records the yes. The agent's own button on Your issue is built (16 October) and went online on 22 October, but the app has no Lofty key, so it cannot reach any reader. Before a Lofty key is added: a check at the Lofty test session that the agent cannot open the reader's link, (the final wording from the legal read and the check that the newsletter can really reach the reader were added to the code on 16 October). Then a legal wording check of the final pages and a check once it is online.
- What it is: Making sure the email looks like it's from the agent, not from a generic VYBE address.
- What's left: Check the sender line again in the real Lofty test session. Whether the name shown should be the agent's display name or the name on their license is a question for the legal wording check; on the Lofty path it is whatever name the agent's own Lofty account uses.
- What it is: Letting an agent send the newsletter as an attached PDF instead of an HTML email.
- What's left: The link is connected and a headless browser saved a Letter-size PDF with the month in the title. Still to do: a check on a real phone and a real printer. A true attached PDF would need a new library or a paid rendering service; neither was added.
- What it is: Technical email authentication (SPF/DKIM/DMARC-type setup) so newsletters don't land in spam.
- What's left: Connect the checker to something that reads the real domain's settings before a send (nothing calls it yet). The one test the checker was missing, which holds the standard's own example, landed in the main code on 17 October. A stricter DMARC policy than none is the domain owner's choice, not a code task.
- What it is: Stopping automated bots from hitting sign-in or the unsubscribe link.
- What's left: Whether Auth0's own attack protection is on for sign-in (not checked). A real-browser walk of the five screens. A form token on Write my draft landed in the main code on 17 October after review (the builder's own recommendation; you can still say no). Online since 22 October. A person who presses it from a page left open since an earlier sign-in gets a plain error screen with no words and no link, and a reload fixes it; the five older screens do the same, so one later fix will cover all six. A valid unsubscribe is never blocked, slowed or bot-checked, so the unsubscribe itself is not guarded.
- What it is: Sending the agent's own test copy first, then releasing to their clients only once delivery to that address is confirmed.
- What's left: Needs a verified agent email address (Billie, 2 October), alerts to the agent and to Billie when a test copy fails, a settings screen to switch it on, and a way to confirm the test copy arrived (Lofty's answers: can it send to the agent's own address, and does it report delivery). The test copy needs a working stop link and the normal footer.
5 · Scale-up0 of 4 built
- What it is: The system reminding every agent, every month, that it's time to build their newsletter.
- What's left: Build the monthly trigger that uses it. Billie decides whether it also sets a due date for the agent's answers and refuses a reminder before the month's form opens.
- What it is: Reminders to agents about their monthly input, and each agent's own send timing.
- What's left: The settings design (design prompt 3B, Billie runs it), storing each agent's schedule, the reminder sender, and Billie's answer on whether an agent can turn reminders off.
- What it is: Bringing all of VYBE's agents onto the app, plus a dashboard for leadership and a demo used to recruit new agents to the brokerage.
- What's left: The admin page design (design prompt 6, Billie runs it), an agent invite flow (the agent invite email has been on hold since 18 September), wiring the leadership counts, and the recruiter demo (not started).
- What it is: One full real run, start to finish, before calling the whole system done.
- What's left: Correct the first-run plan (the pre-send test copy check, the release pin, the AI key and spending limits, and the other items the review lists), then the one real run itself after the deploy.
Waiting on the paid Cloudflare plan
Cloudflare's free plan allows 10 milliseconds of work per request. The paid plan (Workers Paid, $5 a month per account, read on Cloudflare's own page on 22 September) allows 30 seconds by default. On 5 October the account's dashboard showed the free plan. Billie said on 15 October that the card is now on the account; whether the paid plan has been switched on has not been checked since. The items below are the ones whose recorded measurements or design put them over the free limit. Separately: the paid plan has been active since 9 October, the database changes were applied on 5 October and on 22 October, and the new version went online on 22 October.
- P1-03 · Email renderer, per agent and recipient (built). Measured on 24 September: building the email preview took about 65 to 85 ms of work per request when warm and 140 to 220 ms on the first request after a restart. The free plan allows 10 ms (error 1102).
- P4-01 · Sender service (partly built). Expected, not separately measured: this step builds or checks each email with the same code, so it needs the paid plan too.
- P4-03 · Send queue (partly built). Expected, not separately measured: this step builds or checks each email with the same code, so it needs the paid plan too.
- P4-04 · Compliance checks on every version sent (built). Expected, not separately measured: this step builds or checks each email with the same code, so it needs the paid plan too.
- P4-05 · Approval locked to the exact approved content (built). Expected, not separately measured: this step builds or checks each email with the same code, so it needs the paid plan too.
- P4-13 · Small test send before full release (partly built). Expected, not separately measured: this step builds or checks each email with the same code, so it needs the paid plan too.
What is on Cloudflare today
The app is live. Since 23 September the real app runs on Cloudflare with Google sign-in and a working database. The version online now went up on 22 October and carries everything landed in the main code through that day except the shared VYBE Note writer (landed in the main code afterwards, switch off) and the video watch page. The database itself is up to date: on 5 October the five later database changes were applied to the live database, one at a time and each checked (49 tables, up from 39); the online app does not use them yet. What holds back the new version is the paid Cloudflare plan (the free plan allows 10 milliseconds of work per request, and the email preview measured 65 to 85). The account's dashboard showed the free plan on 5 October; Billie said on 15 October that the card is now on the account, and whether the paid plan is switched on has not been checked since. Putting the new version online also needs a final review of the exact package and Billie's yes. Sending is built in the code but switched off (no timer and no Lofty key), so nothing can be emailed from the live app. Taken from the deployment and status records of 5 October 2026.