SCF #16
Award Completed
Soroban-VSCode Extension
by

Develop a Visual Studio Code extension that provides Stellar/Soroban developers a unified tooling user experience and workflow.

Awarded
Awarded
Budget request:
$
39,880
*
WebsiteCode

Project Stage

Development

Category

Tools
Soroban

Based in

Team size

2

Active since

Products & Services

The Problem

Developer productivity relies on having great tools and that includes an industry-grade IDE. In addition to a great IDE, you also probably rely on a multitude of other tools to get your job done.

Currently, Stellar/Soroban development requires you to switch between quite a few tools: the Stellar Laboratory, the Soroban-CLI, RunKit, Postman, curl, and your own scripts and code snippets, among others, to leverage core features of the platform.

While there are online solutions (specialized IDEs) helping users to streamline workflow, and they are great for your first steps, once you deep-dive for a while you outgrow them very quickly or find their features limiting. Also, having to “learn” how they work, only puts more cognitive load when you are already on a steep learning curve for Stellar/Soroban.

The Solution

Why re-invent the wheel? Let’s Stellar/Soroban-ize a tool already used by millions: Visual Studio Code.

The roadmap ahead

Our extension will provide easy access from within Visual Studio Code to built-in Soroban platform services and features, such as:

  • Calling RPC/API endpoints, such as getLedgerEntries getTransaction and sendTransaction.
  • Translate XDR to/from UTF-8.
  • Create and Send Transactions (local and on-chain) in an easier manner.
  • Manage Identities such as Accounts and Contracts.
  • Manage Networks and Server connections.
  • View and record Events, with filtering support.
  • Download contract code, so bindings/interfaces can be extracted.

... among others.

The roadmap even further ahead

Visual Studio Code also runs in a web browser: www.vscode.dev, and while not all extensions can be added and used in that environment (there are certain restrictions), it certainly does potentially allow to have a fully-featured, completely web-based Visual Studio Code user experience (no local installs and cloud based development flow).

The current problem (which can be solved by using remote development and/or Codespaces, but both of these solutions are cost-prohibitive), is related to usage of the Rust toolchain currently required for Soroban development. Once this general problem is solved, our solution could be deployed to Visual Studio Code on the web, making it the #1 developer choice for building projects, which unfortunately can result in downgrading of other Stellar/Soroban-specialized online IDEs currently out there (or make them more of a user choice or preference).

A note on global audience

There are no distribution restrictions on Visual Studio Code extensions, so our potential market is every developer wanting a better experience when building Stellar/Soroban projects. However, we do want to point out that we plan to launch v.1 with i10n support, and we will support both English (default) and Spanish.

No items found.
Previous Project(s)
No items found.
Progress so far
Goals
To get there, we request a budget of  
$
39,880
*
  to:
Additional information
  • Please note we plan to distribute .vsix extension releases to a closed-beta team for the first release iterations. The closed-beta team will not have more than five testers (some will be selected from developers already active in the Stellar community).
  • We do plan to release public versions of the extension on the Visual Studio Code Marketplace, to onboard users (developers) to both the extension and Stellar/Soroban.
  • Extension code will be open sourced if requested by SDF/SCF, in a no-contribute, defect-reporting-allowed Github repository, as this VS code extension project is part of a larger scope project, and we need to keep a tightly controlled overall roadmap.
  • http://www.sorobanide.com companion site will launch if the SCF award is won (we have already secured the domain name, just in case). This web resource will have user docs (English and Spanish) as well as tips & tricks for Stellar/Soroban developers. Currently this address redirects to https://soroban.stellar.org.
  • Product screenshots, Product informational videos, Extension usage videos and all/any graphic assets will be publicly released if the SCF award is won or on-demand by SDF/SCF.
Pitch deck
No items found.
Deliverables
First Deliverable

For the past two weeks, we have worked mainly in three areas:

- UI + Feature design: Visual Studio Code workbench integrations (ActivityBar, TreeView, Views, Menus, and future WebViews for Custom viewers).

- Localization (l10n) support for English as Spanish UI: as this impacts the entire implementation (i10n architecture), we needed to add support to this as our first priority.

- Soroban CLI integration/interoperability with Visual Studio Code: to avoid multiple toolset integrations, we've based our feature v1.0 implementations on top of the soroban cli tools, as they are a pre-requisite (must be installed) to develop any Soroban project.

How can a reviewer check you completed your first deliverable?

We have created a publicly accessible document that provides insight into our project's progress, both related to our proof of intent but also to our general roadmap.

The document can be found in Google Drive: https://docs.google.com/document/d/1wMX2d-oMDvKTDKFjBbGmvkdyj8XLJJZz1EepG5-gaKA/edit?usp=sharing

We are still making a few videos related to the extension features, but as these are edits to the document, we did not want to miss the proof of intent submission deadline over these. We thank your for your understanding!

Links:

Team

Matias Wald (Matias Wald | Ω#5025)

Software Engineer / Microsoft certified ID# 2955487

+20Yrs. Software Engineer and Tech Lead. I've worked in several fields and industries, including electronic voting solutions and the pharmaceutical industry. For the past 2Yrs. deep-dived into blockchain and web3.

Github / Linkedin / Twitter