Should I use the app router?

I know the new app router is still in beta and not recommended for production. But what are the risks if I really want to try it? Should I use it for personal projects? Should I use it for more complex projects?

As of v13.4.0 (4 May 2023), the app router has officially reached stability. So yes you should use it.

The following text is applicable only to versions before v13.4.0, and is kept here for historical reasons.

Old answer (before v13.4.0)#

The new app router is currently unstable. Which means

  • It may have bugs. And bugs have been far more frequent in the app router than in more stable parts of the framework (e.g. the pages directory). As usual, when something goes wrong, developers are quick to blame themselves and can't figure out the bug in their code. Which is normal; but for beta features like the app router, the likelihood that it's the framework's fault is not so low. You need to get prepared for that

    Example: The app router was unusable in v13.1.0 for most users.

  • It may have breaking changes. Since the API is still being finalised, these breaking changes can be far more drastic than your typical breaking changes, and require efforts and time to migrate.

    Example: The head.js file is already deprecated and will be removed without ever reaching stability. If you tried this file before, you need to migrate it to the new Metadata API before the app router reaches stable (assuming the metadata API itself won't be deprecated, which is likely but not set in stone).

  • It doesn't have a great ecosystem yet. All materials and libraries are predominantly focused on the stable pages directory. The app router is still a new concept, so you'll find it hard to find materials and libraries that are compatible with it.

So, by using the app router, what risks do you sign up for? Manpower, time and effort to deal with unexpected bugs and migrate from deprecated features. If your team will be able to allocate sufficient resources to deal with these risks, then you can use the app router. Otherwise, you should stick to the stable parts of the framework.

Generally speaking, I don't recommend using the app router for the following cases:

  • Your team haven't been comfortable with the pages directory
  • Your app is non-trivial

Otherwise, you can try the app router, but be mindful of the risks mentioned above.

Updated:
Author: