Intro to Terminal [^_^]

TERMINAL
terminal
Published in
5 min readDec 9, 2019

--

We’re excited to announce the V1 launch of Terminal to the Ethereum developer ecosystem. We believe Terminal will be a valuable addition to the development and testing process for devs currently working in the Ethereum space as well as for new devs entering the space.

Backstory:

The idea for Terminal came about after Janison, Brett and I left ConsenSys last summer. Having just built products in the Ethereum space (Janison and I started Token Foundry; Brett was on the founding team of Balanc3; and Janison previously led blockchain for Deloitte in Canada), the challenges of building on Ethereum were fresh in our minds. After numerous conversations with other developers in the space, it became clear that almost everyone was experiencing the same challenges. And while there are great tools coming out constantly that are improving certain aspects of the development process, we find most developers building on Ethereum today are still doing a lot of the heavy lifting and building tooling themselves, leading to a lot of redundant work as well as creating friction for developers to start building, testing and launching Ethereum applications. Bottom line is that the overall Ethereum development experience is still very far behind the traditional process/experience most developers are used to. So, the last summer we decided we wanted to build a platform that would close the gap and help contribute to the Ethereum ecosystem-wide goal of on-boarding the next 1 million developers — and that’s how TERMINAL (and Hex) was born.

Terminal allows you to develop, test, and manage Ethereum artifacts & infrastructure in a unified workspace. The Terminal toolkit provides developers with a broad range of utilities to construct robust and user-friendly decentralized applications.

Over the past year since starting Terminal we’ve interviewed over 100 Ethereum developers to really understand the current pain points they are facing. What we realized is that as Ethereum is evolving, so are the needs of the developers. So we wanted to ensure Terminal could best address those evolving needs and iterate our platform/features accordingly in the future. To start, we decided to focus on three main pain points that were mentioned most frequently in our developer conversations::

1) Setting up realistic testing environments (especially when existing contracts/states are involved)

2) Proper logging & debugging

3) Managing Ethereum artifacts & infrastructure across different networks & environments

So our V1 platform, CLI and roadmap for the next few months is mainly focused on those three things. Terminal V1 has a ton of awesome features, but the use cases we encourage you to try out first are the ones for addressing those pain points mentioned above. We recommend checking out our Tech Docs and Getting Started Guide for tips to get started. We will be writing additional blog posts in the coming days to help you learn exactly how to use Terminal to address each pain point, but in the meantime feel free to start playing around with all the features yourself.

Besides our initial focus outlined above, another big aspect of Terminal is collaboration. The Web3 space is uniquely collaborative due in large part to the open source and composable nature of the infrastructure (protocols, smart contracts, etc.). Part of our goal is to help push forward collaboration and composability and extend those qualities further into the testing and development process. We believe almost every Ethereum artifact and piece of infrastructure can be a composable and reusable building block, and so we treat artifacts and infrastructure as such on Terminal. You can, of course, keep your stuff private if you want (or before it’s ready), but one of the cool things about Terminal is you can choose to make artifacts and infrastructure public.Below is a list of the things you can create/utilize/surface on Terminal as well as make public and share with your team and developer community:

  • Smart Contracts (including source code, ABI and json interface)
  • Ganache Recipes (including forked state and pre-selected token balances)
  • Custom API’s, Webhooks, and Databases
  • Migration & Testing Scripts
  • Networks (including test networks and layer 2 networks)
  • Logs (per object and across networks and development environments)
  • Github Repos, NPM Packets, Docker Images, YAML Files

Some of the above features are live now and the rest will be rolled out over the next few weeks. We believe that providing a platform that makes it easy to create, manage and monitor these artifacts & infrastructure all in one place as well as enabling developers to discover and easily test/utilize these objects will greatly enhance the testing and development process. Now rather than developers needing to build all these necessary components themselves from scratch, they can easily utilize artifacts & infrastructure that people have already created and just edit/tune them to fit their specific needs.

As a final note, we’d like to let our long term intentions be known right from the onset. We are very supportive and committed to open source and decentralization. Balancing convenience vs. decentralization is something that is always top of mind as we are building features. To start we favored convenience, but as we move forward, the goal is to add more features that promote decentralization but still keeping convenience in mind. While Terminal does provide infrastructure to make the testing and development process easy, we do not want nor intend to be a centralized infrastructure provider. That’s why, for example, we decided to enable HexLogs to surface logs from any infrastructure provider, rather than just surface logs for Terminal infrastructure/endpoints.

Over the next few months we will be releasing additional features that allow you to connect/run Terminal on your own nodes (or using a decentralized infrastructure provider), as well as connect any EVM supported networks to Terminal (side-chains, layer 2 chains, private chains, test chains, etc.). Also, on the roadmap is adding the ability to host/run Terminal on your own infrastructure so there is no dependency on us. We will also be open-sourcing parts of our infrastructure as we go (for example our HexSDK and our node connector are open sourced). And we are hopeful that in the future we will find even more ways to decentralize Terminal.

We love feedback and would like to know your suggestions or criticisms in all forms. Feel free to reach us at support@terminal.co or tweet or DM to us at @Terminaldotco

--

--