Sign in

Romain Lanz

@romainlanz.com
905 followers 339 following 337 posts

Developer at FIVB.com @adonisjs.com core member 🔗 romainlanz.com 🔗 boring-money.app ✉️ hello@romainlanz.com

PostsRepliesMedia
Romain Lanz @romainlanz.com · 15/08/2026
Le replay de la masterclass sur le hosting et le cloud est maintenant disponible sur YouTube ! 🎥 On repart des bases avant de monter progressivement vers Docker, Kubernetes, le cloud, les load balancers, l'autoscaling, les bases de données, les stratégies de déploiement...
youtube.com
Hosting, Cloud, Docker, Kubernetes : tout comprendre de zéro
YouTube video by Romain Lanz
061
Romain Lanz @romainlanz.com · 15/08/2026
Du 17 au 23 août, je vais participer à la Hacker House 👀 Une semaine dans une villa avec d'autres devs pour build, ship et bosser sur nos projets. Il y aura aussi pas mal de streams, parfois autour du code, parfois beaucoup moins : cuisine, salle de sport et autres conneries 🔥 hh.lepixelcode.fr
hh.lepixelcode.fr
Hacker House
Hacker House — un lieu pour construire, apprendre et expédier.
010
Romain Lanz @romainlanz.com · 02/07/2026
On se retrouve dimanche en live pour parler Cloud & Infrastructure ! ☁️ On reviendra notamment sur les bases théoriques : VPS, Bare Metal, Cloud Public, Docker, Kubernetes, Pods, Deployments, ReplicaSets, Operators, Load Balancers, etc.
130
Romain Lanz @romainlanz.com · 16/06/2026
Le stream qui a inspiré l'article d'hier est maintenant disponible en replay sur YouTube ! 🎥 👉 www.youtube.com/watch?v=cQP0... On se retrouve probablement en stream ce soir pour tester Pi et poursuivre la discussion 👀
youtube.com
Mon workflow IA avec Codex : skills, contexte, sous-agents et architecture AdonisJS
YouTube video by Romain Lanz
000
Romain Lanz @romainlanz.com · 14/06/2026
Et si je vous disais que je n'avais pratiquement pas écrit une ligne de code à la main depuis six mois ? Déléguer le clavier, pas la réflexion 📰 romainlanz.com/articles/del...
romainlanz.com
Déléguer le clavier, pas la réflexion
Et si je vous disais que je n'avais pratiquement pas écrit une ligne de code à la main depuis six mois ?
000
Romain Lanz @romainlanz.com · 23/05/2026
Au vu des dernières supply-chain attaques, il y a une dernière étape que vous pouvez ajouter si vous êtes dans l'écosystème JS, Python ou Rust (en plus de tout ce que j'ai déjà cité dernièrement). Mettre un firewall devant votre package manager 🔐 socket.dev/blog/introdu...
120
Romain Lanz @romainlanz.com · 12/05/2026
Encore une supply-chain attack... Pour réduire les risques : 1. Activez l'AgeGate de votre package manager 2. Passez par Renovate/Dependabot pour les updates 3. Scannez vos PRs automatiquement (@SocketSecurity) Ne faites jamais confiance aveuglément à une dépendance fraîchement publiée.
001
Romain Lanz @romainlanz.com · 22/04/2026
OpenAI vient de release un nouveau modèle open-weight pour la privacy 👀 Un petit modèle (1.5B) capable de détecter et masquer automatiquement les données sensibles (emails, noms, API keys…) directement dans du texte, et même en local github.com/openai/priva...
130
Romain Lanz @romainlanz.com · 11/04/2026
We just added dedicated guides for France in Boring Money 🇫🇷 After Switzerland, we're expanding with country-specific content to help you make better financial decisions.
010
Romain Lanz @romainlanz.com · 05/04/2026
Tracking your money is great. Understanding how it works is better. We just shipped a Learn section for Boring Money. 13 free guides on personal finance fundamentals. Savings rate, compound interest, ETFs, and more. Plus dedicated guides for Swiss residents (pension pillars, 3a, investing in CH).
boring-money.app
Learn Personal Finance - Boring Money
Free guides on personal finance fundamentals: emergency funds, savings rate, investing basics, and more. Learn how to take control of your money.
030
Reposted by Romain Lanz
Romain Lanz @romainlanz.com · 04/04/2026
Boring Money is coming out of beta soon. This is your last chance to try it without a credit card. boring-money.app
boring-money.app
Boring Money - Simple Cash Flow Tracking
Track your income, expenses, investments and net worth. No bank connections. No complexity. Just clarity.
011
Romain Lanz @romainlanz.com · 04/04/2026
Boring Money is coming out of beta soon. This is your last chance to try it without a credit card. boring-money.app
boring-money.app
Boring Money - Simple Cash Flow Tracking
Track your income, expenses, investments and net worth. No bank connections. No complexity. Just clarity.
011
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 26/03/2026
Every year, JavaScript developers report the same problems. Not because tools are missing But because nothing works together AdonisJS is built around one idea: cohesion over composition. 🔗 adonisjs.com/we-hear-you
adonisjs.com
AdonisJS - JavaScript Devs, We Hear You
Every year, the State of JavaScript survey asks developers what's broken. Every year, the same pain points rise to the top.
0104
Reposted by Romain Lanz
Niels Leenheer @html5test.com · 20/03/2026
DOOM.css is getting somewhere. Gameplay is pretty much done completely in JavaScript, but the whole rendering is 100% CSS. This map is 768 div's with 3D transforms. Added a nice spectator view as well which is literally just adding a couple of CSS custom properties override for the rendering.
211817
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 19/03/2026
AdonisJS comes with opinions, but your stack is still your choice. Want to use MikroORM instead of Lucid? Thanks to MikroORM, there's now an official guide on how to integrate it with AdonisJS 👇 mikro-orm.io/docs/usage-w...
mikro-orm.io
Using MikroORM with AdonisJS | MikroORM
This guide covers integrating MikroORM with AdonisJS, replacing the default Lucid ORM with MikroORM's Unit of Work and Identity Map patterns. For a complete working example, see the adonis-example-app...
083
Romain Lanz @romainlanz.com · 14/03/2026
I love reading posts like this on Reddit. To answer the question… yes, we do. That's exactly why we built @adonisjs.com 10 years ago. So you stop rewriting the same things and stitching together 30 different libraries.
Reddit post with title: "Do you also end up rewriting the same error handling in every Node.js project?"
021
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 04/03/2026
An experimental release of the AdonisJS queues package is now available. Features include: - multi-driver support - typed job classes - delayed jobs - a job scheduler - queue fakes for testing - and more... We're eager to hear your feedback. docs.adonisjs.com/guides/diggi...
docs.adonisjs.com
Queues
Learn how to use job queues in AdonisJS to process tasks in the background with support for retries, scheduling, and multiple backends.
0104
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 25/02/2026
AdonisJS v7 is officially out today! A major milestone after a long development cycle, and we couldn't be more excited about how it turned out. What's new → adonisjs.com/blog/v7 Upgrade guide → docs.adonisjs.com/v6-to-v7
adonisjs.com
AdonisJS v7 is here
AdonisJS v7 introduces end-to-end type safety, new starter kits with authentication, zero-config OpenTelemetry, and a rewritten developer experience. Available now
1226
Romain Lanz @romainlanz.com · 15/02/2026
On se fait un petit live ce soir ?! Ca fait longtemps 👀
110
Romain Lanz @romainlanz.com · 09/02/2026
Si vous voulez être un meilleur développeur qu'hier, ne vous arrêtez pas au "comment". Comprenez pourquoi vous faites les choses et comment elles fonctionnent. C'est encore plus vrai à l'ère des IA. Écrire moins de code ne dispense pas de le comprendre. 🤓
040
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 06/02/2026
We've released security fixes addressing two vulnerabilities in AdonisJS multipart body parsing (Prototype Pollution & DoS). Update now: - v6 users → adonisjs/core 6.20.0 - v7 users → adonisjs/core 7.0.0-next.28
041
Romain Lanz @romainlanz.com · 03/02/2026
State of JS Survey is out. Interesting to see that many backend framework pain points people mention are things already addressed by @adonisjs.com. If you haven't tried it yet, now might be a good time 👀
Back-end Frameworks Pain Points as per State of JS Survey. Main one are Static typing, Browser support and Performance
171
Reposted by Romain Lanz
Romain Lanz @romainlanz.com · 31/01/2026
Sneak peek of what's coming next in BoringMoney 👀 An AI agent that understands you and helps you manage your budget: "I want a new laptop, it costs 3000. can you create a goal?" More soon.
IA Assistant proposing to create a new goal for my new laptop
021
Romain Lanz @romainlanz.com · 31/01/2026
Sneak peek of what's coming next in BoringMoney 👀 An AI agent that understands you and helps you manage your budget: "I want a new laptop, it costs 3000. can you create a goal?" More soon.
IA Assistant proposing to create a new goal for my new laptop
021
Romain Lanz @romainlanz.com · 31/01/2026
BoringMoney is officially moving to Open Beta 🎉 What's new: - Privacy mode for demos & screen sharing - New dashboard charts (categories & month-over-month) - Broker transfers tracking - Daily / weekly / monthly time scale 👉 Registration is now open to everyone boring-money.app
Changelog of boring-money foundable at https://boring-money.app/changelog
021
Romain Lanz @romainlanz.com · 19/01/2026
Il est très possible qu'au prochain stream, un Wordle apparaisse sur l’écran d'attente… et peut-être d'autres mini-jeux 👀🤪
Le jeu wordle
010
Romain Lanz @romainlanz.com · 15/01/2026
boringnode/queue v0.3.0 is out! 🚀 This release adds bulk dispatch with dispatchMany(), job grouping, and full job retention/status tracking. ⚠️ Breaking: New storage layout for Redis & Knex adapters requires migration.
110
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 13/01/2026
We've published a security fix for a Mass Assignment vulnerability affecting Lucid in AdonisJS (CVE-2026-22814). Update now: - v6 users → adonisjs/lucid 21.8.2 - v7 users → adonisjs/lucid 22.0.0-next.6 github.com/adonisjs/luc...
github.com
Mass Assignment in AdonisJS Lucid Allows Overwriting Internal ORM State
### Summary **Description** A Mass Assignment (CWE-915) vulnerability in AdonisJS Lucid may allow a remote attacker who can influence data that is passed into Lucid model assignments to overwrite...
182
Reposted by Romain Lanz
Romain Lanz @romainlanz.com · 06/01/2026
Team management is here! 🎉 You can now invite your partner to share your Boring Money account. The foundations are set. Next up: payment system to exit beta and open the doors to everyone. ✌️
Latest changelog of Boring Money showing the new feature to add team member.
131
Romain Lanz @romainlanz.com · 06/01/2026
Team management is here! 🎉 You can now invite your partner to share your Boring Money account. The foundations are set. Next up: payment system to exit beta and open the doors to everyone. ✌️
Latest changelog of Boring Money showing the new feature to add team member.
131
Romain Lanz @romainlanz.com · 03/01/2026
boringnode/queue v0.2.0 is out! 🚀 This release reworks the Job architecture to be DI-first. The constructor is now fully reserved for your dependencies, payload and context are handled internally. Job naming also defaults to the class name now.
class ResizeImageJob extends Job<ResizeImagePayload> {
  constructor(private storage: StorageService) {
    super()
  }

