<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 the month, we give out prizes in 3 categories: Best Content, Top Engagers and
Most Engaged Content.
Best Content
We give out cash prizes to 7 people with the best insights in the past month. The 7 winners are picked
by an in-house selection process.
The winners are NOT picked from the leaderboards/rankings, we choose winners based on the quality, originality
and insightfulness of their content.
Top Engagers
For the Top Engagers Track, we award the top 3 people who engage the most with other user's content via
comments.
The winners are picked using the "Monthly Engagers" tab on the rankings page.
Most Engaged Content
The Most Engaged Content recognizes users whose content received the most engagement during the month.
We pick the top 3.
The winners are picked using the "Monthly Contributors" tab on the rankings page.
Here are a few other things to know for the Best Content track
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