In my last article I said I vibe coded LMSyncd, our school management system, and that I wasn’t going to pretend otherwise. A few people asked me what that actually means in practice. So here is the honest version. Not the “I built a SaaS in a weekend with AI” version. The real one.
First, the honest status
LMSyncd is not finished. I want to say that upfront because most AI success stories skip this part.
Right now it’s running in two schools and one coaching centre. All three are using it for free. In return they use it every day, and they tell me what’s broken. And things are broken. Every week I get a message like “this button does nothing” or “we can’t finish this step”.
That’s not a failure, that’s the deal. But it’s very different from the screenshots people post online.
How I actually built it
I used Claude for basically the whole thing. I described what a school needs, it wrote the code, I reviewed it, tested it, and pushed back when something was wrong. Over and over.
I’ve been a web developer since 2019, so I’m not new to this. But the amount it produced was honestly insane. Student records, attendance, fee billing, grading for CBC and other boards, teacher payroll, a school store, transport. Stuff that would have taken me many months on my own.
And it looked done. That’s the dangerous part.
Where AI let me down: it builds the screen, not always the whole feature
Here’s the pattern I kept hitting. The AI builds something that looks complete. There’s a page, a form, a button, nice layout. You click around and it seems fine. Then a real person uses it properly and it just… doesn’t go through.
Some real examples from LMSyncd:
- The school store (POS) wasn’t picking up items. The screen was there, the products were there, but adding things to a sale didn’t actually work.
- The starter setup wasn’t proceeding. When a new school signs up, there are first steps to complete. Some of those steps just didn’t move to the next one.
- Creating a class was broken. Which for a school system is kind of the most basic thing you can do.
None of these were crazy bugs. They were missing pieces. The AI did the visible part and left out some of the wiring behind it. It doesn’t tell you “hey, I didn’t finish this”. It just moves on confidently.
How I fixed them (and why knowing the basics still matters)
For each one, I had to go into the code myself, follow what was happening and find where it stopped. That part AI couldn’t do for me, because I first had to understand what was wrong.
Then, honestly, I still told the AI to fix it. But now I could tell it exactly what was missing and where. That’s the difference. If I didn’t know how a database is structured, how data flows between the screen and the backend, how the logic should work, I would have been stuck asking “it doesn’t work, please fix” again and again.
This is the part people get wrong about AI coding. It doesn’t remove the need to understand software. It moves you from typing code to checking code. You become the reviewer, the tester and the person who knows what “done” actually means.
Where AI genuinely surprised me
It’s not all complaints though. At one point I just told it: bring in something new, something a school would actually want that I haven’t thought of.
It came back with student ID cards and vehicle scheduling for the school vans. Routes, stops, which kids are on which van. I hadn’t planned either of those. And they turned out to be some of the nicest parts of the system.
So it’s not just a fast typist. When you give it room, it can actually be a decent product thinker too. You just have to check its work like you would check anyone’s.
What I’d tell anyone building with AI
- “It looks done” is not done. Click through every flow yourself, start to finish, like a real user would.
- Get real users early. My pilot schools found things I never would have. Giving it free to a few schools in exchange for honest feedback was the best decision I made.
- Learn the fundamentals anyway. Data structures, databases, how a request moves through an app. That’s what lets you direct the AI instead of begging it.
- Treat AI like a very fast employee. Great output, needs review. You’re still responsible for what ships.
- Ask it for ideas, not just code. Some of my favourite features came from asking it to surprise me.
Where LMSyncd is going
The plan is simple. Keep fixing what the pilot schools find, make every flow actually work end to end, then open it up properly. If you run a school or a coaching centre in Kenya or Pakistan and want to try it while it’s still being shaped, you can find it here. You’ll get the same deal: free, and I’ll actually listen.
AI made it possible for me to build something this big on the side. But it didn’t make it finished. That part is still on me.
— Umeir
