Have you played with `create-ceramic-app`?

I have just updated the create-ceramic-app npm package so that it’s easier and faster to use.

Now, instead of typing npx @ceramicnetwork/create-ceramic-app you can just type npx create-ceramic-app and it will install a simple ComposeDB example app and run it locally on your machine.

Many of you have probably played with the example app or the create-ceramic-app command (or both) but for those who haven’t, give it a try. You will have a ceramic app running on your machine in less than 2 minutes. It’s a simple social app, the one referenced on Set up your environment page.

Git it a try: npx create-ceramic-app

When you do, let us know what you think. The installation process, the app itself, any questions, if something doesn’t work for you, or if something is not clear enough.

Would be great to know how it went for you.

For me, everything goes fine, and, you know, “it works on my machine” :smile: How about on yours?

2 Likes

Btw, these commands should work too:
pnpx create-ceramic-app
bunx create-ceramic-app (if you have bun installed)

1 Like

@Radek Thanks - I can confirm that it works on my machine too.

A newbie perspective:

  • This was indeed quick / painless, albeit, I had just followed your previous tutorial. It is simpler than the original tutorial / Youtube follow-along which are now slightly out-of-date (eg no need to open multiple terminals) but it remains easy to follow.

  • I do like the app and the associated use of GraphiQL to provide insight into GraphQL / ComposeDB. The tutorial material at least starts to give insights into data models.

  • The associated tutorial material suggests going on to extend this App. As somebody new to this, I think that my main concerns are that I still don’t have a good understanding of what’s happening under-the-hood - which I suggest is the main learning point for all beginners. Joel’s Youtube is far closer to what I think I need at the moment - the ability to interact with, and inspect streams as they are created. Unfortunately that web playground is broken. I have started to try to use Hoppscotch and can at least get some interaction, but it is not clear how far I can go with this (admin DIDs?). The HTTP API docs are very limited and I have no background in JS - I don’t think I’m alone.

Nice App - I suggest that it is a good basis for an improved on-boarding experience. Happy to act as a test case / lab rat if desired.

2 Likes

Great insights, Stuart, thanks a lot!

Have you played with the Sandbox to see the models, modify them, and interact with the data? This might be one of the next steps to try out after building an example app.

You can find it in the doc but here it is for quick reference:

Please let me know if that’s helpful and interesting for you from your newcomer perspective.

1 Like

@Radek - I have (already) looked at the Sandbox tutorial. You asked if that’s helpful / interesting for newcomers. I can give one perspective. Unfortunately, I’m having trouble providing properly constructive feedback (Rumsfeldian known unkowns) as a newcomer, I don’t understand enough to know what a newcomer actually needs :grinning: . Otherwise, I’d just submit a PR. Here goes …

The Sandbox seems like a good way to let a newcomer actually interact with ComposeDB. This is great - interactive docs (genuine thumbs up - docs are hard, and this is an attempt to go above and beyond). However, …

ComposeDB is a graph database for web3. There are many introductions to graph databases and GraphQL. While people need both, I suggest that for somebody using Ceramic tutorials, the main conceptual leap is the ‘for web3’ bit. Other than linking a wallet, the sandbox tutorial doesn’t really address this. (The material is good, but not sufficient).

Having spent days scouring the docs as best I can, I think that the main ‘web3’ gaps are to do with Ceramic not ComposeDB. As a newcomer at this stage, I have pretty good understanding of IPFS, and an (ok-at-best) academic understanding of anchors, DIDs etc, but little to no feel for how this all pans out in practice. In a more-perfect world, I think that newcomers would benefit from a Ceramic/ComposeDB/IPFS etc hands-on demo-like thing with a strong emphasis on what’s going on under-the-hood with the data, interactions with blockchain, nodal interactions etc (without having to learn JS, to read the codebase, to understand a generic protocol). And, my impression is that this might not be too big a stretch…

The @jthor Youtube playground demos are a good example of hands-on exploration. @david kindly pointed me towards Keramik in his advice here. And your create-ceramic-app can/does set up a local working web3 environment - that can be inspected. Would it be possible to produce a (wheel or, my preference, Keramik / docker image) test/training environment with maybe 3x Ceramic nodes linked to 3x corresponding IPFS nodes (simulating 3 x physical machines in a network), and a (ganache?) blockchain with fully open DIDs/wallets/admins? Such that … a user can run the environment and follow along adding data, pinning stuff, use Ceramic from different users’ points of view, see ETH being used up, using ComposeDB, while also inspecting the state of all the nodes / chain etc. This is where I was going with the use of Hoppscotch (as that might help with both HTTP and GraphQL queries without having to know JS too - just use the HTTP APIs). I’d happily write the tutorial - making the environment is the bit that’s very slow for a beginner who doesn’t know enough yet.

In short - I suspect that (re)providing a playground environment would not be too hard, and would enable some great on-boarding tutorials for newcomers.

3 Likes

hey @stuR thanks for the deep & detailed feedback! We do have this GitHub - ceramicstudio/simpledeploy: Scripts for deploying Ceramic nodes repo as well with ansible playbooks, that was written up here - Running in the Cloud | Ceramic documentation

I almost think we suffer from too many possible options :slight_smile: I do agree that running the ceramic nodes is the most likely stumbling block for new users!

@golda Thank you - I’ll definitely use that. I certainly agree with your ‘too many possible options’. More positively, this is an embarrassment of riches - it feels like there are various fairly easy (famous last words) ways to produce a batteries-fully-included environment to use as the basis for tutorial material.