Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/kriasoft/graphql-starter-kit

💥 Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, and Joy UI.
https://github.com/kriasoft/graphql-starter-kit

api boilerplate cloud-run graphql graphql-yoga hackathon jotai joy-ui monorepo nodejs postgres postgresql pothos prisma react starter-kit template terraform typescript yarn

Last synced: 3 months ago
JSON representation

💥 Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, and Joy UI.

Lists

README

        


GraphQL

GraphQL Starter Kit







High-performance GraphQL API server, database dev tools, and React front-end.

## Features

- [Monorepo](https://yarnpkg.com/features/workspaces) project structure powered by [Yarn](https://yarnpkg.com/) with [PnP](https://yarnpkg.com/features/pnp).
- [GraphQL API](https://graphql.org/) powered by [GraphQL Yoga](https://the-guild.dev/graphql/yoga-server), [Pothos GraphQL](https://pothos-graphql.dev/), and [μWebSockets](https://github.com/uNetworking/uWebSockets.js).
- Authentication and authorization powered by [Google Identity Platform](https://cloud.google.com/identity-platform).
- Database tooling — seed files, migrations, [Knex.js](https://knexjs.org/) REPL shell, etc.
- Front-end boilerplate pre-configured with [TypeScript](https://www.typescriptlang.org/), [Vite](https://vitejs.dev/), [React](https://beta.reactjs.org/), and [Joy UI](https://mui.com/joy-ui/getting-started/).
- Pre-configured dev, test / QA, production, and preview environments.
- Pre-configured VSCode code snippets and other [VSCode](https://code.visualstudio.com/) settings.
- The ongoing design and development is supported by these wonderful companies:

    

---

This project was bootstrapped with [GraphQL Starter Kit](https://github.com/kriasoft/graphql-starter-kit).
Be sure to join our [Discord channel](https://discord.com/invite/bSsv7XM) for assistance.

## Directory Structure

`├──`[`.github`](.github) — GitHub configuration including CI/CD workflows.

`├──`[`.vscode`](.vscode) — VSCode settings including code snippets, recommended extensions etc.

`├──`[`app`](./app) — front-end application ([Vite](https://vitejs.dev/), [Vitest](https://vitest.dev/), [React](https://reactjs.org/), [Joy UI](https://mui.com/joy-ui/getting-started/templates/)).

`├──`[`db`](./db) — database schema, seeds, and migrations ([PostgreSQL](https://www.postgresql.org/)).

`├──`[`infra`](./infra) — cloud infrastructure configuration ([Terraform](https://www.terraform.io/)).

`├──`[`scripts`](./scripts) — automation scripts shared across the project.

`├──`[`server`](./server) — backend server ([GraphQL Yoga](https://the-guild.dev/graphql/yoga-server), [Pothos GraphQL](https://pothos-graphql.dev/)).

`└── ...` — add more packages such as `worker`, `admin`, `mobile`, etc.

## Requirements

- [Node.js](https://nodejs.org/) v20 or newer with [Corepack](https://nodejs.org/api/corepack.html) enabled.
- Local or remote instance of [PostgreSQL](https://www.postgresql.org/).
- [VS Code](https://code.visualstudio.com/) editor with [recommended extensions](.vscode/extensions.json).

## Getting Started

Just [clone](https://github.com/kriasoft/graphql-starter-kit/generate) the repo
and, install project dependencies and bootstrap the PostgreSQL database:

```bash
$ git clone https://github.com/kriasoft/graphql-starter-kit.git example
$ cd ./example # Change current directory to the newly created one
$ corepack enable # Ensure Yarn is installed
$ yarn install # Install project dependencies
$ yarn db create # Create a new database if doesn't exist
$ yarn db migrate --seed # Migrate and seed the database
```

From there on, you can launch the app by running:

```bash
$ yarn workspace server start # Or, `yarn server:start`
$ yarn workspace app start # Or, `yarn app:start`
```

The GraphQL API server should become available at [http://localhost:8080/](http://localhost:8080/).

While the front-end server should be running at [http://localhost:5173/](http://localhost:5173/).

**IMPORTANT**: Tap `Shift`+`Cmd`+`P` in VSCode, run the **TypeScript: Select TypeScript Version** command and select the workspace version.

## How to Update

In the case when you kept the original GraphQL Starter Kit git history, you can
always pull and merge updates from the "seed" repository back into your
project by running:

```bash
$ git fetch seed # Fetch GraphQL Starter Kit (seed) repository
$ git checkout main # Switch to the main branch (or, master branch)
$ git merge seed/main # Merge upstream/master into the local branch
```

In order to update Yarn and other dependencies to the latest versions, run:

```bash
$ yarn set version latest # Upgrade Yarn CLI to the latest version
$ yarn upgrade-interactive # Bump Node.js dependencies using an interactive mode
$ yarn install # Install the updated Node.js dependencies
$ yarn dlx @yarnpkg/sdks vscode # Update VSCode settings
```

## Backers

              

## How to Contribute

We welcome contributions through pull requests and issues on our GitHub repository. Feel free to also start a conversation on our [Discord server](https://discord.com/invite/PkRad23) to discuss potential contributions or seek guidance.

## License

Copyright © 2014-present Kriasoft. This source code is licensed under the MIT license found in the
[LICENSE](https://github.com/kriasoft/graphql-starter-kit/blob/main/LICENSE) file.