DEV Community

Cover image for I Won a DEV Challenge, Then Built an App to Flex About It Properly ๐Ÿ’ช
Varshith V Hegde
Varshith V Hegde Subscriber

Posted on

I Won a DEV Challenge, Then Built an App to Flex About It Properly ๐Ÿ’ช

Hey DEV community! ๐Ÿ‘‹

So here's the tea โ˜• - I recently won the Real-Time AI Agents Challenge (cue confetti ๐ŸŽ‰), and like any self-respecting developer, my first instinct was to share this epic victory with the world. But then reality hit harder than a JavaScript undefined error...

The Problem: Sharing Wins Shouldn't Be This Hard! ๐Ÿ˜ค

Picture this: You win a challenge, you're over the moon, you want to shout it from the digital rooftops. But what do you share? A plain old link to the winners' announcement? That's about as exciting as watching paint dry in dark mode.

I tried sharing the link, but let's be honest - links on social media are like vegetables at a birthday party. Technically good for you, but nobody's getting excited about them. What I really wanted was something visual, something that screamed "LOOK AT ME, I DID A THING!" without actually having to scream.

The "Aha!" Moment: If You Want Something Done Right... ๐Ÿ› ๏ธ

That's when it hit me - why not build a tool that transforms boring winner announcement pages into gorgeous, shareable cards? Because apparently, my solution to every problem is "build an app for it." ๐Ÿ˜…

Enter the DEV Challenge Winners Showcase - a tool that's more extra than a triple-shot espresso but exactly as necessary!

What This Bad Boy Does ๐Ÿš€

The Magic Formula:

  1. Drop in TWO DEV.to URLs โ†’ The app goes "Hold my coffee" โ˜•

    • Winners announcement: https://dev.to/devteam/congrats-to-the-winners-<challenge-name>
    • Original challenge page: https://dev.to/challenges/<challenge-name> Dev Challenge Winners
  2. AI-powered parsing โ†’ Gemini AI reads both pages like it's the latest gossip
    Parsing

  3. Beautiful card generation โ†’ Out comes a shareable masterpiece
    Card Generation

  4. Customization galore โ†’ Because one size fits none
    Cutomize

Features That'll Make You Go "Ooh!"

  • Smart Winner Detection: Feed it any DEV.to winners' announcement, and it'll extract all the winners faster than you can say "npm install"
  • Badge Hunting: Automatically finds and grabs the official winner badges (because badges are basically digital trophies)
  • Theme Variety: Four themes because moods change:
    • Modern: For when you want to look professional on LinkedIn

Modern

  • Retro: For maximum nostalgia points (complete with pixel fonts!)

retro

  • Vertical: Perfect for Instagram stories (because vertical is the future)

vertical

  • Minimalist: For when less is more (but more is also more)

Minimalist

The Tech Stack: Flexing Just a Little ๐Ÿ’ช

  • React + TypeScript: Because I like my code like I like my coffee - strongly typed
  • Google Gemini API: The AI doing all the heavy lifting while I take credit
  • Tailwind CSS: For when you want to style things fast and look good doing it
  • html-to-image: The unsung hero converting DOM to PNG magic

The Real MVPs: The Details That Matter โœจ

The Gemini Integration

The coolest part? I'm using Gemini to parse unstructured HTML from BOTH the winners post AND the challenge page to extract:

  • ๐Ÿ† Winner details from the announcement post
  • ๐ŸŽ–๏ธ Official badge images from the challenge page

It's like having a super-smart intern who never complains about reading messy HTML for breakfast AND can hunt down badges like a digital detective.

// Simplified version of the magic happening
const winnersData = await gemini.parseWinnersPost(winnersUrl);
const badgeUrl = await gemini.findChallengeBadge(challengeUrl);
// *chef's kiss* - structured JSON + badge URL comes back
Enter fullscreen mode Exit fullscreen mode

The Customization Modal

This thing is more customizable than a Subway sandwich:

  • Toggle any element on/off
  • Pick colors like you're Bob Ross
  • Adjust dimensions like you're interior decorating
  • Upload custom badges because branding matters

Why I Built This (The Real Talk) ๐Ÿ’ญ

Look, I could say it was for the greater good of the DEV community (which it partially is), but let's keep it ๐Ÿ’ฏ - I wanted a cooler way to share my win, and apparently, I can't do anything the simple way.

But here's the thing - it turned out pretty useful! Now anyone can turn their DEV challenge victories into Instagram-worthy content. It's like a glow-up filter, but for achievements.

The Result: Winner Cards That Actually Get Shared ๐ŸŽจ

Instead of sharing a bland link that gets scrolled past faster than terms and conditions, you get a beautiful, personalized card that makes people stop and go "Wait, what's this about?"

It's the difference between saying "I won a thing" and showing a gorgeous visual that says "I won a thing AND I have the design skills to prove it."

Try It Out! (Pretty Please) ๐Ÿ™

Head over to devchallengewinners.varshithvhegde.in and give it a spin! I've even included demo URLs so you can try it without having to win a challenge first (though winning challenges is pretty fun too).

What's Next? ๐Ÿ”ฎ

I'm thinking of adding more themes, maybe some animations, possibly support for other platforms... or maybe I'll just use it to celebrate every small win in life. "I successfully compiled on the first try" cards, anyone?

The Moral of the Story ๐Ÿ“–

Sometimes the best tools come from the most personal frustrations. I wanted to share my win better, so I built a whole app. That's either dedication or mild obsession - you decide! ๐Ÿ˜„

But hey, now we all have a way to make our DEV achievements look as awesome as they feel. And honestly, isn't that what development is all about? Solving problems, one over-engineered solution at a time.


P.S. If you end up using this tool to share your own wins, tag me! I live for that kind of validation. Also, if you find bugs, please report them gently - my feelings are more fragile than a CSS layout without flexbox. ๐Ÿฅบ

P.P.S. Yes, I realize I built an entire application just to make sharing links prettier. No, I don't regret it. Yes, this is perfectly normal developer behavior. ๐Ÿ˜Ž


What's the coolest tool you've built to solve a "first world developer problem"? Drop it in the comments - I love seeing creative solutions to ridiculous problems!

Top comments (2)

Collapse
 
alifar profile image
Ali Farhat

๐Ÿ™Œ ๐Ÿ™Œ ๐Ÿ™Œ

Collapse
 
suponova profile image
Super Jeo

I wish i could use it .
Probably have to win a challenge for this