Hot take: most side projects don't die because of bad code. They die because nobody knows they exist. Shipping is half the job. Telling people is the other half.
Write the README before you write the code. If you can't explain what your project does in a few lines, nobody will use it, no matter how good the code is.