  async execute() {
    const image = await this.storage.get(this.payload.path)
    const resized = await image.resize(this.payload.width)
    await this.storage.put(this.payload.outputPath, resized)
  }
}
130
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 02/01/2026
We've published a security fix for a Path Traversal vulnerability affecting multipart file uploads in AdonisJS (CVE-2026-21440). Update now: - v6 users → adonisjs/core 6.19.2 - v7 users → adonisjs/core 7.0.0-next.18 github.com/adonisjs/cor...
github.com
AdonisJS Path Traversal in Multipart File Handling
### Summary **Description** A Path Traversal (CWE-22) vulnerability in AdonisJS multipart file handling may allow a remote attacker to write arbitrary files to arbitrary locations on the server...
132
Romain Lanz @romainlanz.com · 02/01/2026
We're officially out of alpha with the queue package! This release introduces Persistent Job Scheduling, Job Context with attempt tracking, dependency injection support, graceful shutdown, and a custom logger option.
// Cron-based
await ReportJob.schedule({ type: 'sales' })
  .cron('0 9 * * MON')
  .timezone('Europe/Paris')
  .run()

// Interval-based
await MetricsJob.schedule({ endpoint: '/api/health' })
  .every('30s')
  .run()
110
Romain Lanz @romainlanz.com · 29/12/2025
Fresh features just landed in Boring Money! - Balance reconciliation to adjust liquid assets when they drift from reality - Month navigation on dashboard - Filter expenses & incomes by month, category, search - Pagination & skeleton loading states Beta codes in the follow-up 👇
Changelog showing 3 releases dated December 29, 2025. Version v20251229.3 adds balance reconciliation for liquid assets. Version v20251229.2 adds month navigation on dashboard. Version v20251229.1 adds filtering for expenses and incomes by month, category, and search text, pagination for lists, and skeleton loading states.
220
Romain Lanz @romainlanz.com · 28/12/2025
For the curious ones, here's the tech stack: - @adonisjs.com 7 powers the backend (auth, queue, ORM, e2e type-safety with RPC-like calls) - @tanstack.com Start for the frontend - @tailwindcss.com 4 for styling - Brevo for emails - Self-hosted on K3s Simple, boring, reliable.
1110
Romain Lanz @romainlanz.com · 26/12/2025
After having this idea in my head for a long time, I’m really happy to finally release the first beta of Boring Money 🎉 A simple app to track your cash flow, expenses, budgets, goals, net worth and savings rate. No bank sync, no unnecessary complexity. Join the free beta. 👇
boring-money.app
Join the Beta - Boring Money
Track your income, expenses, investments and net worth. No bank connections. No complexity. Just clarity.
660
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 23/12/2025
The next AdonisJS docs will ship with dedicated LLM endpoints. Not just an llms.txt listing pages. Actual cheat sheets crafted for AI assistants. Minimal context, maximum accuracy. Your AI pair programmer is about to get much better at AdonisJS 🤖
AdonisJS documentation about routing with LLM only text
063
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 21/12/2025
Your app is slow. But where exactly? Introducing OpenTelemetry for AdonisJS with zero-config setup. One command. Full observability. - Auto-instrumented HTTP, DB queries, Redis - Traces, metrics, and logs correlated out of the box - Works with v6 and upcoming v7 adonisjs.com/blog/introdu...
adonisjs.com
OpenTelemetry for AdonisJS
Introducing @adonisjs/otel, a package that brings OpenTelemetry to AdonisJS with zero-config setup and sensible defaults.
0148
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 20/12/2025
Shipping a new ESLint rule: no-backend-import-in-frontend Catches accidental backend imports in your Inertia frontend files at lint time. Type imports still allowed, and you can whitelist shared paths. One less runtime surprise 🙌
// ❌ Error: Importing backend code in frontend files is not allowed
import User from '#models/user'
import { UserService } from '../../app/services/user_service'


