<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: morty</title>
    <description>The latest articles on DEV Community by morty (@morty649).</description>
    <link>https://dev.to/morty649</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3784271%2F74b8c765-ab56-43bf-b0fa-82c8e8f8cf0a.jpg</url>
      <title>DEV Community: morty</title>
      <link>https://dev.to/morty649</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/morty649"/>
    <language>en</language>
    <item>
      <title>HackFinder: A Location-Aware Hackathon Discovery Tool for the Developer Community</title>
      <dc:creator>morty</dc:creator>
      <pubDate>Sun, 01 Mar 2026 12:00:35 +0000</pubDate>
      <link>https://dev.to/morty649/hackfinder-a-location-aware-hackathon-discovery-tool-for-the-developer-community-2loj</link>
      <guid>https://dev.to/morty649/hackfinder-a-location-aware-hackathon-discovery-tool-for-the-developer-community-2loj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/weekend-2026-02-28"&gt;DEV Weekend Challenge: Community&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Community
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;HackFinder&lt;/strong&gt; for the hackathon community — students, indie developers, and small teams who regularly search for hackathons to participate in.&lt;/p&gt;

&lt;p&gt;I actively take part in hackathons myself and often help friends find events. One recurring frustration was how scattered everything is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Listings are spread across multiple platforms
&lt;/li&gt;
&lt;li&gt;Filtering by location and domain is tedious
&lt;/li&gt;
&lt;li&gt;Comparing online vs in-person events takes manual effort
&lt;/li&gt;
&lt;li&gt;Beginners don’t know where to start
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HackFinder was built to reduce that friction.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;HackFinder&lt;/strong&gt; is a lightweight browser application delivered as a Chrome extension (popup). It organizes hackathons into a fast, searchable interface so users can find &lt;strong&gt;Nearby, Online, Far, and Other&lt;/strong&gt; events in seconds.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Domain filters (AI/ML, Web3, HealthTech, FinTech, GameDev, etc.)
&lt;/li&gt;
&lt;li&gt;Geolocation + reverse-geocoding fallback (OpenStreetMap Nominatim)
&lt;/li&gt;
&lt;li&gt;Distance-based categorization

&lt;ul&gt;
&lt;li&gt;Nearby ≤ 200km
&lt;/li&gt;
&lt;li&gt;Far ≤ 2000km
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;2-hour local cache using &lt;code&gt;chrome.storage.local&lt;/code&gt;
&lt;/li&gt;

&lt;li&gt;Preference for official organizer links (resolving MLH event pages when possible)
&lt;/li&gt;

&lt;li&gt;Lightweight popup UI for quick access
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The goal was simplicity, speed, and usefulness.&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Short screen recording (60s):
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://drive.google.com/file/d/1i4shJug1irHr8CR1t1hq6lj02SD_jaoL/view?usp=drive_link" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1i4shJug1irHr8CR1t1hq6lj02SD_jaoL/view?usp=drive_link&lt;/a&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;GitHub Repository:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/morty649/HackFinder-extension/" rel="noopener noreferrer"&gt;https://github.com/morty649/HackFinder-extension/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: The current submission build uses MLH and official APIs only. Support for additional listing sources such as Devpost  was prototyped but disabled to respect platform terms and ensure compliance.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Motivation
&lt;/h3&gt;

&lt;p&gt;This project started from a personal problem. I was manually browsing multiple sites to find hackathons, comparing locations, checking domains, and filtering online vs in-person events. It felt inefficient.&lt;/p&gt;

&lt;p&gt;HackFinder was my attempt to streamline that workflow into a single click.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Vanilla JavaScript
&lt;/li&gt;
&lt;li&gt;Chrome Extension Manifest V3
&lt;/li&gt;
&lt;li&gt;Popup-based UI architecture
&lt;/li&gt;
&lt;li&gt;MLH event parsing &amp;amp; normalization
&lt;/li&gt;
&lt;li&gt;OpenStreetMap Nominatim for geocoding
&lt;/li&gt;
&lt;li&gt;Haversine formula for distance calculation
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;chrome.storage.local&lt;/code&gt; for 2-hour caching
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI-Assisted Development
&lt;/h3&gt;

&lt;p&gt;To build efficiently within a weekend, I leveraged AI coding assistants including &lt;strong&gt;OpenAI Codex&lt;/strong&gt; and &lt;strong&gt;Claude Code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I used them to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refactor parsing logic
&lt;/li&gt;
&lt;li&gt;Improve location fallback robustness
&lt;/li&gt;
&lt;li&gt;Strengthen categorization flow
&lt;/li&gt;
&lt;li&gt;Debug edge cases in HTML parsing
&lt;/li&gt;
&lt;li&gt;Optimize caching structure
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than generating everything blindly, I used these tools as collaborative coding partners — iterating on architecture, validating logic, and refining user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Engineering Decisions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Focused the submission on MLH and official API-friendly sources to ensure responsible data handling.
&lt;/li&gt;
&lt;li&gt;Disabled additional listing connectors in the submission build for compliance.
&lt;/li&gt;
&lt;li&gt;Preferred resolving MLH event pages to official organizer links.
&lt;/li&gt;
&lt;li&gt;Kept the UI lightweight and framework-free for fast popup rendering.
&lt;/li&gt;
&lt;li&gt;Designed clear categorization to make discovery intuitive.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why This Fits the Challenge
&lt;/h2&gt;

&lt;p&gt;HackFinder directly serves a community I belong to — hackathon participants.&lt;/p&gt;

&lt;p&gt;It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduces friction in event discovery
&lt;/li&gt;
&lt;li&gt;Saves time
&lt;/li&gt;
&lt;li&gt;Makes filtering intuitive
&lt;/li&gt;
&lt;li&gt;Helps beginners navigate opportunities
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built within a weekend, it demonstrates practical execution, thoughtful design, and a real understanding of the community’s needs.&lt;/p&gt;




&lt;p&gt;Feedback, issues, and PRs welcome:&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/morty649/HackFinder-extension/" rel="noopener noreferrer"&gt;https://github.com/morty649/HackFinder-extension/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
