<p>You're asking a lot here. </p>

<p>I would say Craft is capable of a lot of it but how much do you want to spend on development? It's a bit like asking "Can xxx be the next Facebook?" </p>

<p>Just going over your list:</p>

<ol>
<li><a href="https://www.doublesecretagency.com/plugins/smart-map" rel="nofollow noreferrer">Smart Map</a> could be a great fit here.</li>
<li>I just did a project integrating Stripe into Craft. Stripe's API is fantastic but anything with card processing, make sure test the hell of it.</li>
<li>Forms are relatively simple to setup in Craft but what do you want to do after the request is made? Do you need tracking done (a la zen desk) or something else?</li>
<li>Including 5 / 6 as well:  Craft's permissions are great for sectioning off users and moving content in an out of the system. Again, the devil is in the details.</li>
<li>^^ </li>
<li>^^^ </li>
<li><a href="https://github.com/objectivehtml/Postmaster-for-Craft-CMS" rel="nofollow noreferrer">Postmaster</a> handles e-mail and SMS which could be useful.</li>
<li>I don't know of any off-the-shelf plugins that work with DocuSign; definitely new ground.</li>
<li>Could be pretty straightforward. After a request comes through, it becomes a new maintenance entry which you could query for.</li>
<li>Anything having to do with accounting and e-commmece, the universe is the limit.</li>
</ol>

<p>As <a href="https://craftcms.stackexchange.com/a/11277/1016">naboovalley mentioned</a>, it's going to be a lot of custom code no matter how many pieces are already "done". Depending on specifics, you could be easily be at 6 figures of dev before you even get off the ground. </p>

<p>IMO that's a lot of money to recoup but it's not impossible if you can get traction.</p>

<p>Like you mentioned, systems like AppFolio, TenantCloud, and PropertyWare are already available so if you're going to be attracting potential landlords to your system, your solution better be superior to get them to switch.</p>

<p>TBH, Craft is awesome for content management; this solution blurs the line between SaaS and an app. If it were me, I'd also look at something custom within the Rails community too. Once your code is bound to Craft, you're tied there, for better or worse.</p>

CC BY-SA 4.0
2015-09-01T21:29:23.750Z
2018-07-23T04:19:12.600Z
2018-07-23T04:19:12.600Z
RitterKnight
<p>Is Craft mature enough? Probably.</p>

<p>These very specific requirements are looking for a web application framework. There's no getting around that most of this will be custom code.</p>

<p>I can't think of a CMS (primarily publishing platforms) that will get more than 5% of the way there. Drupal <em>maybe</em> but the learning curve would probably offset the value and the technical debt would cost more later. The only solid piece of this a CMS gets you is a user registration and authentication system.</p>

<p>Sounds like a Laravel app to me. It also sounds like something Laravel Spark promises to bridge the gap for.</p>

<p>Best of luck!</p>

CC BY-SA 3.0
2015-09-01T22:04:36.550Z
2015-09-01T22:04:36.550Z
Sam Hernandez
<p>It is, but will require a lot of custom code work. You won't get these functions build in. If you are an experienced coder you'll love the yii structure and easy to use integration with Crafts core. </p>

<p>If you are planing on building a PMS with rate codes, multi channel push support and so on I think a custom system will fit better. </p>

CC BY-SA 3.0
2015-09-01T20:56:34.527Z
2015-09-01T20:56:34.527Z
naboovalley
<p>I generally use an MVP approach in cases like this: if you reduce your product to the bare minimum needed to meet users needs and business objectives, is it a content-based website with some application features (CMS) or is it an application displaying some content (Custom app)?</p>

<p>The other important factor to consider is how the choice you will make will impact your ability to make the product evolve over time.</p>

<p>I am in the camp that this type of projects would better be served by using frameworks like Laravel or Rails. As Ben said, using a simple plugin built on Guzzle, it's relatively easy to make Craft talk to API and display data for you.</p>

CC BY-SA 3.0
2015-09-02T03:41:19.357Z
2015-09-02T03:41:19.357Z
Jérôme Coupé
<p>I'd recommend Venti for the calendars</p>

