So, there have been some new frameworks being posted on reddit, with the expected result of receiving a lot of hate and criticism. I can kind of understand both sides here, since just about a year ago I’ve seen similar responses towards my PHPixie. Since then the flames calmed down and it has now a considerable userbase with 386 installs in the last 30 days. The important part here is to be able to take in constructive criticism and carry on making your project better. I’ve learned a few things the hard way as I went, and I’d like to share them with other people willing to release their brainchild to the world.
- Tests – you must have those to be taken seriously. Even if it’s the first version, alpha or anything. The tests are the first indicator that you are putting real effort in
- Find a niche – There has to be something about your framework that makes it stand out, and you have to focus on it. I really pushed a lot of effort behind the “great performance” argument. I also submitted it to Techempower Framework Benchmark Suite to prove it. Don’t ever state something while not having anything to back it up with
- Read a book – there should be no singletons, god objects, shared state or anything like that in a modern app
- Write docs – That includes writing docblocks, generating an API documentation from those docblocks, writing some tutorials and a nice about page.
- Be prepared to compare it to existing frameworks – there has to be something better with your approach. If there isn’t don’t bother releasing it.
- Use PSR-2 – I made the mistake of writing PHPixie in the style I liked and then had to rewrite it. The style must suite the majority, not just you. You’re not making it for yourself
- Don’t expect any help or pull requests from the very start
- Support your users as much as possible, at least install some forums script to be able to talk to them
- Buy a domain and spend some time on site design. Make it look legit
- Commit frequently – Your Github history has to indicate your project is not dead
- Participate in the community – You can’t expect people to help you with your project if you ignore theirs
- Don’t give up
If this sounds like too much work, just pick a smaller project. It’s better to make a smaller masterpiece than a big ball of mud.