UNPKG

@arcblock/blocklet-registry

Version:

**Blocklets** are reusable building blocks to help developers and community users to build things on [ArcBlock](https://www.arcblock.io) platform. A blocklet serves one and only one purpose, reusability is the core design philosophy of blocklets. Reusabil

116 lines (82 loc) 4.47 kB
## What are blocklets? **Blocklets** are reusable building blocks to help developers and community users to build things on [ArcBlock](https://www.arcblock.io) platform. A blocklet serves one and only one purpose, reusability is the core design philosophy of blocklets. Reusability makes it easy to compose multiple blocklets to build a more complex application. Blocklets comes in many forms, including but not limited to: - A starter template, from which a developer can bootstrap an dapp already connected to forge-powered blockchain within minutes - A full-featured dApp, with which a miner or community user can install and get it up and running quickly - A smart contract, which defines the on-chain pipeline of a business logic and can be deployed to forge-powered chains with one click ## What is blocklet registry? To help developers to find usable blocklets more easily, all blocklets built by ArcBlock and community developers are listed on [blocklet.arcblock.io](https://blocklet.arcblock.io), which is a website built from [ArcBlock/blocklets](https://github.com/arcblock/blocklets), users can search and view listed blocklets and use the blocklet with just one command, this website is called the blocklet registry. ## How do define a blocklet? There are several key piece of information to make a blocklet: ```shell ❯ tree . -L 2 . ├── screenshots │   ├── image1.png │   ├── image2.jpg │   └── image3.png ├── blocklet.md ├── blocklet.json └── logo.svg ``` ### KeyInfo: `blocklet.json` This is the key file when defining a blocklet, may contain the following fields: ```javascript { // Brief introduction to the blocklet "description": "A dApp starter that integrates forge-javascript-sdk and create-react-app", // Specify the logo file of the blocklet "logo": "logo.svg", // Can be starter|dapp|contract "group": "starter", "documentation": "https://docs.arcblock.io", "support": "support@arcblock.io", "community": "https://gitter.im/arcblock/cummonity", // Charge settings "charging": { "price": 10, "receiver": "z1en6dudVmqsP1P2ZG1R8DdBZoYPnzw46T1", }, // Following fields can be inherited from package.json "name": "forge-react-starter", "version": "0.37.0", "author": "wangshijun <shijun@arcblock.io> https://github.com/wangshijun", "keywords": ["arcblock", "forge", "starter", "react", "javascript"], "homepage": "https://github.com/ArcBlock/forge-dapp-starters/tree/master/packages/forge-react-starter", "repository": { "type": "git", "url": "https://github.com/ArcBlock/forge-dapp-starters/tree/master/packages/forge-react-starter" }, // Customize the install pipeline of the blocklet "scripts": { "pre-copy": "", "post-copy": "", "configure": "", "complete": "" } } ``` ### KeyInfo: `blocklet.md` A detailed introduction to the blocklet, should clearify the following questions for a potential user to the blocklet: - What the blocklet can do after installation? Though can be inferred from it's group, but worth a few words of description - What are the requirements to use this blocklet? Including hardware, software, developer experience and skills - What problems may users encounter when use the blocklet? and how to resolve them? ### KeyInfo: `logo.png` The logo of the blocklet, can be any valid image, png recommended, will be displayed on blocklet detail page, should be a **200px x 200px** transparent image. ### KeyInfo: `screenshots` The screenshots folder should contain several images of what's the output of the blocklet so that users can easily grasp the idea behind the blocklet. ### Other Info Including scripts that run during the process. ### Meta Info Resolving To avoid duplicate fields defined in `package.json`, some fields can be omitted from `blocklet.json`, and the build process is smart enough to merge those fields together. ## How to create a blocklet? Initialize a blocklet config with `forge blocklet:create`, will be supported soon in `forge-cli`. - How to create a starter blocklet? - How to create a dapp blocklet? - How to create a contract blocklet? ## How to publish a blocklet? 1. Create your blocklet and make sure it's working 2. Fork this repository 3. Change `registry.yml` to include your repo 4. Send a pull request to this repository 5. Your blocklet is listed on official registry once your pull request is accepted and merged