Home/ Works
SaaS / Web services

Expanding a SaaS Product: Refactoring and Feature Growth on Rails + MySQL

SaaS provider

We expanded a SaaS provider's product on its existing Ruby on Rails + MySQL foundation. We untangled the front-end and admin-panel permission controls and the operations team's management load with a YAML-driven permission definition.

Before / After

What changed

  • Permission management
    YAML-driven, flexible to add and edit
  • Operational load
    Reduced by reorganizing the admin UI
  • Dev environment
    Made reproducible with Docker
Challenge

Challenge

The SaaS provider's Rails foundation was in production, but the admin panel's permission controls were hard to extend — every new feature added meant more permission-related plumbing. The operations staff weren't dedicated engineers, so whenever the admin panel was confusing, the operational load fed straight back into the volume of support inquiries. The team needed to rework it — using the existing Rails assets — so that both permissions and the admin panel were easy to extend and easy to use without getting lost.

Approach

Approach

  1. 01 Took stock of the existing Rails foundation's structure and business logic and identified the scope of the overhaul
  2. 02 Redesigned the admin panel's permission control to be YAML-file driven, simplifying how definitions are added and edited
  3. 03 Unified the permission-definition pattern for the left menu and the second-level controllers
  4. 04 Reorganized the admin-panel UI with the operations team's workflow in mind
  5. 05 Unified the development environment with Docker to ensure reproducibility from local through to production
  6. 06 Released feature additions incrementally to minimize the impact on operations
Key Success Factors

Key success factors

YAML-driven permission definitions
Moving permission control out into YAML removed the need for code changes when adding a new menu.
Operations-led UI cleanup
Reorganizing the admin panel around the operations team's workflow curbed the growth in inquiry volume.
Leveraging existing assets
Rather than rebuilding the existing Rails + MySQL foundation, we narrowed the overhaul to permissions and the admin panel.
Incremental release operations
Releasing feature additions incrementally let the operations team get comfortable at a manageable pace.
Solution

Solution

While keeping the existing Rails + MySQL foundation, we redesigned permission control into a scheme defined in YAML files. The permissions for the left-hand menu and its underlying controllers can be added and edited in YAML without writing code. We also reorganized the admin-panel UI around the operations team's workflow, structurally lowering the inquiry-driven operational load.

Facing a similar challenge?

Whatever your industry or scale, let's start with a conversation.

Contact form