<p><a href="https://straightupcraft.com/craft-plugins/venti" rel="nofollow">https://straightupcraft.com/craft-plugins/venti</a></p>

CC BY-SA 3.0
2015-09-01T23:49:51.380Z
2015-09-01T23:49:51.380Z
j00lz
<p>I think the other answers here are accurate in saying that this could very well be a use case for a more specific application. </p>

<p>That said, I'm optimistic that this would be possible on Craft with enough planning, budget, and development time; and our own efforts while building out the Sprout Plugin Suite have had use cases like this in mind. </p>

<p>So, I'm going to try to answer how I'd approach this as a Craft project. There would be lots of questions to get answered along the way, so this is really just a very top level overview of where I'd start to look and ask questions.</p>

<p>I'll frame my answer around the plugins I'm most familiar with.  It's likely with the amount of custom development necessary, multiple plugins or starting points would take a similar amount of time.</p>

<hr>

<p><strong>1. site visitors can search for rental units (on Map too)</strong></p>

<p>For this requirement, I'd look into <a href="https://www.doublesecretagency.com/plugins/smart-map" rel="nofollow noreferrer">Smart Map</a> and reach out to Lindsey DiLoreto if you have specific questions.</p>

<p><strong>2. tenants can pay rent online</strong></p>

<p>This is possible in some form or another with <a href="https://straightupcraft.com/craft-plugins/charge" rel="nofollow noreferrer">Charge</a>, <a href="http://sprout.barrelstrengthdesign.com/craft-plugins/commerce" rel="nofollow noreferrer">Sprout Commerce</a>, and <a href="https://buildwithcraft.com/commerce" rel="nofollow noreferrer">Craft Commerce</a>.  The latter two are in private and public beta as of this posting. Specific details would need to be explored.</p>

<p><strong>3. tenants can make maintenance requests online</strong></p>

<p>A fairly customized workflow is possible for this with normal Entries or <a href="http://sprout.barrelstrengthdesign.com/craft-plugins/forms" rel="nofollow noreferrer">Sprout Forms</a>, and <a href="http://sprout.barrelstrengthdesign.com/craft-plugins/email" rel="nofollow noreferrer">Sprout Email</a>. When an Entry for a particular Section is saved via an Entry Form, or an Entry for a Form is submitted via a Form, an event will fire and you can setup a Notification in Sprout Email to trigger emails to different people (admins and users) based on different types of maintenance requests.  You have full control over the custom HTML in your notification emails and can customize the message with the information from the submitted Entry or Form.</p>

<p>If you have any specific questions around Sprout Commerce, Sprout Email, or Sprout Forms, you can reach out to Barrel Strength Design.</p>

<p>Views into your Element Listing Pages can be controlled via <a href="http://buildwithcraft.com/docs/plugins/hooks-reference#element-hooks" rel="nofollow noreferrer">Element Hooks</a> to help manage workflows and bring key information to the top level, such as the status of a request. For more specific needs, a plugin may be necessary.</p>

<p><strong>4. landlords can look at their accounts (income, expenses, past due, etc)</strong></p>

<p>This should be possible with default Craft functionality for a member section and you can pull data in from any native elements or any plugins that store their data in the database.</p>

<p><strong>5. landlords, agents or admins can add new properties to the system</strong></p>

<p>This is possible with the default Craft functionality and customizing Member Group permissions to your needs.  You'll need to build out the front-end interface, but all you need to allow people to submit data is there.  If you want to trigger email notifications when certain types of properties get added, Sprout Email has a <a href="http://sprout.barrelstrengthdesign.com/craft-plugins/email/docs/notifications/custom-events" rel="nofollow noreferrer">customizable Event API</a> so you could write or ask someone to write a custom plugin that allows emails to be triggered when certain conditions are met.</p>

<p><strong>6. landlords or agents can book showings</strong></p>

<p>It's unclear to me if this ties in to Calendar needs as discussed in #9 or a more general Event question where you have a showing and many people can come. Craft is pretty powerful out of the box and more specific event needs would probably need to be described for a more specific answer.</p>

<p><strong>7. automated notifications/emails (rent due, maintenance complete, etc)</strong></p>

