From a Question to a Product: I Built the Same App Twice
Not every project starts with a business plan. Some start with a question you couldn't stop thinking about.
There is a question I kept coming back to during my second semester. Not a calculus problem, not a DSA assignment. Just a plain, uncomfortable question that I couldn't find a satisfying answer to anywhere.
What makes us human?
I didn't want to Google it. I wanted to ask people. Real people, not philosophers behind paywalls. So I did the only thing that made sense to me at the time: I decided to build a website.
The First Attempt
Here is the honest version: I built it during the break between my first and second semester. I did not know what a backend was, not really. I knew websites were made of HTML, CSS, and JavaScript. That was the full extent of my knowledge. Node.js was a name I had heard. Express was just a word.
But curiosity does not wait for prerequisites.
I pieced it together from documentation, Stack Overflow threads, and a lot of console.log debugging. A Node.js server, an Express backend, MongoDB for the database, vanilla JavaScript on the frontend. No framework. No design system. No plan.
I shared the link with a few people. Some of them actually answered.
That should have been the end of it. A small experiment, a curious weekend project. But a curious mind does not stop at "it works."
So I added categories. Then a trending page. Then an about page. Then an analytics dashboard. Then an admin panel so I could manage questions without touching the database directly. Then an email newsletter system so people could subscribe and get notified when new questions dropped. Then subscriber management. Then rate limiting. Then security headers.
By the time I finished my second semester, the thing had grown into something that genuinely surprised me when I read my own README.
And then I stopped. Just like that. One month of building, then silence.
What I Saw a Year Later
Six months passed. December 2025, I opened the project again.
The first thing I noticed was the homepage. Dark background, purple accents, clean enough. Okay, not bad.
Then I clicked into the Categories page.
Purple gradient. White cards. Completely different from the homepage, like a different person had designed it.
Then I clicked into a category.
Fully white background. Blue and orange accents. Not a single visual element that matched anything I had seen on the previous two pages.
Then I opened a question.
Dark background again. Purple button. Back to where we started, as if the last two pages never happened.
Four pages. Three completely different color schemes. No hover states on buttons. No error messages when something went wrong, just silence. No responsive layout, so on a phone it looked like the site was having a breakdown. The admin authentication was a single secret string passed in a query parameter.
A year earlier, that had looked wonderful to me. I remember feeling proud.
That is not a bad thing. It means I learned something in those six months.
Starting Over
I did not refactor it. Refactoring felt dishonest, like trying to fix a house built on the wrong foundation. I deleted the frontend and started from scratch.
This time I had something I did not have before: I had seen enough bad UI to know what I did not want. I had never formally studied design. I still haven't. But that categories page with its purple gradient sitting next to a white page sitting next to a dark page had taught me something no course could: consistency is not a style choice, it is a basic act of respect for the person using your product.
So I built a landing page first. A real one, with a hero section and a clear hierarchy. Then I thought about mobile. Then I thought about what happens when a user does something unexpected.
The rebuild became Morix.
What Morix Actually Is
On the surface it looks like the same idea: a platform for exploring moral dilemmas and thought-provoking questions. And it is. But underneath, almost nothing is the same.
Users get anonymous profiles. No email required, no tracking beyond what's necessary. The profile exists for one reason: to remember what you have already answered, and to build a picture of how you think.
Because Morix tracks something called the Moral Flexibility Index. Every question you answer is tagged as logical, empathetic, or chaotic. Over time, a pattern emerges. The adaptive engine uses that pattern to decide what question to show you next. It stops being a list of dilemmas and starts feeling like a conversation.
There are leaderboards. There is a comment system with voting and replies and profanity filtering. There is an admin moderation queue so user-submitted questions go through review before they go live. Every question has its own OG image generated server-side, so when you share a link it actually looks like something worth clicking.
The question that started all of this, the one I typed into a blank page during a semester break when I barely knew what a backend was, is still there. You can visit it right now:
What This Was Actually About
Morix never made money. It was never supposed to.
V1 was a first semester student asking a question he could not stop thinking about. V2 was the same person, six months later, who had seen enough to know the difference between a site that works and a site that feels right.
The gap between those two things is not a framework or a library. It is just time, and the willingness to look at your own work honestly.
Some projects are startups. Some are portfolios. Some are just a question you needed to ask out loud, and a platform felt like the most honest way to ask it.
V1 is still live at MORAL-DELIMMA if you want to see where it started. V2 is at MORIX.
ENGAGE / POST REACTIONS
FEEDBACK / POST-READ FEEDBACK
FOLLOW / SUBSCRIBE TO FUTURE POSTS
Get email alerts when I publish content on this topic. No spam, ever.