When the director of a multi-sport event asked me to build an online registration system, I decided to build one that would not only serve that organisation, but could also be customised and re-used for other similar events around Australia. Since 2013 the "GamesFest" system has been used for up to 7 events run by 3 different organisations, each year.
GamesFest v1 was an APEX application which I would customise for each organisation using the "Copy Application" feature. This soon became unwieldy, however, as every bug fix or enhancement needed to be re-done in each Copy. GamesFest v2 was a partial re-write, a single APEX application using a different approach which gives the best of both worlds; all clients get bugfixes and enhancements immediately, while preserving their customisations.
This talk will compare and contrast the two approaches and will hopefully give APEX developers ideas they can implement or adapt for their own situations.
Follow-up blog article: https://jeffkemponoracle.com/2017/11/convert-an-apex-application-to-multi-tenant/