Jan's Avatar

Jan

@amann.work.bsky.social

Maintainer of 🌐 https://next-intl.dev · Guest lecturer for React Web Applications at FHV · Partner for User Interface Engineering @jamannnnnn on X

186 Followers  |  343 Following  |  109 Posts  |  Joined: 04.09.2023  |  2.09

Latest posts by amann.work on Bluesky

Screenshot of the course project

Screenshot of the course project

A sneak peek at what to expect from 🌐 learn.next-intl.dev:

→ No oversimplified examples
→ Built around a real-world project
→ Holistically transitioned to fully internationalized

Full course reveal coming next week!

08.08.2025 14:32 — 👍 1    🔁 0    💬 0    📌 0
Screenshot of the course platform

Screenshot of the course platform

I thought this course would take 2-3 months.
It took eight.

But now, learn.next-intl.dev is almost ready: Learn how to build delightful, multilingual apps with Next.js — launching next week! 🚀

06.08.2025 15:35 — 👍 3    🔁 0    💬 0    📌 0

I‘d be really curious about more real world use cases for the currentState argument in the docs. I usually end up ignoring it 🤷‍♂️

08.07.2025 06:28 — 👍 1    🔁 0    💬 0    📌 0
Preview
Being Heard Isn’t Just About Speaking — It’s About Understanding Great apps don’t just talk — they listen. Learn how i18n with next-intl helps your Next.js app understand users in their own language.

> Being Heard Isn’t Just About Speaking — It’s About Understanding

A really beautiful piece by Adebesin Tolulope

iamlope.medium.com/being-heard-...

27.05.2025 14:39 — 👍 5    🔁 0    💬 0    📌 0

These are things you could do in RSC too, right? It somehow is a petty though that Next.js doesn’t allow fully cached responses if you read search params.

12.05.2025 06:26 — 👍 1    🔁 0    💬 0    📌 0

Is it by chance also planned to forward logs from Server Actions to a browser that has called them? Not sure if that somehow fits into the protocol, but it would be nice to simply have all server logs available in the browser :)

30.04.2025 16:36 — 👍 2    🔁 0    💬 0    📌 0

Really, really exciting—thanks for sharing all your research with the community! ❤️

24.04.2025 09:17 — 👍 5    🔁 0    💬 0    📌 0
Post image

TIL about i18n-check!

This CLI helps you validate against:

1. Missing translations in target locales
2. Inconsistent usage of ICU arguments
3. Unused translations with next-intl (exp.)

Learn more → next-intl.dev/docs/workflo...

23.04.2025 08:14 — 👍 4    🔁 0    💬 0    📌 0
Preview
Release v4.0.3 · amannn/next-intl 4.0.3 (2025-04-22) Bug Fixes Support stable Turbopack config in Next.js 15.3 (#1850) (30ec8e0), closes #1838 – by @amannn

If you've already upgraded to Next.js 15.3 and you saw a deprecation warning about Turbopack config with next-intl, you can now upgrade to next-intl@4.0.3 to get rid of the warning!

github.com/amannn/next-...

22.04.2025 07:41 — 👍 4    🔁 1    💬 0    📌 0

next-intl ultimately requires a JS object with properties as keys and labels as strings. But I guess you could easily transform a .po file, either with a CLI or even at runtime (with caching if you like)

10.04.2025 21:19 — 👍 3    🔁 0    💬 0    📌 0
Post image

In case you want to set up a translation program as well, the Ethereum team shares their playbook on how to create one.

→ ethereum.org/en/contribut...

08.04.2025 13:23 — 👍 1    🔁 0    💬 0    📌 0
Post image

They've also set up a translation program to help the community contribute translations with Crowdin. So far, 6,900+ translators have joined the effort! 🤝

→ ethereum.org/en/contribut...

08.04.2025 13:23 — 👍 2    🔁 0    💬 1    📌 0
Post image

TIL that the Ethereum website uses next-intl to localize its content to 69 languages—how cool is that! 🤯

→ ethereum.org

08.04.2025 13:23 — 👍 4    🔁 0    💬 1    📌 0

Glad to hear you like it! Let me know how it goes with v4! 🙌

21.03.2025 11:57 — 👍 0    🔁 0    💬 0    📌 0
Preview
next-intl 4.0 – Internationalization (i18n) for Next.js Internationalization (i18n) for Next.js

🌐 next-intl 4.0

→ Revamped augmented types
→ Strictly-typed locale
→ Strictly-typed ICU arguments
→ GDPR compliance
→ Modernized build output
→ Preparation for PPR, dynamicIO & rootParams
→ … and more!

next-intl.dev/blog/next-in...

12.03.2025 11:41 — 👍 11    🔁 0    💬 1    📌 0

Hey Oliver, thanks for reaching out! I just watched your talk, intlc looks really, really cool 👏 Also many of the points you mention in the talk sound familiar to me! Let me reach out via DM, I might hit the post character limit here 😄

03.03.2025 05:08 — 👍 1    🔁 0    💬 0    📌 0

Last call to provide feedback if you haven't already! 👀

28.02.2025 12:31 — 👍 2    🔁 0    💬 0    📌 0
Preview
Middleware size is affected by messages in Next.js 15 · Issue #1669 · amannn/next-intl Description I got an error when I deploy to Vercel. The error is: The Edge Function "src/middleware" size is 1.65 MB and your plan size limit is 1 MB. All translations are packaged into a middlewar...

As a side note, Next.js 15 currently has a tree-shaking issue which can cause your messages to leak into the middleware bundle. The Next.js team has confirmed the issue.

More context & workaround: github.com/amannn/next-...

27.02.2025 07:43 — 👍 0    🔁 0    💬 0    📌 0
Preview
fix: Merge `link` header from middleware with the ones from React by amannn · Pull Request #73431 · vercel/next.js Fixes #69000

For context: github.com/vercel/next....

27.02.2025 07:43 — 👍 1    🔁 0    💬 1    📌 0

Also in this release: Link headers that are returned by a middleware are now merged with other ones that Next.js might set for fonts & images.

If you've been waiting with upgrading to Next.js 15 due to this, now's the time! The next-intl docs have now been updated to Next.js 15 as well.

27.02.2025 07:42 — 👍 2    🔁 0    💬 1    📌 0

Really cool!

16.01.2025 09:38 — 👍 2    🔁 0    💬 0    📌 0

Super nice! 👏 Was the migration straightforward?

16.01.2025 06:51 — 👍 1    🔁 0    💬 1    📌 0

Who has already tried the beta? Anything you've encountered?

15.01.2025 11:48 — 👍 1    🔁 0    💬 0    📌 0

Thanks mate! Was really incredible light yesterday morning with the mist and all ✨

12.01.2025 07:12 — 👍 1    🔁 0    💬 0    📌 0
Me this morning after a ski tour up a mountain, about to ride down

Me this morning after a ski tour up a mountain, about to ride down

☃️

11.01.2025 10:33 — 👍 11    🔁 0    💬 0    📌 1
Code sample showing how a React Context can be used as a provider.

Code sample showing how a React Context can be used as a provider.

React Context as a provider in React 19 is 🔥!

10.01.2025 11:36 — 👍 3    🔁 0    💬 1    📌 0

I’m really excited about that one too. 😌 Let me know how it works for you in case you give it a shot!

23.12.2024 10:51 — 👍 1    🔁 0    💬 1    📌 0
Preview
next-intl 4.0 beta – Internationalization (i18n) for Next.js Internationalization (i18n) for Next.js

🌐 next-intl 4.0 beta

→ Revamped augmented types
→ Strictly-typed locale
→ Strictly-typed ICU arguments
→ GDPR compliance
→ Modernized build ouput
→ Preparation for PPR, dynamicIO & rootParams

next-intl.dev/blog/next-in...

23.12.2024 10:09 — 👍 8    🔁 0    💬 1    📌 2

Guter Artikel, danke für die Tipps! Muss mir Warp mal anschauen, bin noch einer der vermutlich letzten die bei Hyper hängengeblieben sind …

21.12.2024 09:31 — 👍 1    🔁 0    💬 0    📌 0

Way too kind of you, thanks Matthias! 😊😊

15.12.2024 09:06 — 👍 2    🔁 0    💬 0    📌 0

@amann.work is following 19 prominent accounts