Clients
Qikbook

Enabled go-to-market Proptech Startup in half the time with a reliable web application

Proptech
New Zealand
6 months
Django
React
Digital Ocean
Python
5 stars
partner rating
3 months
time-to-market

Stacks

  • React;
  • Django;
  • Python;
  • DigitalOcean;

About Qikbook

Counseling rooms are spaces designed to provide counseling or therapy sessions. These rooms are typically equipped to create a comfortable and confidential environment where individuals can talk to a counselor or therapist about their concerns, emotions, and experiences.

Building managers or owners, who typically oversee multiple counseling rooms, often lack an automated solution for efficient management. Most existing tools are generic scheduling applications that do not specifically cater to this sector's unique needs.

This is where Qikbook comes in a marketplace that facilitates the booking and management of these spaces. It stands out from its competitors by not charging a subscription fee; Qikbook charges a small commission over bookings made through the platform. The platform showcases listings of buildings and their rooms, enabling users to explore options before committing to sign up.

The Challenge

The founder, Chris Sharp, is a former building owner and manager. Before launching Qikbook, he tried several apps, but nothing was appropriate for managing counseling rooms.

He initially engaged another consultancy that worked alongside him to implement his ideas. Chris tried to communicate what he needed, but language barriers affected the project from day one.

Communication was not the only problem. While the backend code was somewhat acceptable, around 80% of the frontend code required complete rewriting due to its poor quality. In case you’re familiar with coding, some components were overly complicated, with one containing as many as 55 states, making it difficult to manage.

Additionally, the consultancy had assigned a DevOps professional to set up the deployment process and production environment once. Unfortunately, they used virtual machines that are less efficient and harder to maintain than more modern solutions like containers. This choice added unnecessary complexity and limitations to the project.

Ultimately, the consultancy could not deliver Chris's desired results, leaving him in a difficult position. It became clear that he would need to start over.

The choice to work with Vinta made the difference in getting his MVP up and running. Here’s what happened next.

The Answer

When he contacted us, he had a half-built Django-React-based product and a backlog document with almost 30 pages of bug descriptions and improvements that required working.

We knew this would be challenging upfront. Many parts of the codebase had been implemented with low-quality code, leaving us to navigate the minefield with very few references.

Although this was a significant issue, we had no doubt our full-stack team could handle it. Before starting, we took Qikbook’s backlog document and turned it into a structured tickets list, ranking features and bugs according to their complexity and priority.

This allowed us to be more efficient when discussing focus areas. We had a first meeting with Chris and double-checked our assumptions about priority, and with an ordered backlog, we were ready to go.

We held a lengthy meeting with Chris, during which we reviewed all the tickets our team had created based on the convoluted requirements document shared with us. We sought to ascertain whether this truly reflected his needs. We imported all the tasks into Asana and organized them by module within the application, classifying them according to priority and complexity.

The original document was highly complex and resembled a written essay without any filtering. Completing it was challenging, mainly because we had to ensure the link between the tasks and the document was maintained.

Our team went through the document and we were able to translate what Chris envisioned into a simpler and organized to-do list. This streamlined communication and prioritization, so the development team wouldn’t face a considerable cognitive burden in trying to navigate the document.

Approach

It is always a positive experience to collaborate with a CEO who has a well-defined vision for their business. This is because it streamlines decision-making, and Vinta’s approach establishes open communication and regular updates on our progress.

We ensured daily async reports and weekly meetings, valuing the synchronous moments for product demos, feedback sessions, and requirement alignments despite the 16-hour time difference due to this client's residence in New Zealand. While we sustain a generally favorable time zone for collaboration with international clients, we're also a remote-first company. That means we're well-versed in asynchronous communication and rely on instant messaging when face-to-face interaction isn’t possible.

Besides that, at Vinta, we encourage a high level of synergy between engineering and management, so we are alert to potential problems and communicate them as soon as possible.

As the MVP development progressed, we addressed issues and features that arose beyond the original scope. Chris identified these features during the development stage and felt they were worth spending extra time and resources on. However, as these new requirements piled up, time became an issue.

