2025 in Review
I like to write these reviews as a way to take stock, celebrate the wins, learn
from the mistakes, and set direction for what comes next.
2025 was a big year for me professionally. I made a major pivot in focus from
EpicReact/EpicWeb toward EpicAI and the Model Context Protocol (MCP). This
year was exhilarating, exhausting, and (in a few ways) heartbreaking.
And personally? We welcomed our 6th child, which has been a huge blessing and a
huge time commitment (newborn season is real).
I told this story in
a talk I gave at Remix Jam, and it
really captures how I got here.
Last year, my friend Ryan Florence and I drove
together to React Conf 2024. It was one of those
long drives where you solve the world’s problems between snacks and bathroom
breaks. We talked a lot about React, what the future of Remix/React Router might
be, and (more broadly) the future of user interaction.
At React Conf, Evan Bacon gave
a demo that lodged
itself in my brain. Asking questions to AI and getting text back is neat, but
the better user experience is when the response is interactive. Native UI, not
just paragraphs. (I made an article/video about this later:
The Future of AI Interaction: Beyond Just Text).
Fast forward a few months. I’d just finished
Epic Web Conf 2025 and my head was full
of web/React/React Router thoughts. Ryan was supposed to speak, but he got sick,
so I brought all his swag to his house the next day and we chatted. That
conversation went straight back to the “future of interaction” topic and we
basically reduced it down to one word: Jarvis.
Jarvis (Iron Man’s assistant) isn’t “a chatbot.” Jarvis is the interface.
Jarvis knows you, keeps context across your life, and can do things.
And in that conversation, Ryan told me about the Model Context Protocol (MCP).
That weekend flipped a switch for me. Everything before was React and Remix and
React Router and then suddenly I was like: “This is it. We can actually do this
now. We can make a huge leap into a new way users interact with software.”
For the last couple years, the industry message has been: “Add a chatbot to your
app.” I think we’re leaving that era. The next era is: Add your app to the
chatbot.
Users don’t want to visit five different apps and re-explain themselves five
different times. They want one assistant that can coordinate across services.
And for that to work, we need a standard protocol that lets all of us plug in,
not just the biggest companies with bespoke integrations.
That’s the core idea that pulled me toward EpicAI and MCP.
In March, I launched EpicAI.pro.
This year felt like going from “I think this is important” to “oh wow, this is
definitely important” in real time.
Some highlights:
This whole effort has been about helping people build real MCP servers (things
that can stand up in production) and helping them catch the vision for what MCP
unlocks when combined with great UI.
Things just keep happening to confirm this is the direction people are going.
There are plenty of nay-sayers and skeptics outside of the MCP community, but
all the right players are participating and in 2026 we’re going to see an
explosion of MCP-powered apps (mostly thanks to ChatGPT’s adoption of
MCP Apps I
think).
A huge part of making EpicAI (and Epic Web) content actually usable is the Epic
Workshop App (a.k.a. epicshop). We (me, contributors, Copilot, and Cursor) made
a bunch of improvements throughout 2025, but the biggest win (in my opinion) was
the new CLI experience.
Over the year, the CLI got dramatically smoother and more capable: it was
renamed to epicshop, the commands were flattened/simplified, and a lot of the
workflow became interactive (picking workshops/subcommands, opening the
workshop in your editor, choosing custom clone destinations, better guidance
messages, and a bunch of cross-platform polish (especially on Windows).
You can now manage your workshops by simply running npx epicshop and I think
that’s cool.
On top of that, the app itself kept leveling up too. Things like improved error
handling, better update flows, quality-of-life shortcuts, richer “presence”
information, and even MCP-related upgrades (including MCP server improvements).
If you’re curious about the details, the full release notes live in the
epicshop repo, but the
headline is: it’s becoming a real product-quality experience for running
workshops locally (and that matters a lot when you’re teaching people to build
real things).
Even with my focus shifting hard toward EpicAI, the Epic Stack
kept moving forward in a big way this year (huge thanks to everyone who helped).
Some highlights from the 2025 releases:
- We moved the stack forward with React Router v7 and the surrounding
improvements to keep things modern and maintainable. - We added passkeys, made a bunch of security/performance improvements, and
shipped a pile of quality-of-life fixes. - We made some meaningful infrastructure/tooling changes, like moving image
storage to Tigris and adding image optimization viaopenimg. - We upgraded to Tailwind v4.
- Later in the year we migrated from
remix-flat-routesto
react-router-auto-routesand addedreact-router-devtools.
If you want the full blow-by-blow, the release notes are all here:
Epic Stack releases.
Seriously: thank you to everyone who opened issues, submitted PRs, reviewed, and
helped keep the stack healthy. The Epic Stack is better because of your
contributions.
In March we ran Epic Web Conf 2025 in Salt
Lake City. We did a workshop day and a conference day, and (as always) the people
made it special.
(Also,
here’s last year’s photos,
because I forgot to write a year in review for 2024 😅).
I also lost money on this event. I’m gutted that I can’t run it again for the
foreseeable future.
There are a lot of reasons for that, but the simplest is: I can’t afford to keep
splitting my focus and I can’t afford to keep losing money. I love running
events, but I need to be responsible about what I commit to.
Epic Web Camp happened in 2024 and it was a
beyond special experience:
We were going to do it again in 2025 (the video even had dates!), but I had to
cancel for the same reasons I’m not running the conference: I need to avoid
splitting my focus and I need to avoid losing money.
Honestly between this and the conference, I’m more gutted about the camp. It was
just such a great experience. I hope to bring it back one day.
On another note, I did actually run an unofficial Epic Web Family Camp thing
this year. The venue for Epic Web Camp is the Aspen Grove Family Camp and during
the summer they run week-long camps for families to come up and do things
together so I did this:
We had a couple families join us and we had an amazing time and I even made some
new life-long friends as well.
We’ll see what we can do in the future here.
I can’t say I “didn’t travel a ton” this year 😅
Here are my TripIt stats for 2025:
- Distance traveled: 58,698 miles
- Total days: 60
- Total trips: 16
- Countries/regions visited: 7
- Cities visited: 18
For talks, I keep an updated list on my talks page, but a few 2025
highlights were:
I did a bunch of podcast appearances this year. The canonical list lives on my
appearances page, but here are a few 2025 standouts:
And here are the other 2025 episodes (linked from the appearances page):
Also, two fun personal milestones for my own podcasts:
I’ve had some posts this year get a surprising amount of engagement. A few of my
favorites.
MCP was definitely a standout topic and things kept happening all year to
confirm my pivot was the right direction.
I announced the arrival of our 6th child:
I also made a couple jokes about “starting at Microsoft” (I was actually just
visiting for Microsoft MCP Dev Day / VS Code Summit):
And here are the rest. I’m not going to annotate every one here, but if you
want to browse what resonated most this year, this is a fun little time capsule:
I made my second appearance on CodeTV’s Web Dev Challenge: No Keyboards Allowed
It’s a really fun format and I always enjoy seeing what gets built under
pressure. Thanks Jason for having me!
I listen to basically everything in one place: Pocket Casts.
I use custom-built software I made to turn my audiobooks into an RSS feed so I
can listen to them in Pocket Casts alongside my podcasts. I even listen to my
scriptures in the same app.
My Pocket Casts stats for the year:
- Minutes listened: 62,518 (that’s 1,042 hours of audio! 😱)
- Episodes listened: 1,469
Most listened-to feeds:
Scripture listening highlights:
The biggest personal highlight of 2025 was welcoming our 6th child. I don’t post
pictures of my kids online, but I’ll say (again): I’m incredibly grateful for my
wife and kids.
The last couple months of 2025 required a ton of my time because of the new baby,
and I expect early 2026 to be similar. That reality is going to shape what I say
“yes” to for a bit (especially travel).
I’m excited about 2026. I’m also trying to be realistic about time, energy, and
focus.
Here are the big things I’m planning right now:
Intro to TypeScript Programming (local college)
I’m working with a local college to build out a curriculum for their “Intro to
TypeScript Programming” class. With the arrangement, I get to keep 100% of the
IP. Think of it like they’re asking me to write a textbook which they will use
in their class. They actually used EpicReact.dev in
2025 and it was a great success!
What this means is I’ll be able to make this available to you and your friends
as well!
Doing more truly-intro content is something I’ve wanted to do for a long time.
I even mentioned it years ago as part of my “KCD EDU” dream:
For a long time now, I’ve wanted to create a place where I could help get
someone from 0 to hero in software development…
(context here)
This will likely be 5 workshops, and I plan to make them available on
EpicWeb.dev in the first half of 2026.
Free substantial updates to EpicAI (a new promise for me)
I also promised to update
the self-paced workshop series on EpicAI.pro
in the first half of 2026 for free.
I’ve never promised free substantial updates in the past, so this is a new kind
of commitment for me. I don’t like promising my future to anyone. But MCP is
changing so fast that I felt like an exception was warranted.
So my first half of 2026 is going to be very busy!
Thanks for following along with me. I’m grateful for the people who cheer me on,
the people who challenge my ideas, and the people who build alongside me.
Onward to 2026.

