All Projects → jamstack-cms → Serverless Backend

jamstack-cms / Serverless Backend

Licence: mit
The serverless back end for JAMstack CMS. Use this back end to deploy a custom CMS using your own front end.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Serverless Backend

Graphql Serverless
Sample project to guide the use of GraphQL and Serverless Architecture.
Stars: ✭ 28 (-61.64%)
Mutual labels:  graphql, serverless, dynamodb
Graphql Recipes
A list of GraphQL recipes that, when used with the Amplify CLI, will deploy an entire AWS AppSync GraphQL backend.
Stars: ✭ 137 (+87.67%)
Mutual labels:  graphql, serverless, dynamodb
Serverless
This is intended to be a repo containing all of the official AWS Serverless architecture patterns built with CDK for developers to use. All patterns come in Typescript and Python with the exported CloudFormation also included.
Stars: ✭ 1,048 (+1335.62%)
Mutual labels:  graphql, serverless, dynamodb
Amplify Photo Sharing Workshop
Building full-stack cloud apps with AWS Amplify and React
Stars: ✭ 143 (+95.89%)
Mutual labels:  graphql, serverless, dynamodb
This Or That
This or that - Real-time atomic voting app built with AWS Amplify
Stars: ✭ 87 (+19.18%)
Mutual labels:  graphql, serverless, dynamodb
Jamstack Serverless
Learn JAMstack Serverless Modern App Development in Baby Steps using Gatsby.js, React, TypeScript, GraphQL, Contentful, Netlify, FaunaDB, MongoDB, Apollo, Github Actions, Project Fugu, and CSS Houdini.
Stars: ✭ 178 (+143.84%)
Mutual labels:  graphql, serverless, jamstack
Workshop Donkeytracker
Workshop to build a serverless tracking application for your mobile device with an AWS backend
Stars: ✭ 27 (-63.01%)
Mutual labels:  serverless, dynamodb
Cms
Statamic 3: The Core Composer Package
Stars: ✭ 965 (+1221.92%)
Mutual labels:  graphql, jamstack
Gridsome
⚡️ The Jamstack framework for Vue.js
Stars: ✭ 8,022 (+10889.04%)
Mutual labels:  graphql, jamstack
Aws Testing Library
Chai (https://chaijs.com) and Jest (https://jestjs.io/) assertions for testing services built with aws
Stars: ✭ 52 (-28.77%)
Mutual labels:  serverless, dynamodb
Serverless Appsync Plugin
serverless plugin for appsync
Stars: ✭ 804 (+1001.37%)
Mutual labels:  graphql, dynamodb
Api.gatsbyjs.org
The API for the Gatsby swag store.
Stars: ✭ 44 (-39.73%)
Mutual labels:  graphql, serverless
Bootcamp 2021
Fusing Serverless Cloud Computing, Infrastructure as Code, Graph Databases, AI, and IoT Technologies and preparing for Operation Unicorn Startups
Stars: ✭ 55 (-24.66%)
Mutual labels:  graphql, serverless
Panther
Detect threats with log data and improve cloud security posture
Stars: ✭ 885 (+1112.33%)
Mutual labels:  graphql, serverless
Serverless Dynalite
Serverless plugin to run Dynalite locally (No JVM needed!) to handle DynamoDB development. Can watch for table config changes.
Stars: ✭ 19 (-73.97%)
Mutual labels:  serverless, dynamodb
Api Platform
Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time.
Stars: ✭ 7,144 (+9686.3%)
Mutual labels:  graphql, jamstack
Serverless Graphql Workshop
GraphQL and Serverless workshop
Stars: ✭ 70 (-4.11%)
Mutual labels:  graphql, serverless
Up
Up focuses on deploying "vanilla" HTTP servers so there's nothing new to learn, just develop with your favorite existing frameworks such as Express, Koa, Django, Golang net/http or others.
Stars: ✭ 8,439 (+11460.27%)
Mutual labels:  graphql, serverless
Graphql Serverless
Example boilerplates for GraphQL backends hosted on serverless platforms
Stars: ✭ 60 (-17.81%)
Mutual labels:  graphql, serverless
Contacts api
Serverless RESTful API with AWS Lambda, API Gateway and DynamoDB
Stars: ✭ 66 (-9.59%)
Mutual labels:  serverless, dynamodb

JAMstack CMS infrastructure as code

This is the back end infrastructure that powers the JAMstack CMS.

If you would like to build another CMS based on the JAMstack CMS, this is a great place to start. It includes the following:

  1. GraphQL API with authorization rules.

  2. Amazon S3 for storage of images, videos, and files.

  3. Authentication service for user management and general authentication and authorization.

  4. Lambda functions for image resizing and post-confirmation of users to add to groups.

To deploy this backend with another app

  1. Download the amplify folder into the root of the application you'd like to build

  2. Run the following command:

amplify init
  1. Update the schema to match your requirements.

  2. To update any configuration, you can run the following commands:

amplify update storage

amplify update api

amplify update auth

amplify update function

Updating / evolving the GraphQL schema

To update the schema, open the schema at amplify/backend/api/jamstackcms. Here is the base schema:

  
type Post @model
  @auth (
      rules: [
          { allow: groups, groups: ["Admin"], operations: [create, update, delete] },
          { allow: private, operations: [read] },
          { allow: public, operations: [read] }
      ]
  ) {
  id: ID!
  title: String!
  description: String
  content: String!
  cover_image: String
  createdAt: String
  published: Boolean
  previewEnabled: Boolean
  categories: [String]
  author: User @connection
}

type Comment @model @auth(
  rules: [
    { allow: groups, groups: ["Admin"], operations: [create, update, delete] },
    { allow: owner, ownerField: "createdBy", operations: [create, update, delete] }
  ]
) {
  id: ID!
  message: String!
  createdBy: String
  createdAt: String
}

type Settings @model @auth(rules: [
    { allow: groups, groups: ["Admin"] },
    { allow: groups, groupsField: "adminGroups"},
    { allow: public, operations: [read] },
  ]) {
  id: ID!  
  categories: [String]
  adminGroups: [String]
  theme: String
  border: String
  borderWidth: Int
  description: String
}

type Preview @model
  @auth (
      rules: [
        { allow: groups, groups: ["Admin"] },
        { allow: private, operations: [read] }
      ]
  ) {
  id: ID!
  title: String!
  description: String
  content: String!
  cover_image: String
  createdAt: String
  categories: [String]
}

type Page @model(subscriptions: null)
  @auth (
      rules: [
        { allow: groups, groups: ["Admin"] },
        { allow: private, operations: [read] },
        { allow: public, operations: [read] }
      ]
  )
{
  id: ID!
  name: String!
  slug: String!
  content: String!
  components: String
  published: Boolean
}

type User @model
  @auth(rules: [
    { allow: owner },
    { allow: groups, groups: ["Admin"]},
    { allow: public, operations: [read] }
  ])
{
  id: ID!
  name: String
  username: String
  avatarUrl: String
}

Once you've made the updates, run the following command to test the new API:

amplify mock

Once you've tested the updates, run the following command to deploy the new API:

amplify push
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].