It started with a spreadsheet
EDGEhomes assigned its sales agents to model homes with a spreadsheet their CFO had built. It ran on a 28-day cycle and tried to be fair about who got which slot, which made the formulas complicated.
Paxton started the replacement on a Saturday in March 2025, and Roberto built most of it over the next two weeks. The agent scheduler generates the cycle and shows a fairness report for every agent. It also blocks double bookings and handles time off.
To be honest about it, the scheduler didn’t take. In April 2026 the sales team was still working from a SQL report one of their staff had built. A tool nobody opens hasn’t done anything yet, and that’s the worry we’ve carried into every piece since.
It did lead somewhere, though. In September 2025 Steve, our project manager at EDGEhomes, asked us to move the scheduler into the admin backend we were building for their app, so they could keep adding tools for their teams in one place. Everything below grew out of that request.
The app buyers carry around
EDGEhomes already had a homebuyer app, published by a prior team. We rebuilt it from scratch starting in July 2025 on React Native and Expo, and the new version replaced the old one in the same App Store and Google Play listings.
A buyer signs in with their phone number. The app matches it to their home in Sapphire, EDGEhomes’ ERP, and shows their construction milestones and photos. They can file a service request from the same screen, or browse quick move-in homes.


Android went first, at the end of June 2026, so it could catch anything before iOS followed on July 11. We watched the first few dozen session recordings of existing buyers upgrading to make sure their homes came across by phone number with nothing to re-link. Over-the-air updates mean a fix reaches buyers now without waiting on app review.
Sapphire is EDGEhomes’ system, and in the spring of 2026 its API started failing. By July it was bad enough to send an alert about every three minutes. We can’t fix Sapphire. What we could do was keep a snapshot of each buyer’s last good data, so the app shows that, with when it was last updated, whenever Sapphire is down. Sapphire still has bad mornings. The app keeps working through them.
An assistant that’s allowed to say “I don’t know”
The assistant is called Gordy. It answers questions from EDGEhomes’ own material: the WordPress site, SharePoint documents and uploaded files. A person at EDGEhomes approves each piece of content in the admin hub before Gordy can use it, and what it can draw on depends on whether it’s talking to the public, a buyer, a vendor or an employee.
EDGEhomes wrote the moderation rules themselves. Steve’s list included blocking anything that gives away vendor pricing. He also asked for an AI trainer role with a Train button, so the right person can correct an answer in the chat, and for a setting where Gordy reminds people to double-check what it tells them, since its answers come from all across the company.
When it isn’t confident, it hands the conversation to a person in HubSpot. It only offers that when HubSpot can actually take the conversation, after we found it was promising a person nobody was there to be.
Testing turned up something we didn’t expect.
It’s exposing that we have a lot of outdated information on our website, so we’re going through and cleaning that up.
EDGEhomes cleaned the pages up before launch, and we built a one-line embed to put Gordy on their public site.
Every message is screened on the way in and out, and a crisis message always gets the 988 line. A signed-out visitor who keeps pushing gets paused for the day. We also run a 31-case red-team suite against it. A daily spending limit sends alerts as it fills up.
Gemini answers by default with OpenAI behind it. That’s because Google retired three of the Gemini models we were using in our first year. One rate limit took chat down in production before the fallback existed, and we haven’t relied on a single model since.
Booking appointments
A design studio appointment is a three to four hour session, plus an hour to finalize. Before this, EDGEhomes booked them through a shared Outlook calendar and a HubSpot scheduling link, and Steve told us he wasn’t crazy about it.
The times now come from fixed rules over real Outlook calendars, so the model can only offer a slot the scheduler has already confirmed. The first version only caught two bookings for one person at the exact same start time, which left room for a 9:00 and a 9:30 to collide. In October 2026 we moved the rule into the database itself, so two overlapping appointments for the same person can’t both be saved, however they arrive. Matt wrote up how that works, and what it would have cost to build a few years ago, in We built a scheduling tool for a client instead of buying one.
Each kind of appointment, from design studio sessions to lot walkthroughs, is configuration now. Before, a new appointment type meant someone changing code. It replaced EDGEhomes’ old design studio scheduler in August 2026. Booking by text runs through Dialpad, which was still in testing at the end of September.
Purchase orders in plain English
Vendors don’t want another login. Steve put it more bluntly.
… get them to log into the portal is always pulling teeth.
So when a vendor needs a variance purchase order, they describe it in a sentence, by chat or on a phone call. The tool pulls out the nine fields EDGEhomes’ purchasing system needs and scores how sure it is about each one. Anything uncertain goes to a person. The vendor is never asked for a reason code or shown the one the AI picked, which was EDGEhomes’ call, so nobody can game it.
The handoff to construction managers went live in October 2026. The vendor side is waiting on EDGEhomes’ vendor portal, so we’re not claiming results for it yet.
Still going
The main codebase passed 1,200 merged pull requests in November 2026, with 65 releases since the first in December 2025 and about 6,300 automated tests.
There’s no way around it, this one’s a humblebrag. In August Steve told us they were talking about getting him an assistant just to keep up with reviewing what we ship. So we built him a guided QA tour he can work through from a link.









