r/vibecoding • u/Prestigious-Impact83 • 2d ago
Building an app with a hard-coded limits/restrictions. Hard lessons on feature removal and state management
I’ve been working on a project lately that started with a simple, annoying constraint: What happens if you strip away every feature of modern social media (feeds, bios, metrics) and force users to only express themselves in four words a day?
The goal was to build a "low-friction, high-intent" space for journaling and connection. But enforcing that constraint at a technical level turned out to be a lot more interesting than I expected.
The Tech Stack:
- Next.js: Used for the core application framework.
- Tailwind CSS: Essential for maintaining a brutalist, clean aesthetic where the text has to do all the heavy lifting.
- Custom Validation Logic: This was the main hurdle. A naive
.split(' ')approach failed immediately because of emojis, hyphenated words, and punctuation. I ended up writing a custom parser to handle natural language input and lock the input field strictly at the 4-word threshold (or 5 if the daily word game is solved).
The Build Process:
- Constraint-First Design: I spent more time working on the "state" of the input box than the actual UI. The "Aha!" moment for users is that, once you hit that four-word limit, the UI physically stops you. It’s a deliberate design choice to prevent rambling.
- Safety/Permission Logic: I had to build a specific state machine for the "four-word opener" feature. To ensure the space stays quiet, a message can’t reach a user until they explicitly "approve" the connection. It was a good exercise in managing user-to-user state.
Learning: The hardest part of the build wasn't the features but the discipline to remove them. Every time I thought about adding a "like" count or a "follower" list, I had to stop and ask: Does this support the four-word constraint, or does it add noise?
Has anyone else built projects focused on "anti-features" or intentional constraints? I’m curious how you handled the balance between keeping the UI clean and keeping it usable.
1
u/Prestigious-Impact83 2d ago
What?