HUGE shout out to @Michael Byrd for his work behind the scenes this week updating the backend of the Preach360 app with some major "under the hood" improvements. Thanks, Mike! Here's what he improved for us. Check it out! - Duplicating a sermon now carries everything with it — the language, the coaching level, the audience research, the mentor circle, the highlights and the slide deck were all being dropped by the copy - Converting a legacy sermon to PDF no longer looks finished before it is, and a conversion that was abandoned halfway is now picked back up in the library instead of sitting there forever - Asking the AI to update a section of the manuscript now actually updates that section — it was always inserting a new one instead, because the lookup it used could never find anything - A generation that ends without producing any text puts back what was in the pane, rather than leaving it empty for the next autosave to save over - "Save and leave" now keeps you on the page when the save fails, instead of navigating away with your work unsaved - Copying and pasting inside the editor no longer creates duplicate blocks behind the scenes - Word export keeps multi-line code blocks, nested lists, numbered lists that start partway, and quotes with more than one paragraph; inline images and struck-through text now render properly instead of showing raw markdown - When the AI provider or one of its tools fails mid-chat, you now get the real explanation and a way forward instead of "An error occurred." - A search that begins with an asterisk no longer crashes the editor's find-and-replace - Dictation now gives up on a vendor that has gone quiet after 30 seconds rather than hanging - The dashboard opens faster — it was loading every column of every sermon just to draw the list - A retried payment webhook can no longer bring a cancelled subscription back to life, and the "new subscriber" notification fires exactly once - Subscription and support notification emails are now waited on, so a server that goes to sleep can't cut one short - Suspended accounts were still able to reach theological studies, resources and tutorials; every one of those doors now runs the same check as the rest of the app - Admin: the users, subscriptions and messages screens now page and search on the server — 25 users a page with role and subscriber filters, the subscription tables paging independently, and 50 message threads at a time, with the page and search kept in the address bar - Admin: an admin can no longer change their own role or status by accident - Under the hood: a full code review pass across the app — API routes now reject malformed requests properly, every route sends baseline security headers, lint and tests run on every pull request, around a thousand lines of dead code are gone, and the largest files have been split up