All Projects β†’ kriasoft β†’ relay-starter-kit

kriasoft / relay-starter-kit

Licence: MIT license
πŸ’₯ Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, Relay, Material UI.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
HCL
1544 projects
Handlebars
879 projects

Projects that are alternatives of or similar to relay-starter-kit

Graphql Starter
πŸ’₯ Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, Relay, and Material UI.
Stars: ✭ 3,377 (-3.87%)
Mutual labels:  postgres, relay, yarn, hackathon, material-ui, monorepo, cloudflare, starter-kit, cloudflare-workers
React Starter Kit
React Starter Kit β€” front-end starter kit using React, Relay, GraphQL, and JAM stack architecture
Stars: ✭ 21,060 (+499.49%)
Mutual labels:  relay, hackathon, material-ui, cloudflare, starter-kit
ionic2-firebase-hackathon-starter
A hackathon starter for ionic2 using firebase, already has user authentication, reset password, google login etc
Stars: ✭ 34 (-99.03%)
Mutual labels:  hackathon, starter-kit
worker-auth-providers
worker-auth-providers is an open-source providers to make authentication easy with workers. Very lightweight script which doesn't need a lot of dependencies. Plug it with any framework or template of workers.
Stars: ✭ 85 (-97.58%)
Mutual labels:  cloudflare, cloudflare-workers
workers-jwt
Generate JWTs on Cloudflare Workers using the WebCrypto API
Stars: ✭ 67 (-98.09%)
Mutual labels:  cloudflare, cloudflare-workers
angularjs-es6-starter-kit
Basic AngularJS, ES6, Webpack Starter Kit Project which includes Bootstrap 4 also. This is a boilerplate for AngularJS SPA with Bootstrap 4.
Stars: ✭ 28 (-99.2%)
Mutual labels:  yarn, starter-kit
cfw-easy-utils
An in-depth library to assist with common tasks with CF Workers. Includes utils for responses, cookies, and more!
Stars: ✭ 52 (-98.52%)
Mutual labels:  cloudflare, cloudflare-workers
terraform-cloudflare-maintenance
Terraform module to create a responsive Maintenance Page using Cloudflare Workers.
Stars: ✭ 111 (-96.84%)
Mutual labels:  cloudflare, cloudflare-workers
slshx
βš”οΈ Strongly-typed Discord commands on Cloudflare Workers
Stars: ✭ 163 (-95.36%)
Mutual labels:  cloudflare, cloudflare-workers
yarn-workspaces-simple-monorepo
Yarn Workspaces basic monorepo management without Lerna for coding examples
Stars: ✭ 31 (-99.12%)
Mutual labels:  yarn, monorepo
enlite-starter
Enlite Starter - React Dashboard Starter Template with Firebase Auth
Stars: ✭ 28 (-99.2%)
Mutual labels:  material-ui, starter-kit
natural
Fastest Framework for NodeJS. Written in pure ES6+
Stars: ✭ 30 (-99.15%)
Mutual labels:  cloudflare, cloudflare-workers
inkrss
Notify when rss feeds are updated | RSS ζ›΄ζ–°ι€šηŸ₯
Stars: ✭ 234 (-93.34%)
Mutual labels:  cloudflare, cloudflare-workers
blog
blog posts & source code.
Stars: ✭ 44 (-98.75%)
Mutual labels:  material-ui, monorepo
nodejs-hackathon-boilerplate-starter-kit
Just a Hackaton/Startup Full-stack node.js starter
Stars: ✭ 37 (-98.95%)
Mutual labels:  hackathon, starter-kit
heltin
Robust client registry for individuals receiving mental healthcare services.
Stars: ✭ 18 (-99.49%)
Mutual labels:  postgres, relay
yarn-plugin-workspace-since
λͺ¨λ…Έλ ˆν¬λ₯Ό μœ„ν•œ yarn berry plugin
Stars: ✭ 120 (-96.58%)
Mutual labels:  yarn, monorepo
telegram-bot-api-worker
Take an alternate route to Telegram Bot API :)
Stars: ✭ 75 (-97.87%)
Mutual labels:  cloudflare, cloudflare-workers
yarn-workspaces-example
Sample monorepo project using new Yarn feature called Workspaces
Stars: ✭ 39 (-98.89%)
Mutual labels:  yarn, monorepo
materializecss starter
A Starter Boilerplate for Materializecss, ionicons, font-awesome and Animatecss
Stars: ✭ 58 (-98.35%)
Mutual labels:  hackathon, starter-kit

