Lessons Learned: What I'd Do Differently

This is the post where I'm supposed to wrap everything up neatly. List the wins, acknowledge the lessons, point to the future. I'll do that — but first, let me be blunt about something.

If I started this project over today, I wouldn't use Python.

Why I'd Choose Rust Instead

brown and blue abstract painting

Photo by Mohammad Alizade on Unsplash

Python got the job done. But as I wrote in Part 2, coming from PHP meant constantly fighting whitespace, implicit variable assignment, and import path confusion.

Rust gives me back the things I missed from C-style languages — explicit types, strict scopes, and a compiler that catches errors at build time rather than runtime. It's more verbose, sure, but I'll take verbosity over silent failures any day.

Would Rust have been the right choice for a first project? Probably not. The learning curve would have killed the momentum. Python was the right tool for learning. But now that I understand the concepts, Rust is where I'd go next.

What AI Coding Tools Are Actually Good For

Computer screen displaying code with a context menu.

Photo by Daniil Komov on Unsplash

I used opencode throughout this project, and I want to share an honest assessment because I think the current narrative around AI coding tools is misleading.

What they're great at:

  • Boilerplate. Generate me a FastAPI endpoint with standard CRUD operations. Done in seconds.
  • Project scaffolding. Set up the directory structure, create config files, initialize the database connection. Fast and reliable.
  • Remembering syntax you don't know yet. "How do I define a Pydantic model?" — instant answer, no documentation diving.

Where they fall apart:

  • Actual implementation logic. The moment you need nuanced behavior, error handling specific to your use case, or debugging help — they confidently suggest things that don't work.
  • Understanding context. They don't know your codebase. They don't know your constraints. They generate code that looks right but doesn't fit.
  • Streaming, async, and stateful logic. The hard stuff. The stuff that actually matters.

My workflow became: use AI to generate the skeleton, then implement the real logic myself. The tools saved me hours on setup. They couldn't save me on anything that required thinking.

What I'm Proud Of

what are you made of?

Photo by Erwan Hesry on Unsplash

I built a full-stack AI app from scratch in eleven days, starting from zero Python experience. That's not a humble brag — it's just a fact. The app works. Characters respond with distinct personalities. Streaming works. The frontend looks polished. It's deployed on a real domain.

But what I'm most proud of isn't the code. It's that I listed my bugs publicly. The personality fade. The memory loss. The issues with high temperature settings. I put them on the site itself for anyone to see. That felt more honest than shipping a "perfect" demo that falls apart under real use.

The Timeline

a set of stone steps with pink flowers on them

Photo by Bui Phuc on Unsplash

  • 1 week — Learning Python and FastAPI from scratch
  • 4 days — Building and implementing the actual project
  • Several painful days — Deployment on a VPS

Eleven days from idea to working backend. That's the power of learning by building instead of learning by watching tutorials.

What's Next

text

Photo by Matt Taylor on Unsplash

This project is a stepping stone. I wanted to explore AI engineering, and I've barely scratched the surface. Here's where I want to go:

  • Web search — Let characters access real-time information
  • Tool use — Give the AI functions it can call to take actions
  • RAG (Retrieval-Augmented Generation) — Grounding responses in a knowledge base
  • Autonomous systems — Agents that can work independently toward a goal

Each of these is a rabbit hole. Each one represents a massive jump in complexity from "send a message, get a response." And that's exactly what makes them exciting.

Advice for Web Devs Exploring AI

a white robot with blue eyes and a laptop

Photo by Mohamed Nohassi on Unsplash

If you're a web developer who's been watching the AI space from the sidelines, here's what I'd say:

Just build something. Don't take a course. Don't read a book. Pick a project — any project — and start. You'll learn more in a week of building than in a month of studying. The concepts only make sense when you're wrestling with real problems.

Pick boring tools you can learn fast. I chose FastAPI because it was simple. I chose OpenRouter free models because they cost nothing. I chose SQLite because there was nothing to configure. Every "boring" choice removed a barrier and let me focus on the actual learning.

Be honest about what's broken. Ship it with bugs. List them publicly. People respect honesty more than perfection — especially in a learning project.

The barrier is lower than you think. I went from zero Python to a deployed AI app in under three weeks. If I can do it, so can you.

Thanks for Reading

graphical user interface

Photo by Kevin Butz on Unsplash

This series documented my first real dive into AI engineering. It's messy, imperfect, and full of bugs I haven't fixed yet. But it's real, it's shipped, and I learned more than I thought possible.

If you want to check out the project, chat with Yoda, or tell Marvin how pointless everything is — the site is live. And if you're building something similar, I'd love to hear about it.

Now excuse me while I go learn Rust.