Starting a Drupal 8 CRM project


#1

I’m about to start developing a Drupal 8 CRM/Case Manager, for small altruistic organisations. It will be very low-key with a just a a few entity types and some basic notification, calendar, dashboard etc functionality. People desperately need this, charities are managing their contacts and cases in spreadsheets and Access 2000 DBs and I have not found a free solution that isn’t over-complex, buggy, or impossible to install or to use. If you disagree feel free to tell me which ones don’t have these properties, you might save me a job but I suspect probably not … surprise me!

I like Drupal for this because it is so current and well supported and ubiquitous, and you get all the GUI stuff, plus users, ACL etc OOB. Security-wise there are obviously issues occasionally but they are jumped on straight away and fixed. There are CRM Core and Redhen for building CRMs in Drupal which are in the process of being updated for Drupal 8 but I would rather use the core functionality in Drupal 8 to build this because the entity system is so much better now I don’t see the need for an intermediary, especially one that was built for 7. I want to make something very simple and very clean so I don’t want to bring in more code than necessary.

This will be first and foremost a free (as in everything) software project with a lot of effort put into documentation, an install profile, and drupal.org integration for easy updating. I have just had my fingers burnt by one of those companies who waves a github repo around saying it’s free software but leaves it in an unusable state with the install process a mystery, saying “if you find it too hard just pay us £££”. This will be the opposite of that. However most small charities will still prefer a hosted option and some will want customisations, and that is where the hope lies of getting some money for my labour. I will set up a server with multisite Drupal and charge people by the month (as low as I can) plus some per-hour time setting it up how they want it.

I have the Drupal and PHP skillz but I could use some help in these departments:

  • Communicating with charities to let them know about it (on social media or by word of mouth or whatever)
  • Someone to cast an expert eye over the security of it
  • Some financial arrangement with a co-op so that I can eat while I get on with it

This is not a money-spinner, I’m doing it so that altruistic organisations can do their stuff more efficiently, but obviously everyone who works on it will get some share of whatever does come in.

Let me know if you would like to collaborate or if you have any thoughts on this.

Naomi


#2

Also of course there is scope for collaboration when it comes to hosting too, not mentioning any names @kate @chris


#3

Hi @naomi, sounds great, I’m sure we could provide free hosting for this project, but I’m afraid we are probably not in a position to sponsor the project more than this, just let us know what you need.

The eCampaigning Forum Community list would be a good place to seek support, lots of UK charities are on this email list:

http://www.fairsay.com/networks/ecampaigning-forum


#4

Thank you @chris

I was thinking something along the lines of you hosting & managing the multisite instance and offering the CRM-enabled sites as one of your simple hosting packages, and I’d maintain, improve & customise the CRM itself and we’d share the money appropriately


#5

But that is a long way off, I have to make the thing first!

For the project page I will probably just use github pages but thank you


#6

Hi Naomi,
I am only thinking as a user but what is wrong with civiCRM?
https://civicrm.org/drupal
I was about to use it for our needs but if there is something wrong with it I’d like to know.

If there is something wrong with it, would it be easier for you to fork it or fix it?

About other membership systems, every hackspace that I know seem to spin out their own thing. But many like to use python and/or ruby.

About webpage hosting for this kind of project I thought gitlab was a bit better than github?


#7

Hi @amunizp ,

