Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2020 Theme Proposal] Examples and Tutorials on Practical applications for IPFS Stack #50

Closed
vasa-develop opened this issue Nov 8, 2019 · 12 comments

Comments

@vasa-develop
Copy link
Member

vasa-develop commented Nov 8, 2019

Note, this is part of the 2020 Theme Proposals Process - feel free to create additional/alternate proposals, or discuss this one in the comments!

Theme description

As the adoption of IPFS and the related projects begins to increase, there is a need to show practical use cases that can be built on IPFS Stack(projects including IPFS, Libp2p, IPLD, Multiformats, IPFS Cluster & Filecoin).

Now there are 2 main sub-themes:

Increasing awareness about What IPFS Actually is?

As discussed in #47, there is a common misconception in the masses that IPFS provides a distributed, redundant, permanent storage of arbitrary data among (presumably) peer nodes, out of the box. Most recently there was a hackernoon post floating around that criticized IPFS's usability by a case study of AXEL mobile app. The points made in the post were partially right, but contained a ton of misinformation, as pointed out in the reddit thread. So, there is need to deal with awareness about what IPFS actually is, which has been worked on in Q4 2019, but there is still a lot to cover, especially when it comes to average Joe(avg. internet user).

Building Tutorials/Examples for IPFS Stack

There is a lack of reference examples and tutorials for IPFS, Libp2p & IPLD(IPFS Cluster is doing good, but there is always room for improvement). A lot of people seem to be stuck in libp2p and IPFS discussion forums with queries for examples/tutorials for specific transports, or some Libp2p & IPLD in specific setup/environments. We don't aim to cover all the use-cases but we can cover at least the obvious use-cases.

Core needs & gaps

Creating content for practical use-cases of IPFS, Libp2p, IPLD. This can be done under protoschool, or can be added to repos that are concerned with the use-case.

Why focus this year

  • JS-IPFS has good feature parity with Go-IPFS, providing a good extent of capabilities of IPFS enabled on the browser. Need to show what IPFS, Libp2p can do in this environment.
  • Libp2p is being used by more and more projects(ETH2.0 etc.), so it's getting more traction than ever. Lack of examples/tuts results in lots of missed opportunities in terms of more things being built on Libp2p, and more potential Libp2p contributors.
  • The same goes for IPLD. Lack of examples/tuts results in lots of missed opportunities in terms of more things being built on IPLD, and more potential IPLD contributors.

Milestones & rough roadmap

  • Identify the obvious use-cases. Maybe create RFCs for suggesting tutorials/examples that community needs. People can add RFC about a tut that they want and then the community can vote which tut to build. We started one here.

  • Assigning these RFCs to interested folks.

  • Getting the tutorials/examples approved by the relevant folks.

  • Making the tuts/examples public and improving on them from the community feedback.

Desired / expected impact

Measuring Success

  • Getting more "code coverage" in terms of examples/tuts. This means that each repository has a set of possible "practical" use-cases.

Future benefits

  • This process can reduce the number of queries for common use-cases.
  • More people building on IPFS Stack, as they now have a better understanding of IPFS Stack.
@momack2
Copy link
Contributor

momack2 commented Nov 8, 2019

Love it!! I bet @johnnymatthews and @jessicaschilling will also give this focus area a big 👍

Curious for @mikeal and @mgoelzer to comment on how this sort of focus area would fit into IPLD/libp2p prios...

@vasa-develop
Copy link
Member Author

I have been talking with @jessicaschilling, @raulk & @yusefnapora about these issues. They are happy to take this forward.

@jessicaschilling
Copy link
Contributor

Also @terichadbourne if she hasn’t seen yet.

@ghost
Copy link

ghost commented Nov 9, 2019

Yeah, @yusefnapora and I have been talking about this for ages. What I think would be awesome would be a real-world application built on top of libp2p that shows how to how to plug in different modules, like transports, QUIC, the DHT, pubsub, etc. Unlike our existing examples, which intentionally focus on demonstrating a single concept or very simple program, this tutorial would focus on building something up over a series of sequential lessons. I've seen tons of these in different programming documentation over the years and they're great at showing the reader how to put a bunch of pieces together to achieve something approaching what a real world dev would want to build.

@0zAND1z
Copy link

0zAND1z commented Nov 9, 2019

Nicely articulated! @vasa-develop and I have made baby steps in this direction.

You can find some of the proposed RFCs here: https://github.com/simpleaswater/rfcs/issues
Request everyone to upvote what you'd like to see first on SimpleAsWater.com! We need more volunteers too 😀

Meanwhile, I am working on one real use-case at a time. Currently, I am focused on building a personal blogging tool that minimize the technical exposure to IPFS and rather let the user focus on blogging.
Here is the document containing all the user stories: https://hackmd.io/gvctUAPERiq1Atugd06z5g?view . Your valuable inputs can help me a lot.

The plan it to build the tool open-source, get feedbacks and make a tutorial about it on SimpleAsWater.

PS: The blog tutorial idea is hugely inspired by the tutorial we have on Proto.School 😁

@vasa-develop
Copy link
Member Author

As discussed with @jessicaschilling, I'm happy to move the content on SimpleAsWater to relevant IPFS repos, so that we keep the things upstream, hence achieving the goal of this theme.

@jessicaschilling Also, Let me know how can we use "Understanding IPFS in Depth" series in the new IPFS docs. 😄

@0zAND1z
Copy link

0zAND1z commented Nov 10, 2019

Good idea @vasa-develop . Content is just sitting there. I think that it should be re-used into relevant IPFS channels/repos/sites, if everyone agrees.

@jessicaschilling
Copy link
Contributor

@vasa-develop Sorry for the delay -- I was in transit for a few days!
You can see our v2 docs repo, including a new navigational structure, here: https://github.com/ipfs/ipfs-docs-v2
We'd be interested in your thoughts on how you might envision your excellent content intersecting with this nav structure, since it's a little different from the existing legacy site. (Feel free to open an issue to start that discussion!) Thanks again. 😊

@vasa-develop
Copy link
Member Author

@jessicaschilling Sorry for the delay too😂😂...was busy with my exams.

I will check out the nav structure and try to see how we can fit the current content there. Will continue our convo in the ipfs-docs-v2 repo issues.

@terichadbourne
Copy link

@vasa-develop I love the idea of adding more real-world use case examples to our educational resources. Just wanted to call out that we have new guidance posted on designing effective ProtoSchool tutorials, which includes some details on what the technical limitations are there (code challenges must be be run using js-ipfs in the browser, etc.), in case you're curious about what might fit there.

@vasa-develop
Copy link
Member Author

vasa-develop commented Nov 27, 2019

@terichadbourne thanks for the heads up!

I actually used the Protoschool code editor logic to build the code editor for SimpleAsWater articles. So, I think we are on the same page on what we can do with the Protoschool theme.

@github-actions
Copy link

github-actions bot commented Oct 4, 2023

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the Stale label Oct 4, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Oct 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants