# Strawberry Shake: GraphQL Client for .NET

> Strawberry Shake is a type-safe GraphQL client for .NET that generates C# clients at build time and adds reactive caching and WebSocket subscriptions.

Canonical source: https://chillicream.com/products/strawberryshake

GraphQL Client for .NET

A strongly-typed GraphQL client for .NET with reactive state, caching, and subscriptions baked in.

[Build Your First .NET Client](https://chillicream.com/docs/strawberryshake/get-started) [View on GitHub](https://github.com/ChilliCream/graphql-platform)

## Built for .NET Teams

### Strongly-typed Client

Write operations in .graphql files and build your project. Strawberry Shake generates typed C# results, inputs, variables, and client APIs.

### Normalized Reactive Store

Normalize GraphQL results into an entity store that keeps watched operations and UI components in sync as data changes.

### Flexible Fetch Strategies

Choose network-only, cache-first, or cache-and-network behavior for each operation and reuse cached entities across results.

### WebSocket Subscriptions

Consume GraphQL subscription streams through the same generated client and update the reactive store as new results arrive.

## MIT Licensed

Use, modify, and distribute Strawberry Shake in commercial or private projects under the terms of the MIT license. It works with spec-compliant GraphQL servers, including Hot Chocolate.

[Build a GraphQL Server for .NET](https://chillicream.com/products/hotchocolate) [Explore Reactive Caching](https://chillicream.com/docs/strawberryshake/caching)