I’ve worked with CiviCRM for years and have a lot of respect for it and the people who work on it. As far as I know it is the best thing available. I do voluntary and paid work maintaining and extending CiviCRM sites and will happily continue doing so for new or existing clients. However I think there is a need for an alternative, for many reasons, I won’t be able to think of them all now but there are some:

  • It’s not easy to set up and configure. Small charities don’t have IT expertise or money for consultants. You can get a hosted service like CiviHosting but that only gives you the software, it still needs to be tailored for your needs (as would any) with custom fields, activity types, case types, ACLs etc. Civi has its own way of doing all these things which are not always intuitive and are different from how Drupal does it. So someone needs to spend time learning how to do Civi. ACLs in particular are very complicated as they use a mixture of Drupal and Civi config. The one I am planning will have ease of configuration as a priority and everything will be done the “Drupal way”.

  • The GUI is not very nice and has a lot of extra fields that are usually not used and can only be removed with custom code (not just CSS). The forms for adding a contact, editing a contact, advanced search are especially gnarly. It’s enough to put off many end users. Because the forms and pages are not native Drupal ones, choosing a nice Drupal theme can still leave the Civi pages looking ugly. The new one will use native Drupal forms meaning it can be themed and that it benefits from the years of Drupal GUI improvements that have passed Civi by.

  • Under the bonnet it is over-complicated. It was built when Drupal had much less support for custom entities (i.e. things like a Contact, an Activity - as opposed to a Page, Article or Comment, which are built-in types). So it has hundreds of thousands of lines of code to do things that nowadays can be done with much less. And less code means less bugs.

  • It’s quite difficult to change. Despite working with Civi for so long and being keen to give something back, I only recently had my first PR (pull request, i.e. code contribution) accepted. I had been put off trying because a few years ago I had tried to submit some code and had found the process slow and beaurocratic. Understandably so because of the tens of thousands of sites using Civi - they need to be careful. But updates come out so fast, we kept missing the next version and having to re-test the patch, and then the ticket got closed without being fixed because someone had misunderstood the problem. And there was little enthusiasm for fixing it because the code in question was in a file called “Deprecated_somethingorother” which we weren’t supposed to fix, but which nonetheless was used. In the end I wrote a custom module to get round it and left the code broken. The recent PR, being very tiny, fared better, and I intend to try again with other bugs as I do want to contribute to Civi. But it’s not for the faint hearted.

  • Updates come out all the time - every couple of weeks - and updates often bring new bugs with them, because the codebase is large and unwieldy so even with all the testing, fixing something in one place can break something in another. If you are hosting it yourself you will have to manually apply every update as you can’t just click to update like you can with other Drupal modules. You need to delete a bunch of stuff from the file system and upload and extract the new version. The danger of course is that people won’t do this because it’s a faff and then will miss out on security updates.

I feel like I am bashing Civi now. In fact any large free software project that has been around for many years will have these sorts of problems. But it has an amazing community. It has a stack exchange forum which is constantly active and responsive. Mine won’t have that, mine will probabaly just have me, at least for the forseeable future. That’s an important thing to consider.

If you need something straight away and/or you want to go with an established project with a fanstatic community around it, go for Civi. You can always hit me up for help with configuration or a custom module or two :stuck_out_tongue_winking_eye:

If you want a simple CRM with less baggage and less of learning curve, and time is not of the essence, then tell me what features you need your CRM to have and perhaps you can be an early adopter of the new one. I will develop it in a genuinely “agile” way so it will be usuable in a few weeks but have very few features. Features will be added as we go along. I have one client who is going to start using the hosted version as soon as it is usable. They will call the shots at first as to what features get developed and in what order. Once they have what they need it will be open to suggestions. At every stage it will be released as free software with documentation, and I will always be grateful for feedback on both.

Naomi


#8

Hi Naomi,

Your project is very exciting! I also love CiviCRM in many ways, but agree with your assessment and for the need for another free software CRM solution out there. I encourage you to connect with the folks at Freely Give. They are working on a Drupal-native CRM approach that fits many, if not all, of the requirements you have.

Here is the main repo they’re working from https://www.drupal.org/project/contacts

I’d also be happy to do an introduction if you’d like.


#9

Thank you @clayton , I followed your links and have been chatting away to andrewbelcher and mlncn on irc all evening!

I still feel motiviated to create my own project, especially since theirs does not seem to have the case management focus. But they are giving me some excellent food for thought.


#10

Hey @naomi!
This definitely interests me, but I’ve not got time right now to read the whole thread and reply, so just staking my enthusiasm for now.
Cheers,
Finn


#11

Hey probably joining in late, but we’d be happy to provide hosting for this project too :blush:


#12

