Meridian started as a simple task manager. Then I integrated Claude AI, and everything changed β the product, the architecture, and how I think about building software. Here's an honest account of what went well and what nearly broke me.
The Original Idea
Meridian was supposed to be a straightforward productivity app β set goals, create tasks, track progress. Clean, simple, useful. The AI integration was almost an afterthought. Then I started thinking: what if the app didn't just track what you were doing, but actually understood why you were doing it?
Choosing Claude Over GPT
I evaluated both OpenAI's GPT-4 and Anthropic's Claude for the coaching interface. The decision came down to one thing: context handling. Meridian needed an AI that could hold the full context of a user's yearly goals, their daily task list, their completion rate, and their current blockers β and then give advice that felt genuinely personalised, not generic.
Claude handled longer context windows more gracefully in my testing, and the responses felt more thoughtful and less robotic. For a coaching interface where tone matters as much as accuracy, this was the deciding factor.
The Architecture Challenge
The hardest part wasn't calling the API β that's just a fetch request. The hard part was deciding what context to send. Sending everything on every request would be expensive and slow. Sending too little would make the AI's advice feel disconnected from reality.
I settled on a structured context object that included: the user's top 3 active goals with completion percentages, today's task list with statuses, the last 3 days of completion data, and any tasks the user had flagged as blocked. This gave Claude enough to be genuinely useful without bloating every request.
What Surprised Me
The AI responses were sometimes too good. Users in testing started treating Meridian's AI coach as a source of truth for life decisions. I had to add a subtle disclaimer and think carefully about the prompts I was sending β because the framing of your system prompt shapes the entire personality and boundaries of the AI's responses. Prompt engineering is a real skill and it took me several iterations to get it right.
The Performance Problem
AI API calls are slow compared to a database query. On first load, waiting 2β3 seconds for the coaching panel to populate felt jarring. I solved this with a skeleton loading state and by pre-fetching the AI response in the background when the user logs in, so by the time they navigate to the coaching tab, the response is already there.
What I'd Do Differently
I'd design the AI integration from day one rather than bolting it on. The data model I built for goals and tasks was retrofitted to feed the AI context object, which led to some awkward data transformations. Building with the AI in mind from the start would have produced cleaner architecture.
The Lesson
AI doesn't make your product smart. It makes your product feel human. The intelligence comes from how you structure the problem, what context you provide, and how carefully you craft the experience around the AI's output. The API call is 5% of the work.