© Ujjawal Solanki | All Rights Reserved
Localhost felt done. Then someone asked for the live link — and my first VPS deploy taught me everything the hard way.
I built login three times before JWT finally clicked. Here is the messy path and the simple model I use now.
My schema looked fine in demos. Then real data arrived, pages slowed down, and I had to rethink MongoDB design.
Tutorials make CRUD look easy. Real users, double clicks, and bad data taught me what “done” actually means.
My first Express API returned JSON and still felt broken. Cleaning the contract changed everything.
My apps kept breaking as they grew. A clearer MERN structure finally made changes feel safe again.
I ignored middleware until one unprotected route burned me. Now it is the first habit I teach.
Generic chatbot answers failed on my own docs. RAG turned my notes into something I could actually ask.
Polling made the app feel live and the server cry. WebSockets were the calm fix.
My first WebRTC demo failed live. That awkward silence taught me the real checklist.
I was tired of “works on my machine.” Docker and a simple CI path made deploys less scary.
© Ujjawal Solanki | All Rights Reserved