Open with the problem you set out to solve. A couple of sentences on the context — who it was for, what was hard about it — goes a long way.
What I built
Describe the approach and the key decisions. Screenshots and code snippets work here too:
def hello(name: str) -> str:
return f"Hello, {name}!"
What I learned
Close with the outcome and anything you’d do differently. This section is what turns a list of projects into a story worth reading.