<p>We have automated notifications planned (at some point) for Sprout Email, and we've worked on a some projects where we have initial implementations of this behavior. Some custom development would be needed here, but it's possible, and the notifications could be managed right in Sprout Email to make their content easy to update and manage for a non-technical user.</p>

<p>For things like notifying somebody when maintenance is complete, you could create a custom Email Event to allow you to trigger an email to the particular user who submitted the request when a maintenance work updates a custom field from one status to another.</p>

<p><strong>8. lease document signing (DocuSign API or?)</strong></p>

<p>Some Digital Signature programs allow you to embed certain document types on your website and allow them to be submitted by multiple people. I've seen various implementations of this functionality - however in my quick search around I'm not finding many examples that don't rely to some extent on the API.  I still believe they exist, but for now, my list to you is just this one:</p>

<ul>
<li><a href="https://www.pandadoc.com/faqs/can-embed-template-website-viewers-sign" rel="nofollow noreferrer">PandaDoc</a></li>
</ul>

<p><strong>9. calendar to schedule maintenance</strong></p>

<p>There are a few Calendar plugins to take a look at (in alphabetical order):</p>

<ul>
<li><a href="https://solspace.com/craft/calendar" rel="nofollow noreferrer">Calendar</a> by Solspace</li>
<li><a href="http://michaelrog.com/craft/calendars" rel="nofollow noreferrer">Calendars</a> by Top Shelf Craft</li>
<li><a href="http://tippingmedia.com/venti/" rel="nofollow noreferrer">Venti</a> by Tipping Media  </li>
</ul>

<p>I'd recommend reaching out to each respective developer for specific questions.</p>

<p><strong>10. e-commerce and accounting integration (possibly Quickbooks and banks API)</strong></p>

<p>This is probably going to be the most challenging item to answer without a more detailed spec and understanding of what your budget is. Custom e-commerce and complex integrations, in general, take time to do well and get things right – especially when people are making decisions around the financial data and using that data to run the business.</p>

<p>Both Sprout Commerce and Craft Commerce are being built out with flexibility in mind, but I don't think either of them will be planning to integrate with Quickbooks, Xero, or banks before the more standard Commerce use cases are solved, if at all. It's likely what you're looking for here is a more custom integration targeted specifically at your accounting software and banks.</p>

<p>Depending on your budget, you may want to consider alternative workflows here too that combine programmatic and manual steps.</p>

<hr>

<p>It's worth noting that most of us plugin developers are pretty friendly, and if you found yourself in a situation where Calendars or SmartMap weren't communicating with Sprout Email in a way that allowed you to send notifications like you need to, or vice versa, we like hearing about it and learning how we can help make the whole plugin ecosystem play more nicely together.</p>

<p>In general, I think these types of applications are a very fine line between custom application and CMS. On one hand, they are going to require customization and the app may be the better route.  On the other hand, enough components of the project revolve around general content management needs that a CMS like Craft already solves well and saves the trouble of managing your own admin UI and many other concepts that are already well established in Craft.</p>

<p>With a project as complex as yours, it may be worthwhile to consider a hybrid approach too. It may be that 80% of your project is a really good fit for Craft and that it makes sense to outsource certain functionality like Scheduling or Commerce to another platform.  Over time, maybe there will be an opportunity to migrate those types of features to Craft at a lower cost.</p>

<p>A lot of trade-offs like that are hard to make, but putting a price tag on your options helps you and your client choose the best approach for the current budget, and prioritize improvements down the road.</p>

CC BY-SA 3.0
2016-06-27T05:47:20.880Z
Also for *9* is https://solspace.com/craft/calendar
Luke Holder
CC BY-SA 3.0
2016-06-27T14:46:10.157Z
Thanks Luke. Just updated the answer to reflect the current Calendar plugin landscape a bit better.
Ben Parizek
CC BY-SA 3.0
2017-03-26T17:54:42.673Z
Such a thorough answer! Well done
Nathan D Huening
CC BY-SA 4.0
2015-09-01T23:16:49.550Z
2018-07-23T04:18:31.290Z
2018-07-23T04:18:31.290Z
Ben Parizek
<p>Is Craft mature enough to build a robust rental property management system like <a href="http://www.appfolio.com/features" rel="noreferrer">http://www.appfolio.com/features</a> or <a href="https://www.tenantcloud.com" rel="noreferrer">https://www.tenantcloud.com</a>? </p>

