DEV Community

Cover image for I Finally Built the Dev Opportunity Radar Website ❤️
Hemapriya Kanagala
Hemapriya Kanagala

Posted on

I Finally Built the Dev Opportunity Radar Website ❤️

DEV Weekend Challenge: Passion Edition Submission

This is a submission for Weekend Challenge: Passion Edition

📌 TL;DR

I found this challenge on the very last day, so I knew I probably wouldn't finish before the submission deadline. That means I don't expect this project to be considered, but I still wanted to finish it because this challenge gave me the push I needed to finally build something I'd been planning for weeks.

The result is the first version of the Dev Opportunity Radar website. I built it with the help of Google AI Studio, and later in this post I've shared exactly how I used AI throughout the project.

It's not replacing the weekly DEV editions. Those are still the heart of the project and will continue every Friday. This website simply makes everything easier to browse, search, and revisit as the series continues to grow.

Even if this submission isn't eligible, I'm genuinely grateful to the DEV Team for creating the challenge. Without it, I probably would have kept saying, "I'll build the website next week." Instead, I finally did, and I'm really happy I can now share it with all of you 💙


Table of Contents


What I Built

If you've been following Dev Opportunity Radar, you probably know that every Friday I publish a new edition on DEV where I share grants, fellowships, hackathons, startup programs, learning resources, open source initiatives, communities, and other opportunities that I come across while researching. The goal has always been simple:

Help people discover opportunities they otherwise might have missed.

As the series grew, I started noticing something. After seven editions, there were already more than thirty opportunities and resources spread across multiple articles. Every new edition made the collection more valuable, but it also made it harder for someone to go back and find something they'd seen before. Maybe they remembered a fellowship but couldn't remember which edition it was in. Maybe they were only interested in hackathons or wanted to browse learning resources. Finding those opportunities meant opening several DEV posts and searching through each one.

That's when I realized Dev Opportunity Radar needed something more than a weekly article. It needed a place where everything could live together in a way that was easy to browse, search, and revisit.

So I built the Dev Opportunity Radar website.

Looking back, I think that's what this challenge was really about for me. It wasn't just building a website. It was finally making time for a project I'd genuinely cared about for a long time.

I do want to make one thing very clear though, because it's important to me. This website is not replacing the weekly DEV editions. Those editions are still the heart of the project, and I'll continue publishing a new one every Friday just as I always have. The website simply complements them by making it easier to explore previous editions, discover opportunities by category, search for something specific, and find new additions without having to jump between multiple articles.

While building it, I wanted to think beyond just the opportunities themselves. That's why I also created pages like Start Here, About, My Philosophy, FAQ, Community Finds, Reader Updates, and the complete archive of every edition. My hope is that whether someone has been reading since Edition #1 or has only just discovered Dev Opportunity Radar today, they'll feel welcome and find it easy to explore everything the project has to offer.

More than anything, I wanted the website to reflect the same care that goes into writing each weekly edition. Something simple, accessible, easy to navigate, and built with the community in mind.


Demo

I've embedded the website below, so you can explore it directly without leaving this page.

If you'd prefer to open it in a new tab, bookmark it for later, or come back to it after reading this post, you can also visit it here: https://devopportunityradar.ai.studio


Code

GitHub logo hemapriya-kanagala / dev-opportunity-radar

Helping developers discover opportunities they otherwise might have missed.

Dev Opportunity Radar

Dev Opportunity Radar Website

Helping people discover opportunities they otherwise might have missed.

The Dev Opportunity Radar website is the home of the project.

Every Friday, I publish a new edition of Dev Opportunity Radar on DEV Community, where I share grants, fellowships, hackathons, startup programs, learning resources, open source initiatives, communities, and other opportunities that I think deserve more attention.

As the series continued to grow, I realized it was becoming harder for readers to find opportunities from previous editions. Someone might remember a fellowship but not the edition it appeared in. Someone else might only be interested in hackathons, while another person wanted to browse learning resources.

