https://github.com/rtcamp/snapwp
Composable framework for building turn-key headless WordPress sites
https://github.com/rtcamp/snapwp
graphql gutenberg headless-wordpress next-js react typescript wordpress wp-graphql
Last synced: 3 months ago
JSON representation
Composable framework for building turn-key headless WordPress sites
- Host: GitHub
- URL: https://github.com/rtcamp/snapwp
- Owner: rtCamp
- License: agpl-3.0
- Created: 2025-01-26T11:29:06.000Z (12 months ago)
- Default Branch: develop
- Last Pushed: 2025-01-31T00:44:12.000Z (12 months ago)
- Last Synced: 2025-01-31T01:18:10.899Z (12 months ago)
- Topics: graphql, gutenberg, headless-wordpress, next-js, react, typescript, wordpress, wp-graphql
- Language: TypeScript
- Homepage: https://snapwp.io
- Size: 747 KB
- Stars: 2
- Watchers: 7
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
# 🫰 SnapWP
A better way to build headless WordPress applications.
## Table of Contents
- [Overview](#what-is-snapwp)
- [What's Included?](#whats-included)
- [Usage](#usage)
- [Development & Contributing](#local-development--contributing-guidelines)
- [License](#license)
## What is SnapWP?
[SnapWP](https://snapwp.io) is a composable framework of JavaScript libraries for building headless WordPress applications.
- 🎨 It uses WordPress's [Block Themes](https://wordpress.org/documentation/article/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.
## What's Included?
SnapWP provides several plugins, packages, and libraries that can be used individually or together to build better headless WordPress applications.
### JavaScript Libraries (🎯 This monorepo)
#### Core Dependencies
- [@snapwp/core](packages/core): The "core" functionality and utilities for SnapWP.
- [@snapwp/next](packages/next): Next.js integration layer for SnapWP.
- [@snapwp/blocks](packages/blocks): WordPress Block rendering and management system.
- [@snapwp/query](packages/query): Centralized WPGraphQL query management.
- [@snapwp/plugin-apollo-client](packages/plugin-apollo-client): Integration with Apollo Client.
- [@snapwp/plugin-tanstack-query](packages/plugin-tanstack-query): Integration with TanStack Query (React Query).
#### Developer Tooling
- [@snapwp/codegen-config](packages/codegen-config): Reusable configuration for [GraphQL Codegen](https://the-guild.dev/graphql/codegen).
- [@snapwp/eslint-config](packages/eslint-config): Reusable ESLint configuration.
- [@snapwp/prettier-config](packages/jest-preset): Reusable Prettier configuration.
### WordPress Plugins (🔌 External)
- [SnapWP Helper](https://github.com/rtCamp/snapwp-helper): A WordPress plugin that provides the additional functionality to WordPress and [WPGraphQL](https://www.wpgraphql.com/) needed for SnapWP's frontend libraries.
## Usage
- [Getting Started](docs/getting-started.md)
- [Config API & Environment Variables](docs/config-api.md)
- [Resolving CORS Issues](docs/cors.md)
### How-to
- [Overloading WordPress Behavior](docs/overloading-wp-behavior.md)
- [Template Rendering System](docs/template-rendering.md)
- [Using the Query Engine](docs/query-engine.md)
- [Handling HTTP Status Codes](docs/http-status-codes.md)
- [Handling Sitemap Generation](docs/sitemap.md)
- [NextJS Middleware](docs/middleware.md)
- [Static Exports](docs/static-exports.md)
## Development & Contributing
[SnapWP](https://github.com/rtCamp/snapwp) is under active development and maintained by [rtCamp](https://rtcamp.com/).
Contributions are _welcome_ and **encouraged!** To learn more about contributing to SnapWP, please read the [Contributing Guide](/.github/CONTRIBUTING.md).
For development guidelines, please refer to our [Development Guide](./DEVELOPMENT.md).
## License
This project is licensed under the AGPL-3.0 License - see the [LICENSE](LICENSE) file for details.
## BTW, We're Hiring!