<p>If so, are there any existing plugins that can handle any of the complex features? I will need to build or contract out the rest.</p>

<p>Required Features: </p>

<ol>
<li>site visitors can search for rental units (on Map too)</li>
<li>tenants can pay rent online </li>
<li>tenants can make maintenance requests online</li>
<li>landlords can look at their accounts (income, expenses, past due, etc)</li>
<li>landlords, agents or admins can add new properties to the system</li>
<li>landlords or agents can book showings</li>
<li>automated notifications/emails (rent due, maintenance complete, etc)</li>
<li>lease document signing (DocuSign API or?)</li>
<li>calendar to schedule maintenance</li>
<li>e-commerce and accounting integration (possibly Quickbooks and banks API)</li>
</ol>

<p>I've also been researching using ExpressionEngine or using an existing service like the ones mentioned above or even open source, but I really want to use Craft or even EE if possible for flexibility now and in the future.</p>

CC BY-SA 3.0
2017-05-09T23:28:47.497Z
Hi Andrew! Please consider accepting whichever answer you found to be most helpful.
Matt Stein
<craft-features>
Build a Property Management System with Craft CMS?
# Build a Property Management System with Craft CMS?

(Asked by: username_0 on 2015-09-01)

Is Craft mature enough to build a robust rental property management system like <http://www.appfolio.com/features> or <https://www.tenantcloud.com>?

If so, are there any existing plugins that can handle any of the complex features? I will need to build or contract out the rest.

Required Features:

1. site visitors can search for rental units (on Map too)
2. tenants can pay rent online
3. tenants can make maintenance requests online
4. landlords can look at their accounts (income, expenses, past due, etc)
5. landlords, agents or admins can add new properties to the system
6. landlords or agents can book showings
7. automated notifications/emails (rent due, maintenance complete, etc)
8. lease document signing (DocuSign API or?)
9. calendar to schedule maintenance
10. e-commerce and accounting integration (possibly Quickbooks and banks API)

I've also been researching using ExpressionEngine or using an existing service like the ones mentioned above or even open source, but I really want to use Craft or even EE if possible for flexibility now and in the future.

**Tags:** craft-features
> **Comments:**
> **username_1**: Hi Andrew! Please consider accepting whichever answer you found to be most helpful.  

---

## 6 answers

### Answer by username_7 on 2015-09-01. Score: 11 | Accepted answer

I think the other answers here are accurate in saying that this could very well be a use case for a more specific application.

That said, I'm optimistic that this would be possible on Craft with enough planning, budget, and development time; and our own efforts while building out the Sprout Plugin Suite have had use cases like this in mind.

So, I'm going to try to answer how I'd approach this as a Craft project. There would be lots of questions to get answered along the way, so this is really just a very top level overview of where I'd start to look and ask questions.

I'll frame my answer around the plugins I'm most familiar with. It's likely with the amount of custom development necessary, multiple plugins or starting points would take a similar amount of time.

---

**1. site visitors can search for rental units (on Map too)**

For this requirement, I'd look into [Smart Map](https://www.doublesecretagency.com/plugins/smart-map) and reach out to Lindsey DiLoreto if you have specific questions.

**2. tenants can pay rent online**

