Git Product home page Git Product logo

lesspod's Introduction

Lesspod

Serverless Blogging Engine (In Active Development)

Why Lesspod?

WordPress is a very successful blogging platform which requires servers to host and most of the servers are running over their actual web traffic. Given that 28% of the websites on the internet use Wordpress, there are a lot of unused server resources costing us carbon emissions and money. We can reverse this damage by going serverless. Of course, the 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.

Free Forever Web Hosting (Cloud Limits Apply)

Lesspod will enable free websites and blogs for people who don't want to pay for recurring hosting fees within free limits offered by cloud providers like Google Firebase and AWS Lambda. Lesspod is dynamic and offers a better alternative to static sites which can be difficult to install and manage.

Choice of building blocks

We want to keep Lesspod as simple as possible for everyone to customize and build upon and it requires us to be as minimalist as practically posible.

  • SQLite 3 (using sequelize ORM locally)
  • Express 4 (Most popular node.js framework)
  • EJS VueJS (Clean, Fast and Easiest to Learn)
  • Serverless support (aws/firebase/azure etc)
  • Bulma CSS framework for design
  • Parcel.js Webpack 3/4 as a bundler
  • js-cookie npm module (In future: Store for local storage: https://www.npmjs.com/package/store)

Contributing To Lesspod

Key software versions. Node: 10.0.0 and NPM: 6.0.0

Running the API component: http://localhost:1234/

$ git clone https://github.com/Rajan/lesspod.git   //clone repo
$ cd lesspod  //move to project directory
$ npm install //install necessary packages 
$ node -r dotenv/config index.js //setup environment variables

Note: some npm modules may need to be installed manually.

Running the vuejs client in another commandline window: http://localhost:8080

$ cd client/vue
$ npm install
$ npm run dev

Keep things as simple to understand for others as possible. Also, add comments to any code being contributed.

Feel free to create an issue if you face problems. Kindly include your package.json, OS and browser details.

Deploying to Firebase (WIP)

Create a firebase_init.txt file in the root with web script tags from your Firebase project. We've created two utilities for firebase deploy and rollback. fbase_prep.js will inject firebase calls.

node fbase_prep.js   // create new git branch and inject firebase scripts
node fbase_cleanup.js   // rollback changes and move back to master branch

To Do List

Immediate Feature Goals

  • Authentication/Authorization using SQLite, Passport and Express
  • API Module for SQLite
  • Adding New Pages + Menus
  • Landing Page Design
  • Deployment to Firebase (pod deploy firebase)
  • Unit Tests
  • Logged In Page Design (Dashboard basic)
  • Blog Post Index Design
  • Blog Post View Design
  • Blog settings i.e. changing logo, tagline etc.
  • Profile Page
  • Editor Selection and Integration (using Quill editor)
  • Comments Integration (Disqus, Facebook and ?)
  • Code coverage and e2e testing module

Midterm Feature Goals

  • Page views tracking and reporting
  • React client for Lesspod (Sai is on it)
  • Theming System Design/Dev
  • Plugin System Design/Dev
  • More Themes
  • Theme Generator Basic
  • Menu Editor to re-link existing pages with Menus

Longterm Feature Goals

  • Desktop client for Lesspod

We accept pull requests. Kindly add comments to your code before sending one.

lesspod's People

Contributors

rajan avatar s-kris avatar sujaykundu777 avatar anurag-git avatar rohitforwork avatar khubo avatar madguy02 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.