Welcome to the Geins SDK Repository, a collection of tools and libraries designed to provide a seamless developer experience for Node.js applications.
Geins is a commerce bacekend that enables developers to build and deploy applications quickly and easily. The Geins SDK provides a set of tools and libraries that help developers build applications faster, with less code and fewer bugs.
To start developing with the Geins SDK, read the Getting Started guide.
The Geins SDK is organized as a monorepo, which means that multiple packages are housed within a single repository. This structure allows for easier management of interdependent packages, consistent versioning, and streamlined development workflows.
This repository is a monorepo. The main directories are:
packages/sdk/: The packages, including:
@geins/core: Core functionality like channel management and GraphQL client.@geins/cms: CMS-specific features, including menus and content areas.@geins/crm: CRM features like user authentication and profile management.@geins/oms: Order management features like cart and checkout.@geins/types: Type definitions for Geins SDK.
Find detailed guides, examples, and API references in the docs/ directory or visit the online documentation.
| Branch | Purpose | What happens on push |
|---|---|---|
main |
Stable releases | Changesets action creates a release PR. Merging that PR publishes to npm under latest tag. |
next |
Pre-release / canary | Automatically publishes canary snapshots to npm under @canary tag (e.g. 0.5.1-canary-abc1234). |
- Create feature branches from
next - PR into
next— triggers canary release on merge - When ready for stable release, merge
nextintomain - Changesets action opens a "chore: release packages" PR on
main - Merging that PR publishes final versions to npm
This repo uses Changesets for version management. All SDK packages (@geins/types, @geins/core, @geins/cms, @geins/crm, @geins/oms) are in a fixed version group — they always release together at the same version.
To add a changeset for your work:
npx changesetOr manually create a .changeset/<name>.md file:
---
'@geins/types': patch
'@geins/core': patch
'@geins/cms': patch
'@geins/crm': patch
'@geins/oms': patch
---
Description of changesWe welcome contributions! Please follow our contribution guidelines.
Licensed under the MIT License. Check the LICENSE file for details.