I am 19 years old. I set out to build a production-grade e-commerce system from scratch. No Laravel. No React. Just raw PHP, MySQL, and a lot of st...
For further actions, you may consider blocking this person and/or reporting abuse
Learning the importance of version control the hard way is a rite of passage for almost every developer. Relying on AI tools like Copilot is great for velocity, but as you experienced, it absolutely cannot replace the safety net that a proper Git workflow provides. Glad you were able to recover and rebuild the system even stronger than before.
"A rite of passage" is the perfect way to describe it. It’s a painful lesson, but I can guarantee I’ll never start another project without git init ever again. Losing 40% of your work in a split second changes how you look at the "Save" button forever.
This is the kind of post more beginner developers need to read. Everyone talks about “shipping fast with AI,” but very few talk about the damage AI can do when you let it touch architecture-level decisions without understanding the system yourself.
The biggest lesson here honestly wasn’t “don’t use frameworks” — it was:
git initbefore anything else 😭Losing 40% of a backend because of a bad AI refactor is painful, but rebuilding it probably taught you more about system design, security, and backend architecture than any tutorial could.
Also respect for implementing things like:
That “build the engine first, paint the car later” line is genuinely solid advice for anyone building serious products.
The "no framework" war stories are always educational. The thing that usually bites teams later isn't the initial framework-free velocity — it's idempotency on payments, race conditions on inventory decrement, and the migration tooling that frameworks quietly solve. I'd love to hear which of those hit you hardest. Any chance you ended up re-implementing a mini-framework internally by the end (routing layer, ORM-ish abstraction, migration runner)?
To avoid those exact traps, I actually ended up building what feels like a 'security-first mini-framework' from scratch.
To handle inventory and payments, I implemented strict SQL row-locking (FOR UPDATE) and transactional idempotency. For the 'mini-framework' layers:
Routing: Custom clean-route layer with .htaccess orchestration.
Security: Layered hashing (Argon2id with bcrypt fallback), CSP with 128-bit nonces that refresh on every request, and XSS protection built into the core engine.
Anti-Abuse: A hybrid CAPTCHA (reCAPTCHA v3 + v2 fallback) combined with a custom-built challenge and mandatory 6-digit email OTPs for high-value actions.
DevOps: I built PowerShell-based migration scripts and CI/CD pipelines for smoke testing to replace what a framework usually handles.
The hardest part wasn't the code—it was ensuring that every alert, SMTP status change, and security log was intentional. It’s framework-less, but definitely not 'structure-less.'
This post hits harder than most “AI coding” discussions because it shows the part people usually hide: recovery.
A lot of developers are treating AI like an architect when it’s really just a very confident assistant. The scary part is that AI-generated code often looks correct even when it completely breaks system constraints underneath.
The biggest takeaway for me wasn’t “frameworks are bad” — it was that deep system understanding matters more than tooling. Whether you use Laravel, raw PHP, Node, or Go, if you don’t understand transaction flow, auth lifecycle, concurrency, and rollback strategy, eventually something will break in production and AI won’t save you.
Also:
That’s genuinely one of the best pieces of advice for beginner devs building large systems.
Respect for being transparent about the Git mistake too. Almost every serious developer has a painful “I should’ve committed that” moment at some point 😭
The rebuild probably taught you more about backend engineering than 20 tutorials combined.
This is a great reminder that AI tools can break production code fast. Solid insights on version control, security, and scalable ecommerce backend design.
It’s a scary realization how fast a tool meant to help can turn into a "delete" button. The lesson for me was that AI is a great assistant for writing a function, but a terrible partner for restructuring an entire system.
Brutally honest story of building an ecommerce system without frameworks. Great insights on AI risks, backend architecture, Git mistakes, and real-world security lessons.
"Brutally honest" was the only way to write this. I think it’s important to share the failures, not just the finished products, especially with how much "perfect" AI-generated code we see online these days.
Great real world lesson on building an ecommerce system without frameworks. The Git mistake and AI refactor issue highlight why version control and architecture matter in scalable backend development.
Exactly. Building without a framework is like taking the covers off the engine while it's running—it's messy and dangerous, but you finally see how the pistons move. Architecture isn't just about clean folders; it's about making sure those 238 files actually talk to each other without collapsing.
pushing back slightly - the lesson is not "no frameworks = real engineer." AI generates plausible code but has no model of your system constraints. that gap bites with or without a framework.
I Agree with you that the lesson is about technical intentionality, not just 'No Frameworks but the reason I chose to build framework-less is that frameworks provide a layer of abstraction that often masks those system constraints. When an AI generates a 'plausible' controller in Laravel, it’s easy to overlook the underlying race conditions or session vulnerabilities because the framework handles the heavy lifting.
By removing the framework, I forced the 'system constraints' to the surface. I had to manually architect the row-locking, the CSP nonce lifecycle, and the idempotency logic. That process bridged the gap between 'plausible code' and 'predictable systems' in a way that wouldn't have happened if I were just filling in framework boilerplate. It wasn't about being a 'real engineer'; it was about becoming the person who actually understands why the constraints exist in the first place."
right - that's what ai exploits. it writes confident laravel controllers because the pattern is in training data, not because it understood your constraints. going raw forces the modeling step.
Raw 🔥
Thanks for the energy! It was a fiery process to get through, but the system is much stronger because of it.
what about adding AI features in it like Algolia API, Melei API ?
what about payment integration ?
what about its security ? like permanant banned and customer support ai based ?
what PDOs you use and from which strategy ?
what was the biggest blunder you made ?
can you tell me about commerza features ?
First time you shared your project & your mistakes as well Hats Off
I think sharing the fails is just as important as the wins. It’s the best way for all of us to learn faster and avoid the same traps.
Has you used other AI tools like Claude Code or Cursor ?
I’ve been using Cursor heavily lately and it’s a game changer for workflow. I haven't jumped into Claude Code yet, but it’s definitely on my radar to test next!
Kudos 🎉
Appreciate the kudos! It’s been a wild ride, and I’m just glad the project survived the "AI butchery" phase.