// ✅ Correct - type-only imports are allowed
import type { User } from '#models/user'
import type { UserService } from '../../app/services/user_service'

// ✅ Correct - imports pointing to inertia/ are allowed
import { Button } from '#components/button' // if #components/* -> ./inertia/components/*
import { utils } from '../utils'
1122
Reposted by Romain Lanz
AdonisJS Framework @adonisjs.com · 18/12/2025
We updated our session package so you can now store sessions in your database! 🔥 On top of that, we added session tagging across drivers (redis, database) with a new SessionCollection API to easily manage all sessions for a user. docs.adonisjs.com/guides/basic...
import app from '@adonisjs/core/services/app'
import router from '@adonisjs/core/services/router'
import { SessionCollection } from '@adonisjs/session'

router.post('/logout-other-devices', async ({ auth, session, response }) => {
  const user = auth.user!
  const sessionCollection = await app.container.make(SessionCollection)

  const sessions = await sessionCollection.tagged(String(user.id))

  for (const s of sessions) {
    if (s.id !== session.sessionId) {
      await sessionCollection.destroy(s.id)
    }
  }

  return response.redirect().back()
})
import app from '@adonisjs/core/services/app'
import router from '@adonisjs/core/services/router'
import { SessionCollection } from '@adonisjs/session'

