In January, I helped host the ESI Hackathon at Frontier Tower in San Francisco. It was a wonderful experience where I learned a lot about the inner workings of hackathons and how to organize them. I also got to meet a lot of talented coders and see some amazing projects.
However, there was one massive hickup that I could not ignore as we reflected on what went well and what we could improve for the next one: judging was rough. The submission software had a confusing UI for adding project links and demos, and it had bugs that prevented some people from updating their submissions. More importantly, we had many judges arrive late, a lot of submissions to get through, and a brittle excel spreadsheet system for tracking team scores. This lead to a lot of confusion and lack of communication towards competitors who were unsure of what to do or where to go.
When we finally began judging, it was nearly two hours later than planned. We had split judging between two rooms, and someone was close to missing their flight. We knew this process had to go.
Inspiration Strikes
On the drive back to Santa Cruz after the two day hackathon, I was carpooling with a few friends including Cyrus Correll. At one point, I had the random idea that it would be really cool if we did a King-of-the-Hill style hackathon where people had to continuously build to stay on the podium. As we discussed more, we realized that this could be a really fun way of competing and simultaneously fix the issues we had with judging. It would give builders realtime feedback on how they stacked up against the competition, and it would allow judges to begin judging far earlier.
Cyrus and I both fell in love with the idea, but then…nothing. We both got busy with school and the idea sat on the back burner for a few months. We wanted to build it for an upcoming hackathon, but just never had the time to properly sit down and scope out the project. But two weeks ago, I ran into Cyrus at PieFi. We got to chatting and decided to take a run at the idea again.
Planning Hillpost
We knew that we wanted Hillpost to be a hackathon platform that replaces batch judging with a live, continuous leaderboard where teams submit updates, judges score in real time, and rankings shift dynamically throughout the event. What we didn’t know yet was how it should look, what the brand should feel like, or which features actually mattered. I figured it was best to get started and the ideas would start flowing once we had something we could play with.
The tricky thing about having a broad idea is all of the questions around how to execute it. Historically, I have not worked a ton in the web frontend world, but I am starting to more and more. However, I could tell that we needed to get the development of Hillpost kicked into gear before the fire of inspiration had dissapated entirely. This meant we were going to be doing plenty of agentic building.
Regarding our stack, I took some lessons from building ProxLock and decided to use Clerk for authentication. For our backend/database, I chose Convex because it is easy for agents to work with and it is super quick to spin up. Finally, I made the UI lifting relatively easy with Next.js and the vision of deployment on Cloudflare workers.
With everything in place, I started building v0 of what would become Hillpost two weeks from then.
Building Hillpost
As students, we benifit tremendously from the GitHub Student Pack. One of the benefits is a generous usage credit for GitHub Copilot. I started the initial concept by creating a repository and then prompting copilot to create a basic alpha product for me. I explained the tech stack, the idea, and the general features we wanted. It chose Claude Opus 4.6 for the task.
From there I worked on iterative prototypes generated by Claude, Codex, and Gemini via Google’s Antigravity editor and GitHub Copilot until it was in a useable state I could share with Cyrus. I found the ability to open issues and assign Copilot to be incredibly helpful. It gave visibility and tracking without having to keep my computer on the entire time. This allowed us to iterate and ideate on the go, prompt the AI with detailed instructions, and then try out a PR as soon as I got back to my desk.
However, this was not without its challenges. We found its ability to handle UI to be lacking—especially on mobile, where layouts would frequently break or feel inconsistent between pages. Personally, I leveraged Antigravity as an editor to manually fine tune the UI/UX before PRs were shipped.
Once we had a working prototype, I handed off the UI to Cyrus who did a phenominal job reworking it to give hacker vibes as well as light mode support. This brought it from a vibe coded feeling project to a real product we could be proud to deploy. Next, I built out the backend to have support for all the judging things we wanted including feedback from judges and a what’s new panel for builders to allow a dialogue between the two parties.
I worked to keep the information secure and judges annonymous so competitors cannot see which judges gave which scores or feedback. This reduces the potential for difficult feelings and personal attacks. I also added in several tools for moderation for organizers so they have easy control over the details of projects as well as team names. Meanwhile, Cyrus was focused on the social share aspect of the site. He leveraged Claude to create a really cool feature that would generate images for each hackathon and the project/leaderboard being linked. This made sharing the hackathon on social media much easier and more engaging, since the leaderboards and basic project details are made public via link.
To wrap up version one, I added support for Sponsors to be displayed on the overview page with their logo, banner, and links. This makes Hillpost feel more like the one stop shop for hackathon submission.
Finally, in full hackathon fashion, we wanted to make sure that Hillpost was open so anyone could build on what we have made, share issues or ideas they have for Hillpost, or contribute back to the project. I am incredibly proud to announce that Hillpost is entirely free to use and fully open source on GitHub. You can check out the project here.
What’s Next for Hillpost?
One of the ideas Cyrus and I have been wanting to add since the beginning is announcement support. Obviously, that is a large undertaking, but it would make Hillpost a much more complete package for hackathon organizers. To make this much easier to do, Cyrus is chasing down the possibility of integrating Luma and their announcement system into the site. This would provide for an already prolific hackathon announcement system to appear in more places without being overwhelming. We also want to look into adding direct support for image uploading to the site, but at a moment without any funding, this idea is on pause.
I am truly hopeful for the impact Hillpost can make. If it works the way we hope, no hackathon should ever have to start judging two hours late again. I am excited to see where this project goes next and the next generation of judging that can come from it.
Happy Building!