All Projects → serverless → Post Scheduler

serverless / Post Scheduler

Schedule posts & content updates for static websites (Jekyll, Hugo, Gatsby, Phenomic etc)

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Post Scheduler

Awesome Docs With Static Site Generators
Pointers to all templates and implementations based on static site generators
Stars: ✭ 44 (-76.09%)
Mutual labels:  jekyll, static-site-generator, gatsby, hexo, hugo
Vanilla Back To Top
Simple and smooth Back To Top button
Stars: ✭ 179 (-2.72%)
Mutual labels:  jekyll, static-site-generator, hexo, hugo
Jamstackthemes
A list of themes and starters for JAMstack sites.
Stars: ✭ 298 (+61.96%)
Mutual labels:  jekyll, gatsby, hugo
Pendulum
A simple markdown editor for static files (Hugo, Nexo, Jekyll, MkDocs, ...)
Stars: ✭ 157 (-14.67%)
Mutual labels:  jekyll, static-site-generator, hugo
Actions Gh Pages
GitHub Actions for GitHub Pages 🚀 Deploy static files and publish your site easily. Static-Site-Generators-friendly.
Stars: ✭ 2,576 (+1300%)
Mutual labels:  static-site-generator, gatsby, hugo
Staticman
💪 User-generated content for Git-powered websites
Stars: ✭ 2,098 (+1040.22%)
Mutual labels:  jekyll, static-site-generator, hugo
Awesome Static Hosting And Cms
A collection of awesome static hosting & CMS providers
Stars: ✭ 163 (-11.41%)
Mutual labels:  jekyll, hexo, hugo
trailing-slash-guide
Understand and fix your static website trailing slash issues!
Stars: ✭ 255 (+38.59%)
Mutual labels:  static-site-generator, hugo, gatsby
Jamstack Ecommerce
A starter project for building performant ECommerce applications with Next.js and React
Stars: ✭ 1,384 (+652.17%)
Mutual labels:  serverless, static-site-generator, gatsby
Hexo Theme Anodyne
🌋 Original Bright Theme for Hexo
Stars: ✭ 140 (-23.91%)
Mutual labels:  static-site-generator, hexo
Gatsby Starter Netlify Cms
Example gatsby + netlify cms project
Stars: ✭ 1,932 (+950%)
Mutual labels:  static-site-generator, gatsby
Hugo Agency Theme
Port of Startbootstrap's Agency theme to Hugo
Stars: ✭ 155 (-15.76%)
Mutual labels:  static-site-generator, hugo
Gatsby Starter Try Ghost
Publish flaring fast blogs with Gatsby and Ghost
Stars: ✭ 137 (-25.54%)
Mutual labels:  static-site-generator, gatsby
Hexo Generator Amp
AMP ⚡ HTML (Accelerated Mobile Pages) generator for Hexo.
Stars: ✭ 129 (-29.89%)
Mutual labels:  static-site-generator, hexo
Gatsby Plugin Algolia
A plugin to push to Algolia based on graphQl queries
Stars: ✭ 154 (-16.3%)
Mutual labels:  static-site-generator, gatsby
Create Static Site
Create static websites with no build configuration.
Stars: ✭ 124 (-32.61%)
Mutual labels:  jekyll, hugo
Harbor
Simple and minimal personal blog theme.
Stars: ✭ 120 (-34.78%)
Mutual labels:  static-site-generator, hugo
Gine Blog
Blog = Gatsby + React + Material-UI + Notion + Netlify
Stars: ✭ 156 (-15.22%)
Mutual labels:  serverless, gatsby
Hugs
🤗 A super simple starting point for Hugo websites.
Stars: ✭ 162 (-11.96%)
Mutual labels:  static-site-generator, hugo
Hugo theme pickles
Modern, Simple and beautiful Hugo theme
Stars: ✭ 168 (-8.7%)
Mutual labels:  static-site-generator, hugo

Static Site Post Scheduler

The post scheduler is a serverless project that gives static site owners the ability to schedule posts (or other site content).

It works with any static site setup (Jekyll, Hugo, Phenomic, Gatsby etc.)

Video demo

How does it work?

  1. A github webhook fires when pull requests (aka new posts) are updated.

  2. If the pull request comment has a comment matching schedule(MM/DD/YYYY H:MM pm) and the person is a collaborator on the project, the post gets scheduled for you.

  3. A serverless cron job runs every hour to check if a post is ready to be published

  4. When the post is ready to be published, the cron function automatically merges the branch into master and your site, if you have CI/CD built in, will redeploy itself.

To cancel scheduled posts, delete the scheduled comment and it will unschedule the branch.

Github Webhook Architecture Overview

cloudcraft - post scheduler webhook

Cron Job Architecture Overview

cloudcraft - post scheduler cron setup

Install Instructions

You will need the serverless framework installed and an AWS account configured on your computer to deploy this for your repo.

npm install serverless -g

Then watch the scheduler setup and usage videos or follow the instructions below.

  1. Clone down the repository and run npm install to instal the dependencies

  2. Duplicate config.prod.example.json into a new file called config.prod.json and insert your Github username, API token, and webhook secret

// config.prod.json
{
  "serviceName": "blog-scheduler",
  "region": "us-west-2",
  "TIMEZONE": "America/Los_Angeles",
  "CRON": "cron(0 * * * ? *)",
  "GITHUB_REPO": "serverless/blog",
  "GITHUB_WEBHOOK_SECRET": "YOUR_GITHUB_WEBHOOK_SECRET_HERE",
  "GITHUB_API_TOKEN": "YOUR_GITHUB_API_TOKEN_HERE",
  "GITHUB_USERNAME": "YOUR_GITHUB_USERNAME_HERE"
}
  • serviceName - name of the service that will appear in your AWS account
  • region - AWS region to deploy the functions and database in
  • TIMEZONE - Timezone the cron runs on. See timezone.json for available options
  • CRON - How often you want to check for scheduled posts? See the AWS cron docs or serverless schedule docs for more information. Default: every hour on the hour
  • GITHUB_REPO - The owner/repoName of your repository
  • GITHUB_WEBHOOK_SECRET - Any string you want. This gets plugged into your webhook settings
  • GITHUB_API_TOKEN - Personal access token. See below for additonal info
  • GITHUB_USERNAME - Your github username. Used for requests to github
  1. Deploy the service with serverless deploy. If you need to setup serverless, please see these install instructions.

  2. Take the POST endpoint returned from deploy and plug it into your repositories settings in github

image

  1. Add your github webhook listener URL into the Payload URL and choose type application/json

  2. Plugin your GITHUB_WEBHOOK_SECRET defined in your config file

  3. Select which github events will trigger your webhook

  4. Select Issue comments, these will be where you insert schedule(MM/DD/YYYY H:MM pm) comments in a given PR

  5. Submit a PR and give it a go!

Contributions Welcome

Have an idea on how we can improve the static site post scheduler?

Submit a PR, post an issue or tweet @DavidWells

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