simpla

Open, modular, and serverless content management for a modern web

Github stars Tracking Chart

Simpla is a modular content system for frontend developers, built on Web Components.

At a glance, it lets you:

  • Build with standard HTML & JS
  • Edit content (safely) inline
  • Use Github as your backend
  • Work in any stack or framework
  • Push everything as JSON data to a static CDN
  • Define content models in the DOM
  • Assemble your own lightweight CMS

It looks like this:

<!-- Block of editable richtext -->
<simpla-text path="/text"></simpla-text>

<!-- An editable image -->
<img is="simpla-img" path="/img">

<!-- Dynamic collection -->
<simpla-collection path="/gallery" as="photo">
  <template>
    <img is="simpla-img" path="/gallery/[photo]/img">
    <simpla-text path="/gallery/[photo]/caption"></simpla-text>
  </template>
</simpla-collection>

<!-- And many more components -->

Installation

Simpla is available on NPM and Unpkg as simpla.

npm i simpla

Import the core library and an OAuth adapter, and call Simpla.init

// Import Simpla and OAuth adapter
import Simpla from 'simpla';
import SimplaNetlify from 'simpla/adapters/netlify';

// Init Simpla
Simpla.init({

  // Github repo to store content in
  repo: 'username/repo',

  // Adapter to authenticate users with Github
  auth: new SimplaNetlify({ site: 'mysite' }),

  // Public URL of your content (optional)
  source: 'https://mysite.netlify.com'

});

// Add Simpla to window global for components to access
window.Simpla = Simpla;

Simpla and its adapters export UMD modules, so you can also link to them with <script> tags and use the globals directly.

Simpla uses web components to manage content, the library itself is just a tiny (~4kb) core to an expansive ecosystem. Install and add components to your page with Bower and HTML imports (NPM/JS support coming soon). You can find components in the elements catalogue.

$ bower i simpla-text simpla-img simpla-admin --save
<link rel="import" href="/bower_components/simpla-text/simpla-text.html">
<link rel="import" href="/bower_components/simpla-img/simpla-img.html">
<link rel="import" href="/bower_components/simpla-admin/simpla-admin.html" async>

You should also include a web components polyfill for full cross-browser support (see the browsers Simpla supports).

<script src="https://unpkg.com/webcomponents.js@^0.7.24/webcomponents-lite.min.js" async></script>

See full documentation & API references

Contributing

There are lots of ways you can help push the Simpla project forward:

  • Reporting bugs. If you find a bug please report it! Open an issue against this repository for problems with the core library. For problems with elements, open an issue against the element's repository.

  • Submitting Pull Requests. We ❤️ PRs! Your PR should address an existing issue or have been discussed previously to ensure it gets merged.

  • Publishing new components Simpla is a community driven project, and the best way you can contribute is to build your own content components. The ecosystem is built on Web Components, but there's no reason you couldn't use Simpla in a component environment of your choice (React, etc).

Read the Contributing guidelines for more information.


MIT © 2017

Main metrics

Overview
Name With Ownersimplajs/simpla
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2015-12-04 02:25:38
Pushed At2017-12-23 05:08:22
Last Commit At2017-12-21 13:58:39
Release Count27
Last Release Namev3.0.1 (Posted on 2017-10-23 21:03:21)
First Release Namev0.1.0 (Posted on 2016-04-14 14:11:00)
用户参与
Stargazers Count527
Watchers Count31
Fork Count36
Commits Count394
Has Issues Enabled
Issues Count60
Issue Open Count16
Pull Requests Count30
Pull Requests Open Count1
Pull Requests Close Count5
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private