Let me get this out of the way first: I had zero Python experience.

I'm a self-taught web developer. My background is in PHP — the language people love to hate but quietly powers a huge chunk of the internet. I'd spent years building web apps, shipping features, and getting comfortable in my stack. But I kept watching the AI engineering space explode, and I felt like I was standing on the sidelines.

So I decided to jump in. Not with a tutorial. Not with a course. I learn by building, so I picked a project and went for it.

The Idea

photo of bulb artwork

Photo by AbsolutVision on Unsplash

I didn't want to build another generic chatbot. The world has enough of those. Every AI course starts with "build a chatbot" and it's always the same thing — a blank text box connected to GPT that responds with the same polished, neutral tone.

I wanted something fun. Something where the AI has a personality.

That's how Not Another Chatbot was born. An app where you chat with AI personas of famous fictional characters — Yoda, the Terminator, Marvin the Depressed Robot, Wonder Woman, and twenty others. Each one has a unique voice, a unique way of responding, and a personality that comes through in every message.

The Name Says It All

text

Photo by Alena Jarrett on Unsplash

I called it "Not Another Chatbot" because that's exactly the point. This isn't a productivity tool. It's not a coding assistant. It's not a search replacement. It's a fun experience built around character-driven conversations.

The name is also a reminder to myself: don't build what everyone else is building. Build something that makes people smile when they see Yoda respond to their message with inverted syntax and cryptic wisdom.

The Tech Stack (and Why)

black and white number print

Photo by Jason Leung on Unsplash

Here's what I chose and why:

  • FastAPI — I only needed an API, not a full web framework. Coming from PHP, I didn't want the overhead of Django. FastAPI was exactly what the name says: fast to set up, and it's an API.
  • React + TypeScript — My comfort zone. I'm a web developer, so this was home base while everything else was new.
  • Tailwind + shadcn/ui — I wanted the frontend to look polished from day one, not like a typical hackathon project.
  • SQLAlchemy + SQLite — Simple, no infrastructure needed, good enough for a first version.
  • OpenRouter (free models) — I didn't want to spend money experimenting. OpenRouter's free tier let me test different models without pulling out my credit card.

What I Didn't Know

brown wooden blocks on white table

Photo by Brett Jordan on Unsplash

When I started, here's what I had never done:

  • Written a single line of Python
  • Used FastAPI or any Python web framework
  • Implemented streaming responses (more on why this matters in PHP later)
  • Worked with SQLAlchemy or Alembic
  • Integrated with any LLM API

That's a lot of unknowns. But that's the point of building — you learn by closing the gap between what you know and what you need to know.

What's Coming Next

White letter beads spell out next on pink background

Photo by Sasun Bughdaryan on Unsplash

This is the first post in a series where I'll break down everything I learned:

  • Learning Python and FastAPI in a week
  • Streaming AI responses with Server-Sent Events
  • Creating character personalities using LLM-generated prompts
  • Building the frontend
  • Deployment (the hardest part)
  • Lessons learned and what I'd do differently

If you're a web dev thinking about exploring AI engineering, I hope this series shows you that the barrier is lower than you think. You don't need to be a Python expert. You don't need a deep learning background. You just need to pick a project and start building.

Let's go.