Console 55

CloseTab, Hyperbeam, and rpg-cli

Sponsorships

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


awesome-privacy

Awesome Privacy is a curated list of services and alternatives that respect your privacy.

stars: 2379, watchers: 58, forks: 101, issues: 45

last commit: May 29, 2021, first commit: December 07, 2020

rpg-cli

rpg-cli is a bare-bones JRPG-inspired terminal game written in Rust. It can work as an alternative to cd where you randomly encounter enemies as you change directories.

language: Rust, stars: 722, watchers: 7, forks: 15, issues: 6

last commit: May 29, 2021, first commit: April 23, 2021

https://twitter.com/folano_

hyperbeam

Hyperbeam is a 1–1 end-to-end encrypted internet pipe powered by Hyperswarm and Noise.

language: JavaScript, stars: 362, watchers: 6, forks: 19, issues: 7

last commit: December 14, 2020, first commit: December 12, 2020

https://twitter.com/mafintosh

CloseTab

CloseTab is a bookmark with a snooze button. Bookmark, buffer and complete your reading list.

language: Vue, stars: 28, watchers: 3, forks: 3, issues: 0

last commit: May 18, 2021, first commit: May 19, 2019

https://twitter.com/vettijoe


An Interview With Joe Lewis of CloseTab

Hey Joe! Thanks for joining us! Let’s start with your background. Where have you worked in the past, where are you from, how did you learn how to program, what languages or frameworks do you like, etc?

I’m from Chennai, India. I always had this strange excitement – breaking electronic stuff, peeking inside and putting them together and it ended up being a costly affair. The moment I realized how cheap and equally exciting it was to do the same with computer programs, I knew it was going to stick with me for the rest of my life. This was way back in my high school days. 

I started my career at a startup building a document platform for lawyers back in 2013. Then I moved to Zoho where we are building a collaborative word processor that runs in the browser

I wrote my first non-trivial piece of software in Python. So, it’s always in my favorites list. But over the years I’ve come to prefer languages with stronger guarantees for large codebases. I write Java & Javascript at work and started learning / dabbling with Kotlin & Rust recently.

Who or what are your biggest influences as a developer? 

Thanks for asking. My biggest influence as a developer is Yuvi Panda. We shared the same high school but we didn't interact much while there. His old blog ended up pulling me into exciting corners of programming and pushed me into this weird space: Hacker News.

Hacker News back in those days was like a dream land for me, where suddenly I could find amazing tech content and share ideas with interestingly like-minded people. 

These two certainly had a huge impact on my early thinking.

What’s your most controversial programming opinion?

The front-end ecosystem isn’t really as bad as it’s projected these days. Freedom of choice in picking tools is not a bug. It’s a feature.

If you could teach every 12 year old in the world one thing, what would it be and why?

I would make them aware of the two types of thinking. And persuade them to focus on stuff that makes them do “Type II thinking”.

What are you currently learning?

Dart/Flutter & Kotlin/Compose for an interesting project I’m working on. 

Can you give us a sneak peak into what the idea is?

Here's the fundamental idea:

I recently got to know that there isn't a good enough rich text editing library for iOS/Android yet. Most apps throw in a native rich text view, and save them as HTML to make them render-able across platforms.  HTML isn't a real good data model to store rich text for many different reasons. For instance, it's impossible to write a real-time collaborative editor using HTML as the data model. 

Markdown is a saner alternative. But there's no way to represent complex rich text schema in Markdown. 

I'm writing a library to render rich text editing widgets across all platforms. Embedding apps can choose to keep it simple or to extend with sophisticated elements like @mentions. Imagine ProseMirror but cross-platform. It should come with out of the box support for real-time collaboration. 

It's in a very early phase and might take months to be worthy of sneak peeks :)

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

I subscribe to people who do interesting things that I don’t normally get to do. Their breadcrumbs lets me get the overall picture of where we are all heading as the industry. 

Any people in particular you suggest others should follow?

Definitely! @b0rk (Julia Evans) and @dan_abramov (Dan Abramov)

How do you separate good project ideas from bad ones? 

I usually validate it against my own itch. If the project scratches my own itch, then I immediately start working on it. Read Me Later is one such idea. Of course, this doesn’t scale. So for commercial ideas I resort to the Google test :)

Google the idea and see if there's a product in that space. If it exists, the market exists. Study the competing product’s roadmap & pricing strategy. If the new idea offers a better proposal than those competitors, it’s not a bad one after all.  

Why was CloseTab started?

I needed a bookmarking system that makes me come back to links that I wanted to read later. Most bookmarking services today are dumb buckets, where we dump things and forget. Most of them suck at helping me complete my ever growing reading list. That’s why I started ReadMeLater. 

Who, or what was the biggest inspiration for CloseTab?

Those 50+ browser tabs that I regularly end up with :) I didn’t want them to dump them in my abyss of bookmarks. I wanted to close them confidently, knowing they’ll come back to me later!

Are there any competitors or projects similar to CloseTab? If so, what were they lacking that made you consider building something new?

Pinboard. Pinboard at least has a concept of read-later. But it didn’t do anything much to solve the actual problem, which is – we forget stuff once we bookmark it.  

How is CloseTab intended to eventually be monetized?

For now the cost of keeping the hosted service running is negligible. This is because the database is mostly meta about bookmarks and textual content. But the roadmap includes automatic archival of bookmarks, Pocket syncing, and a bunch of other stuff that will require a small yearly premium. This revenue will in turn fuel the growing number of free users, making it a sustainable service. 

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

The entire codebase is Javascript – both the front-end and the server. That itself should make it easy enough for devs to start contributing. 

Porting the existing browser extensions to Safari & Edge should be an easy & useful direction for new devs. In fact, the Firefox extension itself was a contribution from the community.

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

I’m seeing it as an anki style feedback system that helps internet readers productively manage their reading list. 

What motivates you to continue contributing to CloseTab? 

I use it myself :)

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

Software development is a broad topic to have a meaningful answer. I’ll split it up.

User Interface Programming:

UI programming is swiftly moving towards a functional style of programming, taking state management concepts from FP. We’ll quickly see Qt and other GUI frameworks either pick up this trend or die trying.

Server Programming:

In the start of the decade we saw huge rewrites of softwares written in legacy Java/C++ into dynamic languages like Python/Ruby/NodeJs. By the end of the decade though, we saw the race turning back to strictly typed technologies like Go, Rust & the likes. I think the trend is here to stay. The industry realized that fast prototyping and making quality software don’t go hand in hand.

The future of server programming are technologies that cut infrastructure costs and developer productivity (maintaining large codebases) both of which mandate stricter typing and more first class primitives to represent business concepts.  

Domain Driven Stack:

We were lucky enough to experience the tech era where things were developed individually and fit into a broader ecosystem. The software stack right now i.e the database, operating system, and the CPU architecture are all different layers, sold by different companies. We are swiftly moving into consolidation where these layers are now built and sold by single companies/organizations, advocating more security and efficiency. 

This trend is what I see when Apple introduces new instructions for their M1 CPUs specifically designed for Swift. Or when Google makes their own processors for their AI frameworks. We might soon end up  with the industry merging these layers and making little room for innovations in the bottom layers of the software stack for hobbyist programmers. 


Not subscribed to Console? Subscribe now to get a list of new open-source projects curated by an Amazon engineer in your email every week.

Already subscribed? Refer 10 friends to Console and we’ll donate $100 to an open-source project of your choice!