A better way to build headless WordPress applications.
SnapWP is a composable framework of JavaScript libraries for building headless WordPress applications.
-
🎨 It uses WordPress's Block Themes as the default source of truth for both design and content on the frontend.
-
🛠️ It provides an additive and adaptable DX layer / API / tooling that lets developers granularly override just the parts of their app they care about.
SnapWP treats headless WordPress as a progressive enhancement, providing a "turn-key" experience for parity with traditional WordPress sites, so you can focus on building the unique and custom features that make your project stand out.
Warning
🐉 There be dragons! This project is in active development and considered experimental. Some features may be incomplete, unstable, or subject to change.
SnapWP provides several plugins, packages, and libraries that can be used individually or together to build better headless WordPress applications.
- @snapwp/core: The "core" functionality and utilities for SnapWP.
- @snapwp/next: Next.js integration layer for SnapWP.
- @snapwp/blocks: WordPress Block rendering and management system.
- @snapwp/query: Centralized WPGraphQL query management.
- @snapwp/codegen-config: Reusable configuration for GraphQL Codegen.
- @snapwp/eslint-config: Reusable ESLint configuration.
- @snapwp/prettier-config: Reusable Prettier configuration.
- SnapWP Helper: A WordPress plugin that provides the additional functionality to WordPress and WPGraphQL needed for SnapWP's frontend libraries.
- Config API & Environment Variables
- Overloading WordPress Behavior
- NextJS Middleware
- Template Rendering System
SnapWP is under active development and maintained by rtCamp.
Contributions are welcome and encouraged! To learn more about contributing to this package or SnapWP as a whole, please read the Contributing Guide.
For development guidelines, please refer to our Development Guide.
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.