https://github.com/wpengine/faustjs
Faust.js™ - The Headless WordPress Framework
https://github.com/wpengine/faustjs
composable-architecture hacktoberfest headless headless-cms headless-wordpress javascript nextjs react wordpress
Last synced: 6 days ago
JSON representation
Faust.js™ - The Headless WordPress Framework
- Host: GitHub
- URL: https://github.com/wpengine/faustjs
- Owner: wpengine
- License: other
- Created: 2020-11-16T20:33:30.000Z (over 4 years ago)
- Default Branch: canary
- Last Pushed: 2024-10-25T15:15:34.000Z (6 months ago)
- Last Synced: 2024-10-29T14:14:40.617Z (6 months ago)
- Topics: composable-architecture, hacktoberfest, headless, headless-cms, headless-wordpress, javascript, nextjs, react, wordpress
- Language: TypeScript
- Homepage: https://faustjs.org
- Size: 42.6 MB
- Stars: 1,437
- Watchers: 88
- Forks: 131
- Open Issues: 78
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Audit: audit-ci.jsonc
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-wpgraphql - Headless WordPress Framework - WP Engine's Headless WordPress Framework (Frontend)
- Awesome-NextJs - faustjs - [Getting Started with Next.js](https://faustjs.org/docs/next/getting-started) `Faust.js - The Headless WordPress Framework` (miscellaneous)
- project-awesome - wpengine/faustjs - Faust.js™ - The Headless WordPress Framework (TypeScript)
README

## Introduction
Faust.js is a toolkit for building Next.js applications for headless WordPress sites. Faust.js provides tooling to reduce the pains of building a headless WordPress site (namely around data fetching, authentication, previews, and SSR/SSG) while offering a pleasant experience for both developers and publishers.
- [Getting started with Next.js](https://faustjs.org/docs/getting-started)
## System Requirements
- Node.js v16.0.0 or newer (v16.8.0 when using Next.js 13 and v18.17 when using Next.js 14).
- MacOS, Windows (including WSL), and Linux are supported.## Documentation
Visit [https://faustjs.org/docs/](https://faustjs.org/docs/getting-started) to view the full documentation.
### Editing Docs
Docs are MD in [`docs`](docs/). Here are a couple things you should know!
1. Our Docs support [Github Flavored Markdown](https://github.github.com/gfm/) (GFM).
2. Images should be stored along side the doc that uses them in an `images/` folder.
3. Shared Images can be stored in a shared folder @ `docs/images`
4. [Callouts](https://github.com/lin-stephanie/rehype-callouts?tab=readme-ov-file#rehype-callouts): These are similar to block quotes or an aside but for various warnings, info, pro times, etc.
5. Code Blocks:- Required
1. Specify a language: ` ```js ` or `` `const inlineCode = [1,2,3];{:js}` ``
- Commands for a users terminal = `bash`
- env files = `ini`
- JavaScript = `js`
- TypeScript = `ts`
- GraphQL = `gql`
- JSON = `json`
- For a full list see: https://shiki.style/languages
2. Add [line numbers](https://rehype-pretty.pages.dev/#line-numbers) to any complex code. `ini` and `bash` don't need to show line numbers generally. ` ```js showLineNumbers`
3. Complete files should have a [file names](https://rehype-pretty.pages.dev/#titles) ` ```js title="pages/_app.js`
- Optional1. Lines can be [highlighted](https://rehype-pretty.pages.dev/#highlight-lines) in code blocks ` ```js {1,3-5}`. There are a variety of advanced highlighting methods, see: https://rehype-pretty.pages.dev/#highlight-lines
2. Lines may be [diffed](https://shiki.style/packages/transformers#transformernotationdiff) in a code block:```js
console.log('hewwo') // [!code --]
console.log('hello') // [!code ++]
console.log('goodbye')
```## WordPress Plugin (FaustWP)
There are two key parts to Faust.js: the NPM packages and the WordPress plugin. To take full advantage of headless, you will need to install the plugin in addition to the npm packages.
You can download and install FaustWP from the [WordPress Plugin Directory](https://wordpress.org/plugins/faustwp/), or by using the zip linked below.
[📥 Download Latest Version](https://wordpress.org/plugins/faustwp/)
## Community
To chat with other Faust.js users and the headless community as a whole, you can join the [WP Engine Developers Discord](https://discord.gg/J2khkF9XYK).
Additionally, if you have questions or ideas, please share them on [GitHub Discussions](https://github.com/wpengine/faustjs/discussions).
## Contributing
There are many ways to [contribute](/CONTRIBUTING.md) to this project.
- [Discuss open issues](https://github.com/wpengine/faustjs/issues) to help define the future of the project.
- [Submit bugs](https://github.com/wpengine/faustjs/issues) and help us verify fixes as they are checked in.
- Review and discuss the [source code changes](https://github.com/wpengine/faustjs/pulls).
- [Contribute bug fixes](/CONTRIBUTING.md)### Contributor License Agreement
All external contributors to WP Engine products must have a signed Contributor License Agreement (CLA) in place before the contribution may be accepted into any WP Engine codebase.
1. [Submit your name and email](https://wpeng.in/cla/)
2. 📝 Sign the CLA emailed to you
3. 📥 Receive copy of signed CLA❤️ Thank you for helping us fulfill our legal obligations in order to continue empowering builders through headless WordPress.