Skip to content

Comments

Add migrate command for initializing open-next for existing Next.js projects#1083

Merged
vicb merged 75 commits intomainfrom
dario/DEVX-2383/init-command
Jan 26, 2026
Merged

Add migrate command for initializing open-next for existing Next.js projects#1083
vicb merged 75 commits intomainfrom
dario/DEVX-2383/init-command

Conversation

@dario-piotrowicz
Copy link
Contributor

@dario-piotrowicz dario-piotrowicz commented Jan 21, 2026

Fixes https://jira.cfdata.org/browse/DEVX-2383


Docs PR: opennextjs/docs#205


This PR addes a new migrate CLI command that adds the OpenNext adapter to standard Next.js projects (this basically automates the steps in https://opennext.js.org/cloudflare/get-started).


You can manually test this command by running:

npm create next-app  my-next-app

to create a new Next.js project, cd into the project:

cd my-next-app

install a compatible version of Next.js:

npm i next@16.0.x

and then run the init command:

npx https://pkg.pr.new/@opennextjs/cloudflare@1083 migrate

You should see something like the following:
Screenshot 2026-01-22 at 14 36 24


Thanks to @2u841r to spearheading this effort 🫶

@changeset-bot
Copy link

changeset-bot bot commented Jan 21, 2026

🦋 Changeset detected

Latest commit: 608b497

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@opennextjs/cloudflare Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jan 21, 2026

Open in StackBlitz

npm i https://pkg.pr.new/@opennextjs/cloudflare@1083

commit: 608b497

@dario-piotrowicz dario-piotrowicz marked this pull request as ready for review January 22, 2026 11:27
@dario-piotrowicz
Copy link
Contributor Author

@vicb right now if an incorrect version of Next.js is used we get this:
Screenshot 2026-01-22 at 14 41 43

probably we should check the version and handle it more gracefully, right?

or shall we even try to bump the version? what do you think?

Copy link
Contributor

@vicb vicb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of nits.

Also I realize that not having a monorepo makes it much harder to discover utils.

Should hopefully be fixed soon

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment about moving the detection than for the wrangler config

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this work?

4886b79

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works.

I usually add a "maybe" in the mix if it can return undefined or throw when there is no "maybe"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also would be nice if the API is consistent for the different files

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I usually add a "maybe" in the mix if it can return undefined or throw when there is no "maybe"

The return type make it clear to me so adding a maybe feels unnecessary to me, but I'm happy to add that since it's your preference 👍

Also would be nice if the API is consistent for the different files

I thought the same when implementing the two solutions... but having a return from a function that is never actually used feels ugly/potentially confusing to me, but it's not a huge deal, I'm totally happy to use a consistent API 👍

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The return type make it clear to me so adding a maybe feels unnecessary to me, but I'm happy to add that since it's your preference 👍

When you review code on GH, you don't get to see the return type easily

I thought the same when implementing the two solutions... but having a return from a function that is never actually used feels ugly/potentially confusing to me, but it's not a huge deal, I'm totally happy to use a consistent API 👍

I need to double check the code here, I thought it was used

@vicb
Copy link
Contributor

vicb commented Jan 23, 2026

Could you please merge master in this PR instead of rebasing?
I realize that I have been commenting the same thing multiple time because it doesn't show up in the diff view.
GH is a pain here :(

@dario-piotrowicz dario-piotrowicz marked this pull request as draft January 23, 2026 11:09
@dario-piotrowicz dario-piotrowicz force-pushed the dario/DEVX-2383/init-command branch from 8bc4f63 to 87e3b01 Compare January 23, 2026 11:13
@dario-piotrowicz dario-piotrowicz changed the title Add init command for initializing open-next for existing Next.js projects Add migrate command for initializing open-next for existing Next.js projects Jan 24, 2026
@vicb vicb marked this pull request as ready for review January 24, 2026 21:21
@vicb vicb force-pushed the dario/DEVX-2383/init-command branch from fb72a97 to 608b497 Compare January 26, 2026 21:46
@vicb vicb merged commit b062597 into main Jan 26, 2026
7 checks passed
@vicb vicb deleted the dario/DEVX-2383/init-command branch January 26, 2026 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants