# conductorone
Source: https://speakeasy.com/customers/conductorone


import { Card, Table } from "@/mdx/components";

## Company Info
- **Company:** ConductorOne
- **Industry:** Identity Security
- **Website:** [conductorone.com](https://www.conductorone.com/)

## Key Takeaways

- Go, Python, Typescript SDKs and a Terraform provider launched in weeks, not months
- 650 hours of upfront development saved -- plus ongoing maintenance
- Fully automated pipeline: from spec all the way through to package manager

---

Founded in 2020, [ConductorOne](https://www.conductorone.com/) is dedicated to providing secure identity for the modern workforce. Companies today suffer from identity sprawl, with accounts and permissions spread across multitudes of SaaS and IaaS apps. Identity compromise is the leading cause of data breaches, with orphaned and over-provisioned accounts posing serious risks to organizations. ConductorOne provides an automation platform for managing the lifecycle of permissions and access across SaaS apps and cloud infrastructure, providing a valuable tool for organizations of all sizes looking to improve their security posture and reduce the risk of unauthorized access.

## Challenge

At ConductorOne, a key element of their company philosophy is to meet customers where they are. To roll out an enterprise API to their customers, that meant ensuring maximum accessibility.

The first decision they had to make was what protocol they wanted to use to expose their API: REST or gRPC. Internally, their teams built and consumed gRPC services. However, for the public API, they decided to expose a RESTful interface to appeal to the greatest number of users. They built a [custom plugin](https://github.com/ductone/protoc-gen-apigw/tree/main), forked from [gRPC gateway](https://github.com/grpc-ecosystem/grpc-gateway) that generates a Go server with a REST gateway exposed to their users.
 
<Card
  variant="testimonial"
  className="my-10"
  quote="When we're exposing an API, it's important to us that we make it accessible to the highest number of people using the highest number of tools."
  author={{
    name: "Logan Saso, Senior Software Engineer at ConductorOne",
    avatar: "/media/case-studies/conductorone-logan-saso.jpeg"
  }}
/>

To ensure maximum accessibility, the ConductorOne product and engineering teams knew they wanted to provide SDKs to lower the barriers for integration. They knew that well-crafted SDKs and documentation equates to happy developers.

ConductorOne also wanted a Terraform (TF) provider to allow Terraform code to interact with their API to automate the setup/configuration process and ensure stability of the customer's infrastructure.

The team realized that signing up for the creation of SDKs and Terraform providers meant potentially taking on significant development overhead and an ongoing maintenance burden.

---

## Solution

The team had prior experience with SDK generators, and recognized that the in-house approach often requires significant rework. In addition, SDK generators don't create documentation for the SDK – so this would have to be built by hand also.
 
With Speakeasy they were able to automatically create a Terraform provider and idiomatic SDKs across multiple languages, with in-repo documentation – all while radically reducing development time.
 
Time is an important dimension, but for ConductorOne, SDK and Terraform provider quality are even more important. As the primary interface for APIs, ConductorOne understood that their SDKs are perhaps the single most important component of their developer experience. With Speakeasy, ConductorOne is able to ensure their SDKs are type safe and idiomatic and that they are able to provide a best-in-class developer experience.

---

## Results

Developing 3 SDKs and a Terraform provider, coding by hand, would take a team of developers weeks to produce.

By their estimation, utilizing Speakeasy, ConductorOne was able to save between 400 to 500 hours of development for the SDKs, and another 150+ hours for the generation of their Terraform provider.

<Table
  title="Development Time Savings with Speakeasy"
  columns={[
    { key: "component", header: "Component" },
    { key: "manual", header: "Manual Development" },
    { key: "speakeasy", header: "With Speakeasy" },
    { key: "savings", header: "Time Saved" }
  ]}
  data={[
    {
      component: "3 SDKs (Go, Python, TypeScript)",
      manual: "400-500 hours",
      speakeasy: "Hours to configure",
      savings: "~450 hours"
    },
    {
      component: "Terraform Provider",
      manual: "150+ hours",
      speakeasy: "Hours to configure",
      savings: "~150 hours"
    },
    {
      component: "Documentation",
      manual: "50+ hours",
      speakeasy: "Automatic",
      savings: "~50 hours"
    },
    {
      component: "Ongoing Maintenance",
      manual: "Hours per update",
      speakeasy: "Automatic",
      savings: "Compounds over time"
    }
  ]}
  rowKeyField="component"
  className="my-8"
/>

<Card
  variant="testimonial"
  className="my-10"
  quote="If we had to write multiple SDKs ourselves, manually, even with a spec, we'd be looking at multiple weeks of work for multiple people. With Speakeasy, it saves us 100s of hours, a heck of a lot of time, without a doubt!"
  author={{
    name: "Logan Saso, Senior Software Engineer at ConductorOne",
    avatar: "/media/case-studies/conductorone-logan-saso.jpeg"
  }}
/>

And the savings continue to compound over time. With Speakeasy, they are able to automatically regenerate their SDKs, provider, and docs each time they update their API.
 
Aside from cost and time savings, one of the greatest ongoing benefits realized by ConductorOne has been eliminating the developer toil and onerous release process involved with updating every SDK whenever the API changes. With Speakeasy, the SDKs and Terraform providers are always up-to-date and versioned. They have peace of mind that every time the API changes, SDKs/TF providers are updated and republished automatically.

<Card
  variant="testimonial"
  className="my-10"
  quote="Auto-generating updates makes me a lot happier, it means that I can get off work on time and still get everything I need to do, done for the day!"
  author={{
    name: "Logan Saso, Senior Software Engineer at ConductorOne",
    avatar: "/media/case-studies/conductorone-logan-saso.jpeg"
  }}
/>

To see the results first hand, take a closer look at ConductorOne's SDKs and Terraform provider here:
- [Go SDK](https://github.com/ConductorOne/conductorone-sdk-go)
- [Python SDK](https://github.com/ConductorOne/conductorone-sdk-python)
- [Typescript SDK](https://github.com/ConductorOne/conductorone-sdk-typescript)
- [TF Provider](https://github.com/ConductorOne/terraform-provider-conductorone)

## Benefits Summary

ConductorOne's partnership with Speakeasy has delivered significant advantages:

### Developer Experience
By providing high-quality, type-safe, and idiomatic SDKs across multiple languages, ConductorOne has made it easier for developers to integrate with their platform, expanding their potential customer base.

### Time to Market
What would have taken weeks of development work was accomplished in a fraction of the time, allowing ConductorOne to focus on their core product rather than SDK maintenance.

### Quality Assurance
Speakeasy ensures that SDKs follow best practices for each language, providing a consistent and reliable experience across all supported platforms.

### Continuous Updates
The automated pipeline ensures that as ConductorOne's API evolves, their SDKs and Terraform provider stay in sync without additional engineering effort.

Gain your own peace of mind, try Speakeasy for yourself for free. [Sign up](https://app.speakeasy.com/) today.