Giter VIP home page Giter VIP logo

turbopress's Introduction

TurboPress starter

This is a starter Astro + Payload CMS project using Turborepo.

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 app
  • web: an Astro app
  • eslint-config-custom: eslint configurations (includes eslint-config-prettier and eslint-configg-turbo)

Each package/app is 100% TypeScript.

Utilities

This Turborepo has some additional tools already setup for you:

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:

pnpm installl
pnpm dev

By default, the payloadCMS will run on port 3000, and Astro will be served on port 3001.

Build & Serve (NodeJs)

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

import type { User } from "@turbopress/api/types";

turbopress's People

Contributors

adamalfredsson avatar farhan-syah avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

turbopress's Issues

Project Seed

For easier usage, besides the default components, need to seed sample values:

  • Default menu
  • Default footer
  • Layout - Home
  • Layout - Blog
  • Layout - 404
  • Page - Homepage
  • Page - Blog

Create PageList Component

The target is to create a component that can filter list of pages based on criterias (e.g, author, categories, tags), and display the items.

This component can be used to display list of blog posts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.