Dependency & Lost productive hours - Before App CMS, Grofers marketing and category teams depended on the engineering team for widget controls, running A/B tests and various other tasks that could be self-service and better managed by Marketing teams. This impacted not only the marketing team's productivity but also a productive time of the engineering team that could have been invested somewhere else.
Native App Integration - As the CMS work directly impacts the App experience and in turn primary user experience of Grofers. It was crucial that the integration must not affect the Performance, Aesthetics & UI Integration with Native elements.
Future Looking - Though our first mandate was to enable Marketing team with CMS function, it was very evident from the start that the solution has to be flexible and accommodate advance marketing needs to personalise experiences, running A/B Tests, segmenting content/offers and enable integration with the rest of the Marketing Tech stack like CleverTap, etc.
Exploratory workshop - Grofers App is powered by complex, distributed, cloud infrastructure with many moving parts as a business of that scale would require. Our first step to scope the effort was to understand the engineering infrastructure that powers the app and analyze the risks. After a couple of meetings and Q&A, we presented our solution and a demo that exposed a JSON that could be consumed by Mobile Apps. This instilled the confidence to commission a proof of concept to validate core integration with the app.
Proof of Concept - The second stage was to check the core integration and see if we face issues in basic integration. For this, we chose banners and a couple of simple widgets on the app to be controlled by a CMS. Three weeks into the proof of concept, we were much more confident of being on the right path.
Technology Selection - We needed a RESTful Application framework with core CMS skills like authoring experience, access control, etc. We chose Drupal for Rapid Application Development and robust CMS competencies. Drupal 8 being RESTful from the ground up made integrations very straight forward and we could employ Decoupled Drupal paradigm to its full potential.
Business Alignment - Once we validated our proof of concept, rather than taking a full backlog approach and defining ultimate scope it made more sense to align our sprints to business events and short term team needs. For instance, we focused on just performance around GOBD — Grand Orange Bag Days, Grofers bi-annual black Friday sale equivalent, this approach allowed us to test our solution very quickly in real-time situations.
Why Decoupled Drupal
Drupal 8 was chosen primarily for its CMS, RESTful, and rapid development capabilities. Drupal’s role-based access, easy and robust 3rd party integrations, caching mechanisms, and its flexible architecture allowed for deeper integrations as a provider and a consumer in the Distributed architecture.
We were able to use Drupal CMS capabilities (Paragraphs & Layout Builder) to give an optimised authoring experience to the Marketing teams, allow for Personalisation and Segmentation, Versioning and offer Preview capabilities.
We were able to get the best of both worlds with Decoupled Drupal.
Reusable component Library: We built a component library using the paragraphs module for the marketing team to pick and choose from. They are now able to drag any component, customise, and preview the impact. Once satisfied, they were able to publish these changes directly to the app. This component library made Marketers work very easy and also standardized markup and scheme for the app.
Content Moderation: Risk mitigation with a moderation workflow and revision based system, ensuring configuration mistakes could be tracked successfully and rolled back with a single click.
Performance: Custom Caching Strategy with deep CDN integration for all assets.
Widgets scheduling & Segmentation: This empowered the marketing team to schedule a widget, product, campaign, or a promotion well in advance. The CMS also allowed personalizing the experience by allowing for variations per user cohorts.
Webhooks to integrate with other Systems: Webhooks to post data to various Grofers endpoints on creating and updating a layout.