I wanted to make that experience easier.

That's why I built this website.

It brings every edition together in one place and makes it easier to browse opportunities, search previous editions, discover Community Finds, celebrate Reader Updates, and explore everything the…





How I Built It

I'll be honest, I only found out about this challenge on the very last day.

By then, I knew there probably wasn't enough time to build everything before the submission deadline. At first, I almost decided not to participate. Then I remembered that I'd been telling myself for weeks that I wanted to build a website for Dev Opportunity Radar. This challenge ended up being the push I needed to finally stop thinking about it and start building.

Because time was so limited, I used Google AI Studio to help develop the website. I want to be completely transparent about that, and I've explained in more detail how I used AI in the next section.

As I started building, I realized this project was much bigger than I had imagined. Dev Opportunity Radar had already reached seven editions, with more than thirty opportunities and resources, Community Finds, Reader Updates, and several pages I wanted to include, like About, My Philosophy, FAQ, and Start Here. Organizing all of that into a website that felt simple and easy to navigate took far more thought than I expected.

A lot of my time wasn't spent adding features. It was spent making decisions.

How should someone who has never heard of Dev Opportunity Radar understand the project within a few seconds? How should opportunities be organized so they're easy to browse? What happens if someone searches for something and there aren't any results? How can the website stay welcoming instead of feeling cluttered? How do I make sure it works well on different devices and is accessible to as many people as possible?

Those were the kinds of questions I kept coming back to while building.

Looking back, I'm actually really glad I built the website now instead of waiting. If I had continued publishing weekly editions without creating a proper home for everything, organizing all of those opportunities later would have become much more difficult. Starting at seven editions already felt like a lot of work, so I'm thankful this challenge gave me the motivation to begin before the project grew even bigger.


AI Usage

Since this challenge allows the use of AI, I wanted to be completely transparent about how I used it while building this project.

The website was developed with the help of Google AI Studio. I also used AI to proofread and improve some of the writing on the website. English isn't my first language, so I sometimes rely on AI to help me fix grammar, improve clarity, or make sure what I'm trying to say reads naturally.

I know AI-assisted development is a topic that people have different opinions on, and I completely respect that. Some people love using it, while others prefer not to, and I think both viewpoints are valid.

For me, AI wasn't a replacement for thinking or making decisions. It was a tool that helped me build and iterate faster, especially since I only discovered this challenge on the last day.

The part that took the most time wasn't asking AI to generate code. It was thinking through the experience I wanted to create. Deciding how the information should be organized, how someone new would understand the project, how the website could stay simple as more editions are published, how to make it accessible, and how to make sure it felt welcoming instead of overwhelming. I spent a lot of time refining those decisions, rewriting content, reorganizing pages, and making small improvements until everything felt right.

I wanted to be open about all of this because transparency matters to me. Whether someone chooses to use AI or not is a personal decision, but I believe it's important to be honest about how it was used.


What I Learned

Building this website reminded me that creating something people genuinely enjoy using isn't only about adding features. A lot of the work happens in the small decisions that most people never notice.

I found myself spending a surprising amount of time thinking about the wording of a button, the order of sections on a page, what someone should see first, how an empty search result should feel, and how to make sure the website never became overwhelming. Those details might seem small on their own, but together they shape the entire experience.

I think that's one of my favorite parts of building. Not just making something that works, but making something that feels thoughtful and easy to use. I hope that care comes across when you explore the website.


I'd Love Your Feedback

This is only the first version of the website, and I know there's still plenty of room to improve.

If you have any suggestions, notice something that could work better, or have an idea for a feature that would genuinely make discovering opportunities easier, I'd really love to hear from you. Some of the best improvements to Dev Opportunity Radar have come from conversations with the community, and I'd love for the website to grow the same way.

