GraphiQL 2 vs. Apollo Sandbox
The original GraphQL Playground from Prisma has been archived for years and no longer receives updates, yet it still runs as the default explorer in many projects. Anyone looking for a solid GraphQL Playground alternative today almost always ends up at GraphiQL 2 or Apollo Sandbox, two tools with different philosophies around auth handling, team collaboration and self-hosting.
Table of Contents
- 1. Why GraphQL Playground was discontinued
- 2. GraphiQL 2: setup, Explorer plugin, auth headers
- 3. Apollo Sandbox: cloud edition vs. embedded sandbox
- 4. Schema introspection and docs explorer compared
- 5. Auth handling: header presets, cookies, OAuth flows
- 6. Collaboration features: sharing, history, workspaces
- 7. Self-hosting vs. cloud: privacy and corporate networks
- 8. Integrating into your own docs pages and internal portals
- 9. GraphiQL 2 vs. Apollo Sandbox head to head
- 10. Summary
- 11. FAQ
1. Why GraphQL Playground was discontinued
The original GraphQL Playground came out of Prisma and was the de facto standard for interactive query exploration for years. Since 2020 it has no longer been actively developed, Prisma officially archived the repository and itself recommends moving to more modern tools. Anyone still embedding the old Playground today forgoes security updates, new GraphQL specification features and active bug fixing. Looking for a GraphQL Playground alternative is therefore no longer optional for many teams, it's overdue.
The switch isn't just cosmetic. GraphQL Playground was built on an older React version and a GraphiQL fork that doesn't handle newer schema features like @oneOf input objects or incremental delivery via @defer and @stream cleanly. A modern GraphQL Playground alternative needs to support these specification extensions to remain usable against current schemas at all.
Two successors have established themselves in the market: GraphiQL itself received a comprehensive redesign in version 2 and now natively ships many Playground features, while Apollo takes a more cloud-integrated path with Apollo Sandbox. Both are valid answers to the same question, but differ noticeably in architecture and target audience.
2. GraphiQL 2: setup, Explorer plugin, auth headers
GraphiQL 2 is the official reference implementation of the GraphQL Foundation and, since the major rewrite, ships as a standalone, embeddable React component. The setup is deliberately minimalist, a single import gets you a working instance that talks directly to any GraphQL endpoint.
# Add GraphiQL 2 as a standalone dev tool
npm install graphiql graphql
# Or mount it directly inside an Express/Node backend for local testing
npm install graphql-http
The Explorer plugin is the biggest step forward compared to the old Playground: it renders the entire schema as a clickable tree, letting users select fields via checkbox without typing a single line of GraphQL syntax themselves. For teams where not everyone writes GraphQL daily, such as product managers or QA staff, that significantly lowers the barrier to entry.
// graphiql-setup.js — mounting GraphiQL 2 with the Explorer plugin and auth headers
import { createRoot } from 'react-dom/client'
import { GraphiQL } from 'graphiql'
import { explorerPlugin } from '@graphiql/plugin-explorer'
import 'graphiql/graphiql.css'
import '@graphiql/plugin-explorer/dist/style.css'
const explorer = explorerPlugin()
function fetcher(graphQLParams, opts) {
return fetch('/graphql', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${localStorage.getItem('devToken')}`,
...opts.headers,
},
body: JSON.stringify(graphQLParams),
}).then((res) => res.json())
}
createRoot(document.getElementById('graphiql')).render(
<GraphiQL fetcher={fetcher} plugins={[explorer]} />
)
Auth headers can be set either through the built-in headers editor pane or, as shown in the example, hard-coded into the fetcher. The latter is convenient for local development, but for shared instances the headers pane should be preferred so not every developer sees the same token in client code.
3. Apollo Sandbox: cloud edition vs. embedded sandbox
Apollo Sandbox exists in two forms: as a hosted web app at studio.apollographql.com/sandbox that talks to any reachable GraphQL endpoint, and as an embedded React component via @apollo/sandbox that, like GraphiQL, can be integrated directly into your own page. This dual availability is a key difference from GraphiQL 2, which is always self-hosted by design.
// embedded-sandbox.js — mounting Apollo Sandbox with a fixed endpoint and headers
import { ApolloSandbox } from '@apollo/sandbox/react'
function DevPortal() {
return (
<ApolloSandbox
initialEndpoint="https://api.internal.example.com/graphql"
initialState={{
document: 'query GetOrders { orders { id status } }',
headers: { Authorization: 'Bearer <paste-token-here>' },
}}
className="sandbox-frame"
/>
)
}
The hosted variant is particularly handy for quick, spontaneous debugging since no local setup is needed. A developer can simply paste the endpoint URL into the cloud sandbox and get started right away, as long as the endpoint is public or at least reachable via a resolvable URL. For internal, VPN-only APIs, only the embedded variant is practical.
4. Schema introspection and docs explorer compared
Both tools use standard introspection to auto-document types, fields and arguments, but differ in presentation. GraphiQL 2 shows documentation in a classic sidebar with search, which can get cluttered with very large schemas featuring hundreds of types. Apollo Sandbox additionally structures the same content grouped by query root fields and visually highlights frequently used operations more prominently.
A detail that often gets overlooked in practice: both tools display deprecation warnings for fields marked @deprecated directly in the docs explorer, including the reason stored in the schema. That's particularly valuable during API evolution, since consumers immediately see which field to avoid without checking the changelog.
5. Auth handling: header presets, cookies, OAuth flows
The biggest practical differences show up when testing authenticated queries. GraphiQL 2 offers a simple headers textarea where arbitrary JSON headers can be entered, plus the option to persist those values in LocalStorage across sessions via shouldPersistHeaders. For OAuth flows with short-lived tokens, that means manual copy-pasting after every refresh, unless a team builds its own browser extension or script that auto-refreshes the header.
// graphiql-persist-auth.js — persisting the auth header across sessions
<GraphiQL
fetcher={fetcher}
shouldPersistHeaders={true}
headers={JSON.stringify({ Authorization: 'Bearer <token>' }, null, 2)}
/>
Apollo Sandbox additionally supports named "header presets" within a workspace, so a team can set up several auth configurations (e.g. "Staging Admin", "Production Read-Only") and switch between them with a click instead of retyping header values every time. Cookie-based auth only works reliably in both tools if same-origin rules are respected or CORS headers explicitly allow credentials: include.
6. Collaboration features: sharing, history, workspaces
This is where the philosophies of both tools diverge most clearly. GraphiQL 2 stores query history purely locally in the browser, there's no native shared team inbox for queries, anyone wanting to share a query manually copies the text into Slack or a wiki. Apollo Sandbox, by contrast, connects to Apollo Studio once a user is logged in: queries can be shared as links, organized into folders and synced with colleagues as a team workspace.
For small teams without an Apollo Studio subscription, this difference is usually secondary, but for larger organizations with several API-consuming teams, Apollo Sandbox's central query library can save considerable time, since proven queries don't need to be rewritten constantly.
7. Self-hosting vs. cloud: privacy and corporate networks
GraphiQL 2 runs exclusively locally or self-hosted, there's no cloud variant and therefore no dependency on an external service. For companies with strict privacy requirements or compliance rules that forbid sending internal API structures to third parties, that's often the deciding factor for choosing GraphiQL 2 as a GraphQL Playground alternative.
The hosted Apollo Sandbox sends query text and schema introspection data to Apollo's servers, even though the actual GraphQL request goes directly from the browser to your own backend. For purely internal, security-sensitive APIs, the embedded @apollo/sandbox variant behind your own auth layer should therefore be used consistently, not the hosted Studio version.
8. Integrating into your own docs pages and internal portals
Both tools can be integrated as an embedded component into an existing developer portal, for example alongside hand-written API documentation or an internal wiki. Thanks to its React component model, GraphiQL 2 fits seamlessly into existing React applications and can be styled via CSS variables to match your own color scheme. Apollo Sandbox offers similar customization via embeddedSandboxConfig, including a default query and initial endpoint.
For teams wanting to show a GraphQL Playground alternative right next to their public API reference, this is a decisive factor: an isolated tool in a separate tab gets used far less often than an explorer instance embedded directly in the documentation that pre-fills with one click from a code example.
9. GraphiQL 2 vs. Apollo Sandbox head to head
The choice between these two GraphQL Playground alternatives depends heavily on whether Apollo tooling is already in use at your company and how much weight team collaboration features carry against full data ownership.
| Criterion | GraphiQL 2 | Apollo Sandbox |
|---|---|---|
| Hosting | Self-hosted only | Cloud or embedded |
| Team query sharing | Not native | Yes, via Apollo Studio |
| Third-party dependency | None | Yes, with cloud variant |
| Explorer without GraphQL syntax | Yes, via Explorer plugin | Yes, built in |
| Header presets | Basic, manual | Named presets per workspace |
For teams with strict privacy requirements and no need for cross-team query sharing, GraphiQL 2 is the clearer choice among the GraphQL Playground alternatives. Teams already using Apollo Studio for schema registry and monitoring, on the other hand, benefit from the seamless integration of Apollo Sandbox and its additional collaboration features.
Mironsoft
GraphQL tooling, developer portals and API documentation
Still stuck on the discontinued GraphQL Playground?
We migrate your API explorer to GraphiQL 2 or Apollo Sandbox, set up auth presets and embed the explorer directly into your developer portal.
Tool selection
Decision support between GraphiQL 2 and Apollo Sandbox for your use case
Auth integration
SSO and token handling in the explorer, without secrets in client code
Portal integration
Embed the explorer right next to your API documentation and code samples
10. Summary
Both featured GraphQL Playground alternatives reliably fill the gap left by the discontinued Prisma tool, but differ meaningfully in the details. GraphiQL 2 scores with full data ownership, no third-party dependency and a strong Explorer plugin for users without GraphQL experience. Apollo Sandbox scores with team collaboration, named header presets and a hosted variant for spontaneous debugging without local setup.
The decision shouldn't be based on looks alone, but on concrete requirements: how strict are privacy rules, how important is query sharing within the team, and is Apollo tooling already used for schema registry or monitoring. Answering these questions clearly quickly points to the right choice among the GraphQL Playground alternatives.
GraphQL Playground Alternatives — The Essentials at a Glance
Playground is archived
No active maintenance since 2020, modern schema features aren't supported.
GraphiQL 2
Self-hosted only, full data ownership, strong Explorer plugin needing no GraphQL knowledge.
Apollo Sandbox
Cloud or embedded, team sharing and header presets via Apollo Studio.
Decision criterion
Privacy requirements and existing Apollo tooling usually decide the choice.