Monica: Open-source personal CRM
monicahq.com
monicahq.com
I guess the killing feature for me would be remembering names of parents if my kids schoolmates.
You end up calling people "the mother of $KID" for KID in kids in classOf($my_kids).
Example: Julian, blonde, in same class, 3rd and 4th grade Sister: Kiera, two years younger, big hello kitty fan Mother: Monica, red hair, glasses. Dad: ??, looks like Ron Swanson.
I just fill in the blanks when I learn them. By the time I'm exchanging phone numbers, I usually have the names down.
Families move and friendships change, so I don't invest a lot of time memorizing details.
There are some parents that I remember, I think because I see them often enough or they might be particularly unique looking (to me, anyway). There seems to be some mental bar that needs to be crossed before I can reliably recognize them, otherwise they all kind of blend together for me.
The characteristic doesn't have to be particularly representative, but the more extreme / emotional, the more effective.
E.g. remembering "Jim always has perfect Ron Swanson hair" helps in making the name itself memorable
I have to write down the name of everyone I meet in a day and review it before I go to bed in order to even have a chance.
Plus, I have a paralyzing fear of using the wrong name so I don't practice that often unless I'm completely confident.
It's like numbers. I remember IP addresses and breadcrumbs better/longer than I should, and why is obvious (sysops, web dev, nerd?)
To be honest, I learned this tip when I worked at a large international organization, and I needed to familiarize myself with a large number of new people quickly.
As kids get older and friendships more solid, I can see this changing.
The lack of mobile apps is also a massive issue - I want to look up information right before I meet someone, and remember most to note down right afterwards.
For my usage the simplicity of Hippo (https://gethippo.app/) makes me much more likely to actively use it.
There’s a lot of improvement to make apps like these less tedious with data entry. I’d also love to see more examples of products that excel at balancing the data-driven nature of technology with personal, empathetic human relationships. It’s a difficult line to walk well.
On top of that, my biggest issue with tools like these (not bashing, really appreciate that products like these exist) is that they don't intrinsically flow with my life. Honestly Apple Contact is probably as far as I'll go (if even that... I leave a lot of calls without properly IDing them). Personally, I find filling out all the info about a person into some database takes a lot of time... which I guess overtime may save some time based on if you're really utilizing it. This is similar to photos: I am a strong privacy advocate, but Google Photos simply is a far greater product than if I were to spend 10x the time combing through photos to create animations and videos.
Obviously, however, in business, a CRM is a great tool (CRM for investors for example). Which makes me think... maybe I haven't met that many people?
Love the idea of the product and appreciate it exists. I think I'll stick to Apple Contacts and Twitter.
I've been meaning to try Monica because it's a structured place to store the kind of information I find myself forgetting easily and that is harder to ask again.
My issue is ubiquity and reliability. This doesn't seem to have a mobile component and I'm not sure how reliable the service or even company is. The latter of which can come in time.
It's cool, though. I've been thinking about using something like Airtable for this sort of thing.
(1) is a native mobile/desktop app instead of web-first, because there’s no reason my most personal stuff should be available globally
(2) stores data in a REALLY open format like JSON or YAML, because I want maximum interoperability and minimum but rot
(3) synchronizes across devices using generic file sync tools like Dropbox, google drive, or One Drive, because all my other stuff is in there and they’re as secure as anything gets
(4) runs anywhere without administrator privileges or special run times, because I want to be able to use it at work
(5) federated the data store so I can have a single view into personal, professional and proprietary information, while storing and sharing them appropriately to the sensitivity of the data.
It’s pretty easy to get going on a free Heroku instance too. Consider trying it out if you’re interested in a tool like this.
Something that specialises in this a bit more, but will still fill in that piece would be quite attractive.
1. The administrative burden: In over for the software to have any value, the user is imposed a huge documentation burden all the time. 2. Privacy: This is probably the worst. Imagine that you write down intimate details of your friends of family, and the platform has a leak. Also, the subjects have _no_ data control what so ever. In the privacy regard this is probably worst in class.
I would think a good personal CRM would as well - unless they themselves want access to your data or they just don’t care to do that work.
Customers, seriously? Can someone educate me on this particular use of the terms? (to me it was only viable in business situations)
Regardless of the second, third meaning of "customer" in English, I'm afraid the word just won't fly in e.g. Western Europe where it only has 1 meaning (someone who pays you for a service), and people often deplore that business, money distort relationships... It's just a cultural mistake to call Monica a CRM over there. It would be like calling a software "union organizer" to manage your -personal- group of friends in the US... not exactly a "neutral" term, nor one remotely related to "friends". Lots of subtexts in some words, translations not 1:1.
PS to authors of Monica: I can help with a French translation ;-)
A CRM in practice is a social relationship management tool. So, calling something like this a "CRM" is meant to show people what the tool is used for using a familiar term.
It's a little odd, but I understand what they're getting at.
- meta: it's interesting because having a word somehow 'creates' a concept in our minds, easier to think of and discuss I guess.
- topic: the concept is truly interesting, and you 'get it' when reading Monica's marketing pitch for sure. But the way you name it makes it a category, and when I add up that the one feature of Facebook that even non-users still come for is Groups... somehow this all hints at the aforementioned category.
Interesting. Food for thought.
But the software is using "CRM" as a term with its own meaning. It's kind of like "MP3" - the M and P come from "MPEG," where they stand for "motion picture." But really, "MP3" means "audio format 3 from the MPEG standard." Nobody thinks that MP3 users are calling audio files "motion pictures."
It's very true that common acronyms tend to get a life of their own, become words in and of themselves, even re-write their meaning — as poster below astutely suggested 'CRM' could mean "contacts" RM in this context.
I believe the hosted application could earn a lot more to support development and maintenance at a lower price point and reaching many more people.
You could replace dropbox with an FTP server, too.
But most people value their time more and will just pay $90 who want this set of features.
You're paying somebody $7.50 each month. That's... a latte and a half for the Starbucks crowd. Even at minimum wage, you're paying somebody to do 45 minutes of work for you.
And if organizing your contacts/keeping a log/finding pertinent info is significantly less than 45 minutes/month of work, may I humbly suggest you don't need a CRM?
And my wild guess is the devs know that, and they know that they'll lose the casual crowd anyways. "We make it up in volume" doesn't work if the volume just kicks the tires and leaves.
In my experience, what people really want when they're in that range is not something to manage your contacts - you want help with keeping a household book. (Or butler's book). And I really haven't seen an app to help there yet.
For example, you have to manually import contacts. You import your 600 contacts and you can't even bulk remove /edit contacts. You're stuck with this huge list of contacts from your phone. Just the simple things such as bulk editing contacts are missing.
So you end up with a list of contact on your phone / email, in addition to monica and it all ends up out of sync.
I want one source of truth for all my contact and people I want to remain in contact with. With everything synced: CRM, phone, email contacts, etc.
I notoriously bad at keeping in touch with people/responding to text messages earlier than in 3 days, so this seems to hit the spot for me.
I am glad to see that they have over 40,000 users (maybe not active tho) so it proves that the idea is not completely unreasonable. Maybe it just needs a little bit different approach, I don't know.
I myself struggle with what to do with my own app in the space.
I didn't get to monetize it as I don't have all the features yet & also I don't see a big demand for it.
as a side note, the php community is quite good at coming up with cms projects. i wonder what makes the language so nice for writing content management systems in? might be interesting to learn about.
PHP's biggest strength is ease of deployment and popularity. Deploying a nodejs app is a nightmare, because of the fact that nodejs isn't a web-first language in the traditional sense. It's a general purpose language that can do many things, but that causes problems for, i.e. hosting multiple apps on a single server (without having to coordinate ports between them, firewall them off, and have a single nginx instance proxying to them based on domain names).
PHP is simple to deploy. If you have a shared hosting, just upload files to the FTP server, and open the page in the browser. It works. If you have a root server, just `sudo apt install -y apache2 libapache2-mod-php7.3` and put the files in /var/www/html/
It's a perfect fit for web because that's the only place where it actually works. It does one thing (platform) and it does it well (from the deployment perspective).
It has (had) it's warts in the years, but I don't find many things that it doesn't have compared to other scripting languages.
Laravel is great for other things too — not just CMS-type-apps. It’s phenomenally good.
It's really a breath of fresh air in the way it's laid out (IMO) and the documentation is mostly very good, with some areas (weird edge cases) that are lacking a bit, but it's quite usable.
I'd recommend someone starting PHP to go with Laravel, and learn it's way of doing things. You can't go wrong and you will learn how to do things the right way. That's what I teach people.
Also, this is excellent: https://phptherightway.com/
I don't have much experience with Laravel, but my sense is that Laravel tries to make hard stuff (CRUD operations, MVC) easy, but it doesn't try so hard to make you do things "properly".
PHP is web-first, built for the web, and it does it's job well for that purpose. In the years before this boom of SaaS web apps and platforms, the only thing you needed on the web, in almost all cases, was some sort of CMS.
PHP was traditionally used for CMS', because that's what was needed (and still is) on the web. It's not a glamorous job, but those CRM, ERP, and other data systems are what power the modern business world. And a large number is written in PHP.
Case in point: Serbia's largest government-owned telco "Telekom Srbija" used to use a CRM system written in ASP.NET with WPF client software. In January 2019. they started to migrate off of that solution onto a web based platform written in PHP. It's still kind-of in progress, but I think it will bring them more success.
SBB, Serbia's largest alternative telco, has been using that same PHP-based solution for years, and has a smooth customer acquisition process, because it can be done from anywhere due to the web UI.
Of course, you can have a Web UI with any other language, but PHP is web native and isn't any worse than other languages, but may provide some advantages.
Also, before nodejs was invented, the only truly accessible (as in - simple to develop in, with a tolerant dev environment) language was PHP, if you wanted to do web and web only. There was (and is) Python, Ruby, Java, etc., but they were never easy to use, manage and deploy. Most of the new tools we take for granted weren't available in, i.e. 2005., when the standard dev procedure was to upload files via FTP for a large amount of the world.
And lastly, nowdays, I don't think PHP is any worse than other scripting languages for web usage, especially for CRUD information system UIs. And if you need more than it offers, you will find luck only in .NET [Core] or Java, not in Node or Python.
Ironically, the company I work for is strictly a no-PHP shop, and does no PHP projects for clients, except half of the Intranet that spans many countries (Serbia, Slovenia, Bosnia, USA, Netherlands, Germany, Phillipines, UAE, etc.) and management systems are written in PHP. It's just useful for the task, and there's no need to change it, or waste money on something that works. The company is old-ish (from 1998.) but hasn't outgrown the systems (yet). I said ironically because I really like PHP, but do .NET with Oracle at work.
The fact that you just need to drop a file on an Apache server to have a functional web app. It's not so much the language itself but the execution model of the code. No need to stop/start a server when the code changes, no need to actual write a server since Apache fronts everything.
so it has nothing to do with the language, it's about the CGI style model and its simplicity.
Well because people who don't know anything about programming just need a cheap hosting with an Apache/PHP/Mysql plan and upload the script via FTP.
That's it. Again it has everything to do with how easy and cheap it is for an hosting company to provide PHP/hosting and how simple it is to deploy a PHP application for someone without a programming background.
PHP as a language was, to a certain extent, made for the web. The language included things like MySQL access. That meant that projects didn't need a lot of dependencies. PEAR existed for libraries, but it's not like Java or Python where things like cookie handling or MySQL access isn't baked into the language. This also meant that a lot of the things you'd do on the web were basically written in C and fast.
This made mod_php very useful. You could write a login.php file that would do a mysql_query and return a redirect and maybe a couple hundred lines of code would need to be interpreted. Everything dealing with the web or database was built-in to the language. If you're using Python, you're loading libraries. Because different users might want to use a different library (or a different version), you couldn't easily build something that would offer the same capability there (where the web server had already loaded most of the things you want to do and shared that with everyone on your box). PHP basically had a web framework built-in and that meant that it could be loaded and shared. Rather than having to interpret your logic plus the web framework, it would just need to interpret your logic.
Now, there are benefits to a library-based ecosystem. You can update your DB library without updating the language. If most programs in the world aren't going to talk to MySQL, why include MySQL access in the language? But that's what PHP was about.
I do think part of what made the execution model possible was the language itself. It's certainly not impossible in other languages, but PHP was really made for the web and it made the mod_php-style system work well.
With no long-running processes, it was easy to offer cheap shared hosting. The PHP language would be in-memory and then the scripts could be small pieces calling into the language functions. If I'm running a Java app or Python/Gunicorn or whatnot, I'm holding onto memory even when I'm not serving requests. Even today, memory isn't free. If you have a lot of customers getting minimal traffic, you'd like to use your hardware efficiently. If you have a 32GB RAM box, you could slice that up into 1,000 customers holding on to 32MB of RAM. However, if they're each getting a hit per minute, you have a lot of wasted RAM. Imagine personal blogs and home pages and such. Plus, when customers need a burst of resources, they aren't available - everyone has their 32MB of resources whether they're using it or not. With mod_php, customers could be using basically zero resources for the 99% of the time that they're idle. They could burst when needed. Some shared hosts way oversold their capacity, but it enabled cheap hosting.
A lack of long-running processes also meant that a lot of potentially sloppy things never bit you.
PHP had some language features that enabled good performance on a shared system compared to other ecosystems and that made it a great target if you were looking to create such an app. Today, VMs are cheap, but they still require a level of knowledge/work above just sticking files on managed, shared server.
The execution model really drove PHP's adoption, but I think the language design made that possible. If PHP apps needed to load lots of libraries on each run, that execution model wouldn't have worked as well.
Not a CRM.
App is needed to avoid copypasta and inconveniences
I created a mobile app that lets you do this in one step. You just need to configure it with your API key: https://play.google.com/store/apps/details?id=com.twilam.mon...
So far I haven't been able to bake it into some kind of 'visit friends workflow'. And also I get this bad vibe from consulting-managing my personal relationships, it feels cold, cynical and controlling. It's not who I am. However it's not this apps' fault, but the feeling I get from trying to apply it and get some value out of putting effort into tracking personal relationships.
On the other hand I think I have to face the fact that I am just not good at remembering a lot of tiny details - especially about people I have only met a few times or don't see very frequently.
I think remembering stuff about a bunch of people is possible but when you interact with a lot it becomes more and more difficult to remember everything.
Of course one could argue that in this case you maybe should "sort out" your relationships to determine who of all these people is really important to you but that feels even harder for me than using a personal CRM to have a good relationship to people that are not part of my circle of best friends.
Family is another example. I didn't choose them but I have to see them once in a while and among other features recording what presents I got them and they got me would be good enough to at least not blow up some celebration because I would get the same present again or being able to connect presents to people who gave them.
pros:
- The no-cost self-hosted setup was easy enough. I didn't have to jump through too many installation-debugging-hoops
- Could easily customize the UI with minimal CSS edits
- The app was pretty responsive in my view, and my view is that web apps are known for clunkiness
- All the things you could do within the app were pretty obvious from the interface ("no manual required")
cons:
- Honestly, the thing that killed it for me was being required to select Male or Female for every person entered. It was ridiculous, so they probably have removed any sex/gender field by now, right?
- To my knowledge it only had a web interface, so I couldn't open up and edit the data in a text editor (personal preference), for instance
What's the benefit over a .txt file on a computer or a custom field in your Google contacts for remembering friend's kid's names?
Not everybody wants to share all this information with Google.
Arguing over whether or not someone can store contact information about people they personally know for the purpose of a private database?
If that really falls under GDPR, then GDPR is way more fucking asinine than I ever realized.
Same would be true for any other "online address book" type of app. Particulary funny if people added "notes" about you to your data set. Those notes would have to be send along with all the other data they have about you, because it is data about you.
As long as all data is stored securely, providing a place for keeping track of information isn't illegal.
I don't find it unreasonable that the parent comment considers $9 / month for the value proposition of what is a relatively unique / untried / new (less than a decade old) software category (database for your interpersonal relationships) to be too high.
Until one has time to use the software and have it help you remind yourself what the guy you've only met 4 times in the past likes for lunch, you are paying 'more than an MS Office subscription' for access to the data you entered previously, and unless you quickly become a power user for the software, will use the Monica product for less time per week than MS office, at least in many office jobs.
EDIT: That value may be there once you have used the software, but someone is hardly being a cheapskate for not wanting to dole out $9 a month for something they don't yet see the full value prop of.
Edit Edit: Hippo CRM costs $1.50 a month , with a reduced albeit same ballpark functionality.
You've been abundantly clear in this thread that this SaaS product wouldn't provide you with good value for the money they want. That's totally cool, you're not the target market for them (at their chosen price point).
But other people do see value at that price.
So what does that tell us? Nothing!
Unless two things provide the same service, it's kind pointless to compare them because the relative value is tied to other subjective factors that aren't universally relevant.
I personally would be willing to pay for and use the hosted version for $1-2 a month, but I am not price flexible all the way up to $9. $9/ month is 'real' money, while 1/2 a month is 'patreon / burner' money that one doesn't have to think about in one's monthly budget. For something that I need to use over the course of 6-months/year to see if there are relationship benefits to all of the data entry, that means the first month trial is not quite enough to evaluate if there is value there.
I heartily applaud the FOSS if you host it yourself version, that is a mark of a good person, there.
They even publish a docker image so a moderately technical person could "docker run" it and kick the tires before deciding to subscribe or run it themselves.
Less than $7.50 per month and I think it would be hard to quantify the benefit.
Agreed. This is the way forward for most software monetization (in case of web applications): Have a FOSS licensed application, where you can pay for a hosted version. I think this is a fair model where you pretty much outsource devops for the software to the company who builds it.
If you want to self-host it (maybe legal or security reasons), you can do that without cost or hire their consultants in helping you doing that.
What do you mean? They literally have a link called "Pricing" at the top. It's $9 a month.
There it is - if I turn it sideways.