Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johannschopplich/kirby-headless-starter
🦭 Headless-first Kirby starter with bearer token authentication and KQL utilities
https://github.com/johannschopplich/kirby-headless-starter
headless-cms kirby-cms kirby-plugin kirby-theme
Last synced: 1 day ago
JSON representation
🦭 Headless-first Kirby starter with bearer token authentication and KQL utilities
- Host: GitHub
- URL: https://github.com/johannschopplich/kirby-headless-starter
- Owner: johannschopplich
- License: mit
- Created: 2022-05-16T19:44:28.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-08T10:02:50.000Z (3 months ago)
- Last Synced: 2024-11-07T14:45:46.253Z (9 days ago)
- Topics: headless-cms, kirby-cms, kirby-plugin, kirby-theme
- Language: PHP
- Homepage: https://kirby.tools/docs/headless
- Size: 9.56 MB
- Stars: 64
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Kirby Headless Starter
> [!TIP]
> Send a request with a `Authorization: Bearer test` header to the [live playground](https://kirby-headless-starter.jhnn.dev) for an example response.This starter kit provides a minimal setup for a headless Kirby site. It allows you to fetch JSON-encoded data from your Kirby site using either KQL or Kirby's default template system. Under the hood, it uses the [Kirby Headless Plugin](https://kirby.tools/docs/headless) to provide a headless API.
This project works well with [`Nuxt KQL`](https://nuxt-kql.byjohann.dev).
## Example Projects
- [`cacao-kit-frontend`](https://github.com/johannschopplich/cacao-kit-frontend): 🍫 Best practice Nuxt and KQL starter for your headless Kirby CMS
- [`kirby-nuxt-starterkit`](https://github.com/johannschopplich/kirby-nuxt-starterkit): 💚 Kirby's sample site – ported to Nuxt and Kirby Query Language## Key Features
- 🧩 Optional bearer token authentication for [KQL](https://kirby.tools/docs/headless/usage#kirby-query-language-kql) and custom API endpoints
- 🧱 Resolve fields in blocks: [UUIDs to file and page objects](https://kirby.tools/docs/headless/field-methods) or [any other field](https://kirby.tools/docs/headless/field-methods)
- ⚡️ Cached KQL queries
- 🌐 Multi-language support for KQL queries
- 😵 Built-in CORS handling
- 🍢 Express-esque [API builder](https://kirby.tools/docs/headless/api-builder) with middleware support
- 🗂 Return [JSON from templates](https://kirby.tools/docs/headless/usage#json-templates) instead of HTML## Setup
> [!TIP]
> [📖 Read the documentation](https://kirby.tools/docs/headless#installation)Kirby-related dependencies are managed via [Composer](https://getcomposer.org) and located in the `vendor` directory. To install them, run:
```bash
composer install
```### Environment Variables
Duplicate the [`.env.development.example`](.env.development.example) as `.env` and adjust its values:
```bash
cp .env.development.example .env
```> [!NOTE]
> Make sure to set the correct requesting origin instead of the wildcard `KIRBY_HEADLESS_ALLOW_ORIGIN=*` for your deployment.### Deployment
> [!NOTE]
> See [ploi-deploy.sh](./scripts/ploi-deploy.sh) for exemplary deployment instructions.
>
> Some hosting environments require uncommenting `RewriteBase /` in [`.htaccess`](./public/.htaccess) to make site links work.## License
[MIT](./LICENSE) License © 2022-PRESENT [Johann Schopplich](https://github.com/johannschopplich)