This is possible in some form or another with [Charge](https://straightupcraft.com/craft-plugins/charge), [Sprout Commerce](http://sprout.barrelstrengthdesign.com/craft-plugins/commerce), and [Craft Commerce](https://buildwithcraft.com/commerce). The latter two are in private and public beta as of this posting. Specific details would need to be explored.

**3. tenants can make maintenance requests online**

A fairly customized workflow is possible for this with normal Entries or [Sprout Forms](http://sprout.barrelstrengthdesign.com/craft-plugins/forms), and [Sprout Email](http://sprout.barrelstrengthdesign.com/craft-plugins/email). When an Entry for a particular Section is saved via an Entry Form, or an Entry for a Form is submitted via a Form, an event will fire and you can setup a Notification in Sprout Email to trigger emails to different people (admins and users) based on different types of maintenance requests. You have full control over the custom HTML in your notification emails and can customize the message with the information from the submitted Entry or Form.

If you have any specific questions around Sprout Commerce, Sprout Email, or Sprout Forms, you can reach out to Barrel Strength Design.

Views into your Element Listing Pages can be controlled via [Element Hooks](http://buildwithcraft.com/docs/plugins/hooks-reference#element-hooks) to help manage workflows and bring key information to the top level, such as the status of a request. For more specific needs, a plugin may be necessary.

**4. landlords can look at their accounts (income, expenses, past due, etc)**

This should be possible with default Craft functionality for a member section and you can pull data in from any native elements or any plugins that store their data in the database.

**5. landlords, agents or admins can add new properties to the system**

This is possible with the default Craft functionality and customizing Member Group permissions to your needs. You'll need to build out the front-end interface, but all you need to allow people to submit data is there. If you want to trigger email notifications when certain types of properties get added, Sprout Email has a [customizable Event API](http://sprout.barrelstrengthdesign.com/craft-plugins/email/docs/notifications/custom-events) so you could write or ask someone to write a custom plugin that allows emails to be triggered when certain conditions are met.

**6. landlords or agents can book showings**

It's unclear to me if this ties in to Calendar needs as discussed in #9 or a more general Event question where you have a showing and many people can come. Craft is pretty powerful out of the box and more specific event needs would probably need to be described for a more specific answer.

**7. automated notifications/emails (rent due, maintenance complete, etc)**

We have automated notifications planned (at some point) for Sprout Email, and we've worked on a some projects where we have initial implementations of this behavior. Some custom development would be needed here, but it's possible, and the notifications could be managed right in Sprout Email to make their content easy to update and manage for a non-technical user.

For things like notifying somebody when maintenance is complete, you could create a custom Email Event to allow you to trigger an email to the particular user who submitted the request when a maintenance work updates a custom field from one status to another.

**8. lease document signing (DocuSign API or?)**

Some Digital Signature programs allow you to embed certain document types on your website and allow them to be submitted by multiple people. I've seen various implementations of this functionality - however in my quick search around I'm not finding many examples that don't rely to some extent on the API. I still believe they exist, but for now, my list to you is just this one:

* [PandaDoc](https://www.pandadoc.com/faqs/can-embed-template-website-viewers-sign)

**9. calendar to schedule maintenance**

There are a few Calendar plugins to take a look at (in alphabetical order):

* [Calendar](https://solspace.com/craft/calendar) by Solspace
* [Calendars](http://michaelrog.com/craft/calendars) by Top Shelf Craft
* [Venti](http://tippingmedia.com/venti/) by Tipping Media

I'd recommend reaching out to each respective developer for specific questions.

**10. e-commerce and accounting integration (possibly Quickbooks and banks API)**

This is probably going to be the most challenging item to answer without a more detailed spec and understanding of what your budget is. Custom e-commerce and complex integrations, in general, take time to do well and get things right – especially when people are making decisions around the financial data and using that data to run the business.

Both Sprout Commerce and Craft Commerce are being built out with flexibility in mind, but I don't think either of them will be planning to integrate with Quickbooks, Xero, or banks before the more standard Commerce use cases are solved, if at all. It's likely what you're looking for here is a more custom integration targeted specifically at your accounting software and banks.

Depending on your budget, you may want to consider alternative workflows here too that combine programmatic and manual steps.

---

It's worth noting that most of us plugin developers are pretty friendly, and if you found yourself in a situation where Calendars or SmartMap weren't communicating with Sprout Email in a way that allowed you to send notifications like you need to, or vice versa, we like hearing about it and learning how we can help make the whole plugin ecosystem play more nicely together.

In general, I think these types of applications are a very fine line between custom application and CMS. On one hand, they are going to require customization and the app may be the better route. On the other hand, enough components of the project revolve around general content management needs that a CMS like Craft already solves well and saves the trouble of managing your own admin UI and many other concepts that are already well established in Craft.

With a project as complex as yours, it may be worthwhile to consider a hybrid approach too. It may be that 80% of your project is a really good fit for Craft and that it makes sense to outsource certain functionality like Scheduling or Commerce to another platform. Over time, maybe there will be an opportunity to migrate those types of features to Craft at a lower cost.

A lot of trade-offs like that are hard to make, but putting a price tag on your options helps you and your client choose the best approach for the current budget, and prioritize improvements down the road.

> **Comments:**
> **username_8**: Also for *9* is https://solspace.com/craft/calendar  
> **username_7**: Thanks Luke. Just updated the answer to reflect the current Calendar plugin landscape a bit better.  
> **username_9**: Such a thorough answer! Well done  

---

### Answer by username_2 on 2015-09-01. Score: 6

You're asking a lot here.

I would say Craft is capable of a lot of it but how much do you want to spend on development? It's a bit like asking "Can xxx be the next Facebook?"

Just going over your list:

1. [Smart Map](https://www.doublesecretagency.com/plugins/smart-map) could be a great fit here.
2. I just did a project integrating Stripe into Craft. Stripe's API is fantastic but anything with card processing, make sure test the hell of it.
3. Forms are relatively simple to setup in Craft but what do you want to do after the request is made? Do you need tracking done (a la zen desk) or something else?
4. Including 5 / 6 as well: Craft's permissions are great for sectioning off users and moving content in an out of the system. Again, the devil is in the details.
5. ^^
6. ^^^
7. [Postmaster](https://github.com/objectivehtml/Postmaster-for-Craft-CMS) handles e-mail and SMS which could be useful.
8. I don't know of any off-the-shelf plugins that work with DocuSign; definitely new ground.
9. Could be pretty straightforward. After a request comes through, it becomes a new maintenance entry which you could query for.
10. Anything having to do with accounting and e-commmece, the universe is the limit.

As [naboovalley mentioned](https://craftcms.stackexchange.com/a/11277/1016), it's going to be a lot of custom code no matter how many pieces are already "done". Depending on specifics, you could be easily be at 6 figures of dev before you even get off the ground.

IMO that's a lot of money to recoup but it's not impossible if you can get traction.

Like you mentioned, systems like AppFolio, TenantCloud, and PropertyWare are already available so if you're going to be attracting potential landlords to your system, your solution better be superior to get them to switch.

TBH, Craft is awesome for content management; this solution blurs the line between SaaS and an app. If it were me, I'd also look at something custom within the Rails community too. Once your code is bound to Craft, you're tied there, for better or worse.


---

### Answer by username_3 on 2015-09-01. Score: 5

Is Craft mature enough? Probably.

These very specific requirements are looking for a web application framework. There's no getting around that most of this will be custom code.

I can't think of a CMS (primarily publishing platforms) that will get more than 5% of the way there. Drupal *maybe* but the learning curve would probably offset the value and the technical debt would cost more later. The only solid piece of this a CMS gets you is a user registration and authentication system.

Sounds like a Laravel app to me. It also sounds like something Laravel Spark promises to bridge the gap for.

Best of luck!


---

### Answer by username_4 on 2015-09-01. Score: 4

It is, but will require a lot of custom code work. You won't get these functions build in. If you are an experienced coder you'll love the yii structure and easy to use integration with Crafts core.

If you are planing on building a PMS with rate codes, multi channel push support and so on I think a custom system will fit better.


---

### Answer by username_5 on 2015-09-02. Score: 2

I generally use an MVP approach in cases like this: if you reduce your product to the bare minimum needed to meet users needs and business objectives, is it a content-based website with some application features (CMS) or is it an application displaying some content (Custom app)?

The other important factor to consider is how the choice you will make will impact your ability to make the product evolve over time.

I am in the camp that this type of projects would better be served by using frameworks like Laravel or Rails. As Ben said, using a simple plugin built on Guzzle, it's relatively easy to make Craft talk to API and display data for you.


---

### Answer by username_6 on 2015-09-01. Score: 2

I'd recommend Venti for the calendars

<https://straightupcraft.com/craft-plugins/venti>


---

