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
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.