otsab19 / lesspod-2.0

Serverless CMS (Currently In Development)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lesspod Logotype

lesspod-2.0

Lesspod-2.0 built with vue/nuxt/serverless (work in progress)

Why Lesspod?

In 2015, carbon emissions from data centers exceeded the carbon emissions from air travel. There are 16 million websites being added to the Internet every month. Most websites require servers to host and most of the servers are underutilized. There are a lot of unused server resources costing us carbon emissions and money. We can reverse this damage by going serverless.

Lesspod's mission is to transition the Internet from server architecture to serverless architecture as soon as possible. To that end, we're building it as an open source project that anyone can utilize.

Our goal is to make it as simple as possible to host serverless websites and blogs. As we build Lesspod, we stare at the possibility of the serverless Internet.

Discussion at Reddit Opensource

Static websites vs Serverless websites

Static websites can also be deployed without servers (VMs or bare metal) and can be considered as a serverless website. The key difference from development perspective is that a serverless website built with Lesspod can be a dynamic serverless website.

Themes Support (Bootstrap themes + Tailwind CSS)

We know that when it comes to building websites, themes do speed up the development effort. Currently, we support tailwind css and bootstrap both. Thousands of Bootstrap 4 themes are available online and can be quickly integrated using nuxt.config.js.

For example following code illustrates adding 'Journal' Bootswatch theme.

 head: {
    title: pkg.name,
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: pkg.description }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
      {
        rel: 'stylesheet',
        href:
          'https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css'
      },
      {
        rel: 'stylesheet',
        href:
          'https://stackpath.bootstrapcdn.com/bootswatch/4.1.2/journal/bootstrap.min.css'
      },
      {
        rel: 'stylesheet',
        href:
          'https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'
      }
    ]
 }
 modules: [
    // Doc: https://github.com/nuxt-community/axios-module#usage
    ['@nuxtjs/axios'],
    ['bootstrap-vue/nuxt', { css: false }],
    ['@nuxtjs/pwa']
 ]

Build Setup

Mongo should be running locally. Also, rename .env.sample to .env before running.

# install dependencies
$ npm install

# serve with hot reload at localhost:3000
$ npm run dev

# build for production and launch server
$ npm run build
$ npm run sls:local  // running serverless in offline mode

# generate static project
$ npm run generate

For detailed explanation on how things work, checkout Nuxt.js docs.

About

Serverless CMS (Currently In Development)


Languages

Language:Vue 53.7%Language:JavaScript 45.1%Language:CSS 1.2%