My goal isn't to add features for the sake of it. I'd much rather spend time building things that are actually useful and make the experience better for everyone.


Thank You

Before I wrap up, I just want to say thank you.

Thank you to the DEV Team for creating this challenge. Even though I discovered it on the very last day, it ended up being exactly the motivation I needed to finally build something I'd been thinking about for weeks.

And thank you to everyone who's supported Dev Opportunity Radar since the very first edition.

Whether you've shared an opportunity, suggested a resource, left a thoughtful comment, pointed out something I missed, or simply taken a few minutes to read an edition each Friday, you've helped shape this project more than you probably realize.

This website may have been built by one person, but it certainly doesn't feel like a one-person project. The encouragement and support from this community have been a huge part of why I've kept going, and I'm genuinely grateful for that.

I hope this website makes discovering opportunities a little easier, and I hope it becomes a place you'll enjoy coming back to as the project continues to grow.

As always, thank you for reading, thank you for your support, and thank you for being part of this journey.

See you this Friday with Dev Opportunity Radar #8 💙

Top comments (11)

Collapse
 
omarafifi profile image
Omar Afifi

Congratulations on the launch, @hemapriya_kanagala 🎉
What you’ve managed to build in such a tight timeframe is incredibly inspiring. Turning your weekly editions into a centralized, searchable hub is a massive value-add for the community👏
Looking forward to Edition #8 this Friday🙌

Collapse
 
hemapriya_kanagala profile image
Hemapriya Kanagala

Thank you so much, Omar! That really means a lot 😀

One of the biggest reasons I wanted to build the website was exactly that, to make it much easier for people to rediscover opportunities from previous editions instead of searching through multiple posts. I'm really glad that came across.

And thank you for following the series! Looking forward to sharing Edition #8 with everyone this Friday.

Collapse
 
dannwaneri profile image
Daniel Nwaneri

The way you wrote "even if this submission isn't eligible, I'm genuinely grateful" . That's a rough place to build from, finding out on the last day. But you still gave Dev Opportunity Radar a real home instead of letting it wait another few weeks and that's yours regardless of what the judges do with it. Edition #8 this Friday, see you there 💙

Collapse
 
hemapriya_kanagala profile image
Hemapriya Kanagala

Thank you so much, Daniel! That really means a lot 🧡

I won't lie, I was disappointed when I realized I'd found the challenge so late, but looking back I'm actually glad it happened because it finally pushed me to build something I'd been putting off for weeks.

No matter what happens with the challenge, I'm just happy I finally built the website and that it can keep growing alongside the series.

And yes, see you this Friday for Edition #8 😀

Collapse
 
dannwaneri profile image
Daniel Nwaneri

👊👊

Collapse
 
magopredator profile image
Fenix

Nice work shipping a real home for the series instead of letting it wait another few weeks. A few
pointers from one builder to another if you keep iterating:

- The site is currently a Google AI Studio prototype on a *.ai.studio domain. That subdomain is
Google's, not yours, so it can disappear if they retire the project — consider exporting it and hosting
it on your own repo + a stable host so the archive survives long-term.
- The deployed page sends script-src 'self' 'unsafe-inline' 'unsafe-eval'. The unsafe-eval +
unsafe-inline combo is risky: if any curated content ever gets a script injected, the browser will
happily run it. Tightening that CSP (drop unsafe-eval, use hashes/nonces) is a quick, high-value
hardening step.
- I didn't see a public repo linked. For a community project it helps a lot to publish the source so
others can audit what the AI generated and contribute fixes.

On that last point: it's worth running the code through a static analyzer before each release. Free
options like SonarCloud (quality + security gates) or Bandit (for Python) catch whole classes of issues
automatically. Tools like Repomapper can also scan a repo for weaknesses. None of it replaces review, but
it catches the boring stuff fast. Keep going — Edition #8 💙
Enter fullscreen mode Exit fullscreen mode

