Need help with spacedrop?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

spacedrop
127 Stars 35 Forks Other 74 Commits 4 Opened issues

Description

An open-source CMS in JavaScript, built with Meteor and React.

Services available

!
?

Need anything else?

Contributors list

SpaceDrop

An open-source CMS in JavaScript, built with Meteor and React.

Achievement unlocked, you found us.

Hands to you for Googling and finding us, the next step is up to you. Become a co-author and member of the die-hards controlling SpaceDrop's future direction, by forking and creating a PR that gets committed.

API examples

Below APIs are functional, more APIs are coming soon!

Menu API

Create route to view content of type node.

SD.Menu.route({
  path: 'node/:nid',
  component: SD.Views.Node,
  subscriptions: {
    'node.node': ['nid']
  }
})

Permission API

Create permission to access published content.

SD.Permission.permission({
  name: 'access content',
  title: 'View published content'
});

Create a role with limited permissions.

SD.Permission.role({
  name: 'guest',
  permissions: {
    'access content': 1
  }
});

Entity API

Create an entity of type "node".

let Node = class extends SD.Structure.Entity {
  constructor({ name, schema = {}, indexes = {} }) {
    super({
      type: 'node',
      bundle: name,
      schema: _.extend({
        nid: {
          type: Number,
          optional: true,
          autoValue: () => {
            return this.collection.find().count() + 1;
          }
        },
        bundle: {
          type: String,
          optional: true,
          autoValue: function() {
            return name;
          }
        },
        title: {
          type: String
        }
      }, schema)
    });

// Ensure index for entity type node.
Node._ensureIndex('nid', {unique: 1});

} }

// Export Node to packages and application. SD.Structure.Node = Node;

Node API

Create a content type (bundle) with the name "page".

let Page = new SD.Structure.Node({
  name: 'page',
  schema: {
    body: {
      type: String
    }
  }
});

List all pages (nodes of content type "page").

let nodes = Page.find();

List all nodes regardless of content type (bundle).

let nodes = SD.Structure.Node.find();

Help improve these APIs! Fork and create a pull request, when it gets committed you'll be added as member of the die-hards and help decide the future for this project.

Sub-projects

  • Core
    • [x] Logging system (inner logging, logs transmitted to external system)
    • Caching management and injection
    • [x] Subscription caching
    • [ ] Appcache
    • Menu
    • [ ] Simplify the API to create and manage routes and access management for other packages.
    • [ ] UI for management of menus.
    • User
    • [ ] UI for management of users.
    • [ ] Permission
    • [ ] Access management for packages.
    • [ ] UI for roles and user permissions.
  • Theming
    • [ ] React Templates (Blaze inspired templating)
    • [ ] Sideburns (Blaze inspired events/helpers/callbacks)
    • [ ] Overriding templates
    • [ ] Basic theme (package)
  • Admin UI
    • [ ] Administrating site settings
    • [ ] Editing documents, forms generated from schemas in the Structure package.
    • [ ] Add/remove and publish/unpublish documents.
    • [ ] Packages overview (on/off capabilities)
    • [ ] Reports package and page showing status of current installed version and more.
    • [ ] Admin menu for all administrative tasks.
  • Configuration management
    • Structure
    • [ ] Creating collections
    • [ ] Manage schemas for collections
    • [ ] Manage indexes for a collection
    • Structure UI
    • [ ] UI for adding/removing collections
    • [ ] UI for adding/removing fields on a collections
    • Structure from UI to code
    • [ ] Structures should generate code from the UI if running locally.
    • [ ] Structures should be readable from production, but not editable on a published application.
  • SEO
    • [ ] Pagetitle
    • [ ] Metatags
    • [ ] Open Graph
    • [ ] Schema.Org
    • [ ] Rich Snippets v2
    • SEO package
    • [ ] UI for editing SEO defaults or per entity
  • API
    • [ ] REST api to list/create collections, schemas etc.
    • [ ] REST api for read/write to documents in a collection.
    • [ ] CSV importer.
    • [ ] CSV exporter.
  • Documentation
    • [ ] JSDoc on all packages/components/classes generated to a docs site.
    • [ ] Manuals for all API's such as Menu, Permission, Structure, etc.
    • [ ] Documentation how to create a new app using a distribution (Distributions are ready sets of SpaceDrop packages one can get started using direcly).
  • Security
    • [ ] Argument checks
    • [ ] Browser policy
    • [ ] Rate limiting for preventing flooding
  • Asset management system
    • [ ] Media library for static files
    • [ ] Images (PNG, JPEG, WebP) with server side optimization (resolutions, metadata removal, conversions) and client side edition.
    • [ ] SVG with client side edition
    • [ ] MPEG-4 with server side entropy recompression and optimization (resolutions, conversions).
    • [ ] External asset importer for Youtube
  • Features as packages
    • [ ] Browser outdated warning
    • [ ] Cookie information
    • [ ] Legal information
    • [ ] Favicons with manifests and screen launching for mobiles
    • [ ] Search engine (full text search as default, external river for Elasticsearch)
    • [ ] Basic recommender engine
    • [ ] Analytics (GA, Mixpanel, ...).
    • [ ] Transactional emails (SMTP, Mailjet, Mandrill, ...) with client side edition (tagging, theming)
    • [ ] PDF generation for catalogues, license agreement, ...
    • [ ] Payment capabilities (Braintree, Stripe, ...)
    • [ ] A/B testing (rendering depending on population, reports on funnels, ...)
    • [ ] Sharers for social networks
    • [ ] UTM campaigns
    • [ ] Ads / Banners
    • [ ] Rocket.Chat integration with bots for outside hours
    • [ ] Maps integration with styling
  • System health support
    • [ ] Client information on connection status
    • [ ] Server status
    • [ ] Simple analytic dashboard (CPU consumption, RAM, Drive)
  • Devops - Assistance and helpers for deployment
    • [ ] Docker based infrastructure for monolithic applications
    • [ ] Docker based infrastructure for clustered applications
    • [ ] Cordova project for iOS, Android and Android legacy (with Crosswalk integration)
  • Internationalization
    • [ ] Simple translation support for packages.
    • [ ] UI for translating strings
    • [ ] UI to update translations from external sources, i.e. https://localize.drupal.org/

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.