recipes icon indicating copy to clipboard operation
recipes copied to clipboard

Brainstorm: UX products that can be built on top of Recipes

Open soulofamachine opened this issue 5 years ago • 1 comments

Starting a brainstorm here for how we can extract even more value out of recipes. such a great knowledge base!

From brainstorm with @JoshOrndorff :

  • Substrate Boxes: like truffle boxes, basically boilerplates that takes a combination of recipes and that already works out of the box for people. Devs can download boxes with one cli cmd, and have a custom blockchain already working. Insight here is that ppl want working code.
  • Substrate Playground image for each recipe, that builds and lets ppl interact in online IDE. Insight here is that ppl don't wanna set up their own dev env.
  • Each recipe could have an accompanying tutorial video (just 1 -5 min). Insight here is that ppl prefer to watch than to read.

soulofamachine avatar Apr 20 '20 12:04 soulofamachine

Since this is expanded into several ideas, we're ideating it in notion, see: https://www.notion.so/paritytechnologies/Substrate-CLI-a7065cfc46e744d98e962202d980ec7d

repasting here for externals:

Rough Idea for the CLI part

A user-friendly CLI to simplify substrate development, testing and deployment. Think Truffle Suite, or Ruby-on-Rails CLI scaffolding tools. The point isn't to create new features, but to expose existing Recipes, Marketplace, Playground, JS, cargo-remote, etc. making it easier for users to use those awesome tools.

The Basics

Scaffold New Projects: **sub scaffold [-b] project_name**

  • Function: Initializes a new Substrate project from the latest Substrate template, or if -b from a pre-packaged component containing more boilerplate.
  • Boilerplates can come from (1) Substrate recipes and (2) Playground (3) just a clone url (?), e.g. Truffle Boxes
  • Examples: sub scaffold my_project, sub scaffold -b kitties, sub scaffold -b utxo, sub scaffold -b https://github.com/user/repo
  • Bonus (freebie in terms of implementation): sub tutorial tutorial_name, downloads the starter code for users during a workshop.

Add Pallets: **sub add [-n] pallet_name**

  • Function: extends the current project with an existing pallet from Substrate
  • Example: sub add currency, sub remove currency, sub add -n my_pallet, etc.

Use a console: sub console --mode

  • Function: a console to interact with chain state. Maybe let users add new genesis specs, and other configs here.

Automate tests: **sub test filename.rs**

  • Function: automatically scaffold (-n), run tests for new runtimes.

Simplify builds: sub build [-r] --release

Configurations: sub config -...

  • Not sure what should be configured in our case... deployment env? I'm sure there are a ton of things.

Version Management: sub version ...

  • Automate what's currently in scripts/init.sh, etc.
  • Maybe shows breaking dependencies, other dependency management stuff.

Later

  • All the validator features, managing/running nodes, etc.
  • can init a custom UI via CLI

Native app to manage Substrate projects (inspired by Truffle Suite)

  • handle state migrations

Other examples:

soulofamachine avatar Apr 27 '20 04:04 soulofamachine