Our Project Manager met with Chris and presented two options: reduce the scope and simplify or extend the contract to cover everything. Ultimately, he opted for the second option and affirmed that every investment in our team was worthwhile. This reinforced his confidence in Vinta's capabilities and our commitment to meeting his needs effectively.

The Product

The platform allows building owners and managers to manage their listings and control granular aspects of how they want to run their business.

They can:

  • Set cancellation policies that best adapt to their needs;
  • Choose other users to manage their listings for them;
  • Manage and set special conditions for VIP users;
  • Book and cancel rooms on behalf of users;
  • Choose whether to keep their listings public or private to their clientele.

Qikbook’s scheduling experience is comprehensive, but it was a substantial challenge to implement. Our developers had to resort to extensive Redux use and state-of-the-art JS to guarantee a high-performing UX. We’ll go into more technical details in the section below.

The tech and methodology responsible for this MVP’s success

We had various technical challenges with Qikbook. The first was implementing their all-encompassing scheduling options, which involved dealing with the availability of listings and rooms, restricted dates, existing bookings, canceling rules, permissions, and due payment/refund calculation logic on a single screen! Modern Redux toolings like Slices, Selectors, and Immer were essential to making the front-end performative and with organized complexity.

We implemented payment and refund calculation codes from scratch in a ledger-like manner to simplify the refund logic. Moreover, our booking logic ended up with test coverage close to 100%, intending to guarantee correctness.

Adapting the booking flow to support all time zones was also needed, as it would enable global usage of the platform. This was possible through integrations that allowed us to find the Listing’s timezone through its address and correct timezone usage at the database level, business logic, and frontend touchpoints.

We implemented an automated system to collect Qikbook’s commission through monthly Stripe invoice issuing. Since the system is timezone-aware, we built it to run every first day of the month, considering the Listing’s timezone, and calculate the due commission based on all bookings from the month prior.

For that, we used Huey async tasks to schedule and execute the automation, although it was necessary to extend Huey’s crontab to make it timezone-aware. The invoices are generated within the system and then integrated into Stripe Invoices. As soon as clients pay through Stripe, our system is also automatically updated via webhooks.

Moreover, there were also security issues to address, like frontend-only incorrect validation, permissions that had been wrongly implemented in the backend, and inaccurate usage of JWT expiration and refresh tokens, among many other issues.

Our team had to fix and reimplement all of this, making reviews a central part of the job. We tested the existing code and reimplemented it when we deemed it necessary and strategic.

Finally, as it’s our custom, we used existing open-source tools to speed up the delivery of key features.

Examples include:

  • dj-rest-auth, which helped us reimplement the login, passwords, log-out, and JWT logic;
  • Mantine table, which helped us reimplement the Booking & Logs listing and filtering pages;
  • django-safedelete, which helped us speed up our implementation of soft-deletion, allowing admins to restore data easily;
  • Custom Django Admin, with several actions to make admins’ lives easier.

Product Consultancy & Investment

As a marketplace, Qikbook would naturally face a range of challenges that are compatible with the business model. However, choosing a side (supply/demand) to focus on first was not one of them. Many building owners would already have a roster of existing customers, ensuring that every supply acquisition came with its demand. Chris knew this strategy would help him get where he wanted.

The validation method he would use for his idea was crystal clear to him: he would knock on doors and offer his services to hundreds of building managers who had found themselves in a similar situation years ago.

In cases where more product discovery and development is needed, we offer our Product Management services so we can explore strategy, validation methods, research, metrics, and more.

As an intentionally bootstrapped company, Chris wasn’t after investment at first. He sought to validate his MVP development and go through the revenue route upfront. Cases of self-funded ventures are becoming more common each day as investment is harder to come by. With Chris’ clear vision of what he thought it would take for his business to take off, we worked hard to ensure everything followed the product’s philosophy: simple yet powerful features and no subscription fees.

Outcome

“Vinta’s work is exemplary. At the end of the day, it’s about the quality of work.” – Chris Sharp

By the end of our cycle with Qikbook, we had tackled over 80 tasks, including bugs, improvements, and new features. With our work, Chris was able to launch his system in three months and bring it to real users’ hands.

Are you facing a similar challenge? If you need to launch a product, count on our experts to help you out!

This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Ready to start?

Let's assemble your team
with our in-house talent pool

Get in touch