Blockchain Hackathon Tips for Building a Winning Submission
The Spring 2021 Chainlink Virtual hackathon is now well underway, with thousands of dApp developers building a wide variety of projects that are pushing innovation forward in the smart contract ecosystem.
With the midway check-in point just behind us, many teams and individual hackers are now looking to refine their projects into polished submissions that will capture the judges’ attention and win a share of the $125k+ pool of hackathon prize bounties. In this article, we’ll walk through some of the nuances of making a winning hackathon submission and point out some small things that can be implemented to make your project stand out from the competition.
Make Sure You Submit
When it comes to hackathons in general, submitting is by far the most important part. Even if you can’t address all the points in this article, or even if you haven’t completed your project, you should still submit what you have. Don’t be afraid to put yourself or your team’s work out there. Submitting and getting feedback will give you more confidence going forward for future hackathons. You may even find that others see your idea and reach out to you after the hackathon to work together on refining it into a feature-complete, mainnet project.
Your User Interface Is Your First Impression
The user interface can be thought of as the face of your hackathon submission. A polished, slick user interface will always help your submission stand out from others so you can capture the judges’ attention. Front-end user interface and user experience design are not always developer strong suits, especially among smart contract developers, whose strengths often lie in the lower-level blockchain layer.
If you or your team aren’t confident in producing a polished front end for your submission, you can try to find a new team member who can solely focus on building a user interface for your project via the `#find-teammates` channel in the Chainlink Discord, or via other Chainlink social channels such as Twitter or Reddit. This approach allows your team to separate the front-end and back-end tasks so each member can focus on what they know best.
If you’re working on a project individually and want to build a user interface but aren’t sure where to start, there are some commonly used template starter projects such as Create-Eth-App and Create-React-App that allow you to quickly implement a single-page user interface that you can then customize and integrate to your backend smart contracts.
The user interface doesn’t have to be extensive. It should be simple, intuitive, and allow others to successfully interact with your smart contracts and other backend components. If you’re struggling to get some artwork for your user interface, don’t be afraid to reach out to the Chainlink community on Twitter, Reddit, or Discord. We have some amazing artists in the community, who are happy to help produce artwork for a Chainlink hackathon submission.
Easy-to-Follow Code and Documentation
The code is obviously the most important deliverable in a hackathon submission. Apart from it being complete and working, there are a few things that help a submission stand out and look like a real-world mainnet-ready project.
Code can be thought of as a piece of art, so it should be presented in the best way possible. It should be clean, well-indented, and easy to follow. Be sure to include comments to help judges and other developers follow along.
When it comes to the actual code repository for your submission, less is more. Don’t include unnecessary files and folders such as library folders, and be sure to use environment variables or environment files for passwords and keys. Additionally, some of the more technically-minded judges will appreciate the little things, such as incorporating tests, or using developer tools such as the Chainlink Truffle box, the Chainlink Hardhat box, or the Chainlink Eth-Brownie Mix.
For the documentation, each submission should have a well-formatted and easy-to-follow README file. This is very important, as it’s the first thing judges and other developers will see when they look at your code repository. Here are a few things to include in your README:
- Project overview and description
- Link to demo video
- Link to deployed live demo (if you have one)
- Architecture diagram (if you have one)
- Easy-to-follow steps to building, deploying, and running each part of the code
If you aren’t sure on how to present this information, feel free to view the raw markup code of README files in previous winning submissions as a guide.
Record a Video of Your Project in Action
The video is an extremely important part of a hackathon submission, because it essentially shows off your project to the hackathon judges and other developers. It proves that the project is real, and that it works.
At the very minimum, the video should be a 3-5 minute length clip that shows off your submission, with someone talking through each step and explaining what they’re doing as they interact with the project. Take note that judges will be watching many of these videos, so you should add elements that make the video stand out, such as quick video intros, graphics, and music.
The majority of the video should be focused on your project, but don’t be afraid to have some fun with it. Creativity and humour will appeal to the judges. For the walkthrough, if you or your team aren’t confident in speaking on a recorded video, you can always reach out to the Chainlink community and ask someone to record a scripted voiceover for you.
Run a Live Demo
Go above and beyond by offering the judges and other developers a live working demo of your submission. This allows them to browse through the user interface and get a much more personal feel for your project that you can’t get by just watching the video or looking at screenshots.
If you aren’t sure where you can host your live demo, there are a number of free or trial-based hosting options. You can also go the fully decentralized route and use IPFS and ENS to host your demo. If you require Chainlink infrastructure to host things such as jobs or external adapters, you can reach out to the `#node-operator-requests` channel in the Chainlink Discord and ask if someone can host them for you, or feel free to host one yourself on a free-tier cloud environment such as Google Cloud Platform or Amazon Web Services.
Explain Why Your Project Matters
We’ve walked through how you can improve your tangible project deliverables such as the user interface, code, and video, but there’s another aspect of a submission that can resonate most with the judges: how it answers the Why.
Here are some questions each team or individual participants should ask themselves about their projects so they can tell a more compelling story about the significance of their submission:
- What’s the point of your submission?
- What problem does it solve?
- How does it make life better for others?
- Does it address any current social or economic issues?
- Does it promote economic fairness, transparency, and efficiency?
- How useful would the project be in the real world?
Judges will favour submissions that clearly address these questions in a specific, positive, and meaningful way. You can add a few points about the bigger impact of your project in your Devpost submission or at the beginning of your README file in your code repository.
The six pro tips above should help you and your team polish up your project in these final days of the Chainlink Hackathon. If you’ve competed in a hackathon before, you know that a lot can come together in the homestretch. Remember: the deadline for submissions is Sunday, April 11. The judges, sponsors, other participants, and the wider blockchain community are all eager to see what you build.
- Good Submission Guidelines | Chainlink Hackathon Workshop
- Announcing the Spring 2021 Chainlink Virtual Hackathon
- Chainlink Hackathon Spring 2021 Youtube playlist