77 lines
2.1 KiB
Markdown
77 lines
2.1 KiB
Markdown
## Quickstart
|
|
```
|
|
docker-compose -f docker-compose.yml up
|
|
```
|
|
|
|
## About
|
|
This project was bootstrapped with a [turbopress](https://github.com/turbopress/turbopress)
|
|
|
|
### Useful docs
|
|
- [Astro docs: Integrating with PayloadCMS](https://docs.astro.build/en/guides/cms/payload/)
|
|
- [Astro docs: Deployment and SSR adapters](https://docs.astro.build/en/guides/deploy/)
|
|
- [Astro docs: On demand rendering adapters](https://docs.astro.build/en/guides/server-side-rendering/)
|
|
|
|
## Why Astro?
|
|
|
|
Astro allow you to use your favorite UI components and libraries. Mix and match React, Preact, Svelte, Vue, SolidJS, AlpineJS, and Lit to build your own website.
|
|
|
|
## Why PayloadCMS?
|
|
|
|
I need a headless CMS that is easy to use with TypeScript support. PayloadCMS work really well in this use case.
|
|
|
|
## What's inside?
|
|
|
|
This Turborepo includes the following packages/apps:
|
|
|
|
### Apps and Packages
|
|
|
|
- `api`: a [Payload](https://payloadcms.com/) app
|
|
- `web`: an [Astro](https://astro.build/) app
|
|
- `eslint-config-custom`: `eslint` configurations (includes `eslint-config-prettier` and `eslint-configg-turbo`)
|
|
|
|
Each package/app is 100% [TypeScript](https://www.typescriptlang.org/).
|
|
|
|
### Utilities
|
|
|
|
This Turborepo has some additional tools already setup for you:
|
|
|
|
- [TypeScript](https://www.typescriptlang.org/) for static type checking
|
|
- [TailwindCSS](https://tailwindcss.com/) for CSS utility
|
|
- [ESLint](https://eslint.org/) for code linting
|
|
- [Prettier](https://prettier.io) for code formatting
|
|
|
|
## Prerequisites
|
|
|
|
Install `nodejs`, `pnpm` and `turborepo` on your local machine
|
|
|
|
## Develop
|
|
|
|
Create a `.env` file in the root folder, you can use the `.env.example` file as an example
|
|
|
|
I use `pnpm` for this project.
|
|
|
|
Run the following command:
|
|
|
|
```sh
|
|
pnpm installl
|
|
pnpm dev
|
|
```
|
|
|
|
By default, the payloadCMS will run on port 3000, and Astro will be served on port 3001.
|
|
|
|
## Build & Serve (NodeJs)
|
|
|
|
```sh
|
|
pnpm build
|
|
pnpm serve
|
|
```
|
|
|
|
## TypeScript support
|
|
|
|
To fully utilize the type safe features, manually generate the types for PayloadCMS by runng `pnpm generate:types`
|
|
|
|
Then, you can import the types easily as simple as
|
|
|
|
```ts
|
|
import type { User } from "@turbopress/api/types";
|
|
``` |