Show HN: Node.js video tutorials where you can edit and run the code
I'm Sindre, CTO of Scrimba (YC S20). We originally launched Scrimba to make video learning more interactive for aspiring frontend developers. So instead of passively watching videos, you can jump in an experiment with the code directly inside the video player. Since launch, almost two million people have used Scrimba to grow their skills.
However, one limitation is that we've only supported frontend code, as our interactive videos run in the browser, whereas most of our learners want to go fullstack—building APIs, handling auth, working with databases, and so forth.
To fix this, we spent the last 6 months integrating StackBlitz WebContainers into Scrimba. This enables a full Node.js environment—including a terminal, shell, npm access, and a virtual file system—directly inside our video player. Everything runs in the browser.
Here is a 2-minute recorded demo: https://scrimba.com/s08dpq3nom
If you want to see more, feel free to enroll into any of the seven fullstack courses we've launched so far, on subject like Node, Next, Express, SQL, Vite, and more. We've opened them up for Hacker News today so that you don't even need to create an account to watch the content:
Other notable highlights about our "IDE videos":
- Based on events (code edits, cursor moves, etc) instead of pixels
- Roughly 100x smaller than traditional videos
- Recording is simple: just talk while you code
- Can be embedded in blogs, docs, or courses, like MDN does here: https://developer.mozilla.org/en-US/curriculum/core/css-fund...
- Entirely built in Imba, a language I created myself: https://news.ycombinator.com/item?id=28207662
We think this format could be useful for open-source maintainers and API-focused teams looking to create interactive docs or walkthroughs. Our videos are already embedded by MDN, LangChain, and Coursera.
If you maintain a library or SDK and want an interactive video about it, let us know—happy to record one for free that you can use however you like.
Would love to answer any questions or hear people's feedback!
94 comments
[ 0.24 ms ] story [ 185 ms ] threadBut there are some limitations, as certain HTML elements (like native dropdowns, date pickers, canvas etc) are rendered outside the DOM and thus can’t be recorded.
When I first heard about Scrimba, I abandoned my project because I thought you guys would already go down that path. Why didn't you guys go down that route?
That said, our new IDE is built to easily support server-side execution down the line.
1. There is a cross dependence on the mail server: I used live.com to log in, and was stuck running in edge. I then tried my google account, and was stuck running in chrome, If I used my yahoo account, I could run in any browser. A good idea would be to mail a cookie... and then we could choose any browser, and while this was all happening, Nightly/Firefox took a major dump in many of my systems. So... I used chrome.
2. I would like to be able to mirror the code window in my favorite one of the top 3 editors: so... either I could choose a font in your system, or I have to get my other editor to use YOUR font, your spacing, your beautifier, and your color scheme. I opened three bugs in VS Code, one in a plug-in ( yes, prettier is absolute garbage, I may make a cb(1) plugin. ). I opened a bug in Sublime... Also I opened a bug in Notepad ++.
I am now forcing myself to relearn Lisp for emacs. Its really quite brilliant. I would wonder if it would all be possible to implement this all into emacs.
FYI: When I am taking jobs freelance I ask them 3 questions: 1. What is your tool chain? 2. What editor are most of your engineers using? 3. What is the best font for programming?
I have not used Roboto, but now am forced to do it. My favorite font is Arial Narrow, mono-spaced.
As for the highlighting colors, How hard would be a preferences export for VS Code/Zed/Notepad++/emacs to match your color screen so... ( paper balls loaded and ready )...
"What you code is what you get."
And lastly... why is WSL2 so broken? and why is syncing between containers so evilly difficult. The Alpine community has been a great help.
The fact that a platform like Scrimba was built using this language and probably only a handfull developers should make you want to learn from someone like that even more!
It's also the only learning platform I've ever recommended where I see people staying and learning more.
Also its css notation is what Tailwind should have been.
Btw you're the Postgres.js author, right?
Yeah, I'm the author of Postgres.js, although it hasn't gotten the tlc it deserved lately cause I've been too busy with another soon to be public project.
When I go to the main website: https://imba.io/
Then click on the "Demo" button
I get taken to the "Playground": https://imba.io/try/examples/apps/playground/app.imba
There is no code on the page but the preview seems to work. Same thing with all of the other examples. They work in the Preview panel, but no code loads at all.
Looking in the dev console I see a few errors:
Some images and a preflight.css is also not foundHaven't gotten around to it yet, hope it's still relevant :P
https://news.ycombinator.com/newsguidelines.html
I’m working on a solution too, called CodeMic [1] where instead of bringing the environment to the web, it brings video and workspace sync into the IDE so viewers can follow along directly inside their own editor.
You’ve done an impressive job integrating everything, including the Console for example, that’s especially tricky to pull off in an extension for VSCode, Emacs, or Vim.
[1] https://CodeMic.io
I'm a very strong supporter of interactive blogposts as well. Obviously https://ciechanow.ski/ is leader here - being able to mess with something to build intuition is huge.
The links are great (people should check them out!)
Anyone who hasn't watched his famous talk from 2012 should watch it "Inventing on Principle" https://youtube.com/watch?v=PUv66718DII
The two people I have seen who really master this are Robert Nystrom (Crafting Interpreters) and Casey Muratori (Handmade Hero). But even they are limited by the mediums they use: books and videos, which are not ideal for this kind of guided exploration.
“Hundreds of hours?!? With that much time I could learn to play the piano or speak Spanish! Hell, I could learn to code!”
I stumbled across Scrimba on a Reddit thread and signed up for the paid version after a few lessons: it was unlike anything I had tried in the past.
Now I’m able to build basic react apps but I have a much better understanding of what’s going on “under the hood”.
Have you thought about using it to introduce new hires to a codebase?
Once you hit "play" again, your changes are reverted and you continue watching the teacher's code.
So the teacher's voice is never on top of your code, as that wouldn't make sense.
Is the web preview saved as a video or rendered dynamically? In the case of tscircuit, we run an autorouter in the background so it can be like a slow-loading website with a big project- I imagine doing courses on building games would have a similar problem if there isn’t video capture for the preview.
The preview is rendered live, not video. So with heavy projects (e.g. lots of JS animations), the recording can get large due to the detailed DOM stream.
the product is exclusively for humans. the teacher, i'm not so sure.
Great works OP!
There's also the Processing tutorial series which is insanely interactive:
https://hello.processing.org/
Sharing these in the hopes they server as inspiration for anyone who works on educational programming content.
[1] https://cheatcode.co/joystick