Console #31

Hoppscotch, Stimulus, and Dahlias

Console is looking for sponsors! If you, or someone you know, is interested in sponsoring the newsletter, please reach out at console.substack@gmail.com


hoppscotch

Hoppscotch is a free, fast and beautiful API request builder.

language: Vue, stars: 26026, watchers: 365, forks: 1725, issues: 25

last commit: December 12, 2020, first commit: August 21, 2019

https://twitter.com/liyasthomas

sops

sops is a simple and flexible tool for managing secrets.

language: Go, stars: 6286, watchers: 93, forks: 368, issues: 184

last commit: September 14, 2020, first commit: August 13, 2015

https://twitter.com/ajbahnken

dahlia-os

dahliaOS is a modern, secure, lightweight and responsive operating system, combining the best of GNU/Linux and Fuchsia OS, written in Dart.

language: Dart, stars: 291, watchers: 12, forks: 45, issues: 9

last commit: December 12, 2020, first commit: March 03, 2019

https://twitter.com/realdahliaos

stimulus

Stimulus is a “modest” Javascript framework for the HTML you already have, open-sourced by Basecamp.

language: TypeScript, stars: 9512, watchers: 225, forks: 247, issues: 31

first commit: December 08, 2020, last commit: September 08, 2016

https://twitter.com/javan

arXivist

ArXivist allows you to search and store research papers from the command line.

language: Python, stars: 50, watchers: 2, forks: 2, issues: 0

last commit: September 30, 2020, first commit: November 09, 2019


Help Wanted

  • James is looking for a front-end engineer to improve the twtxt front-end, you can contact him at prologic@shortcircuit.net.au

If you’re interested in posting a help wanted ad for your project, send an email to console.substack@gmail.com


An Interview With Liyas Thomas of Hoppscotch

What is your background?

I’m a self-learned web developer. For the past 5+ years I’ve been into programming and web development. I started with the C, C++, Java, HTML, CSS, JavaScript languages, and now handle most of the web technologies, including frameworks like Angular, React, Vue, Nuxt etc. I also graduated computer science engineering  in 2019.

After graduation I joined a very small start-up called “Zartek Technologies” in my locality. At Zartek, I mainly dealt with frameworks like Angular, Bootstrap, jQuery and languages like HTML, CSS, Javascript etc. After 6 months at Zartek, I started working on the Hoppscotch project and joined “Buy me a coffee” from where I learned Vue / Nuxt and php.

Apart from my job, I contribute to a lot of open source and side projects.

What else do you contribute to?

Mostly my side projects like marcdown, colorbook, books app etc.

What's an opinion you have that most people don't agree with?

Well, most people don't agree when I say that “you don't need to be a master of all trades to create and build apps / projects”. I was a front-end engineer but during the development of my side projects, I learned that it’s better to start first and then improve as we move forward. If you wait till you acquire all the skills, well, that time is just a waste. Start somewhere and learn to improve during the journey.

What’s your most controversial programming opinion?

I’m not a big fan of all the popular tech stacks. I believe that what goes under the hood doesn't matter as long as it gets the things done. You can choose any stack you want. It doesn't have to be the best stack for the job. Get things done as fast as you can.

What is one app on your phone that you can’t live without that you think others should know about?

Clock & alarm app (I could list at least a dozen of other apps but that won't be my honest answer. I can't live without looking at a time app).

If you could dictate that everyone in the world should read one book, what would it be?

Courage: The Joy of Living Dangerously by Osho

If I gave you $10 million to invest in one thing right now, where would you put it?

Home education - simple, effective and practical home education solutions.

What are you currently learning?

Psychology and finance.

Where are you going to learn this?

I mainly read about psychology and finance from books / twitter recommendations etc. Also, medium.com is an awesome resource to learn new things.

What resources do you use to stay up to date on software engineering?

Developer communities like Dev.to, Hashnode etc. Blogging platforms like Medium. Open forums like Reddit, StackOverflow etc.

Why was Hoppscotch started?

My 10-year old PC couldn't afford to run another Electron based API testing tool like Postman. I did a background check on API testing tools, there were a lot of them. But none of them seemed simple, minimal, and efficient.

I wanted to make an API testing platform which is: Open sourced, runs online, has multi-platform / multi-device support, accessible from anywhere etc.

That’s how Hoppscotch was born.

What overarching goals of Hoppscotch drive design or implementation, and what trade-offs have been made in Hoppscotch as a consequence of these goals?

Being a PWA - Hoppscotch doesn't consume a client’s resources such as CPU and RAM. You can make requests right from your browser window itself and have offline support. We strive to keep efficiency by applying minimalistic UI design  and avoiding bloated features.

