How we created a complex SaaS application in 2 months with Django
I would love to share my story of how we created a complete, complex, tenant, multi-functionality, multi-application SaaS in just two months with Python and Django. By we, I mean solo-developer, founder me.
I will start by sharing the app in question, then go in to the story of how to came to be.
The concept, where it all started
I am a Software Developer by day, content creator and youtube teacher by weekends, serial entrepreneur by night. As part of my day job, I build custom software solutions for clients — this can be anything from simple static websites to more complex, dynamic web applications or cloud software. One of our clients had been asking me for a CRM. They initially wanted the CRM on their own cloud, so they did not store their information in web-based platforms.
So I researched around and finally decided on corteza, at the time, it was new and easy to install on your own server. So, I did that and this client used it for quite sometime and was very happy with it. But we started having some challenges with time:
- The software was constantly being changed, and one of those changes just broke the installation we had and everything just stopped working and all the data was gone.
- It was hard to troubleshoot when there was problems with certain features — like automation flows etc. Since I could not see the code, I could not fix it.
- It started to become really frustrating when a client calls you with a problem and you can nothing about it, but tell them to wait for the next update.
So basically after the last straw of losing over 2000 client CRM records, I decided. I am just going to have to build my own CRM, I mean how hard can it be?
Deciding on the technology — Python Django
Once the decision was made, it was basically a race to the finish. Python Django web development framework was an easy choice for me. I build almost everything on it, I teach it on my youtube channel here on a regular basis.
The Reasons for choosing Django
- Django is described as “batteries included” — meaning, there is a lot of boiler-plate coding that is already done for you on things like: app security checks, support libraries, Object Relationship Mapper etc. In simple terms, developing the same app that can take you a month on Django, would take you 4–6 months on another platform — with exact same features.
- Python — Django integrates seamlessly with python libraries, and python is well known for? …… data processing, analytics, visualisations etc. So integrating AI, ML elements is seamless in to a Django app, because it is already in python.
- Reusability is a common feature that comes up all the time with Django. The way the apps plug in together, once you have a working app, you could re-use it anywhere else with ease.
- Scalability and efficiency — the framework scales really well and can handle large datasets, so If you are planning to build the next unicorn, its a good bet.
I could go on and on, but these were my top reasons for the choice, my top reason is just how quickly one can release a top of the range, world standard application with Django.
To give you an idea, it took us about 2 months to develop skhokho and with all these features, I will share below.
Features included in Skhokho SaaS Platform built in Django
Human Resource Management App
This was the first feature that was added on, it was the base of the application. Skhokho was created as a collaborative tool within organisations, so it needed user profiles. The idea was that, one company would have an account and invite all the members, as users or team members of that company.
The HR app can handle, employee onboarding, leave management, team task management, payroll and payslip creation.
Objective Key Results App
This was actually a feature we added after the first release, from client feedback. The client wanted us to consider a goal setting tool, to help frame the manager-task process.
Before, the manager would just assign tasks to their team members and many of the users were happy with that, but the suggestion was: there should be some sort of purpose or goals behind the tasks, so that the team can understand what they are all working towards.
We settled on OKRs, they are a well known method, used by successful multinational companies that attribute some of their success to the process.
Sales and CRM
This is why we decided to build Skhokho in the first place, to help one client with a simple CRM for their business. The feedback that we got was, a lot of the current platforms are expensive and not geared towards small businesses. They are bulky with a million features small businesses hardly every use.
The plan was to create something simple, intuitive and exciting. Cover the basic features and make it affordable for small businesses.
Project Management App
Yes we got one of those too, imagine Asana with a purpose.
Invoicing, quotes, expenses, products and services — cash flow, best part is that it is all integrated. So your invoices are linked to actual projects in the project app and payroll expenses automatically reflect in your cash flow.
A surprising twist — Meeting Management Integration
I have worked in corporate for over 15years and meetings is something that we did almost everyday. However after 15years, we were still dealing with:
- No one can remember what was discussed in a meeting
- We cannot agree on specific actions or things that were said in meetings
- When people leave, no one can find minutes of meetings from 6 months ago
- We refer to our email and calendars to remember when we had meetings and who the attendees were
- Rely on Zoom recording for minutes of meeting — that is if you can find the recording after the meeting
It was natural progression that we had to do something about basic meeting management. We had a requirement for meetings within:
- Sales and CRM app — to record meetings with leads, potential clients
- Project management app — to record project meetings
Eventually we built an app-wide meeting management system because every one has meetings. The meeting app can: (1) schedule meetings, create a meeting record, (2) allow members to be invited, (3) allow for minutes to be taken, in the form of action points, (4) send meeting invites to registered attendees with a click of a button and (5) email out minutes of meeting with a single click.
This is what we ended up with, and it is enough for what businesses do on a day to day.
Front end design, perfection and colour
The front end design was a tricky one, we actually scrapped so many front-end options until we landed on our final design. At some point we were 60% in to the design when we scrapped everything, and I still have that old website to prove it.
We looked at it, the colours did not pop quite enough, so it had to go and we started from scratch. We paid attention to everything, the illustrations, icons, colours, everything was carefully selected to leave a lasting impression and stand out. I hope that comes across in the design.
Your thoughts are welcome, leave a comment below:
Check out our PH ship page here: https://www.producthunt.com/upcoming/skhokho-2
So you will know when we finally get to launch on PH — very soon.
Or just try us out — https://skhokho.io