GraphQL and Front End Foundations
Culture Biosciences was launching a new product and using GraphQL for the first time. They wanted to ensure their new GraphQL backend and schema would be built with best practices and poised to scale. On the front-end, it was important to have a robust foundation, optimized for developer experience, with important patterns like state management and routing established and implemented.
At Drover, we understand how important a strong foundation is for startups launching a new product. We've seen firsthand and repeatedly heard stories of foundational sprints pushing actual product development months down the roadmap. Our task was to use our experience to create the product and the foundational patterns all in one go, saving Culture Biosciences months of dev time and allowing their new hires to hit the ground running without the overhead of starting from scratch.
Over the course of six weeks, we provided GraphQL support and expertise for the back end developers, and built a beautiful front end that new developers could quickly become productive in. We ended up with a quality GraphQL schema, a complete front end application, and robust accompanying documentation and developer tooling.
We held a schema design workshop to kick off the project, collaboratively modeling the core business entities into a GraphQL schema.
We provided advice and expertise on GraphQL best practices by providing thorough code reviews on schema change pull requests.
We set up GraphQL tooling that we have found to be helpful for developers in the past, including schema-based typescript type generation and use of the schema to create a mock server for local development. We established front end patterns for maintainable queries, mutations, and fragments.
We built out the initial features of the application, with a focus on making the codebase simple, maintainable and without unnecessary dependencies. We made decisions on major patterns like routing and state management, implementing full features and providing supporting documentation.
We took care to focus on the developer experience. By heavily documenting the tools used and taking extra steps to create building blocks for future developers, new members could be onboarded more easily to the codebase. An example of this was documenting core components in Storybook.
In addition to creating a strong base, we established patterns for flourishes like skeleton views and screen transitions.