loganstewart.dev logo

Essay

Post Vacation work - AI Development for Web Application

December 8, 2025 3 min read

I came back from vacation and completed a AI update for Miskowin.

This past month has been a mix of rest and quiet innovation — and I’m proud to share what I’ve been working on.

Normally, I try to keep momentum going by diving into development during my off weeks. This time around, I was on vacation — and while I didn’t get to complete a full sprint, I did come back with something meaningful: a new feature powered by AI, and a deeper dive into the practicalities of running AI in a real-world system.

🚀 AI-Powered Goal Enhancements in Miskowin

I've enhanced Miskowin, our progress planning and goal-tracking platform, with AI-driven recommendations for Progress Plans, Goals, Goal Tasks, Tasks, and Discussion Points.

For me, one of the most frustrating parts of goal setting was phrasing — how do you write a goal that’s specific, actionable, and truly useful? I’ve found that even seasoned planners struggle with clarity.

So, I introduced an AI feature that generates enhanced, clearer versions of goals — not just for reporting, but to help me focus on what needs to be done. The AI helps reframe vague goals into ones that are measurable, time-bound, and outcome-oriented — something that actually helps the team move forward.

🔧 How It Works (Behind the Scenes)

To make this work without relying on expensive cloud APIs, I built a console application that:

  • Scans the database for items flagged to trigger AI enhancement
  • Runs them through a local LLM (LMStudio) running on my machine
  • Saves the generated recommendations directly into the relevant fields

This runs as a Dockerized service, triggered every hour — a lightweight, cost-efficient way to experiment with AI integration without incurring ongoing fees.

Why local? I don’t want to pay for API calls — and I don’t know how often this will be used. By running locally, I gain control over costs, performance, and data privacy. Plus, it’s a great way to learn hands-on about Docker, local AI deployment, and service monitoring.

🖥️ User Experience & Feedback

On the UI side, each item now has a flag to trigger the AI, and users can see the recommended updates directly in the interface. I added controls to Accept, Reject, or Dismiss the AI-generated suggestions — giving users agency over the recommendations.

One small issue: every time you save an item, the recommendation engine triggers again. That feels wrong — it should only run when explicitly requested. But I released it anyway — because I wanted to ship something, and learning from real-world use is just as important as the code itself.

It’s live now — and yes, there are a few bugs. But that’s the point: shipping early, learning fast.

An unhandled error has occurred. Reload 🗙