DEV Community

Joaquín Di Toma
Joaquín Di Toma

Posted on

I built an overengineered micro-application with an MCP: an ephemeral link generator.

As a CTO, I code less and less every day.

That’s just how it goes.

But the itch to build? Still there. Strong as ever.

We’re living in a weirdly beautiful moment where you can take almost any idea and push it to production in no time. And for now—just for now—those of us who’ve been doing this for a while still have an edge. We move faster. We know where things break.

So I set myself a challenge:

Build a series of micro SaaS products.
Ship multiple times per quarter.
Give them a shared aesthetic universe.

Something playful. Slightly absurd.
Somewhere between Bluey and “Nice Guys Love You - Vol. 4” on YouTube.

The first one (that I won’t talk about)

The first product is already live.

It’s a SaaS. It’s working.
It’s even generating a pretty interesting liability.

And it’s completely boring.

So let’s skip it.

The real problem

We recently got ISO 27001 certified at my company.

That meant:

endless documentation
process improvements
security everywhere

And also a very practical problem:

How do you share sensitive information internally?

a credit card
an API key
a private note
or just a stupid meme you don’t want lingering forever
Enter onetap.sh

So I built onetap.sh.

A dead-simple ephemeral link generator.

Paste text or an image
Get a link
It can be opened once
Then it’s gone

No ads.
No extra buttons.
No friction.

How it works

Pretty straightforward stack:

Redis → stores the message
Messages are encrypted (even I can’t read them)
When the link is opened:
the message is deleted from memory first
then rendered in the DOM
PostgreSQL → user management
Vercel → everything else

The important detail:
the data is gone before you even see it.

Why does this even have an MCP?

Honestly?

It probably doesn’t need one.

I just wanted to build it.

Maybe there’s a future where vibe coders are building apps and the AI goes:

“You need ephemeral links? Use onetap.”

Good enough for me.

Top comments (0)