Roadmap

Upcoming Features

Snippidy is designed as a tool which allows me to create an interactive Solidity course. Hence, I will concentrate mainly on the features that serve this goal. But if you have a request or a great idea, please let me know.

Automated checks

Contract should be deployable
Contract should be able to receive Ether
Function foo should have external visibility

I want to add automated checks to snippets, such that the user can test whether the code matches the expectations of the instructor. The idea is to provide the user with an incomplete snippet, so she can fill in the gaps. Once she is done, she can trigger the check and see if everything is correct.

Persistent Snippets

Currently the source code for snippets is stored in the Snippet URL. I have implemented it this way, so I don't need to set up (and pay for) a database where the snippets could be stored. However, there are a lot of limitations to the current approach, such as the maximum length of URLs in different browsers. In order to add automated checks, I have to add some sort of backend/database, so I can store the checks for each snippet. It should then be easy to persistently store the snippets as well.

No more
/snippet#cHJhZ21hIHNvbGlkaXR5IF4...WN0IERl
but
/snippet/da68a84b

Beautiful Editor Themes

I know that you want to have snippets, that seamlessly integrate with the design of your site. Currently there is only a single theme for the editor and it is not as beatiful as it could be. Be assured, that I will add more editor themes soon.

More Languages

At the moment snippidy is focused on Solidity only. However, I believe that the idea of snippidy can be applied to nearly any programming language. For the majority of popular programming languages, there are a lot of tools like snippidy already, so I think I might target some lesser known programming languages first (looking at you, COBOL 😅).

Known Limitations

snippidy is in its very early development stages, so there are still a lot of limitations to its functionality. The following list contains the problems I know of and am working on, but it is most likely not complete.

Functionality

  • The Solidity compiler version can not be customized.
  • There are some general problems when working with more than one contract in a single snippet.

UI/UX

  • It is not yet possible to send arbitrary transactions to a contract, e.g. to trigger the receive or fallback functions.
  • Entering address or bytes values is cumbersome and error prone.
  • There is no way to quickly view the balance of a deployed contract.
  • There is no feedback on the gas used by a transaction.
  • State mutating functions do not display a success message when called.
  • Error messages caused by require violations are not displayed.
  • Parenthesis/Brackets/Braces are not automatically closed by the editor.
  • The editor could generally use some UX improvements.

Performance

  • It takes way too long for snippets to load and display the code.
  • Code highlighting is slow and uses a lot of CPU resources.
  • Having more than one snippet on a single page can cause the browser tab to become unresponsive.
snippidy is under active development. You can try the samples, but beware that there are still plenty of bugs and inconsistencies.