I love Angular. It’s a great client-side MVC framework. One of its major issues is a lack of understanding of how to put together an Angular Application, and the documentation is no help there.
They tried to improve by including a reference application (app), but… Well…
The problem with reference apps is that they’re not actually being used. Here’s the difference between the two:
It doesn’t have to be this way.
You can open source your Angular project.
There are traditional arguments against Open sourcing proprietary applications; but I argue that none of those apply here.
– It’s our proprietary code: It was, before you released it as an Angular application. Now anyone can see the entire source code of your project. Even if you minify it, they can still see it.
– It’s got our secret sauce in it: It probably shouldn’t. You should move any proprietary algorithms or methods to the server side, and expose the result through the API.
– It’s not very good!: That’s ok. Any app that has real world usage is useful to see.
– Someone may find a vulnerability: That’s good! They’ll let you know there’s something wrong
– The source code is a mess! It’ll take us weeks to get it ready: Every company has a period of downtime. Business rarely goes full tilt 24/7. Use one of those periods between product launches to schedule this work. It’ll let your developers relax and recoup after a hard push.
– I don’t want to accept patches: That’s your right. It’s not exactly the smartest move, but putting the source code on Github doesn’t mean you have to accept other people’s patches.
With those aside, let’s look at the positive reasons for open sourcing your Angular Application:
– Community respect: People are more likely to trust someone they perceive as honest and open. Open sourcing your Angular app (That’s already ‘open’ anyway) gives you a net positive with little to no downside
– More eyeballs: It’s more likely someone will uncover a bug, and in the spirit of community, they may even issue a pull-request with a fix.
– Learning: Everyone learns when they open source something. The people who do it, and the developers who will see the code. Putting the code out there ensures that there are better examples of how a real world Angular application is structured.
– Recruiting tool: You may have unlimited vacation and free lunches, but one of the things that developers really care about is being on the cutting edge and have the ability for everyone to see what they do.
Open source your angular app. There are lots of reasons to do it and very few reasons not to.