Let's create your first viral project.

Sharing your projects on platforms like Reddit, HackerNews, and creating a refined GitHub repository is a really hard skill. Your first ship might not be perfect, but you'll learn a TON from doing it.

There's lots of different reasons that we ship projects. You feel motivated when your project picks up traction, you get lots of really valuable feedback, you get cool oppurtunities, and so much more.

First let's look at some examples of well shipped projects on various platforms:

These shipped projects all share a couple things in common:

  • They have a refined GitHub repository that includes everything people want to know about your project and how to build it
  • They shared a brief/moderate technical writeup of how they designed and built their projects
  • They're high quality with lots of thought put in and have many really important small details

Part 1 - Making a high quality GitHub repository

If you've submitted your hardware project to get a grant for a program like Highway, blueprint, etc, chances are that you already have a pretty nice repository!

But... now that you've finished building your project and ready to ship, you need to make a couple adjustements to your project.

The first thing is to start off your readme with a big photo of your actual, real life project. You don't need a professional camera or anything like that, but just take it in some decent lighting with a phone and a decent backdrop.

You'll also want to make sure that your readme and folder structure is well organized and professional looking. I personally like to organize my readme's as:

  • Project name with a nice and large photo with a short summary
  • Key/custom Features
  • PCB/CAD design from your editor (for example KiCad or fusion), renders work well too
  • Bill of materials if you want, keep it short though
  • Licenses/contact/credits at the bottom

Try to keep all your images to the same aspect ratio/size so that they fill your readme really nicely; make sure your readme isn't too long too. Here's some nice community made GitHub repositories:

At the end of the day, my biggest tips are to keep it moderately short, keep it moreso technical, have nice images with the same aspect ratio and keep your repo structure clean :D

Part 2 - Creating a High Quality/Technical Writeup

Nearly any project you're going to share with the world should have a writeup that details the creation of your project.

Depending on the complexity and where you post your project, your writeup can be short like the biblically accurate keyboard or longer for more technical projects, especially in more technical communities like Hacker News!

So let's look at the key details of what makes a good technical writeup. Like I said, writeups should change depending on what community you post in. Try not to overthink it, but just keep that in mind!

On hacker news, or more technical communities, you should go in-depth about the technicalities but on less-technical/more casual places like Reddit, you want to tailor your writeup more to the community you're posting in.

So if you're posting in r/embedded, you can write more technically about a project, while in r/mechanicalkeyboards, you can write less about say the PCB, and more about the specific switches, keycaps, etc.

So how should we lay out a simple writeup. There's no fixed way of doing this, but here's a simple framework:

  • Start with why you decided to create it
  • Then do a short summary of the project you actually created, I prefer to talk about my projects pretty technically
  • Talk a little bit about what you learned making it
  • Next, talk about what you're using it or are going to use it for
  • Finally make sure you link your GitHub repository and maybe talk about something you want to make next or future plans

I find my favorite writeups on hacker news, so if you want any inspiration, feel free to look at other projects on there, or a couple of the writeups that the communities made:

My biggest tip is to constantly re-read what you've writted until you think you're done. It'll help you catch mistakes, improve clarity, and will give your post a higher chance of succeeding.

Another really important tip I've learned while shipping specifically on hacker news is to submit to the second chance pool. If your ship post doesn't initially hit it off, It'll basically put your project on the front page for a short amount of time and kickstart it again. Just don't abuse it and get us in trouble, but HN moderators actually love to see your cool projects ;)

Part 3 - Time to ship >:)

Now you finally have a high quality project ready to ship. Here's a couple tips I've learned while shipping that you'll probably appreciate!

The first thing is where you should post your actual project. My 2 favorite places are on Reddit and HackerNews, so make sure to put it on both of those platforms. But then you also need to go about choosing the best subreddits!

Here's a couple good subreddits for shipping your projects on, make sure you post on a subreddit related to your project:

  • r/embedded and r/electronics for moreso electronics/PCB based technical projects
  • r/3Dprinting for strongly 3D printer related projects
  • r/MechanicalKeyboards for macropads and keyboards
  • Niche subreddits if you have a project related to something really specific like aviation persay

Keep your hacker news posts more technical and your reddit posts can be a bit more casual. I'd suggest changing your writeups a little bit whenever you submit it to a different community and tailor it to that space. Post your project on Reddit to at most 2 to 3 subreddits.

Now here's a couple tips I have:

Ship not at the "most popular" times, but when you're the most available to respond to comments. If you've created a cool project, it'll get seen, so don't really worry about the best possible times to post your project. Instead, focus on when you have free time to respond to comments on your project so you can increase engagement and get more people talking about it, and sharing it. You'll also learn a ton, because you're sometimes interacting with really smart engineers and other talented makers!

Email [email protected] if your project didn't get any initial traction on HN to get submitted into the second chance pool! Please don't spam them, but it's a great oppurtunity for your project to quickly get lots of visibility! Please read this full post if you're doing so.

Always post your project with an image or video of some sort. I find that images usually get more visibility, but videos have the potential of more; they're just a bit harder to pull off nicely. You can also link a video in your writeup!

No punctuation mistakes. Make sure your writeup flows nicely, double check details.

The comments aren't criticism, they're feedback, take it all with a grain of salt, not everyone will be right, but treat them as so. You don't need to respond to anything whether it's hate, or something you don't understand, but just try to take observations at the very least!

If you share a project online, it's great if you include Hackclub in it, even if it's something small like including it in your readme as a contribution. By shipping projects, you're sharing knowledge, and you want to inspire people and teach them that there's cool communities like hackclub where they can learn all these amazing things.

It would also be amazing if you could share your project in #ship on slack, even ping me too (@KaiPereira) if you want to, I love seeing all the cool projects hackclubbers are working on!!!

Now get out there, and good luck shipping your project!!!