
WestScript Editors@build-notesPosted
Writing up a side project people can try
Side projects are some of the best things developers share. They are small enough to understand in an evening, personal enough to be interesting, and free of the polish that makes product announcements hard to trust. Yet many side project posts land with a thud: a screenshot, a link to a repository and the words "let me know what you think".
A good write-up does more. It tells the reader what the project is in one breath, lets them try it in a few minutes, and shares one or two things the author learned along the way. Here is a structure that works for most projects, from a command-line tool to a browser extension.
Lead with what it does, in one sentence
The first paragraph should answer the question every reader has: what is this, and is it for me? Write one sentence that names the thing, what it does and who it is for. For example: "tidyfeeds is a small command-line tool that removes duplicate entries from an OPML file of RSS subscriptions."
That example is made up, but notice what the sentence does. It names a format the right reader will recognise, describes a concrete problem and sets expectations about size. Someone who has never heard of OPML can safely stop here; someone who has a messy subscription list will keep going.
Resist the urge to open with the backstory. The story of why you built it is worth telling, but the second paragraph is a fine place for it.
Say why you built it
A short paragraph on motivation helps readers decide whether your solution fits their problem. Were you scratching your own itch? Learning a new language? Replacing a tool that stopped being maintained? Each of those sets different expectations about how complete and long-lived the project is likely to be.
Be honest about scope. "I built this over two weekends to learn Rust" is a perfectly good reason, and it tells readers not to expect a support team. Overselling a side project is the quickest way to disappoint the people most likely to try it.
Give a quick start that actually works
This is the section that turns readers into users. Show the shortest path from nothing to a working result, and test every step on a machine that has never seen your project. A good quick start fits in one code block:
git clone https://example.com/you/tidyfeeds.git
cd tidyfeeds
python3 -m tidyfeeds subscriptions.opml > cleaned.opmlList the requirements above the block ("needs Python 3.10 or newer, no other dependencies") and show what the reader should see when it works. If the project needs an API key or an account somewhere, say so up front; discovering that at step five is frustrating.
If you cannot reduce the setup to a few commands, that is useful information about your project too. Sometimes writing the quick start is what prompts you to add a proper install script.
Share one interesting decision
Readers who make it past the quick start are often developers curious about how you built it. Give them one or two decisions worth reading about, not a tour of every file. Good candidates:
- a library you chose and why you picked it over the obvious alternative;
- a problem that turned out harder than expected, and how you solved it;
- something you deliberately left out to keep the project small.
Include a short snippet if the decision is easier to see in code, but keep it focused on the idea rather than pasting a whole module. If one of these decisions needs a long explanation, it might deserve its own post; our notes on explaining a tricky concept with one small example may help with that.
Be honest about the rough edges
Every side project has known bugs, missing features and things the author would do differently. Listing them is not a weakness. It saves readers time, it heads off the most obvious comments, and it makes the rest of the post more believable.
A short "limitations" list is enough: what platforms you tested on, what is not supported yet, and what you are not planning to support at all. If you are looking for help with something specific, say exactly what it is. "I would love a second pair of eyes on the date parsing" gets better responses than "contributions welcome".
If the project is finished, or you have stopped working on it, say that too. A note at the top of the post saves readers from filing issues nobody will read.
Invite the right kind of feedback
End with a clear next step for the reader: try it, read the code, or tell you about their use case. Ask a specific question if you have one. Generic requests for feedback tend to get generic replies.
On WestScript, readers can leave a comment with just a name, and comments appear once moderators have approved them, so you will not get instant replies, but you will get considered ones. Readers who want to follow the project can subscribe to your blog's RSS feed at /your-handle/feed.xml, which makes a later "version two" post easy to find.
And when the project eventually ends, as most side projects do, consider writing that up too. A calm look back, in the style of a project post-mortem, is often as useful to other developers as the launch post was. For more on what your blog supports, see the features page.