spica-engine / spica

Spica is a development engine to build fast & efficient applications.

Home Page:http://spicaengine.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Spica - development engine Build status

Spica is a full-fledged, free and open-source backend development platform. It aims to reduce all repetitive backend tasks and provide to fastest backend development process. Spica fulfills the needs of development among other things such as:

Modules Version Tests Used In Enterprise Project
Data Modeling Release
Realtime Database Release
Cloud Functions Release
Identity and Access Management Release
Storage (CDN) Release
Dashboards Release
Features
Auto-Generated REST API Release
WebHooks Release
Custom OAuth & SAML Beta
GraphQL Beta
ACL Rules Release
Asset System Beta
Monitoring Tools Beta
Identity Activity Monitoring Release
Instance Stats Alpha

Secondary Features

  • Inline image editing
  • Data history
  • Data localization
  • Event driven function triggers
  • Prebuilt Open-Source Assets & Plugins
  • Customizable back-office UI
  • API-first approach

Spica provides enterprise-grade backend features and customizable back-office UI for non-technical people.

Quick Start

Important: To run serve command, you must have Docker and NodeJs installed on your development environment.

# Install the CLI
npm install -g @spica/cli

# Start a fresh server
spica project start my-first-server

How It Works

We are trying to reduce development time for fast-paced projects and startups. Also we want to give a platform where the backend developers enjoy while developing robust projects. You can use Spica as a backend engine as well as a headless CMS.

To use Spica as a backend engine:

  1. Prepare your data models in Bucket Module, REST API and GraphQL API will be generated automatically
  2. Add rules to each bucket as an entry level security layer
  3. Create custom policy for your project user roles
  4. Apply your logic with cloud functions
  5. Add custom dashboards for the business managers

To use Spica as a Headless CMS:

  1. Prepare your data models in Bucket Module, REST API and GraphQL API will be generated automatically
  2. Place your inputs and customize your bucket views with a few clicks
  3. Create identities for your content editors
  4. Add policies to your identities so your content editors can't reach to any technical part.
  5. Add automations with cloud functions
  6. Add Webhooks if you want to trigger any other 3rd party integration such as Slack, Zapier

RoadMap

We are currently in public beta. This means, you can use every feature and 99% of features are stable. We used Spica for a few enterprise-grade projects which are serving millions of requests in a day.

We can tell that the current roadmap:

  1. Automate some settings with AI and reduce the complexity of the tool
  2. Better monitoring tools
  3. Adding new open-source assets such as Google Auth, Facebook Auth...
  4. Adding new ready-to-use full-project starter kits such as Marketplace backend, social network backend .etc
  5. New feature requests by our community are welcomed

Documentation

You can see full documentation on spicaengine/docs

Alternatively, you can check out the example which is already up and running

Click here and you will see Examples & Starters section in our official web page.

Community

Join us on Slack or Discord, feel free to request to join our private #development channel if you're planning to contribute.

Docker Packs

Package Status Description
spicaengine/api Docker Image Version (latest semver) Docker Image Size (latest semver) Docker Pulls API server of spica
spicaengine/spica Docker Image Version (latest semver) Docker Image Size (latest semver) Docker Pulls Dashboard for spica
spicaengine/mongoreplicationcontroller Docker Image Version (latest semver) Docker Image Size (latest semver) Docker Pulls Kubernetes controller for MongoDB replication

Libraries

Libraries Status Description Languages
@spica/cli npm (scoped) CLI for controlling the API. JS
@spica-devkit/database npm (scoped) Development package for interacting with the APIs database directly. JS
@spica-devkit/bucket npm (scoped) Development package for interacting with the Bucket APIs. JS
@spica-devkit/storage npm (scoped) Development package for the Storage module. JS
@spica-devkit/identity npm (scoped) Development package for the Identity module. JS

Contributing

Thanks for your interest in contributing! Read up on our guidelines for contributing.

Changelog

Learn about the latest improvements.

Licence

Spica is an open-source software licensed under the AGPL-3.0.

About

Spica is a development engine to build fast & efficient applications.

http://spicaengine.com

License:GNU Affero General Public License v3.0


Languages

Language:TypeScript 83.8%Language:HTML 8.3%Language:SCSS 3.5%Language:Starlark 3.4%Language:Shell 0.4%Language:JavaScript 0.3%Language:PEG.js 0.2%Language:Dockerfile 0.1%Language:Smarty 0.0%