<p>Last time we played SMTP sorcery to conjure passwordless login—beautiful in theory, hell in practice. Every mail provider now demands a paid, registered domain; slip through, and your welcome email lands in Spam. So I ripped off the bandaid: back to email + password. Crazy? Absolutely. But the mission’s unchanged.</p><p>That's not even the worst part! The worst part is the abyss yawning beneath my screen—endless tweets mocking my data-starved soul as Nigeria’s telcos jack prices sky-high. ₦1,000 for 3.5 GB in 48 hours; what a fucking joke. I recharge, only to find my motivation drained faster than my balance. I wake up each morning to a blinking cursor and no muse to feed it.</p><p>And yet, in the darkest scrolls of my social media feed—amid memes, political outrage, and endless hot takes—something shifted. Suddenly, instead of doom-scroll despair, I saw builders building, live-streams of code shipping, threads on design patterns igniting impassioned debates. Iron sharpens iron, right? So I leaned in, slapped open my laptop, and felt that spark again: the urge to craft, to ship, to carve meaning out of code.</p><p>Wait! Before we even continue, what the heck is he building that he needs smtp magic, a domain or an auth <a class="tc-blue" href="https://flow.Before" rel="noopener noreferrer" target="_blank">flow.Before ↗</a> we dive into what I’m building—and how it’s helping me stare down every distraction, from data-hike rage to unrelenting self-doubt—let me confess: this project is as much therapy as it is product. Each feature is a rampart against the noise. Every line of TypeScript is a foothold.</p><p>Remember that beauty-and-the-beast SMTP setup? It lived in a table called magic_links, with columns for user_id, token, and expires_at. Pretty—until it wasn’t. So I</p><p>dropped the old table. Removed migrations</p><p>Tossed every smtp-related file, code and folder out of my codebase .</p><p>Committed the void—felt like pulling off a Band-Aid.</p><p>This moment hurt, but databases are like relationships: if the foundation’s rotten, you rebuild.</p><p>I have to scaffold a new auth structure for our good ol' email and password authentication, install required dependencies like bcrypt, scaffold new DB structure.</p><p><br/></p><p> I know I need a signup endpoint, but I don’t want just any signup endpoint—I want one that feels inevitable, like the internet needed me to write it.</p><p><br/></p><p>“So,” I murmur to myself, voice echoing off empty walls, “first off: what’s the bare minimum here? I need someone’s email and password. Of course I need to hash that password—plain text is for amateur hour.” I crack my knuckles and think, *bcrypt*, because that library’s been in my head since I first learned what ‘salt rounds’ were. Twelve rounds feels like the sweet spot—enough friction to keep attackers honest, but not so slow that I’m sobbing into my beer.</p><p><br/></p><p>I picture the user hitting “Submit” on that signup form. “POST,” I tell the code in my head, “that’s your signal. You listen for requests, you parse out JSON, and you validate: no empty email, no blank password. We’re not babysitting clowns who forgot to fill out a field.” It’s almost musical—JSON in, validation, then hashing. Each step is a note in the riff.</p><p><br/></p><p>And of course, I imagine a little Prisma client humming in the background: “I take that hashed password, I store it alongside your email, and I give you back a shiny `userId`.” I lean back, hiccup. “That’s it. That’s all we need.” I can see the flow in my mind like a conveyor belt in a Tesla factory—streamlined, elegant, unavoidable.</p><p><br/></p><p>I laugh to myself, thinking how this could’ve taken me days when I started, but now it’s muscle memory. The real genius isn’t in the code itself—it’s in stripping away every extra line, every unnecessary abstraction, until signup is pure. And that’s when I swivel in my chair, take another swig of beer, and whisper, “Ship it.”</p><p>Life’s a combustible mix of rage, hope, and code. We’ve faced the abyss—data hikes, unrelenting algorithms, self-doubt—and fought back with feature flags and clean code. This project isn’t just another SaaS; it’s my way of proving that even when the world screams “disconnect,” we can build something that connects</p>
At the end of each month, we give out cash prizes to 5 people with the best insights in the past month
as well as coupon points to 15 people who didn't make the top 5, but shared high-quality content.
The winners are NOT picked from the leaderboards/rankings, we choose winners based on the quality, originality
and insightfulness of their content.
Here are a few other things to know
1
Quality over Quantity — You stand a higher chance of winning by publishing a few really good insights across the entire month,
rather than a lot of low-quality, spammy posts.
2
Share original, authentic, and engaging content that clearly reflects your voice, thoughts, and opinions.
3
Avoid using AI to generate content—use it instead to correct grammar, improve flow, enhance structure, and boost clarity.
4
Explore audio content—high-quality audio insights can significantly boost your chances of standing out.
5
Use eye-catching cover images—if your content doesn't attract attention, it's less likely to be read or engaged with.
6
Share your content in your social circles to build engagement around it.
Contributor Rankings
The Contributor Rankings shows the Top 20 Contributors on TwoCents a monthly and all-time basis.
The all-time ranking is based on the Contributor Score, which is a measure of all the engagement and exposure a contributor's content receives.
The monthly score sums the score on all your insights in the past 30 days. The monthly and all-time scores are calcuated DIFFERENTLY.
This page also shows the top engagers on TwoCents — these are community members that have engaged the most with other user's content.
Contributor Score
Here is a list of metrics that are used to calcuate your contributor score, arranged from
the metric with the highest weighting, to the one with the lowest weighting.
4
Comments (excluding replies)
5
Upvotes
6
Views
1
Number of insights published
2
Subscriptions received
3
Tips received
Below is a list of badges on TwoCents and their designations.
Comments