What's new
A running log of how gregsargent.com was built, version by version.
- v1.33.0October 2026
- NewMotion across the sitePages move as you read them. Headlines reveal word by word, case study covers settle into place as you scroll, the home page photo drifts with a little depth, card rows stagger in, and the performance steps on the leadership page play out as a pinned story.
- NewNumbers that countStats count up as they scroll into view, and case studies can now carry a row of them, so the figures behind Verdant, the agentic platform and the design system sit at a glance instead of buried in a paragraph. The About page has a row of its own under the timeline.
- NewMotion in the design systemA shared sliding indicator for tabs, segmented controls, pagination and the navbar, entrances that stagger, a word-by-word text reveal, a counting number, scroll hooks for parallax and scale, and a pinned scroll-story block. Every piece respects reduced motion and stays fully visible in the prerendered page.
- ImprovedPolish on every componentDialogs, popovers, tooltips and menus animate closed as well as open, the bottom sheet springs and drags to dismiss, switches and checkboxes spring into place, and every timing now comes from the same small set of motion tokens.
- FixedNo blank flash on first loadA page opened directly no longer blanks and fades back in while the app starts. Captions in case studies and the navbar links over a colored header now clear AA contrast.
- ImprovedMorning Watch stories by air dateMorning Watch stories are written for the day an episode airs, not the day they were built, so a story built the night before no longer says “tomorrow” about something happening on air day.
- New
- v1.32.0October 2026
- NewA landing page for the visual language/visual-language now opens on an overview of how the site looks and feels: live counts of what’s in the system, a type and hue specimen, the eight principles behind the design, and a card for each area of the library. The style guide keeps its own page.
- ImprovedSpots take the color of the card they sit onA spot illustration on a hue card now fills with that card’s hue instead of coral, solved to at least 3:1 against the card in both themes, and the spots page can preview any spot on any hue.
- ImprovedThe changelog is in searchSearching “changelog”, “release notes” or “what’s new” finds this page, and every release is indexed on its own, so searching a version number lands on that release.
- ImprovedSturdier blocksButtons that link inside the site change pages without a reload. Cards01 fits its columns to the space it has and can carry a spot, an entrance and a lift on hover, Hero01 works in a column beside a sidebar, Stats01 holds its rules when it wraps, and Principles01 caps its paragraphs at 60ch.
- New
- v1.31.2October 2026
- FixedMorning Watch turns no longer end on a breathEach voice was given the next speaker’s line as context, which made ElevenLabs read a turn as unfinished and end it on a breath in, cut off right before a handoff or the next story. The audio build now sends only the previous line. On the hand-backs that showed it worst, clipped breaths went from 16 of 28 takes to none.
- Fixed
- v1.31.1October 2026
- FixedMissed days read the right day and keep their jobsThe planner now decides what has passed by the show’s Central day, not the browser’s, so a plan for today no longer turns Missed after local midnight. A past day stays neutral until the published episodes have loaded instead of flashing Missed. A Missed day shows a job that is still queued, running or failed, with Cancel and the error, and the runner refuses any job dated before today, so a missed day can never publish under the number the planner shows for a later one.
- Fixed
- v1.31.0October 2026
- ImprovedMissed days in the Morning Watch plannerA past weekday with stories planned but no published episode now shows as Missed, with its stories still in their slots so they can be dragged onto today or a later day, or sent back to Sources. Planned episode numbers skip those days, so a missed day no longer bumps the numbers after it.
- Improved
- v1.30.0October 2026
- NewMorning Watch downloads over timeThe podcast stats page has a chart of downloads by day, week or month, with a line for the total and one each for the three biggest sources. Days follow Central time, weeks start on Sunday, and the period still in progress is drawn dashed. Each listener now counts once per episode per Central day, not per UTC day.
- ImprovedBetter podcast app detectionApple’s episode checker, Apple Watch re-downloads, directory crawlers and the Spotify and Overcast cache fetches now count as bots instead of listeners. Tesla, Castbox, Amazon Music, AntennaPod, Player FM, Podbean, Podcast Republic and Google get their own sources, and each download keeps its user agent for 35 days so the rest of “Other apps” can be traced.
- NewGaps and partial periods in TimeSeriesChartA missing value now breaks the line instead of reading as zero, a lone point between gaps gets a small dot, and partialLast dashes the segment into a period that isn’t over yet. Both have demos on /visual-language.
- NewStake callings in the bishopric appWard members with a stake calling no longer show as having no calling. The callings sync reads the stake callings export and files them under a read-only Stake organization at the end of the roster, and the planner, New calling and Consider leave stake positions out.
- NewWard directory photos on avatarsEvery person avatar in the bishopric app shows the member’s ward directory photo when there is one. A photo sync matches the directory export to members by name, holds ambiguous matches for a decision, and lets a hand-made link settle a photo two members both claim.
- NewA status for visitor speakersA visiting speaker has no invitation, so there was no way to track whether they’d been asked. Their talk now takes a status from the same list as a member’s invitation, shown on the row as Visitor · Invited.
- NewQuick add on TasksTasks has the floating quick-add button, so a new task is one tap away.
- ImprovedMeeting details on the programThe meeting-level controls (theme, minutes for talks, organist, music conductor) sit in a Meeting details card at the top of the program instead of a sheet. Kind of Sunday is now Meeting type everywhere, chosen from its own sheet with Reset to template inside it.
- ImprovedPeople’s sorts and filters in one rowLast talk and Last prayer are sort chips next to A to Z, ahead of the filters, in a new ChipRow that keeps chips on one line and folds the rest into a +N popover on a phone. Search is a button in the top bar, matching Today’s, and the No talk in a year chip is gone.
- ImprovedSundays through 2027The Sundays strip runs from the coming Sunday through the end of 2027 instead of six weeks out, and a Sunday outside the current year shows its year.
- ImprovedThe member picker remembersThe member picker keeps its filters and sort between openings.
- ImprovedApp version in SettingsThe bottom of Settings shows the app version and, on deployed builds, the short commit, so a bug report can say which build it came from.
- ImprovedAny link as a story builder sourcePasting a link into the story builder fetches the article, or a YouTube transcript, summarizes it and saves it as a research source. A fetch that fails offers to paste the text instead.
- ImprovedNo more conducting scriptThe Conducting script link under the program and its screen are gone. Releases and sustainings still show on the program, the printed program and the planner, and an old script link opens Sundays.
- New
- v1.29.0October 2026
- NewSort People by last talk or prayerA sort menu above the People list orders it A to Z, by longest since a member’s last talk, or by longest since their last prayer. The date sorts put anyone who has never spoken or prayed at the top and the most recent at the bottom, and each row shows the date the list is sorted by.
- NewAn Adults filterPeople has an Adults filter beside Youth in the filter popover. Turning one on turns the other off, since both together would match nobody.
- ImprovedNo stray focus rings on a phoneOpening a sheet moved focus to its first button, and iOS drew a focus ring around it as if a keyboard were in use. Focus rings are now hidden on touch-first devices and still show for keyboard users on a laptop or desktop.
- New
- v1.28.0October 2026
- ImprovedA steeple instead of a crossThe bishopric app’s home-screen icon and its Church icon now top the meetinghouse with a plain steeple, the spire on our chapels, in place of the cross. It’s a custom glyph in the icon registry, built from Phosphor’s Church in every weight.
- FixedThe bishopric tab bar stays at the bottomOn a tablet or desktop the bishopric app’s tabs no longer move away from the bottom of the screen. TabBar takes placement="bottom" to stay a bottom bar at every width, with the tabs centered past a phone.
- Improved
- v1.27.0October 2026
- NewAppHeaderA top bar for the bishopric app: a 44px row with a back link on the left and actions on the right, then the 34px large title, an optional subtitle and a slot for a segmented control, search field or chip strip. The row is there even when it’s empty, so the title sits at the same height on every screen. It’s on /visual-language with live demos.
- ImprovedOne header across the bishopric appEvery screen in the bishopric app now uses AppHeader, so the five tabs and the screens under them share one layout. Actions sit above the title on a phone instead of dropping below it, the title is 34px at every width, Sundays and Callings lose their trailing periods, and back links change screens without reloading the page.
- FixedThe right name for who’s conductingA released counselor whose old roster entry still held the role could show as conducting on a Sunday. The lookup now matches the exact person first, then whoever currently holds the role, and the admin planner skips released entries too.
- New
- v1.26.0October 2026
- NewSet member status from the profileA member’s profile in the bishopric app has Set status in its More actions menu, which opens a sheet with Active, Restricted and Inactive and what each one means. A member who isn’t Active shows that status as a badge on their profile.
- NewAvailable, Inactive and Restricted filters on PeoplePeople in the bishopric app gains an Available filter, first in the row, that shows only Active members who haven’t moved, and Inactive and Restricted filters that sit with Moved and Youth in a filter popover, so the row fits on one line on a phone. Available and the status filters switch each other off.
- ImprovedEdit Sundays right on the programThe Sunday program no longer has a separate Edit screen. Tap a row to open its sheet, which now ends with Remove; swipe a block to remove it; hold one to move it within its section; and add blocks from the Add button at the end of each section. The date heading reads just “October 18”, the Theme, Presiding and Conducting line under it is gone, and the Presiding authority row opens Meeting details, which holds the kind of Sunday, Reset, the theme, who conducts and presides, minutes for talks, and the organist and music conductor.
- NewHold-to-reorder on tappable rowsSortableList can lift a row that is itself a button after a press and hold, while a quick tap still opens it. It can also ignore presses from a list nested inside a row, and hide its grip, which still shows when it has keyboard focus so Tab and Space keep working. All three are off unless a list turns them on.
- FixedSunday sheets padded onceThe member picker, hymn, block, slot and field sheets on Sundays no longer add their own padding on top of the sheet’s, so their search, chips and rows line up with the sheet header, and the picker’s filter chips scroll all the way to the sheet’s edges.
- New
- v1.25.0October 2026
- NewMember statusEvery ward member in the bishopric app is Active, Restricted or Inactive. Active members can be asked for talks, prayers, callings and assignments, Restricted members only for assignments, and Inactive members for nothing, so the pickers only list people it makes sense to ask. The talk and prayer eligibility settings still apply on top, so someone who asked not to speak stays out of the talk picker even while Active. Status is set from the back office or a command-line script, and the roster sync from LCR never changes it.
- NewInactive toggle and new People filtersThe back-office People table has an Inactive column with a button that marks a member inactive and, clicked again, active. The filter panel can narrow the list to Inactive or Restricted members, and to people who asked not to give talks or prayers.
- NewEligibility on the member profileA member’s profile in the bishopric app has switches for whether they can be asked to give a talk or a prayer, so that no longer needs the back office.
- NewSpecial musical numbersThe Sunday program has an "Add special musical number" row under "Add a speaker". The performer can be a member or a group, and it takes no time from the speaker budget.
- New
- v1.24.0October 2026
- NewResizable table columnsThe Table block can let you drag the edge between two columns to resize them, or tab to the edge and use the arrow keys. The column on the right gives up the space, so the table stays the same width, and with a persistKey the widths come back after a reload. It is off until a table turns it on.
- New
- v1.23.1October 2026
- FixedPages left open across a deployA tab opened before the site was updated used to show "Something broke." the next time it moved to a page it had not loaded yet, because that page's code had been replaced. It now reloads itself once and lands on the page you asked for. If the reload still can't load it, the error screen shows as before.
- ImprovedLint passes cleanlyEvery lint error is fixed in the code rather than switched off, which also cleans up how the bookings calendar, the booking wizard, article ratings and the story planner reset their data when you move between days, months, articles or drafts.
- Fixed
- v1.23.0October 2026
- NewMorning Watch jobs on every admin pageA Process or Build started on the planner now shows in a panel at the bottom of every admin page until it finishes. During a Build it counts the turns synthesized and the ElevenLabs credits spent so far. A published episode gets a Play episode button that opens it in the admin player, and a failed job shows the error and a Retry, which asks first before spending credits on a Build.
- ImprovedMore stories in a dayA day in the planner can hold any number of secondary stories and creator spotlights, and both can be moved up and down in the rundown. The status on each day is shorter, so it fits the month view at a laptop width.
- NewDocked status panelA new block for work that takes a while: a card at the bottom of the screen that looks like a toast but stays up, with a progress bar while the work runs and a Retry or a link to the result when it ends.
- ImprovedVisual languageThirteen components that had no page in the library now have one, including Combobox, Stat, Tag, Tab Bar and the barcode scanner, and a test fails when a new component or block lands without one.
- New
- v1.22.0October 2026
- ImprovedMorning Watch story builderThe source list has a search box, and a history or youth search can be pointed at a different day than the story’s own. A research search pops when it finishes, and Greg’s Mac chimes when the runner finishes or fails an outline or a build.
- ImprovedElevenLabs credits on the plannerThe credits on the planner have a refresh button, and they now load when the site runs locally too.
- FixedEric’s breath at the end of a segmentEric no longer breathes in at the end of a story, just before the sting. ElevenLabs sometimes ends his “Thanks, Kimberly” with most of a second of silence and then the start of an inhale. That breath was louder than the trailing-breath cut allowed, so it stayed in. After a silence that long, a louder breath now gets cut too.
- Improved
- v1.21.0October 2026
- NewRun Morning Watch from the feedA button in the corner of the Morning Watch feed runs /morning-watch, which fetches new videos, summarizes them and publishes them to the feed. Clicking it opens it into a label that follows the run through syncing sources, fetching, summarizing, verifying and publishing, then says Done for five seconds and closes again, with the feed already reloaded. A failure closes it at once and leaves a message saying which step broke until Greg dismisses it. It only appears when the site is running locally, because the run has to happen on Greg’s Mac.
- ImprovedMarking a video readHovering over a video in the feed shows a check button that marks it read and moves it to Read without opening the video.
- ImprovedFABGiving a FAB a label, changing it or taking it away now animates: the button grows into a pill, resizes to fit and fades the new text in, so a FAB can show progress. Tooltip gains a disabled option, so a FAB can switch its tooltip off without being rebuilt and cutting the animation short.
- New
- v1.20.1October 2026
- FixedNo zoom on form fieldsiPhone Safari no longer zooms the page when a form field takes focus. Every editable field in the design system, the blocks, the admin and the bishopric app now sets its text at 16px or larger, including the small Input and the Select, Combobox, DatePicker and TimePicker triggers.
- Fixed
- v1.20.0October 2026
- NewTodayThe bishopric app’s home screen is now Today. Needs you puts the user’s tasks next to the calling steps waiting on them, hides anything they’ve snoozed, and search covers people, callings and the tasks they can see. Quick add starts a to-do, an assignment or an invitation to speak or pray from anywhere on the screen.
- NewPeoplePeople lists every member A to Z by surname with a jump index, search, and filters for no calling, not spoken in a year, youth and moved. A long press on a row invites the member to speak or pray, considers them for a calling or adds a to-do. The member profile shows their calling and household, call, text and invite shortcuts, talk and prayer history with minutes, calling history with tenure, and notes that can be shared or kept private.
- NewSundaysSundays shows a strip of upcoming meetings, each program built from blocks with a block sheet, a hymn sheet and a member picker that lists free members before booked ones. A block can’t change kind, be reset or be removed while someone is on it. Each Sunday has a read-only conducting script, and the program prints or shares as a PDF through the system sheet.
- NewCallingsCallings tracks each change through its stages, with stage filter chips, swipe to mark a calling extended and a New calling sheet. Calling detail lists every step with its date and assignee, the roster groups callings by organization in cards with search and filters, and the planner places available people, saves a private draft and sends it to the pipeline, sinking anyone who recently declined.
- NewTasksTasks groups to-dos by overdue, this week, later, no date, snoozed and done today. A swipe snoozes a task until tomorrow or for a week, and a delete waits for its Undo toast to close before it’s written. Assignments, projects and task detail are here too, with an assign sheet for handing work to the rest of the bishopric.
- NewSettings and the Bishopric teamSettings shows who is signed in with their access level, the ward name, appearance and sign out. The Bishopric team page, open to Greg and the Bishop, shows one card per person with their calling, access level and what it allows, and adds, changes and releases people. Each bishopric user can be linked to their member record, so a nudge to them can use the member’s phone number.
- NewHymn listHymn picking uses a built-in list of all 341 hymns in the 1985 Hymns and the 82 released so far from Hymns: For Home and Church, each checked against Gospel Library, and a hymn can still be typed in by hand.
- NewAccordion card variantAccordion takes variant="card", one surface card per item at the section radius, used for the Callings roster and the Bishopric team. It’s demoed on the visual-language Accordion page.
- ImprovedTabBar breakpointTabBar now switches to its inline top bar at the --md breakpoint (768px) instead of a raw 720px query, so between 720px and 767px it stays a bottom bar, in /music as well as the bishopric app.
- FixedSortableList move buttonsSortableList shows its Move up and Move down buttons on keyboard focus only, so a tap on a button inside a row is no longer lost to the layout shift.
- ImprovedBishopric rulesTwo rule changes are live. Snooze is kept per person on each task, and any update to a task can change only the writer’s own snooze date. A bishopric user can also set the link from their own account to their member record.
- New
- v1.19.0October 2026
- NewSwipeRow and SortableListTwo gesture components join the design system. SwipeRow reveals actions behind any row, snaps open, commits its main action on a full swipe and keeps one row open at a time, with a menu for anyone not swiping. SortableList reorders a list by its drag handle or a long press, with a keyboard pick-up, Move up and Move down buttons, rows that stay locked in place, and an announcement for every move.
- NewNavBar and DockedPanel01NavBar is the 44px bar at the top of a modal screen or sheet, with a leading action, a centered title that stays centered however wide the actions are, and a trailing primary action. DockedPanel01 is a new block: a panel docked to the bottom edge that leaves the page above it fully usable, with an optional grabber that collapses it to its header.
- ImprovedExtended componentsBadge takes status tones and all six hues, Avatar has a placeholder, SegmentedControl can fill its row, Switch and Checkbox pass through their aria props, and ProgressBar can render a single inline bar. BottomSheet gets NavBar header actions and a footer, ItemGroup an inset look with a header and footer, and toasts an Undo action (from ToastHost or useToast), an icon toggle and a bottom offset that clears a tab bar. Stepper01 can run vertically, ActivityFeed01 shows avatars, quotes and status-colored dots, and RadioCardGroup and CheckboxCard add a row look and a scrolling layout.
- New40 new iconsForty icons for the bishopric app, each in the icon registry with its weight, category and tags, so they show up at /visual-language/icons.
- NewRadius and type tokensTwo radius tokens for app chrome, 28px for grouped sections and app cards and 20px for the rows and tiles inside them, while website cards keep the 40px card radius. A seven-step set of type tokens covers the bishopric app’s chrome. Both are on the Shape and Typography pages.
- ImprovedSecondary buttonsSecondary buttons across the site now have a gray tonal fill that reads on the page, on a gray card and inside a colored surface alike, where the old fill disappeared. Hover and press step the tint darker, every button variant gets a visible focus ring, and the hero over a photo keeps its buttons legible on the dark image.
- ImprovedAlphabetIndexThe A to Z fast-scroll strip from /music is now a library component, with its own label and letter set, and /music uses the library version.
- ImprovedMoved ward membersSomeone who leaves the ward is now marked as moved instead of deleted. They drop out of the talk and prayer pool, the member pickers, assignee suggestions and the People list’s default view, while their history stays intact, and their profile lists any calling, invitation or task they still hold so the bishopric can release or reassign it. Marking someone as returned brings them back, and deleting is kept for a member added by mistake with no history.
- New
- v1.18.0October 2026
- NewBishopric appbishopric.gregsargent.com is now a home-screen web app for the whole bishopric, built from this site as a second entry with its own manifest, icons and offline shell. It walks a Safari visitor through adding it to the home screen, signs in with Google, and lets in only the people on the approved list, each with an access level that comes from their calling. The home screen is a placeholder for now.
- NewApproved list and releasesA new Bishopric page in the admin lists everyone on the approved list with their calling and last sign-in. Greg adds people, shares the app link through Messages, and releases someone in one step: they come off the list, their private notes, drafts and to-dos are deleted, tasks they handed out pass to the highest-ranking remaining member, and their sign-in is removed. A release that fails partway finishes on the next try.
- NewBishopric rules and dataThe bishopric data has its own Firestore rules, tested against the emulator, with private notes, drafts and tasks nobody else can read and activity logs that can only be added to. A one-time migration moves the existing people, programs and tasks onto the new collections, and People, Planner and Tasks wait behind a notice until it has run.
- ImprovedPeople, Planner and TasksPeople shows birthdays, households, current callings and talk, prayer and assignment history, with notes Greg keeps to himself or shares. Planner builds each meeting from program blocks, with talk minutes against the speaker budget and releases and sustainings drawn from calling changes. Tasks adds assignees, kinds and project tasks the whole bishopric can see.
- New
- v1.17.0October 2026
- NewMorning Watch episodes from the plannerProcess and Build on the planner now make an episode. A second runner on Greg’s Mac puts the day’s built stories together into one script, with Claude writing only the cold open’s teases and the sign-off, and Build voices that exact script and publishes it from a clean copy of the site, so it works whatever branch Greg has checked out. Every check publishing would make runs before any ElevenLabs credits are spent. Kimberly voices main and secondary news, Ivanna the spotlight, Jules youth and Come Follow Me, and Dean the history feature.
- NewRunner switchA button in the corner of the story builder and the planner turns each runner on or off. Off lets the job in hand finish and then stops taking new ones, without stopping the process, so turning it back on works from any device. Running locally, turning on a runner that isn’t running starts it. FAB joins the design system, with icon-only and labeled versions, three sizes and a toggle state.
- NewStarting a story from nothingAn empty story in the story builder can now search for Church history events on its date, or for the week’s youth class focus from For the Strength of Youth, and start from what it finds. History results are kept only when the answer itself places the event on that day.
- ImprovedPlannerClicking a placed story opens its script in a drawer. The ElevenLabs credits bar now shows the live balance from ElevenLabs, with what’s left and when it resets, instead of an estimate from the episodes in view. Placed stories leave the sources list and move between slots by dragging.
- FixedYouth focus formThe form for the week’s youth focus no longer runs past the right edge of its popover.
- New
- v1.16.0October 2026
- NewMorning Watch story builderA new admin page turns Morning Watch items into original stories. Greg drags in every source that covers an event and picks the segment it’s for, and a runner on his Mac writes an outline, three angles to choose from, and a script that names its source up front and ends on the speaker’s takeaway. It can also search for more coverage or background on the people involved. Building a story moves its sources from Feed to Read.
- NewMorning Watch plannerA weekday calendar where each episode has a slot for every segment: the history feature, main news, up to three secondary stories, a creator spotlight, the youth lesson and Come Follow Me. Stories from the story builder drop into slots by dragging or with Add to…, and each day shows its estimated runtime and ElevenLabs credits against the 20 to 25 minute target. A rundown lays out the episode in order, and Process and Build queue the work for Greg’s Mac.
- NewMorning Watch source preferencesThe YouTube channels and RSS feeds the show listens to are now picked in the story builder, where a source can be turned off, added or removed. The daily run syncs that list before it fetches anything.
- ImprovedMorning Watch theme musicThe theme now plays under the whole cold open and into the first story, and the sting between stories comes in under the last few seconds of a story instead of starting the instant the voice stops.
- New
- v1.15.0September 2026
- ImprovedSearchThe search button in the navbar and the Search link in the phone menu now open the ⌘K command palette, the same one the keyboard shortcut opens, instead of a full-screen search page. Hovering the button shows the shortcut.
- NewCommand paletteThe palette opens on your recent picks, the latest article, and featured work, and it can now get in touch, switch the theme, copy a link to the page, and copy the Morning Watch feed. Results show dates, reading times and each project’s color, with the words you typed in bold, and on a wide screen a pane beside the list previews the highlighted result.
- ImprovedCommand palette on phonesOn a phone the palette sits at the top of the screen, full width, so results stay above the keyboard. It has a close button and taller rows, and it drops the keyboard hints that don’t apply to touch.
- Improved
- v1.14.1September 2026
- FixedPage transitionsMoving between pages no longer flashes the footer. The current page stays on screen until the next one is ready, then hands off to it, instead of leaving an empty gap for about 300ms.
- Fixed
- v1.14.0September 2026
- NewReading and record shelvesThe About page shows the four books Greg is reading as covers on their own shelf, below the latest vinyl, and colored pressings like Dandelion on white and Cloud 9 on pink draw in their real colors. Bookshelf and Record shelf join the blocks, with a linked prop that turns the title links and hover motion off without removing the hrefs.
- NewHomebase case studyA new portfolio entry covers g and Homebase, a local AI system running on hardware in Greg's house: a terminal agent, a personal memory, an offline knowledge corpus and a Slack bot.
- ImprovedStyle guideThe visual language opens with a hero and gives colors, typography, icons, spots, shape, motion, components and blocks each a section with a live preview. Typography, shape and motion get their own pages, the blocks index shows wireframe sketches by category, and a new architecture group covers messaging, the wizard, search, and prerendering and SEO.
- New
- v1.13.0September 2026
- NewColor systemEvery color on the site now comes from one token source that generates both themes, with 12-step scales for six categorical hues, the neutrals and the status colors. Colored cards and headers carry their own text colors, and every color pairing is tested against WCAG AA in light and dark mode. The full system is documented at /visual-language/colors.
- FixedDark modePortfolio cards and case-study headers no longer show white text on a light pastel in dark mode, the navbar and browser toolbar take the color of the header behind them, and the few components that ignored a theme chosen by hand now follow it.
- NewIcon libraryEvery icon takes named sizes, weights, color tokens, a two-tone color and an accessible label, and /visual-language/icons is rebuilt with search, categories, a live playground and a detail drawer for each icon.
- ImprovedSpot illustrationsThe spots flagged in review are redrawn to the new art direction, the standard works are drawn as their Gospel Library covers, and spots can now be blue, green or peach. The spots page gets the same search and controls as the icons page.
- ImprovedMorning Watch pageThe Morning Watch page introduces the five-voice cast and the sources the show draws on, and hovering the audio scrubber shows the title of the chapter under the pointer.
- ImprovedHome page headlineThe home page now leads with "Design systems & accessibility leader".
- New
- v1.12.0September 2026
- ImprovedSpot illustrations redrawnMore than 300 spot illustrations are redrawn to match the original hand-drawn set: coral shapes carry the form, and loose black lines finish it. A new build step gives every outline its hand-drawn edge, and 85 spots that existed but never showed up are now in the gallery.
- ImprovedAudio and video playersThe Morning Watch players and the portfolio videos run on shared AudioPlayer and VideoPlayer components, with keyboard control, chapter markers, a real scrubber, captions and full screen.
- NewDesign system componentsDataTable, Carousel, Sparkline, Accordion, Collapsible, Link, ConfirmDialog, FormField, SearchInput, Toolbar, FilterChips, FilterPopover and QueryState join the system, and TimeSeriesChart moves into it.
- ImprovedAdmin pagesEvery admin list is a sortable table with the same filter row, every form field is labeled, every delete asks for confirmation, and every page shows a real loading, error and empty state.
- FixedSelect labelsA Select or Combobox inside a form field now announces its chosen value to screen readers along with its label.
- Improved
- v1.11.0September 2026
- ImprovedHome page and site copyThe home page leads with the Head of Design Platform role, and the home, about, leadership and services copy is rewritten. A new teaser links to how Greg leads, the portfolio cards link to case studies, and Morning Watch moves off the home page.
- NewMusic collectionA new page under About shows the record and CD collection as a cover grid, with search, format, genre and decade filters, and a tracklist for every album.
- NewShare buttonsArticles, portfolio entries and Morning Watch episodes can be shared from the page, through the device share sheet or by copying the link.
- NewSeven new blocksCase study overview, next project, annotated screenshot, principles, long-form article, audio episode and Now page blocks join the visual language, marked with a New badge. Any block button can now open an in-page flow as well as link.
- ImprovedMorning WatchOnce an episode publishes, its sources leave the admin feed so they aren't offered again, and the stats page shows the top source's download count.
- Improved
- v1.10.0September 2026
- NewMorning Watch download countsEpisode audio now loads through gregsargent.com/listen, which counts each download before handing off to the file. A new admin stats page shows totals per episode and a breakdown by app, website player and admin player.
- NewMore Morning Watch sourcesChurch News articles, the Church News podcast and Church Newsroom articles now feed the show alongside YouTube. The admin drawer offers to read the article or listen to the episode, depending on the source.
- ImprovedHow the show soundsTurns no longer end on a clipped breath, transition stings wait for the voice to finish, "Come, Follow Me" and city names stop getting an extra pause, and the scripts use contractions the way people talk.
- ImprovedMorning Watch admin listThe feed and read pages are a sortable table now, with a drawer for the full summary and actions.
- New
- v1.9.0September 2026
- NewMorning Watch on Apple PodcastsThe show is submitted to Apple Podcasts. Each episode description now opens with a short summary of its top stories instead of a bare rundown.
- NewOpening featureEpisodes open with a short piece on a Church history event tied to the day's date, researched from the Church's own sources.
- ImprovedA five-voice castAn anchor and four correspondents, each covering one kind of source, replace the two-voice format.
- ImprovedShow descriptionRewritten to match the current format. It still names the voices as AI and the show as unofficial.
- New
- v1.8.0September 2026
- ImprovedSearch sheetResults now render as a single outlined list built on the Item family, with a kind glyph and a result count. Before you type, the sheet offers the main site destinations so it works as a menu.
- ImprovedSearch on a phoneThe input takes focus as the sheet opens, including from the mobile menu. Once you type, the illustration and subline give way so the first results sit above the keyboard, and rows collapse to one line.
- ImprovedSearch hero blockHero06 owns its phone layout: the input fills the row and suggestion chips become one horizontally scrolling strip. A new autoFocus prop covers the overlay case.
- Improved
- v1.7.0September 2026
- NewHow I leadA page on how Greg leads a team, from the hiring bar and how autonomy grows with seniority to feedback, time off and what happens when something is not working. Reached from a new teaser on the About page.
- New
- v1.6.0September 2026
- ImprovedSmall-laptop layoutThe desktop navbar, hero and About row now switch to their compact layouts at 1120px instead of 992px, where the three nav groups had no gap and the hero portrait sat on the headline.
- ImprovedSticky phone navbarBelow 1120px the navbar stays pinned and condenses as you scroll, so the menu and theme toggle are always one tap away. The logo now links home.
- ImprovedAdmin on a phoneThe back-office rail scrolls with the account row pinned, groups collapse with the active one open, and on phones a sticky top bar with a menu button replaces the old band of links.
- ImprovedTouch targetsButtons, chips, filters, footer links and the copy button reach 44px on touch screens. The search sheet, footer, Sunday school header and Morning Watch page fit phone widths.
- NewResponsive test guardPlaywright now checks every public route at phone, tablet, laptop and desktop widths for horizontal overflow and navbar behaviour.
- Improved
- v1.5.0September 2026
- NewMorning Watch podcastA short daily newscast built from Latter-day Saint YouTube channels, read by two AI voices. Public episode pages at /morning-watch with show notes, chapters and transcripts, and an RSS feed at /podcast.xml.
- NewMorning Watch adminA nightly digest of new videos from followed channels, each summarised with a verdict on whether it delivers what the title promises, plus an episode builder and player.
- ImprovedEpisode productionTheme music on the open and close, both voices matched to the same loudness, exact chapter offsets, numbered episodes, and a script that reads like two hosts talking rather than a bulletin.
- ImprovedAbout pageUpdated the timeline and added the v2 profile mark.
- ImprovedeBay functionsCollapsed the five eBay endpoints into one routed function.
- New
- v1.4.0August 2026
- NewVoice & Tone generatorA free brand voice generator at /voice-and-tone. Answer about two dozen questions and get AI-ready voice and tone guidelines in markdown you can paste into CLAUDE.md, a system prompt or a custom GPT.
- NewBishopric adminPeople, planner and tasks pages under /admin/bishopric as the companion admin surface for the bishopric app.
- NewVoice & Tone leadsAn admin table of everyone who unlocked their generator results.
- ImprovedFirestore rulesSecurity rules deploy from CI instead of by hand.
- New
- v1.3.0July 2026
- NewTwenty-one design system componentsCalendar, DatePicker, TimePicker, CommandPalette, Kbd, ContextMenu, DropdownMenu, HoverCard, Lightbox, FileDropzone, NumberInput, Slider, SegmentedControl, TagInput, RadioCardGroup, CheckboxCard, TableOfContents, ProgressRing, ScrollProgress, Skeleton and Spinner, each documented in the visual language.
- New⌘K everywhereA command palette wired across the public site, the admin back office and Sunday school.
- NewTemplate pagesConversion pages launched from a template system under /p, with inquiry-lead and signup capture and an App signups inbox in the admin.
- NewBook of Mormon studioAll 365 daily stories seeded in canonical order, a telemetry dashboard with per-image cost logging, item and location image builders, and an iOS app help page in the admin.
- NewSunday schoolAn interactive Munker illusion object lesson, team quick-awards, and lesson title images that open in the Lightbox.
- ImprovedSpot illustrationsThe spot icon set grew by 226 SVG glyphs.
- FixedSelects and comboboxesSelect no longer scrolls the page on wheel, Combobox selects on mouse click, and Sunday school accent colours pass contrast in dark mode.
- New
- v1.2.0June 2026
- NewBook of Mormon illustration studioGenerate the daily-reader story illustrations from the admin — a frozen art style plus each story’s scene compiled into a prompt, with paired light and dark renders and batch generation across many stories at once.
- NewCharacter castingA searchable roster of named Book of Mormon people: generate reference images per character, keep every attempt, and star a favorite to lock in that character’s look.
- NewCombobox componentAdded a searchable single-select to the design system, built on Radix Popover with keyboard navigation.
- ImprovedImage generationImage generation now runs through OpenRouter, with a switchable model and the real per-image cost shown after each generation.
- New
- v1.1.0June 2026
- NewRecord collectionBrowse the /music collection as a grid or coverflow, with an iOS-style alphabet fast-scroll and album and artist detail pages.
- NeweBay sellingList records for sale straight from /music: price comparisons, an in-app camera for listing photos, business-policy setup, and Discogs metadata lookup.
- NewCollection managerAn admin table at /admin/music to add, edit, and remove records, with an inline edit drawer.
- NewMusic case studyWrote up the /music app as a portfolio case study, illustrated with screenshots from the app.
- NewSearch and AI visibilityPublic pages now ship prerendered HTML with per-page titles, descriptions, and structured data, plus a generated sitemap and robots file, so search engines and AI assistants can read the site.
- NewPrivacy policyAdded a /privacy page covering how the eBay integration handles data.
- ImprovedPerformanceCode-split the heavy admin and music sections and lazy-loaded images so the public site loads faster.
- ImprovediOS browser chromeMatched the Safari status bar to the page theme and closed safe-area gaps under the floating tab bar.
- New
- v1.0.0May 2026
- NewChangelogPublic version history at /changelog, linked from the footer.
- New
- v0.5.0May 2026
- NewSite searchCommand-style search overlay with a spot illustration.
- NewFirst article published"Design systems are 25% pixels, 75% people."
- ImprovedIcon registryCentralized every icon behind one registry and documented each block.
- ImprovedSpot illustrationsAdded spots to portfolio and services cards, and standardized page headers across the site.
- ImprovedNavigation polishRestyled the mobile menu, reordered navbar actions, and moved visual language to page-level scroll.
- New
- v0.4.0May 2026
- NewMessaging serviceSite-wide toast, banner, dialog, and drawer system.
- NewPortfolio pagerPrevious and next navigation between portfolio entries.
- NewDeploy configVercel SPA rewrite so deep links resolve.
- FixedHero seamRemoved the white strip above service and portfolio heroes.
- FixedScroll restorationFixed a jump to a random scroll position when using browser Back.
- New
- v0.3.0May 2026
- ImprovedResponsive siteMade the public site fully responsive and mobile-optimized.
- NewFeatured articleHero slot for a featured piece on /articles.
- NewSunday school contentAdded a lesson, a Deuteronomy jeopardy game, a timeline slide, and a score adjuster.
- Improved
- v0.2.0May 2026
- NewGet in Touch wizardMulti-step contact flow.
- NewContent libraryPlus the visual language reference pages.
- NewBack officeAdmin at /admin: leads, bookings, schedule, contacts, projects, tasks, dashboard, and settings, behind a Google auth gate.
- New
- v0.1.0April 2026
- NewSite scaffoldReact, Vite, and TypeScript single-page app.
- NewAppShellPortal-based shell architecture for overlays.
- NewComponent libraryFull UI kit with the visual language showcase.
- ImprovedDesign strategyDocumented the Radix UI and CSS Modules approach, with navigation and service-page layout polish.
- New