By Adam Moore

The Train Map Wasn't the Point

I rebuilt 15mindallas.com to get an easy blog for content I was already making, and let a designer bot score the build until it cleared 9 out of 10.

November 2, 2026

I just rebuilt 15mindallas.com. On paper it looks like a transit project. There's a DART map, 72 rail stations, little station pages. But honestly the train schedule stuff was never the point.

The point was a blog. I was already making videos for 15 Min Dallas, and I didn't have an easy place to put them. Right now everything on the site is video, but that's about to change since I'm starting to write articles too. The old site was a Next.js app plus a whole separate publishing app I'd built to get posts into it. Two apps to keep alive for what is basically "here's a video, here's a few paragraphs about it." Way too much machinery.

So the new version is a static Astro site. The station data comes from DART's public GTFS feed, and a script turns that into stations, lines and an SVG map when the site builds. No database, no admin panel. With JavaScript off, every station on the map is still a plain link. The rebuild PR deleted about 27,000 lines while adding about 15,000, which felt great.

The posting side is where Grok Bot comes in. It works two ways. For a new post, I talk it through with Grok Bot, we do the research together, and then it opens the PR to post it. Or when I put up a new video, I just tell it the video is up and it writes a post based on the video. I don't log into anything or fill out a CMS form. That's what I wanted from the start, a site that's easy to feed with stuff I'm already making.

The build itself is the part I actually want to talk about, because it wasn't one bot. It was a few of them passing work back and forth.

I have a designer bot set up with a rating system. Its whole job is to look at what got built, screenshots at desktop and phone widths, and score it out of 10. Layout, spacing, color, copy, that kind of thing, with a list of what's wrong. The rule I gave it is simple. If we're not over 9 out of 10, it doesn't pass. It writes up the problems and pushes them back to the coding agents, they fix them, and it scores again.

I mostly stayed out of the middle. I'd kick things off, check in on the screenshots, and let the loop run.

The main rebuild went four design rounds before it cleared, landing at 9.1. By the end it was nitpicking details I'd never catch at 11pm, and honestly would probably skip if I did catch them.

The "My stops" page is a better example because I have every number. It's a checklist of the stations you've ridden to, with a little share card. The first version shipped and the designer bot scored it 7.6. The big problem was on a phone. None of the line sections collapsed, so the page was something like 5,900 pixels tall. It sent that back with the rest of the list. The next pass came back at 8.8. Better, no blockers, but not over 9, so back it went again. Tap targets on the map, spacing under the open sections, a font that wasn't loaded before the share card got drawn. Third pass scored 9.1 and that's what merged.

What surprised me is how much the number helps. Without it I'd look at the page, think "yeah that's fine," and ship it. With a score and a bar to clear, the agents don't get to stop at fine, and I don't have to be the one being picky every round. The designer bot is picky for me. And because the feedback is written down and specific, the coding agent isn't guessing what I meant.

It's not magic. The bots still miss things. I found one myself while digging into the new features the agents added. The homepage map froze when you tapped one particular station, a popover stuck in an infinite loop, and that turned into its own fix. Me clicking around still matters. But the loop got the site to a level of polish I would not have gotten to on my own in a weekend.

So yeah, 15mindallas.com has a nice train map now and I like it. But the real win is that I have a dead simple place to put the videos I'm already making, a bot that helps me get it in there, and a build process where a designer bot keeps the bar over 9 so I don't have to babysit it. Next step is actually filling it up. More videos, my first written articles, more stations. That part's on me.

Read Next

More field notes

October 30, 2026

Just Give Me macOS on an iPad

Apple put a touchscreen on the MacBook Pro. I've spent years wanting the opposite: a tablet running a real desktop OS, with a keyboard I can take off.

Read analysis

October 28, 2026

Opus 5.5 Walked In and Nailed It

Ben's school board game was the excuse. The real story was a few Grok rounds, then Claude Opus 5.5 on a Cursor cloud agent, and watching it land.

Read analysis

October 26, 2026

I Built My Own Page-View Counter

I already had Google Analytics and Clarity. I wanted one small place for the sites that matter, built for me and my bots.

Read analysis