GraphQL
GraphQL API and Relay Starter Kit

Features

  • Monorepo project structure powered by Yarn with PnP
  • GraphQL API using code-first development approach (TypeScript, GraphQL.js, Knex, PostgreSQL)
  • Stateless JWT cookie-based authentication (supporting SSR, OAuth 2.0 via Google, Facebook, etc.)
  • Database tooling β€” seed files, migrations, Knex.js REPL shell, etc.
  • Front-end boilerplate pre-configured with TypeScript, Webpack v5, React, Relay, and Materia UI
  • Serverless deployment β€” api, img β†’ Cloud Functions, web β†’ Cloudflare Workers
  • HTML page rendering (SSR) at CDN edge locations, all ~100 points on Lighthouse
  • Pre-configured dev, test / QA, production, and review (per PR) environments
  • Pre-configured VSCode code snippets and other VSCode settings
  • The ongoing design and development is supported by these wonderful companies:

    


This project was bootstrapped with GraphQL API Starter Kit. Be sure to join our Discord channel for assistance.

Directory Structure

β”œβ”€β”€.github β€” GitHub configuration including CI/CD workflows
β”œβ”€β”€.vscode β€” VSCode settings including code snippets, recommended extensions etc.
β”œβ”€β”€env β€” environment variables that are used for local development (local, test, prod)
β”œβ”€β”€db β€” database schema, seeds, and migrations (Cloud SQL, Knex.js)
β”œβ”€β”€api β€” GraphQL API and authentication (Could SQL, Cloud Functions, GraphQL.js)
β”œβ”€β”€img β€” dynamic image resizing (Cloud Functions, [Cloud Storage](https:// cloud.google.com/storage))
β”œβ”€β”€infra β€” cloud infrastructure configuration (Terraform)
β”œβ”€β”€web β€” React / Relay web application with CDN rendering (Webpack, Cloudflare Workers)
β”œβ”€β”€scripts β€” Automation scripts shared across the project
└── ... β€” add more packages such as worker, admin, mobile, etc.

Requirements

Getting Started

Just clone the repo and run yarn install followed by yarn start:

$ git clone --origin=seed --branch=main --single-branch \
    https://github.com/kriasoft/relay-starter-kit.git example
$ cd ./example                  # Change current directory to the newly created one
$ yarn install                  # Install project dependencies
$ yarn setup                    # Configure environment variables
$ yarn db:reset                 # Create or update PostgreSQL database
$ yarn api:start                # Launch GraphQL API and authentication server
$ yarn web:start                # Launch React/Relay front-end app

The API server must become available at http://localhost:8080/api.
The web application front-end must become available at http://localhost:3000/.

How to Deploy

Before you can deploy the app, ensure that the target GCP project exists and that all the environment variables (found in /env/*.env files) are up-to-date, for both test (QA) and prod (production) environments.

If you just created a brand new GCP project, you can configure it by running:

$ yarn gcp:setup --env=test
$ yarn gcp:setup --env=prod

OR, by using Terraform (found in /infra), which one is more convenient for you.

Once a new commit or PR lands onto the main (or, release) branch, it's going to be deployed automatically using a GitHub Actions workflow. Alternatively, you can deploy the app manually by running:

# Build and deploy the GraphQL API (GCF)
$ yarn api:build
$ yarn api:deploy --env=prod

# Build and deploy the web front-end to Cloudflare Workers (CDN)
$ yarn web:build
$ yarn web:deploy --env=prod

# Migrate the target database to the latest version
$ yarn db:migrate --env=prod

Where --env=prod is the target (production) deployment environment, using --env=test when not specified.

References

How to Update

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

$ git fetch seed                # Fetch Node.js Starter Kit (upstream) 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:

$ 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

Anyone and everyone is welcome to contribute. Start by checking out the list of open issues marked help wanted. However, if you decide to get involved, please take a moment to review the guidelines.

License

Copyright Β© 2016-present Kriasoft. This source code is licensed under the MIT license found in the LICENSE file.


Made with β™₯ by Konstantin Tarkus (@koistya, blog) and contributors.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].