This is certainly an interesting project. As someone who has spent a lot of time over the last decade or more working with Drupal and CiviCRM, I recognise and would echo a lot of the comments made about CiviCRM, and I guess that I would call myself a critical friend of the application.

A significant question for me would be whether Drupal 8 is the right place to start. Drupal has faced a lot of criticism itself over the years for being pretty unfriendly to the target audience described in this thread (remember the pain/cost of moving from Drupal 6 to 7? - that alone probably drove 1000s of non-profits into the welcoming arms of Wordpress). There’s been plenty of discussion (e.g. https://www.mydropwizard.com/blog/drupal-sucks-non-profits) about how/whether Drupal 8 has moved away from meeting the needs of smaller non-profits and suchlike. I’ve no doubt that Drupal 8 is a high quality product. And I guess that a hosted service could work well, albeit a step removed from having complete control over one’s own data.

What I find disappointing - not about this project idea, which sounds great, but about the way that tools like CiviCRM and Drupal have developed over the years, is that for me they have consistently moved further and further away from the original empowering vision of putting simple effective tools into the hands of ordinary people, enabling them to do useful things. That idea was certainly there when I began working with these tools back in 2004/5. I wonder whether the meritocratic governance model of the open source start-up is partly at fault for this? Whilst such a do-ocracy works fairly well in the early phase of these software communities, as the product matures those same communities appear to care llittle for what users think and need, and instead development seems to continue to be driven by what developers (and maybe powerful corporate backers) want. I know this is something of a digression off-topic (for which apologies), but I’d be keen to learn what the thoughts of others (and especially developers) are on this issue. Would open source projects be more effective if, as they matured, they evolved into democratic cooperative communities where the voices of users where - in terms of voting rights at least - as loud as those of developers?


#13

Hi @liam, are you talking about collaborating to provide a hosted service?


#14

I suspect, it is more to do with the money than the nature of Free software projects — as Drupal was used more and more by rich organisations the developers began to be, inevitably, paid by the rich organisations…


#15

Hi @Graham

I agree that Drupal is a bit techy for most non-profits but I want to make it as simple as possible to install a dedicated ZenCRM (I think this will be its name) site.

I will do this by:

  • Creating an install profile
  • Writing good documentation
  • Having a demo site that people can play with before they decided
  • Being responsive to the issues queue
  • Using Continunous Integration with automated testing so that people do not get confused by hitting errors and bugs
  • Testing the documentation as well as the code.

So it will really be me, and whoever I work with, who has to use Drupal as anything but an end user. I want to make it as easy to install and configure as Wordpress, basically. Then an org with a bit of tech knowledge can use it and own their data.


#16

Hi @naomi Whatever the needs call for we’d be happy to provide hosting for the project itself development or production and providing a hosted solution.


#17

@liam are you in a co-op?


#19

i sent you a pm with my email


#20

Excellent, glad that connection proved helpful. If mlncn hasn’t already
mentioned it, I’d be interested in any opportunities for
collaboration/integration between the CRM project you’re starting and
the Drutopia initiative - http://docs.drutopia.org

Here’s the CRM conversation we’ve been having -


#21

Hi,

Drutopia seems rather a Big Thing. Lots of people involved, etc. Vast sums of money have been mentioned too. I kind of want to stay away from Big Things. Also that project is well underway, so if I was to join it would be to help out with it rather than to create something. Whereas I have my own idea of what I want to do. If something existed already that was good enough for my purposes I would use it rather than make a new one. But to throw in my lot with a project that is being developed along already-decided lines and also, crucially, to have no control over initial release dates and what gets developed first - that’s a different proposition. I have one client who I’ve been round the houses with trying to find a good CRM and we decided I would develop one and release the initial features in the order of their priorities. And there is probably another client interested and I want to work closely with them too and be able to make decisions based on their needs.

I think your friends know more than enough about CRM and don’t particularly need my help. I would probably get in the way wanting to do things differently, or release faster! I am generally against duplicating work, but in this case I am strongly motivated to just get on with it, rather than join something.

Naomi