This document discusses code-first and SDL-first approaches to building GraphQL schemas and servers. It defines the terminology and compares the two approaches. Code-first involves programmatically defining types and resolvers, while SDL-first uses a string-based schema definition language. Both have tradeoffs like inconsistencies or lack of tooling for SDL-first, and lack of documentation for code-first. Prisma is introduced as a tool that can generate a GraphQL schema from a database using either approach. The document concludes with a demonstration of building a GraphQL server and schema with Prisma and Nexus using a code-first approach.