---
title: "What does the next decade look like for Node?"
publication: "Node Weekly"
issue: 380
published_at: "2021-03-18"
canonical_url: "https://nodeweekly.com/issues/380"
---

Plus all the ways you can debug Jest tests at the terminal. |        

#380 — March 18, 2021 

[Read on the Web](https://nodeweekly.com/issues/380)    

👋 Hi. This week we've got another package maintainer interview for you, this time with frontend engineer Krasimir Tsonev, the creator of a Puppeteer test runner called [Miss-Piggy](https://krasimirtsonev.com/blog/article/miss-piggy-puppeteer-test-runner) (you'll find out why it's called that too) — it's at the very end of the issue. Thanks for reading!
__
_Peter Cooper, your editor_  

![](https://res.cloudinary.com/cpress/image/upload/e_grayscale,w_150,h_170,c_pad,g_south/xrupigpv8kyjqotfdgy8.jpg)   

Node Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1616081800/tlrpar2zzpnbkrnjxkai.jpg)](https://nodejs.medium.com/next-10-years-of-node-js-understanding-the-needs-of-the-node-js-constituencies-2f95a1df6a6f)  

[Looking Towards the Next 10 Years of Node.js](https://nodejs.medium.com/next-10-years-of-node-js-understanding-the-needs-of-the-node-js-constituencies-2f95a1df6a6f) — Node.js is nearly twelve years old now, but the core team are thinking about the future and have launched an effort called [Next 10](https://github.com/nodejs/next-10) to engage the entire community to think about Node’s future. A key part you can get involved with right now is [taking this Next 10 survey](https://www.surveymonkey.com/r/8PFGKV5). 

Node.js Core Team   

[Ghost 4.0: Popular Open Source Publishing Tool and CMS](https://ghost.org/changelog/4/) — Ghost began life a sort of Node.js-powered alternative to WordPress but has become a platform in its own right. This major new point release adds a new dashboard, membership features, integration tweaks, and neat frontend changes such as responsive, lazy-loading images everywhere, and performance gains. [GitHub repo.](https://github.com/TryGhost/Ghost) 

Ghost   [![\](https://copm.s3.amazonaws.com/f95dcfa9.jpg)](https://frontendmasters.com/courses/production-next/?utm_source=nodeweekly&utm_medium=email&utm_campaign=nextjs) 

[New Course: Production-Grade Next.js with Scott Moss](https://frontendmasters.com/courses/production-next/?utm_source=nodeweekly&utm_medium=email&utm_campaign=nextjs) — No matter if you’re making a blog, marketing page, or a full-stack app, Next.js has the tools you need. This detailed course runs through everything you need to build a production-ready, full-stack app. 

Frontend Masters sponsor   

[Worker Threads Monitoring for Node.js Now in N|Solid](https://nodesource.com/blog/worker-threads-monitoring-for-node.js-in-NSolid) — [N|Solid](https://nodesource.com/products/nsolid) is a commercially supported Node distribution aimed at ‘enterprise’ use cases which means providing lots of monitoring and observability features is key. 

Liz Parody (NodeSource)     

Quick Bits 

- [V8 9.0](https://v8.dev/blog/v8-release-90) is on the way.
- 👍 [Source Karma](https://sourcekarma.vercel.app/) is a fun tool to see how people react to you on GitHub by the reactions you've had on GitHub issues.  

💻 **Jobs**  

[Senior Software Engineering Consultant - [100% Remote\]](https://testdouble.recruiterbox.com/jobs/fk0uj24/) — Co-founded by Justin Searls, Test Double is an engineering consultancy on a mission to improve the way the world builds software. Work on challenging projects with a collaborative, passionate team. 100% employee owned, contract and full-time roles available. 

TestDouble   

[Find Software Engineering Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-nodeweekly%29&utm_content=5-minutes) — Take 5 minutes to build your free profile & start getting interviews for your next job. Companies on Hired are actively hiring right now. 

Hired  

📗 **Tutorials and Stories**  

[Seven Ways to Debug Jest Tests at the Terminal](https://pragmaticpineapple.com/7-ways-to-debug-jest-tests-in-terminal/) — (Almost) all the ways you can debug a Jest test in the command line. 

Nikola Đuza   

[A Regular Expression Surprise in JavaScript](https://blog.rebased.pl/2021/03/16/a-regular-expression-surprise-in-javascript.html) — A look at how how applying the DRY (Don’t Repeat Yourself) approach to regular expressions in JavaScript can be tricky. 

Michał Musialik   

[Maintaining REST API Documentation with Node.js — Part I](https://medium.com/pipedrive-engineering/maintaining-rest-api-documentation-with-node-js-part-i-65e9700e3b30) — _“To achieve our goals we’ll use [swagger-ui-express](https://www.npmjs.com/package/swagger-ui-express) as a UI client and [ts-openapi](https://www.npmjs.com/package/ts-openapi), a newly created Node component that allows us to declare our API schemas in Node.”_ 

Nelson Gomes   

▶[Lightweight Server-Side Rendering with Fastify and Preact](https://www.youtube.com/watch?v=p8_wOBU478w) — A developer shows off his new project. Look at those [Lighthouse](https://developers.google.com/web/tools/lighthouse) scores :-) 

Sebastien Ringrose   

[Scout APM: A Node Developer’s Best Friend. Try Free for 14 Days](https://ter.li/hkt7ie) — Streamline troubleshooting with real-time alerts & tracing logic that ties issues to source code. Plans from $39/month. 

Scout APM sponsor   

[Are You Using Promises and `async` / `await` Safely?](https://simonplend.com/are-you-using-promises-and-async-await-safely-in-node-js/) — Using promises and `async`/`await` are now basically table stakes with Node development and this article aims to increase your confidence with them just a tiny bit. 

Simon Plenderleith   

[Awesome Git Aliases](https://davidwalsh.name/awesome-git-aliases) — Git is almost the universal source control system now so most of you are probably using it. Aliases are just one way you can get _more_ out of it and these very simple examples may give you food for thought. 

Landon Schropp   

[How I Organize My `npm` Scripts](https://glebbahmutov.com/blog/organize-npm-scripts/) — How one developer organizes the scripts he creates to be run using `npm`. 

Gleb Bahmutov     

🛠 Code and Tools      

[probe-image-size 7.0: Get Image Dimensions Without Full Download](https://github.com/nodeca/probe-image-size) — Given a URL or filename, this can get the image’s dimensions from a wide variety of images (JPG, GIF, PNG, WebP, BMP, TIFF, PSD, and more). 

Vitaly Puzrin   

[node-html-parser: Fast HTML Parser with Basic Element Query Support](https://github.com/taoqf/node-html-parser) — _“it intends to parse massive HTML files in lowest price, thus the performance is the top priority.”_ 

Tao Qiufeng and ashi009   

[Unleash: An Open Source Node Powered 'Feature Toggle' Service](https://github.com/Unleash/unleash) — The sort of system you’d use if you want to remotely toggle features on and off within an app. Built in JavaScript but has clients for Java, Go, Ruby, Python and .NET Core as well. 

Unleash   

[Node.js Client for Google Cloud Speech](https://github.com/googleapis/nodejs-speech) — [_Cloud Speech_](https://cloud.google.com/speech-to-text) is Google’s service for performing machine learning powered speech to text conversion (i.e. transcription). 

Google APIs   

[Seamlessly Integrate Video into Your Node App](https://get.mux.com/3bbmkBx) 

Mux sponsor   

[parse-duration 0.5: Convert a Human Readable Duration to Milliseconds](https://github.com/jkroso/parse-duration) 

Jake Rosoman   

[readdirp: Recursive Version of `fs.readdir` with a Streaming API](https://github.com/paulmillr/readdirp) 

Paul Miller        ![Krasimir Tsonev](https://res.cloudinary.com/cpress/image/upload/v1616000397/evdeqd0mepb8t6djgqyw.jpg) 

💬 A quick Q&A with…
Krasimir Tsonev
engineer, writer, and open-source contributor.  

Krasimir is the creator of [miss-piggy](https://github.com/krasimir/miss-piggy), a small [test runner for Puppeteer](https://krasimirtsonev.com/blog/article/miss-piggy-puppeteer-test-runner). We caught up with him to ask a few questions: 

How would you describe Miss Piggy? 

It's a tiny layer on top of [Puppeteer](https://developers.google.com/web/tools/puppeteer) that comes with a friendly declarative API. Under the hood it uses Puppeteer to visit pages, do clicks, fill forms, basically simulating user interaction. Then it runs expectations on the page's source code, page's url, http requests and Google's dataLayer. 

Where did you get the idea for the name 'Miss Piggy'? 

Well, Kermit was taken :) I wanted the name close to "puppeteer" and as a kid I loved Sesame Street show so I started checking which of its characters was available as an npm name. It looked like most of them were taken(!) So, I came up with "_miss-piggy_". 

Did you learn anything from building Miss Piggy that you might not have if you'd used something like [jest-puppeteer](https://github.com/smooth-code/jest-puppeteer) instead? 

Oh, yes for sure. I believe that every little thing that we are doing is a learning experience. [jest-puppeteer](https://github.com/smooth-code/jest-puppeteer) would probably save me from building my own test runner. So I guess I sharpen my skills in that direction. But also, in this project, I learned more about Puppeteer and its API. 

Are you planning to create any other libraries using the same simple, minimalist approach as Miss Piggy? 

Actually, last couple of years I'm trying to write as less code as possible. That's not because I don't like coding. It's because I don't like complex code. To achieve such goals I have to work with libraries that have minimalistic and at the same time powerful APIs. I expect this from the other people so I can't avoid doing it myself. Everything that I'll eventually open-source will (I hope) follow the same approach. Doing one thing and doing it well.   

_You can [follow Krasimir on Twitter](https://twitter.com/KrasimirTsonev), and find out more about his work [here](https://krasimirtsonev.com/blog)_.     

**Got a new email?** You can [change your address here](https://nodeweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Node Weekly](https://nodeweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. Thanks! 

--- 

**Want to sponsor?** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Stop getting this newsletter.](https://nodeweekly.com/leave/*|UID|*)
