Sean McDevitt

Fully Operational

Back in September I introduced you to my digital assistant, Felicity. She lives in a 180kb HTML file and comes to life on a two-word magic spell. When I need a briefing for the day, I visit the Project in a Claude AI chat, type full refresh, and presto! I get a page with a calendar, an alert to a project I need to revisit, a quote, and a quick note from Felicity. It was pretty cool at the time.

I also thought that it was as good as it was going to get.

This was all a proof of concept for me. When I click refresh, I get a new file to download. The calendar was static and quickly became inaccurate. It doesn’t have a good way to remember things. It didn’t matter because I was using a Baron Fig Confidant notebook to keep track of stuff. I was happy with that, but the digital side of things could have been better.

So, I tinkered. I tweaked. I twisted.

By the end of the month, I published an artifact in Claude, so I’d have a dashboard accessible from my phone, my work Mac, and my personal Mac. The calendar pulls live from Google. I started calling it SeanOps because it seemed like a snappy name. I removed the idea of a life score because I wasn’t using it. I added the ability to park a Project, since not everything that I stop working on is complete. I can take notes on projects. I have a journal. Plus, since I figured out how to have Felicity write her brief each morning, she’s added a call to action to write in the Journal. It’s become useful.

In fact, it’s become indispensable.

I then asked Claude to review the whole thing and suggest ways to improve it. There were a bunch, so I said, “Sure, why don’t you do all of them?” So now I have Lists, where I can drop a link, a note, or even a picture. I can record my mood and energy level for the day. I can plan meals, store recipes, and keep a grocery list in the Kitchen.

I can even manage Tasks outside of my Baron Fig Confidant notebook.

I initially didn’t want to do this, because I was using that notebook. But as I find myself looking to SeanOps for more and more information and using it like a command center, it seems like it’s a good idea. I set up four quadrants for to-do items (Me, Writing, Home, and Work), along with a list of five things I need to get done today. If an item has been in the system for three days, Felicity asks me about it. I’ve been using it for a few days now, and it’s working well.

Then, something happened. Well, two things happened. Both in the same week. Both in October.

At work, my employer announced that, starting in November, they will not be using Anthropic and Claude.

This presented a problem. Since my SeanOps dashboard is an artifact hosted within Claude, I won’t be able to access Claude or my dashboard from my work computer. Since a primary use case of SeanOps is to help me prepare for my job, this is…not ideal. I was annoyed for a day. Then I got busy.

The second was Jerad Hill, whose dashboard was the primary inspiration for SeanOps. Jerad wrote about building his awesome dashboard in June: Using Claude Code to Build the Life Management App I’ve Been Searching For and again in July with The Problem Wasn’t the Tool—It Was the Decisions Behind It. His advice wasn’t to copy his dashboard, but to take the idea to Claude, explain how you work, and have it build you a dashboard. And that’s what I did.

Well, that and get it to turn my dashboard into an actual web app, which I’ve been procrastinating on for some time. Early in October, I told Claude: “I am not a developer. I am a copywriter who is good at following instructions and has a passing familiarity with HTML. I am vaguely familiar with Supabase and Vercel, having read other people’s experience using them. I own a number of URLs that could be pointed to a new web app, but I am quite apprehensive about getting started.”

Rather than talk me out of it, Claude broke the job down into phases.

Phase 0 was to essentially create the skeleton of the website that included all of the pages of SeanOps (minus Felicity, as having her talk to me via an LLM like Claude or ChatGPT seemed to be a step too far for me). This took a while to get underway and started on October 8.

To give you an idea of how unfamiliar I am with coding, when I say Claude held my hand through it, I mean it told me I’d need a GitHub account, and when I said I didn’t have one, it told me how to set one up. It also explained what a repository was, why it needed to be private, and what it should be called. It also had me set up a project in Supabase to hold the database, explained what a database table was in Supabase terms, and then had me set up an account in Vercel, which would turn the repository into a website.

You might have gathered from this that I didn’t actually write any of the code. You’d be right. Claude did all of that. I simply told Claude what I wanted (which it had, given that it had built SeanOps), created the accounts, clicked all of the right buttons (and a number of wrong ones), and reported the errors to Claude, which it then explained to me and gave me instructions on how to fix them.

Anyway, at the end of that weekend we had Phase 1 ready. A couple of days later, we went through all the phases and finished the remaining bits and pieces. SeanOps is now fully operational. It's everything the September artifact version was and more. In fact, that September version is now the legacy version.

Shudder. I can hear web developers rolling their eyes in unison.

Anyway, check it out. It includes Today, Tasks, Projects & Goals, Routines, Journal, Calendar, Lists, Kitchen, and more. It also includes a database of more than 900 quotes, one provided each day, a list of goals, a place to input vitals, and a Christmas gift list. Oh, and you can add recipes to the Kitchen.

Felicity wasn’t part of SeanOps 1.0.

One of the things I wanted most from SeanOps was to have Felicity talk to my data, not the open web, but my data. I wanted to be able to ask her “Hey, Felicity, what do I have drifting?” Or “Hey, what did I write about in my journal last month?” Jerad has this, and it was the last thing I needed to make SeanOps perfect.

Working with Claude this week, we built a brand-new version of Felicity. This is a brand-new version of Felicity, but she has the same dry humor I baked in. Anyway, I’ve hooked up a large language model (LLM) to Felicity, and it’s amazing!

Right now, Felicity can talk about SeanOps and this website. She can tell me what’s on my calendar, what tasks I have, and even comment on my last few blog posts. She doesn't go out to the web. I’m not there yet, but I’ve got a few ideas in my back pocket about what else she might be able to do. That’s for SeanOps 3.0 down the road.

But let’s think about this for a minute. Last September, I was downloading a file every morning to work with it. Now, I type in a URL and a beautiful web application appears. It pulls its data from a database that only I have access to (there is a password), and I can access it from any of my devices. I can ask Felicity questions and she tells me what I want to know.

And I built it.

I know that’s a weird thing to say because I didn’t learn how to code or anything. I just needed to learn how to explain things well, and it wasn’t that hard. Claude did all the work. I just needed to tell it what to do. And it only took me a month. Jerad, who has a development background, built his in a couple of days, but I don’t have that background, so it took me a little longer. But it’s done.

To quote a very old movie, “It’s alive!”

If you’ve been on the fence about using Claude or ChatGPT or Gemini or any of the dozens of other LLMs that are out there now, let me give you a little nugget of wisdom. It won’t build it for you, but it will build it with you, as long as you’re willing to learn. And if you don’t know what a word means, just ask. I didn’t know a lot of words, but I asked, and now I’m getting there.

And I had Felicity by my side the entire time. Even when I didn’t.

Be seeing you.

· Permalink · filed under Essays