From 5k to 65k monthly downloads in 3 months, and other Adventures in Nodeland
In this edition, we cover Platformatic's December launch including Meraki, a desktop app for building and managing composable monoliths, multi-version support for REST APIs, a bigger Breaking Change Detector, and a new GraphQL composition feature. We also cover many releases, including Fastify v4.25.0 and a pretty lengthy list of interesting articles.
Hello Everybody,
I'm stoked by the impressive download growth we are seeing in Platformatic. Last month, our Open Source tool was downloaded over 60k thousand times from just 5k last August. Thank you all for the trust.
Last week was exciting for me and the team at Platformatic – we did our last big launch of 2023! We shipped an Electron app to easily build your microservice system, something new for composing GraphQL services, and multi-version support for OpenAPI services.
I was in Paris for the APIDays Conference, where my co-founder Luca gave a great talk on the modern approach to composable monoliths….stay tuned for the recording, which we will share! I also spoke at a meetup in Paris at Sanofi’s Meetup Accelerator, looking at Building Node.js microservices with Platformatic
Platformatic December Launch
For years I’ve wanted to build the tools that I wish I had back when I was in software development consulting. Tools that would not only minimize the complexity of managing digital platforms but also bring back the creativity and joy of building modern backends. Here is a summary of our December 2023 Launch:
🛒 Meraki: A desktop application you can install to build and manage composable monoliths by combining different services run within Platformatic runtime. Download the app, select your templates, add your plugins and services, and generate! We will also launch our Stackables Marketplace - a marketplace for reusing, composing & publishing microservices & templates. Stay tuned for more info!
➕Multi-version support: One of the major pain points of building REST APIs has long been versioning. Now, you can wrap any microservice, support multiple versions simultaneously, and leverage AI to eliminate tedious boilerplate code.
🌡️ A bigger & better Breaking Change Detector (BCD): In September, we introduced BCD to help analyze deployment risks & assess the likelihood of breaking changes. We started with REST & OpenAPI compatibility. As of today, BCD also works for GraphQL!
🎼GraphQL composition: A new way to compose GraphQL services without needing them to be aware of each other. Similar to our OpenAPI composer, our GraphQL Composer offers a fast way to compose APIs from your own or external services.
New module: metaline
As part of the new GraphQL composition in Platformatic, we needed a way to specify a mapping function in a terse JavaScript string. Take a look at metaline.
Fun fact: I wrote this module in a few hours. The implementation is as slow as possible, but I plan to optimize it very soon.
Example syntax
A simple metaline('where.id.in.$>#id;limit:99')
will generate the equivalent function of:
function transform (input) {
return {
where: {
id: {
in: input.map((i) => i.id)
}
},
limit: 99
}
}
metaline('$>id.#directoryId')
will generate the equivalent function of:
function transform (input) {
return input.map((t) => {
return {
id: t.directoryId
}
})
}
Releases
- @mercurius/auto v5.0.0 drops Node.js v14 and v16, adds filtering output
- @fastify/oauth2 v7.6.0 implement PKCE extension for Authorization Code Grant (RFC 7636). v7.7.0 adds autodiscovery capabilities.
- autocannon v7.14.0 adds the -V flag to tune down the output.
- undici v5.28.0 adds
RetryHandler
, fixes bugs and improves performance; v5.28.1 fixes a regression and improves Headers performance. v5.28.2 fixes a few bugs and improve performance. - @fastify/accepts v4.3.0 refactorings.
- @fastify/session v10.7.0 allows to use partitioned cookies.
- mercurius v13.3.2 support TypeScript nodenext resolution.
- pino v8.17.0 improves types.
- help-me v5.0.0 drops glob.
- process-warning v3.0.0 improves its performance 3x.
- fastify v4.25.0 improves the types, mixing async and callbacks in hooks & plugins will warn the user, remove duplicated calls to onReady, reduces the amount of warning being printed, and many more docs and types fixes.
Interesting Articles
- Why I'm Using Next.js
- Why I Won't Use Next.js
- Thoughts On JavaScript Classes
- Sentry: From the Beginning
- Minimalist Affordances: Making the right tradeoffs • Lea Verou
- Our Take on Verifiable Credentials
- You Keep Using That Word "edge"
- LF Europe Chief Warns Developers on EU’s Cyber Resilience Act
- Post Mortem on Cloudflare Control Plane and Analytics Outage
- Work/Life Balance
- React Server Components, without a framework?
- HTML web components
- Using JWTs to Authenticate Services Unravels API Gateways
- Deprecation of formatting rules - ESLint - Pluggable JavaScript Linter
- What I learned getting acquired by Google
- Building Your Application: Deploying | Next.js
- Announcing Vite 5
- Why GraphQL Needs an Open Federation Approach
- FSL: A License For the Bazaar, Not the Cathedral
- Securing API endpoints using Amazon API Gateway and Amazon VPC Lattice
- How Price’s Law Applies to Everything