Introduction • How To Use • License
Starter kits are example code repositories that you can use for learning or as starting point for your own projects. Each kit aims to solve a specific task and uses a particular tech stack. Once you find a kit that fits your needs, you can use it to create your own personal workspace in Demeter.run based off that code template.
This repository works as an index of available Starter-Kits which are available and listed in Demeter.run platform.
To include your Starter Kit in Demeter.run you need to submit a pull request to this repository with the information required to list your project.
1. Clone the repository
# Clone this repository
$ git clone https://github.com/txpipe/awesome-starter-kits.git
# Go into the repository
$ cd awesome-starter-kits
2. Create a new branch for adding the metadata with your Starter Kit information.
# Create a new branch
$ git checkout -b starter-kit/my-awesome-starter-kit
3. Create a new folder for your Starter Kit.
# Create a new directory
$ mkdir kits/my-awesome-starter-kit
# Go into your new feature
cd kits/my-awesome-starter-kit
4. Add your Starter Kit metadata
Now you can create the file with the metadata for listing your starter kit. Metadata files are defined in YAML format:
# Create a new metadata file
$ touch metadata.yaml
You can always copy the metadata file from another starter kit into your folder and update the information in case you don't want to generate the metadata file from scratch.
Example format for your Starter Kit metadata:
metadata.yaml
title: Name
logo: URL for your starter-kit logo
description: A NodeJS package that provides several examples of how to leverage Ogmios typescript client to execute local-state-queries, chain-sync and tx-monitoring operations against a node.
repository: https://github.com/cardanosolutions/ogmios-client-starter-kit.git
features:
- ogmios
settings:
template: typescript
size: small
author:
name: TxPipe
logo: https://demeter.run/assets/logos/txpipe.svg
social:
twitter_handle: txpipe_tools
discord: ZTHcHUy5HY
Name | required | Description |
---|---|---|
title |
required | the title to be displayed in the list of starter-kits |
logo |
required | a logo to be displayed next to your starter kit title |
description |
required | a short description indicating what is the scope of the starter kit |
repository |
required | the link to the github repository to be used as a template. It needs to be publicly available. |
features |
optional | a list of features associated to this starter kit. See the list of available features below. |
settings.template |
required | the image template to be used when building the workspace for running your starter kit. See the list of available templates below. |
settings.size |
required | the size of the workspace to be created when running your starter kit. See the list of available sizes below. |
author.name |
required | the name of the author |
author.website |
optional | the website of the author |
author.logo |
optional | a logo for the author |
social.twitter |
optional | the twitter handle for the author |
social.discord |
optional | the id of the author discord server |
This is the list of currently available features in Demeter, use it as reference to tag your starter kit in the features
field of the metadata file. Tagging your starter kit will allow us to recommend it in relevant sections of Demeter web console.
Name | Description |
---|---|
nodes |
Fully-synced nodes ready to be used through any of the available ports |
dbsync |
Provides a relational view of Cardano on-chain data using a PostgreSQL database |
ogmios |
Provides a WebSocket API for clients to speak Ouroboros' mini-protocols via JSON/RPC. |
containers |
Provides docker containers hosting on the web. |
hydra |
Hydra head instances that can be shared among different peers in the cluster |
kuber |
Haskell library and API server for composing balanced Cardano transactions. |
submitapi |
Provides an HTTP endpoint to submit CBOR-encoded transactions onto the Node |
webhooks |
Subscribe to events in the node |
workspaces |
Provides custom cloud-based development environments based off on VSCode with access to a node |
This is the list of currently available workspace templates in Demeter, use it as reference to fill the settings.template
field in your metadata file. A template defines the pre-determined set of dependencies installed by default in the workspace running your starter kit.
Name | Description |
---|---|
plutus |
VSCode + Haskell + GHC + Cabal + Nix. The latest Cardano derivations from IOHK Nix cache. |
haskell |
VSCode + Haskell + GHC. Good for starting from scratch with the Haskell language. |
typescript |
VSCode + NodeJS + Typescript. Good for creating frontends using Lucid or Mesh framework |
rust |
VSCode + Rust + Cargo. Good for creating projects using Pallas building blocks |
golang |
VSCode + Golang. Good for creating projects using CloudStruct Ouroboros library. |
python |
VSCode + Python 3.8. Good for creating projects using the PyCardano framework. |
This is the list of currently available workspace sizes in Demeter, use is as reference to fill the settings.size
field in your metadata file. The size of the workspace defines the amount of resources (memory, cpu, disk) allocated to the instance. Unless you're aware that your starter kit has a high level of resource requirements, you should choose small
as the prefered choice.
Name |
---|
small |
medium |
large |
If you want to include additional information about how to use your starter kit, you can add an additional markdown file inside of your starter kit folder.
# Create a new markdown file
$ touch readme.md
Once you have entered all the metadata for your starter kit you can open a pull-request to the main branch of this repository. Once the pull-request is merged your starter kit will be automatically available and displayed in Demeter.run
If you have questions join our discord server