Dogdrop
Dogdrop is a modern dog daycare company focused on making high-quality, convenient care accessible for both dogs and their humans. As they expanded across the U.S., they needed a digital platform to support their growing network of locations and offer a consistent experience to customers, whether at a company-owned or franchise site.
We teamed up with Dogdrop to build a multi-tenant web app that handles everything from booking a first visit to managing ongoing daycare services. The platform also makes it easy for users to switch between locations without losing their data or experience. While our involvement didn’t extend to UI design, we were responsible for shaping the product logic and building the admin portal, customer portal, gift registration flow, and the marketing website.
We are responsible for
Scope:
Dedicated Agile Team
Team:
4 people
Duration:
5 months
Challenge
When we joined the Dogdrop project, we inherited a legacy codebase that had been developed over two years by another team. The system was difficult to maintain, lacked structure, and didn’t support key functionality - the ability to manage multiple locations. This posed a major challenge as Dogdrop was preparing to scale and introduce a franchise model. Transitioning from a single-location setup to one that could support both company-owned and franchise-operated locations required a complete architectural overhaul, including features like royalty tracking and flexible location management. On top of that, the legacy system was still live in production, which meant we had to carefully plan a seamless migration. We had only one overnight window - between the location closing and reopening the next morning - to migrate customer data, restructure Stripe’s payment setup, and switch over to the new system without any interruptions.
Solution
Starting with a full codebase overhaul, we replaced the outdated system with a clean, modern architecture using up-to-date frameworks and best practices. A carefully planned data migration strategy ensured that all customer records were preserved and transferred smoothly, maintaining continuity for existing users.
We then rearchitected the platform for multi-tenancy, enabling support for both business-owned and franchisee-owned locations. With a flexible and centralized system, new locations can now be added without the need for additional development, everything is handled automatically through a dynamic application context.
To launch the new system without disruption, we executed a tightly coordinated go-live process. This included migrating legacy data into the new structure, restructuring Stripe to match the updated architecture (with zero impact on payments), shutting down the old platform, and switching the domain to the new site—all completed overnight, just in time for the next day’s operations.
User Journey
New users at DogDrop register by providing their dog's details and scheduling a 'Good Fit Test' to assess compatibility with other dogs. After the test, an admin reviews the results and, if successful, updates the user's status. Once the test is passed, the user enters card information and purchases a subscription, becoming an official DogDrop customer. During visits, customers check in and out their dogs with an admin. At checkout, DogDrop's system automatically calculates the bill. An invoice is generated, and payment is processed using the customer's saved card details, streamlining the billing process.
Appointment Scheduling
The feature streamlines the appointment- making process with a multi-step registration form. Users can select visit times, receive SMS reminders, and manage appointments with ease. This functionality is crucial for enhancing user convenience, reducing no-shows, and boosting operational efficiency.
Billable Visits
This automates billing for customer visits, calculating charges based on visit duration and subscriptions. It integrates with Stripe for secure payment processing, playing a vital role in accurate financial management, transparent transactions, and ensuring a superior user experience.
Real-time Notifications
The system generates instant notifications for key actions by customers and admins, using web sockets for immediate communication. This feature is essential for increasing admin awareness, improving user engagement, and fostering efficient communication within the platform.
Customer migration between locations
Customers can visit different locations, with the system synchronizing data and billing across multiple locations. This flexibility supports multi-location business models, ensures accurate billing, and enhances customer convenience.
Subscriptions module
This module allows both admins and customers to comprehensively manage subscriptions, including purchasing, switching, canceling, pausing, and automating billing via Stripe. It's key for adapting to customer needs, managing subscriptions efficiently, and ensuring secure payment processing.
Statistics Trends
Provides real-time insights to location managers on key metrics like subscription counts, net and gross revenue, and daily check-ins. This data-driven approach aids in informed decision-making, resource allocation, and optimizing location performance.
Central Location Management
This essential module streamlines Dogdrop's administrative tasks, offering robust control and flexibility. Its features include:
Location Lifecycle Management: Facilitates the creation, configuration, and management of locations. This includes adding contact information, services, and simplifying the deletion of locations.
User Role Management: Eases the process of assigning and overseeing user roles, ensuring proper management of each location.
Third-Party Integration Configuration: Simplifies setting up Stripe and ActiveCampaign integrations for each location. It allows quick creation of Stripe accounts for new locations, including adding default products, coupons, and necessary financial components.
Overall, the module significantly improves location administration, integration configurations, and user role management within Dogdrop.
Tenant Management
The tenant context of DogDrop software, designed for location administrators and customers, offers streamlined functionality. Customers can register, manage subscriptions, and access their visit and payment history. They can also update their and their pets' information. Administrators manage customer subscriptions, oversee check-ins and check-outs, and monitor visit histories with payments. Key features for administrators include statistical analysis tools for net and gross revenue, visit statistics, and check-in heatmaps. The software has a robust in-app notification system and allows administrators to set location opening hours and working days. Additionally, they can access and modify customer data as needed and switch between multiple locations for efficient management.
Liked our projects?
Let's create something case-worthy together!
Multi-Database Multi Tenancy
We implemented multi-tenancy with a multi-database pattern, where each tenant has their own database, however there still is a centralized database for the data that needs to be managed centrally and synced across the tenants. This approach enabled us to achieve full data isolation between the tenants, which was critical due to the highly confidential healthcare data this application handles. Also, this approach allowed us to leverage horizontal scaling on the database layer for both read and write operations. Each tenant also had their own Redis instance (for caching and queue management) and S3 bucket (for media storage)
Iterative Testing, Releases and Acceptance
We practiced going through release cycles even before the software was made available for the end users by the client. After each sprint, our team prepared a release - a production-ready version of the software that was tested according to our test plan and delivered to the client for acceptance.
This approach ensured we achieved and maintained production-ready stability in the codebase from the outset. This process was part of the MVP (Minimum Viable Product) scope guide, which laid the foundation for our development strategy. After completing the MVP, we adopted smaller, more frequent release cycles, aiming to shorten the time between releases. This approach allowed us to quickly iterate, respond to client feedback, and continually improve the software, ensuring consistent quality.
CI/CD and Infrastructure as Code
Our development workflow was highly automated with continuous integration and continuous deployment pipelines implemented with Github Actions and Ansible. Our CI ran linters, automated test-suite, automated security checks (via Laravel Enlightn), automated generation of API documentation (via Scribe) and assigned pull requests to appropriate development team members for code reviews. Our CD deployed application to different environments like development, staging, pre-production and production. Our Devops team followed infrastructure as code approach. Infrastructure was based on AWS being provisioned using AWS Cloudformation and configured with Ansible.
We are a 200+ people agency and provide product design, software development, and creative growth marketing services to companies ranging from fresh startups to established enterprises. Our work has earned us 100+ international awards, partnerships with Laravel, Vue, Meta, and Google, and the title of Georgia’s agency of the year in 2019 and 2021.