[2021 Theme Proposal] Developer Tooling
dchoi27 opened this issue · comments
Note, this is part of the 2021 IPFS project planning process - feel free to add other potential 2021 themes for the IPFS project by opening a new issue or discuss this proposed theme in the comments, especially other example workstreams that could fit under this theme for 2021. Please also review others’ proposed themes and leave feedback here!
Theme description
Focus on enabling and cultivating development of tools (libraries, frameworks, devtools, services, etc.) that simplify the IPFS experience for many developers to accelerate and retain new projects building on IPFS, with a smooth conversion into deeper web3 stack usage.
Hypothesis
One of the most significant pain points undermining the InterPlanetary Stack developer experience is a lack of tools catered towards IPFS developers - network visibility, debugging, etc. Too often, developers need to get under the hood into the implementation code to understand what’s going on. We need to think about the right set of tools that web3 developers need, and provide as easy an experience as they have in web2.
Vision statement
There is a rich ecosystem of tools that developers can leverage to make the experience of developing on IPFS easy, with multiple options for major use cases and organic development of tools for even niche use cases. Developers rarely have to dive into the underlying implementation code or write their own scripts to diagnose bugs or monitor things. These tools also bridge the gap to/from using other parts of web3.
Why focus this year
For IPFS to achieve its mission, end users need to be drawing value from applications built on IPFS. Growth of end user-facing applications will always be bottlenecked if the friction to developing them on IPFS is high. Developer tools can focus directly on the experience of these developers, solving specific pain points and use cases, rather than developers having to figure out how to engage with the core implementation libraries or protocol itself.
Example workstreams
Development of tools supporting IPFS development in different contexts (e.g., SDKs, APIs, debuggers, libraries) and help with deployment of IPFS nodes (e.g., tools providing visibility into the network, other GUI products, guidance for parameters), changes at the protocol levels to support this (e.g., refactoring implementations where much is pulled out of the core), devgrants program for community creation of tools
Other content
Really don't want to downplay the importance of GUI tools here -- primarily Desktop, Web UI and Companion, but also everything else under the subset of https://github.com/ipfs/ipfs-gui. Properly built and designed, GUI tools can be an invaluable complement to developer workflows at ALL stages of their relationship with IPFS, not just onboarding and novice-level interaction.
Very much believing in this goal's value overall, just don't want to overlook a crucial piece in getting us there!
Areas of support:
- writing code: libraries, APIs, etc
- Testing implementation
- Deployment
- Monitoring
A couple of example initiatives that have been on my mind:
-
Integration into web browser devtools: You can extend the developer tools in both Chromium and Firefox through webextensions. Having integrated debugging, performance, console APIs, etc where the largest segment of earth's developers are already working could be a massive lift for the project.
-
VS Code integration: Creating a first-class developer workflow in this popular IDE both lowers the barrier to entry for a large developer segment while also being a proving ground for which tools/workflows meet developer needs more generally.
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.