Skip to content

lesspod/lesspod-2.0

Repository files navigation

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

Discussion at Vuejs Reddit

Demo Lesspod: www.lesspod.org Username: [email protected] Password: lesspod1234

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 4 themes )

When it comes to building websites, themes do speed up the development effort. Currently, we support Bootstrap 4 themes. Thousands of Bootstrap 4 themes are available online and can be quickly integrated via 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 start

# serverless deployment as per: https://github.com/jeehyukwon/nuxt-serverless
$ npm run sls:create // need to do this before deploying
$ npm run sls:local  // running serverless in offline mode

# generate static project
$ npm run generate

We accept pull requests. TIA. Star us if you like the idea! For detailed explanation on how things work, checkout Nuxt.js docs.