"Thanks so much for the detailed feedback and the encouraging words! I really appreciate you taking the time to review the setup. Your pointers on exporting the project from AI Studio to a stable host and tightening the CSP make total sense to avoid long-term risks. I'll definitely look into integrating a static analyzer like SonarCloud or Bandit for future releases too. Thanks for helping make Edition #8 better! 💙"

  1. Cómo corregir la CSP (unsafe-eval y unsafe-inline)El problema principal es que unsafe-inline permite ejecutar cualquier script escrito directamente en el HTML, y unsafe-eval permite crear código desde texto (lo que abre la puerta a inyecciones XSS). Para solucionarlo de forma rápida:Elimina las directivas arriesgadas: Modifica tu configuración de Content Security Policy (CSP) retirando 'unsafe-inline' y 'unsafe-eval' de la sección script-src.Usa Hashes o Nonces: Si necesitas ejecutar algún script en línea imprescindible, añade un hash criptográfico (como sha256-ValorBase64...) o un atributo nonce aleatorio generado por sesión en la etiqueta del script, declarándolo explícitamente en tu CSP.Formato en Meta Tag (Frontend): Si manejas la CSP desde tu HTML estático, el formato corregido debería lucir similar a esto:html
    Usa el código con precaución.Formato en Servidor (Recomendado): Lo ideal es inyectarlo directamente como una cabecera HTTP de respuesta desde tu proveedor de alojamiento:httpContent-Security-Policy: default-src 'self'; script-src 'self';
    Usa el código con precaución.

  2. Recomendaciones de hospedaje gratuito y establePara migrar tu proyecto fuera de la infraestructura temporal de Google AI Studio y asegurar que el archivo sobreviva a largo plazo, estas opciones son las más fiables, gratuitas y fáciles de integrar con un repositorio de GitHub:Vercel: Excelente si estás utilizando frameworks modernos de frontend (como Vite o Next.js). Ofrece despliegues automáticos al hacer push a tu rama principal, HTTPS nativo y configuraciones de seguridad muy sencillas.Netlify: Una alternativa fantástica a Vercel para proyectos estáticos o aplicaciones web estructuradas en JavaScript. Permite inyectar cabeceras personalizadas de CSP muy fácilmente mediante un archivo netlify.toml.GitHub Pages: Si tu sitio es puramente HTML, CSS y JavaScript estático, alojarlo directamente en el mismo repositorio de GitHub del proyecto comunitario es la opción más transparente para que otros puedan auditar el código fuente y colaborar.

Collapse
 
magopredator profile image
Fenix

Y en modo oscuro es muy recomendable, porque yo por ejemplo solo me gusta el modo oscuro...para evitar tanto brillo y tanta exposicion a la luz azul. Gracias y felicidades nuevamente. Aloha :)

Collapse
 
hemapriya_kanagala profile image
Hemapriya Kanagala

Thank you so much, Fenix!

I really appreciate you taking the time to explore the website and write such a detailed review. Feedback like this is incredibly helpful, especially since this is only the first version.

You've brought up several good points. I was already planning to move it to its own GitHub repository, and your suggestions around hosting and security have given me a few more things to look into as I continue improving the project.

And thank you for mentioning dark mode too! I was actually working on it today. If I manage to finish it soon, I'll come back and leave another comment under this thread to let you know.

Thanks again for all the thoughtful suggestions and encouragement. It really means a lot. Aloha 😀

Thread Thread
 
magopredator profile image
Fenix

:D

Collapse
 
hemapriya_kanagala profile image
Hemapriya Kanagala

I'd love your feedback on the website 💙

Whether it's something you liked, something that felt confusing, or a feature you think would make it more useful, please let me know. This is only the first version, and I'd love to keep improving it with the community's suggestions.

Thanks again for taking the time to check it out!

Collapse
 
javz profile image
Julien Avezou

Amazing! Congratulations! Looking forward to the next edition.