router.post('/logout-other-devices', async ({ auth, session, response }) => {
  const user = auth.user!
  const sessionCollection = await app.container.make(SessionCollection)

  const sessions = await sessionCollection.tagged(String(user.id))

  for (const s of sessions) {
    if (s.id !== session.sessionId) {
      await sessionCollection.destroy(s.id)
    }
  }

  return response.redirect().back()
})
092
Romain Lanz @romainlanz.com · 15/12/2025
L'IA amplifie ce que vous êtes déjà. Un bon développeur devient encore plus efficace. Un mauvais développeur devient encore plus mauvais, même s'il "ship" plus vite. romainlanz.com/articles/l-i...
romainlanz.com
L'IA est un outil, pas un pilote
Entre les prophètes de l'apocalypse et les vendeurs de rêve, j'ai l'impression qu'on entend peu ceux qui bossent vraiment avec au quotidien.
090
Romain Lanz @romainlanz.com · 10/12/2025
One of many testimonials from developers trying AdonisJS for the first time. Will you be next?
Discord Message with: "Adonis.js is probably the best full stack framework I worked with! 

I’m just now starting to switch over from express."
020
Romain Lanz @romainlanz.com · 08/12/2025
A new alpha of the queue package is now available. This one brings a JobPool system for proper concurrency and worker timeouts. Redis now uses atomic Lua scripts for better performance. Also added a Knex adapter for SQL database support and smarter connection handling.
Benchmark results: @boringnode/queue vs BullMQ. Tests run with 100, 500, and 1000 jobs at concurrency 1, 5, and 10. Results show @boringnode/queue is up to 13.9% faster in most scenarios.
160
Romain Lanz @romainlanz.com · 01/12/2025
The first alpha of the new queue package is finally available. This early release focuses on collecting feedback about the API design before moving further. If you want to try it out and share your thoughts, now is the perfect time. ➡️ github.com/boringnode/q...
Code sample for the queue package, available on the GitHub
160
Romain Lanz @romainlanz.com · 27/11/2025
Just kicked off a new project with AdonisJS 7 and finally using all our codegen work in a real app feels insane. Type-safety basically everywhere, the DX is wild.
1123
Romain Lanz @romainlanz.com · 21/11/2025
"Can AdonisJS be deployed on AWS lambda?" Yes, you can deploy @adonisjs.com on AWS Lambda, but just because you can doesn't necessarily mean you should. 🔗 www.reddit.com/r/node/comme... 👇


