Knowing when to customize Alfresco Share and when to write your own
Before you set off on that big Alfresco Share customization project you've been dreaming of, it is important to ask yourself if the Alfresco Share is the right place for your customizations. The key consideration is how closely does your solution resemble the generic "document management" use case? If the answer is that it is quite close such that the list of substantial customizations is fairly small, then proceed. SomeCo's internal rollout is a good example of this. So far, everything SomeCo is looking to do with Alfresco has been about managing documents. The customizations have been small tweaks aimed at streamlining certain tasks for the end users.
However, if your solution is radically different from document management or is composed of several significant customizations, you should think twice about customizing Share. Instead, consider building a custom application loosely coupled to the repository...