But being a web app, there comes a lot of limitations in terms of making cross-origin API requests. We solved this by introducing a browser extension which acts as a middleware between Hoppscotch and cross-origin domains.

What is the most challenging problem that’s been solved in Hoppscotch, so far?

Accessing the APIs served in localhost was the most challenging issue in Hoppscotch. We fixed it by introducing a browser extension which acts as a middleware between localhost and the web app.

What is your typical approach to debugging issues filed in the Hoppscotch repo?

Reproduce issue -> Verify bug -> Find cause -> Discuss solution -> Implement solution -> Deploy fix preview -> Verify fix -> Discuss improvements -> Patch -> Deploy production

When an issue is reported we start by trying to reproduce the issue at our end. We might switch our environments back and forth to reproduce the user’s scenario. Once it is reproducible, we’ll tag the issue with the “bug” tag. And start discussion on a solution by stating the root cause. Community members join our issue ticket discussions to suggest possible fixes for the cause. Once a fix is felt optimal - we proceed to implement it in a patch branch of the production clone. Once implementation is completed, we run basic tests, and deploy a preview. We verify the issue is fixed in the deploy preview and continue to make a PR to the main branch. If tests are required we add them at this stage. Once any collaborator reviews and accepts the PR, it is merged to main and the fix will be live, this closes the issue ticket.

What is the release process like for Hoppscotch?

The Release process is quite a complex process in the case of Hoppscotch. Since there are multiple (10-15) commits, bug fixes and improvements are deployed everyday - releasing every patch is overhead for users and developers. So, we keep a progressive release system in which a production build is updated multiple times a day and still comes under a particular version number. Once or twice in a relevant span of period or in cases of core changes, we bump the version number.

What about the release process for the browser extension?

The browser extension only does a couple of tasks, such as being the middleware between the web app and localhost, allowing proxy mode etc. So, as of now, it's in a saturated state. But, we used to rollout a patch / bug fix once or twice a month whenever there's an issue ticket. Apart from bug fixes, no more features are being added to the extension. We're hoping to add couple of features down the line but not sure when it'll be.

How is Hoppscotch intended to eventually be monetized?

Yes. Hoppscotch will come with a paid subscription plan to make use of team collaboration features. This is a work in progress. And will be rolled out a couple of weeks down the line.

As of now, we mainly have donations and sponsorships from the development community and alike companies.

How do you balance your work on open-source with your day job and other responsibilities?

Hoppscotch has contributors from almost every time zone. So, keeping up with real-time collaboration is quite a difficult task. But, most of us spend around 2-4 hours a day maintaining the project. This is mostly done at night after work hours.

What is the best way for a new developer to contribute to Hoppscotch?

Start reading our friendly “code of conduct” and “contributing guidelines” given in the project repository root directory. We have a very active Discord server and a public Telegram channel. Everyone is open to start a discussion regarding a feature / bug fix / patch or improvement. Other community members mentor those who are in need. Start with an opened issue ticket or feature request. And we’ll help you to implement it.

If you plan to continue developing Hoppscotch, where do you see the project heading next?

Becoming an all-in-one API development ecosystem. We’re very happy with the growth of Hoppscotch over the past one year since its initial commit. So, that’s why we have very ambitious plans ahead of us.

Where do you see software development in-general heading next?

Software is eating the world. In every sector, every industry, and in every stage of human life. Software has already become one of the essential parts of the modern lifestyle of human beings. So, I’m really rooting for these innovative changes happening with software, whether it is AI, AR / VR, ML etc.

Where do you see open-source heading next?

As software eats the world - open source will eat the software. We’re witnessing this surge of open-source alternatives to almost every software, no matter whether it's a small scale application or an enterprise-level application. It’s just a matter of time until all SaaS and enterprise software are written in open-source. The future of the software industry is bright in the hands of open-source.

Do you have any suggestions for someone trying to make their first contribution to an open-source project?

Open source projects or side projects in-general take a time span to reach its maturity. This may be a couple of days, weeks, months, or even years. But, don't quit on an idea that you believe will workout. Be consistent and learn to improve on the journey. Don't wait till you learn all the stuff to build the thing. Start now and improve later. Progress takes time.

What is one question you would like to ask another open-source developer that I didn’t ask you? 

Apart from contributing to open source projects, how can someone give back to the community?


This Week’s Question

If Console had a subscriber only chatroom with the interviewees, would you join?

Last Week’s Responses

Of these decentralized social media projects, which are you actively using?


Like what you saw here? Why not share it?

Share

Or, better yet, share Console!

Share Console

Also, don’t forget to subscribe to get a list of new open-source projects curated by an Amazon software engineer directly in your email every week.