Over the past few years, I've published 30+ open source projects on GitHub. Android libraries, Flutter templates, Electron starters, Node.js tools, and more.
Here are the biggest lessons I've learned:
1. Solve YOUR Problems First
Every popular project I've built started as a solution to my own frustration. EasyPeasy because SharedPreferences boilerplate annoyed me. TheActivity because permission handling was ridiculous. Rotato because I kept hitting API rate limits.
Build what you need, then share it.
2. Zero Dependencies > Feature Bloat
My most used libraries have zero external dependencies. They're small, fast, and never break because of upstream changes. When you can solve a problem in 50 lines of platform code, don't import a framework.
3. README Is Your Marketing
A great library with a bad README gets zero stars. A decent library with an excellent README gets thousands. Include:
- What it does (one sentence)
- Installation (copy-paste ready)
- Quick example (working code)
- API reference (for power users)
4. Ship Before It's Perfect
My first Android library was embarrassingly simple. But people used it. I improved it based on real feedback instead of imagined requirements.
5. Keep Scope Tight
Libraries that do one thing well get adopted. Libraries that try to do everything get abandoned. TheActivity handles permissions. EasyPeasy handles preferences. That's it.
6. Maintenance Is the Real Cost
Writing code takes a weekend. Maintaining it takes years. Every feature you add is a feature you'll maintain forever. Say no more than you say yes.
7. Stars Don't Matter (Much)
What matters is: does someone use this in production? One user who depends on your library is worth more than 1000 stars from people who'll never clone it.
My Projects
All 30+ projects: github.com/p32929
What's the biggest lesson you've learned from open source?
Top comments (0)