We would like to create a way to record and share terminal sessions in a seamless way to promote community learning, tutorials, bug reproductions, and other use cases that would require a visible terminal session.

What it does

This product, with a single keystroke, records a terminal session and uploads it to the serverless cloud – giving the user a share link that can be embedded in markdown, shared on twitter, and used for community enrichment.

How we built it

This product adds to the Hyper ecosystem and is built on electron, react, and redux.

Challenges we ran into

  • We ran into an issue with multi-screen: we recorded the incorrect screen sometimes in a multi-screen or multi-GPU environment.
  • We ran into an issue with getting a beautiful window frame on each video, which we solved by compositing a pseudo HTML window via Canvas.
  • We ran into an issue with authenticating and uploading to a serverless provider, where the app would fail if not authenticated.

Accomplishments that we're proud of

We accomplished a beautiful, seamless developer experience around sharing terminal sessions. We're proud of this because we believe it will enrich developer communities by making information and knowledge more accessible: imagine a git workshop, driven by this application.

We're also proud that we use serverless and as a result, our users don't have to worry about failover, scaling or uptime – they just record, and it works.

What we learned

  • We learned how to composite multiple Canvases atop each other and persist them to a video.
  • We learned about serverless and uploading things to the cloud in an efficient way.
  • We learned about working with ArrayBuffers and ByteArrays.
  • We learned that developer experience is a high priority.

What's next for hyper-orama

We'd like to enhance the developer experience with more beautiful UI improvements and more explicit logging, while increasing test coverage.

Built With

+ 10 more
Share this project: