Enhancing ICP's developer experience and learning resources to attract and drive development

Developer Experience with ICP: A Journey of Challenges and Opportunities

I first encountered the Internet Computer (ICP) in 2022 through a post on twitter comparing ICP to cloud provider services and later in early 2024 by ICPHub Sahara. The underlying technology instantly captured my attention—its potential to revolutionize the blockchain space was clear. However, my initial foray into ICP was marred by a significant challenge: the lack of accessible learning resources. For a system as intricate as ICP, the scarcity of bootstrapped contracts, such as a standard NFT creation mechanism, made it difficult to build projects efficiently. After the program, I continued exploring ICP but eventually paused my efforts. The ecosystem felt overwhelming, and I needed to focus on other priorities.

Fast forward to the second quarter of this year, I found myself revisiting ICP. This time, I was optimistic that the developer experience had significantly improved. While progress was evident—new standards like ICRC-7 and ICRC-37 for NFTs and ICRC-2 for tokens had emerged—ICP still fell short of expectations. The documentation, while detailed, leaned heavily on technical explanations rather than offering practical, developer-friendly guides. For instance, the official ICP documentation explains how to run a canister using the ICRC-7 implementation from the PanIndustrial-org repository but lacks actionable insights for broader adoption. Such gaps in accessibility risk alienating developers from a blockchain I firmly believe has solved the scaling issue to a remarkable degree.

Take the Network Nervous System (NNS), for example—a groundbreaking identity solution with the potential to address countless ecosystem challenges. Yet, the lack of seamless integration and clear guidance often leaves developers feeling stranded.


Why Improving Developer Experience Could Revolutionize Blockchain

I am convinced ICP is the technology we’ve been waiting for. Recently, I participated in a program sponsored by an ICP-affiliated project, where I engaged with numerous developers. The excitement was palpable—they shared their ambitious visions for building on ICP. As a Solidity developer, I often ponder which blockchain is best suited for groundbreaking projects, and ICP consistently comes to mind. Projects like OpenChat and NFID showcase ICP’s vast potential, as does the opportunity to bring AI on-chain in this era of AI-powered solutions.

But here lies the conundrum: while ICP’s infrastructure is impressive, developers find it cumbersome to work with, and many remain unfamiliar with its ecosystem. Without an enthusiastic developer base, even the most advanced technology risks being overlooked. The blockchain space has seen examples like Sui, which became a developer favorite, sparking a surge of successful projects and adoption. This demonstrates how crucial developer experience is to achieving mainstream success.


A Path Forward: Empowering Developers on ICP

Acknowledging the problem is the first step, but solving it requires actionable strategies. Here are a few suggestions to transform ICP into the developer-friendly platform it deserves to be:

  1. Launch Comprehensive Bootcamps
    Host detailed workshops and bootcamps that cover the fundamentals of building on ICP. These should include practical, step-by-step guides for creating basic projects.

  2. Develop Prebuilt, Audited Contracts
    Rally the community and DFINITY to develop and audit standardized smart contracts, providing developers with reliable building blocks.

  3. Introduce Incentivized Campaigns
    DFINITY could initiate programs that reward developers for creating and sharing resources or completing ICP-based projects. Commit programs could further encourage ongoing contributions to the ecosystem.

  4. Foster Community Engagement
    Create spaces for developers to collaborate, share knowledge, and discuss challenges. Active community support is key to onboarding new developers.


Let’s make ICP the giant it was destined to be. By prioritizing developer experience and fostering innovation, we can position ICP as the go-to blockchain for the next generation of groundbreaking projects. The potential is immense—it’s time to unlock it.

4 Likes

I think it’s as simple as a step-by-step video tutorial on how to build: a-clone, b-clone, x-y-z-clone. That’s what buildspace.so did, which pushed Polygon… Same with Solana.

One Uniswap clone with ICP, Netflix clone with ICP, Twitter clone with ICP… 3 full videos is more than enough and from there, clone videos with varietions… not only that, increases impressions…

Search: “Uniswap clone icp” on youtube: Only video: https://www.youtube.com/watch?v=3RuL7pzNX8E

15 minutes… Long format step-by-step, dummy proof----- clever programmer style… carbon copy clone but with ICP… is the way to go… then other “devs” will do tutorial clones… snowball effect… works every single time for every single new language/sdk/tech… Who agrees?

After a bit of investigation… https://www.youtube.com/@junobuild

Long format videos… Live 1, Live 2, Live 3, etc… Takes some deep diving and some motivation to sift through a bunch of long formats with no detail or timestamps to understand what the video is all about… Go through Juno and example guides… Nice… TODO app… okay… whatabout token swap, token mint, nft mint? Okay… check Juno youtube… hmm… which long Live 1, 2, 3 video will help me figure out how to add some token swap, token mint, nft mint? Or will it even teach me? Perhaps it won’t? Maybe need to dive into the little bit of docs on token swap, mint, nft mint and figure out how to jerry rig that into the juno.build platform?

Not trying be overly critical, just sharing the thought process.

Search: ICP JUNO DEX
Find this github: GitHub - Markeljan/icp-juno: Generate and publish frontends with AI. Deployed and hosted on Juno + ICP
AI generated EVM smart contracts… interesting… Can we train GPT to convert EVM smart contracts into ICP canisters?

2 Likes

Just went over some of the videos and it had same problem as usual not a practical tutorial most of the canister has already been set-up and it’s more of getting them to work together. which is very difficult to replicate

1 Like

AI is your friend… If you’re familiar with VSCode, you should check out https://www.cursor.com/
It’s a VSCode fork with an emphasis on AI. It’s really good with source code context. So if the tutorials come with some source code, that’s a great start.

Also, try using this to help you speed run through videos: https://www.youtube.com/watch?v=UbDyjIIGaxQ

1 Like

first of all I want to thank you very much for the detailed post @ekene. such feedback is much appreciated and well noticed! :+1:

I am currently thinking about ways how we can provide better guidance / examples that really target the needs of developers to achieve specific goals. IMO we need a collaborative approach here. we need to make sure that devs can easily achieve their goals.

I think we have many clever and great devs in the ecosystem that are actually willing to help and support other developers. but we need to identify repeating needs/struggles as well as common questions/goals that many devs share and provide respective answers/guidance in various formats (code-tutorial, blog, videos, …)

this is definitely an opportunity for people out there. personally I would love to see an organization like OpenZeppelin emerging in our ecosystem that focuses specifically on this topic. that would be awesome :star_struck:

we have the grants program right now. but I assume you think about some other incentivation, e.g. to better promote the guides/examples/tutorials that focus on targeting shared goals with high demand.

what exactly do you mean by “commit programs” ?

see my answer to bootcamps. I think bootcamps will naturally emerge after we achieved what you are asking for here. a certification program for ICP devs would also be great to see.

I couldn’t agree more and I just want to let you know that we are actively thinking about ways to boost developer engagement and improve the developer experience in general. I think a lot of stuff has already been done in the past and we have a lot of good docs and examples. but everything needs to be better tailored towards the actual needs of developers and served in different formats.

I am sure the ICP dev community is strong enough to tackle this together and further improve the developer experience :handshake:

2 Likes

Thank you for your feedback; it truly reflects how much the team cares.

Commit programs are unique hackathon/incubation initiatives where the organizers have a list of products, they want teams to build. Each team selects a specific track to work on, develops their product around it, and the top-performing teams get the opportunity to commit their code to the final repository as part of a standard project.

Regarding grants and hackathons, where can one find such programs?