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 | ✅ | ✅ |
- 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.
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
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:
- Prepare your data models in Bucket Module, REST API and GraphQL API will be generated automatically
- Add rules to each bucket as an entry level security layer
- Create custom policy for your project user roles
- Apply your logic with cloud functions
- Add custom dashboards for the business managers
To use Spica as a Headless CMS:
- Prepare your data models in Bucket Module, REST API and GraphQL API will be generated automatically
- Place your inputs and customize your bucket views with a few clicks
- Create identities for your content editors
- Add policies to your identities so your content editors can't reach to any technical part.
- Add automations with cloud functions
- Add Webhooks if you want to trigger any other 3rd party integration such as Slack, Zapier
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:
- Automate some settings with AI and reduce the complexity of the tool
- Better monitoring tools
- Adding new open-source assets such as Google Auth, Facebook Auth...
- Adding new ready-to-use full-project starter kits such as Marketplace backend, social network backend .etc
- New feature requests by our community are welcomed
You can see full documentation on spicaengine/docs
Click here and you will see Examples & Starters
section in our official web page.
Join us on Slack or Discord, feel free to request to join our private #development
channel if you're planning to contribute.
Package | Status | Description |
---|---|---|
spicaengine/api | API server of spica | |
spicaengine/spica | Dashboard for spica | |
spicaengine/mongoreplicationcontroller | Kubernetes controller for MongoDB replication |
Libraries | Status | Description | Languages |
---|---|---|---|
@spica/cli |
CLI for controlling the API. | JS | |
@spica-devkit/database |
Development package for interacting with the APIs database directly. | JS | |
@spica-devkit/bucket |
Development package for interacting with the Bucket APIs. | JS | |
@spica-devkit/storage |
Development package for the Storage module. | JS | |
@spica-devkit/identity |
Development package for the Identity module. | JS |
Thanks for your interest in contributing! Read up on our guidelines for contributing.
Learn about the latest improvements.
Spica is an open-source software licensed under the AGPL-3.0.