Yes, you can deploy AdonisJS on AWS Lambda, but just because you can doesn't necessarily mean you should.

AWS Lambda is a Function-as-a-Service (FaaS) platform designed for short-lived, stateless functions, not for long-running web servers. AdonisJS, like most full-stack frameworks, is meant to run as a persistent HTTP process, so you'd often be fighting against Lambda cold starts, timeouts, and stateless nature.

Otherwise, AdonisJS can be hosted anywhere Node.js runs: VPS, Docker, Kubernetes, Fly.io, Railway, Render, etc.
061
Romain Lanz @romainlanz.com · 12/11/2025
On approche des 400 membres sur le Discord. 🔥 On parle de dev, d’infra, de la tech en général… bref, toujours utile de discuter avec des humains ! On passe les 500 avant la fin de l'année ? 👀
media.tenor.com
a blue cartoon character with a green leaf on top of his head
Alt: a blue cartoon character with a green leaf on top of his head
130
Romain Lanz @romainlanz.com · 29/09/2025
10 fucking years and more to come! 🚀 If you're looking for stability and consistency in the Node.js ecosystem, this is the choice to make. Be honest, how many times have you switched framework or ORM in the past decade?
191
Reposted by Romain Lanz
Yarn @yarnpkg.dev · 18/09/2025
Yarn 4.10 is fresh off the press! 💫 It includes a new npmMinimalAgeGate setting, catalog support, and OIDC publishing.
github.com
Release v4.10.0 · yarnpkg/berry
What's Changed Bumps TypeScript to 5.9 by @arcanis in #6889 Updates tests for the merge conflict resolution v5 by @arcanis in #6892 Tweaks tests by @arcanis in #6894 docs: fix typo in enableScript...
0168
Reposted by Romain Lanz
Romain Lanz @romainlanz.com · 12/09/2025
🚀 Nouveau sur le blog J’explique Docker : pourquoi il existe, comment il fonctionne et comment commencer à l’utiliser en local. De l’image au conteneur, jusqu’à Docker Compose, tout est là pour vos premiers pas 👇 romainlanz.com/articles/doc...
romainlanz.com
Docker expliqué simplement – ce que vous devez savoir avant de l’utiliser
Découvrez Docker : son fonctionnement, ses concepts clés et comment l’utiliser pour créer, gérer et orchestrer vos conteneurs localement
051