Case Study: How Pulley Cut Development Time by 50% with Hasura
Tags: casestudy, graphqlengine, postgres, react
Published: 2021-05-20 11:53:34

---
title: Case Study: How Pulley Cut Development Time by 50% with Hasura
published: true
date: 2021-05-18 13:43:36 UTC
tags: CaseStudy,GraphQLEngine,Postgres,React
canonical_url: https://hasura.io/blog/case-study-how-pull/
---

![Case Study: How Pulley Cut Development Time by 50% with Hasura](https://hasura.io/blog/content/images/2021/05/hasura_pulley_case_study.png)



Hasura helped Pulley cut development time by 50% by auto-generating and securing GraphQL for over 50 database tables

* * *

_Note: Pulley is providing a generous discount to Hasura Cloud and enterprise customers - see the end of this article for more details._

* * *

[Pulley](pulley.com), an alumnus of [YCombinator](https://www.ycombinator.com/) 2020, helps ambitious founders manage their cap table and employee equity, helping startups manage stock options and perform pro forma modeling to optimize their equity.  In its first year of existence, Pulley achieved rapid success, gaining 1,000 customers by enabling founders to manage the intimidating process of managing their cap table within an hour.

> **“By using Hasura we cut the development time in half and built our product in 3 months.”**

Pulley decided that [Hasura’s](hasura.io) GraphQL engine would accelerate their development by auto-generating the GraphQL schemas and resolvers to their Postgres database. They also leveraged other Hasura features, including:

- [Data migrations](https://hasura.io/docs/latest/graphql/core/migrations/index.html#introduction) when database changes occurred
- Security and [permissions](https://hasura.io/docs/latest/graphql/core/auth/authorization/permission-rules.html#permission-rules) model to keep sensitive data safe
- Fast performance, resulting in a excellent user experience

![Case Study: How Pulley Cut Development Time by 50% with Hasura](https://hasura.io/blog/content/images/2021/05/pulley_schema_diagram--1-.png)<figcaption><em>Pulley's architecture includes React, a Go backend, and Hasura's GraphQL engine connected to a Postgres database.</em></figcaption>

# Pulley’s Challenge

Pulley’s technical architecture was composed of a [Postgres database](https://hasura.io/learn/database/postgresql/introduction/), backend written in Go, and web front end using React.  As they iterated quickly in the beginning they needed to find the balance between rapidly making changes, adding features, while also making sure the solution kept very sensitive financial data secure.  Other challenges included:

- Creating a universal data access layer for over 50 database tables
- Making frequent database changes without having to rewrite significant amounts of data access, backend, and frontend code

![Case Study: How Pulley Cut Development Time by 50% with Hasura](https://hasura.io/blog/content/images/2021/05/Pulley-Screenshot.jpg)<figcaption><em>Pulley helps founders managed their cap table and stock options to optimize their equity.</em></figcaption>

# Why Pulley Chose Hasura  

> _ **“We’ve been impressed with Hasura’s speed.  It’s a core part of why our overall app is fast”** _

Early in the development process, the Pulley team decided GraphQL would offer the benefits of easily transporting data between the different layers of their application - from the Postgres database, to their Go backend, and React frontend.  They adopted Hasura after discovering it met and exceeded their expectations:

### Auto-Generated GraphQL Schemas and Resolvers

Hasura provided “GraphQL out of the box” with its ability to [auto-generate GraphQL](https://hasura.io/docs/latest/graphql/core/databases/index.html) schemas and resolvers of their Postgres database, saving Pulley months of development time - especially in their early stages when changes to features and the underlying database happened frequently.  

Pulley utilizes Hasura for nearly all queries and updates of over 50 database tables.

### Data Migrations

Hasura’s [migrations](https://hasura.io/docs/latest/graphql/core/migrations/index.html#introduction) feature was also essential during the early phases of Pulley’s product development, tracking Postgres database schema changes in metadata, allowing them to keep their database consistent between development and production.

### Real-Time Updates via GraphQL Subscriptions

[Subscriptions](https://hasura.io/docs/latest/graphql/core/databases/postgres/subscriptions/use-cases.html#subscription-use-cases) simplified their frontend development, utilizing React components to to dynamically update their web frontend as new data arrived.  This eased the burden of having to write their own notification framework to provide real time updates.

> _ **“Hasura’s built-in role-based authorization system made it easy to secure our data”** _

### Security, Authorization & Auditing

To protect its customer’s sensitive financial and personal data, Pulley relied on Hasura’s granular [authorization](https://hasura.io/docs/latest/graphql/core/auth/authorization/index.html#authorization) features, which can be applied down to the row and column level.  To ensure the security of their system, Pulley regularly performs penetration testing to make sure that their entire system, including Hasura, are hardened from external attack.

Pulley also relies on Hasura’s built-in auditing capabilities to track changes in user permissions, providing them a history log of changes they can refer back to.

### Management Console

Hasura’s [console](https://hasura.io/docs/latest/graphql/cloud/getting-started/index.html) also increased the developer’s productivity by making it easy to perform GraphQL schema generation tasks, perform GraphQL queries, and perform traces to identify any performance bottlenecks.

_Thank you to [Pulley](pulley.com) and [Mark Erdmann](https://www.linkedin.com/in/markerdmann) - Software Engineer for sharing their story with us!_

* * *

_Special offer! Pulley is offering a 25% discount ($750 value) for the first year to Hasura Cloud and Enterprise customers.  Please contact us on this [form](https://hasura.io/contact-us/), mention this offer and include your Hasura login email!_