1. Always give attribution. If you don't, you're not doing free software, no matter what the license lets you get away with.
2. Don't take on a dependency on some other project unless it's either mature or you're willing to maintain it yourself.
3. Don't try to push other people to take on a dependency to your project unless it's either mature or you're willing to see it through.
4. You really don't have any obligation to your users (or anyone) unless they're paying you.
4a. It really doesn't matter when it gets done.
5. The good reasons to do free software are to have fun, and to learn something.
5a. Don't count on being able to make money off it.
6. If you have a clear vision, stick to it. Don't let other people try to talk you out of it.
7. Don't be discouraged by competing projects. Chances are, they will fail.
8. Resist the pressure to join forces with a competing project just to save manpower. "Because it will be fun" is a good reason to NIH.
9. Accept it when other people adapt your work, perhaps not in the way you intended. It is the free software way.
10. If other projects have done useful things you want to steal, go for it. Tying together pieces is a good thing.
11. Make sure that it's possible to configure the backspace key to do something other than delete the character to the left of the cursor. Bonus points for discouraging this as the default behavior.
12. Do not expect others to contribute significantly to your project. If you treat it as a pleasant surprise each time they do, you will be happier.
13. Simple and lightweight almost always wins.
This doesn't feel anything like a complete list. But perhaps some of them will be amusing.