I was asked to build a content and file management web-app for a client. Let's say that this client is a talent agency, and they want to keep track of their stars. For each star, they want to have a modular page with different categories, notes, file uploads, profile photo and biographical stats, etc. They also want a separate page for recruiting future stars. These pages are similar to their own talent, but with slightly different categories and content.

Instead of starting from scratch, I was thinking to piggy-back on an existing open source framework. For example, "stars" could be mapped to "customers" in a CRM, and "potential stars" could be mapped to "leads". But using a CMS or CRM framework may have limitations such as inability to rename sales terms to my specific application.

  • super-users can set content-specific permissions for other users (for example, some users shouldn't see the contract details of the stars, while every user can see the headshot and short bio)

  • basic stats or rankings over all stars

  • filter and text search of stars (for example, males of a certain age)

  • Each "star" or "potential star" needs to have a file repository that can be tagged (for example, "concert poster" and then a PDF with tags and notes)

  • must be customized, so that if it's a CRM solution, it should say "potential stars" and not "leads"

  • users must be able to add/edit new content with versioning history

  • software should be open source and we should able to host ourselves

So far I've looked at traditional CMS like Wordpress, Django CMS and some CRM like SuiteCRM, SugarCRM. I've also looked at some DAM (digital asset management) systems, but so far it seems like a need a hybrid of CMS, CRM and DAM. And finally, it's not open source, but something like Evernote would work, if a developer could build static forms and pages that the users then contribute to. I'm not opposed to build it from scratch, but I want to give the customer some options.

  • 1
    How about Javascript?
    – niclas_4
    Dec 6, 2018 at 13:42
  • @Badgy JS would be great, but I didn't find any CMS/CRM frameworks, and don't want to do it all from scratch
    – philshem
    Dec 7, 2018 at 8:51

2 Answers 2


You can use a CMS like Drupal for this, in conjuction with some of its modules. There are a number of ways to achieve this in drupal.

  • For instance, you can have a content type called "Star" with relevant fields like: name, notes, multi-file upload, bio stats etc.

  • Future stars can use the same content type but you use drupal's "taxonomy" for categorization,indicating Future vs Current Stars. This way you can sort/view contacts based on taxonomy. You can also create more tags like "concert poster" etc.

  • you can call the content whatever you want, or even rename later.

  • permissioning/super-user can be done in drupal using a module like content_access and restricting specific fields to certain users/roles.

  • ranking/review of stars can be achieved using the "comments" module, and also the "fivestar" module.

  • you can setup simple or sophsiticated searches using the "views" and search_api* modules.

  • users can add/edit new content with versioning history, based on permissions.

  • it is open source and can be self-hosted.

To use drupal, you will need to invest some time to understand how it works. But it gives you the ability to add additional modules for new functionality as the system grows.


I would suggest Liferay:

  1. Install and start Liferay
  2. Inside Liferay, create a "site".
  3. Create a "Web Content" structure that represents a star. Its fields could be:
    • Name
    • Status (potential or in activity)
    • Popularity (a number that makes sense to you)
    • Picture
    • Introduction
    • List of history events, with for each:
    • Date
    • Even description
    • Picture
    • Contract (a file attachment)
    • Etc
  4. Create a template (in a standard templating language) that can show a star to the public.
  5. Create a theme defining the general aspect of the site (header footer etc)
  6. Create a page that will show your content. It is as simple as drag-and-dropping components (portlets) onto the page. You will probably want to put a main component that will show a star, plus a navigation component and a search component.


  1. Create a group for super-users
  2. Create a template like in step 3, but showing more details, for instance the contract.
  3. Create a page that is visible only by super-users, like in step 6 above, but configure it to use the template created for super-users.

Liferay also offers a categories system so you should probably use it, perhaps you can have categories for countries or for style. In such a case also add a category navigation component to the page.

Of course, Liferay gives you admin an UI to add/edit stars.

  • Free and open source
  • Disclaimer: I work at a Liferay partner

Example of creating a Liferay Web Content structure:

enter image description here

  • 1
    Hi Nicolas, nice to see you here :)
    – philshem
    Dec 6, 2018 at 9:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.