[PR #178] [CLOSED] Started Migration to Next's App Directory #777

Closed
opened 2026-02-26 18:48:53 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/documenso/documenso/pull/178
Author: @doug-andrade
Created: 5/31/2023
Status: Closed

Base: mainHead: migrate-app-directory


📝 Commits (2)

  • 58fc047 migration: added app directory
  • 878659c import tailwind in root layout

📊 Changes

20 files changed (+859 additions, -54 deletions)

View changed files

apps/web/app/layout.tsx (+44 -0)
apps/web/lib/utils.ts (+6 -0)
📝 apps/web/package.json (+4 -2)
📝 apps/web/pages/api/auth/signup.ts (+1 -1)
📝 apps/web/pages/api/documents/[id].ts (+2 -2)
📝 apps/web/pages/api/documents/[id]/fields/[fid].ts (+1 -1)
📝 apps/web/pages/api/documents/[id]/fields/index.ts (+2 -2)
📝 apps/web/pages/api/documents/[id]/recipients/[rid].ts (+1 -1)
📝 apps/web/pages/api/documents/[id]/recipients/index.ts (+1 -1)
📝 apps/web/pages/api/documents/[id]/send.ts (+1 -1)
📝 apps/web/pages/api/documents/[id]/sign.ts (+1 -1)
📝 apps/web/pages/api/documents/index.ts (+2 -2)
📝 apps/web/pages/api/health.ts (+1 -1)
📝 apps/web/pages/api/test-sign/[id].ts (+1 -1)
📝 apps/web/pages/api/users/index.ts (+2 -2)
📝 apps/web/pages/api/users/me.ts (+1 -1)
📝 apps/web/tailwind.config.js (+1 -0)
📝 apps/web/tsconfig.json (+18 -5)
📝 package-lock.json (+767 -28)
📝 package.json (+2 -2)

📄 Description

@Mythie this version is a lot cleaner thanks to @leerob adding turbo with globalEnv

No routes have been migrated to /app in this PR. The purpose was to create the /app directory, load the fonts, add some metadata and make sure it would build.

One thing you'll notice is that I appended as any to all of the postHandler and getHandler, without this the build would result in:

Type error: Argument of type '(req: NextApiRequest, res: NextApiResponse<any>) => Promise<void>' is not assignable to parameter of type 'Handle<void>'.

Build Result

@documenso/web:build: Route (pages)                              Size     First Load JS
@documenso/web:build: ┌ λ /                                      244 B          90.8 kB
@documenso/web:build: ├   /_app                                  0 B            90.6 kB
@documenso/web:build: ├ ○ /404                                   5.16 kB         119 kB
@documenso/web:build: ├ ○ /500                                   5.11 kB         119 kB
@documenso/web:build: ├ λ /api/auth/[...nextauth]                0 B            90.6 kB
@documenso/web:build: ├ λ /api/auth/signup                       0 B            90.6 kB
@documenso/web:build: ├ λ /api/documents                         0 B            90.6 kB
@documenso/web:build: ├ λ /api/documents/[id]                    0 B            90.6 kB
@documenso/web:build: ├ λ /api/documents/[id]/fields             0 B            90.6 kB
@documenso/web:build: ├ λ /api/documents/[id]/fields/[fid]       0 B            90.6 kB
@documenso/web:build: ├ λ /api/documents/[id]/recipients         0 B            90.6 kB
@documenso/web:build: ├ λ /api/documents/[id]/recipients/[rid]   0 B            90.6 kB
@documenso/web:build: ├ λ /api/documents/[id]/send               0 B            90.6 kB
@documenso/web:build: ├ λ /api/documents/[id]/sign               0 B            90.6 kB
@documenso/web:build: ├ λ /api/health                            0 B            90.6 kB
@documenso/web:build: ├ λ /api/stripe/checkout-session           0 B            90.6 kB
@documenso/web:build: ├ λ /api/stripe/portal-session             0 B            90.6 kB
@documenso/web:build: ├ λ /api/stripe/subscription               0 B            90.6 kB
@documenso/web:build: ├ λ /api/stripe/webhook                    0 B            90.6 kB
@documenso/web:build: ├ λ /api/test-sign/[id]                    0 B            90.6 kB
@documenso/web:build: ├ λ /api/users                             0 B            90.6 kB
@documenso/web:build: ├ λ /api/users/me                          0 B            90.6 kB
@documenso/web:build: ├ λ /dashboard                             3 kB            170 kB
@documenso/web:build: ├ λ /documents                             4.36 kB         185 kB
@documenso/web:build: ├ λ /documents/[id]                        7.86 kB         180 kB
@documenso/web:build: ├ λ /documents/[id]/recipients             3.72 kB         184 kB
@documenso/web:build: ├ λ /documents/[id]/sign                   15.3 kB         145 kB
@documenso/web:build: ├ λ /documents/[id]/signed                 1.51 kB         116 kB
@documenso/web:build: ├ λ /login                                 6.24 kB         129 kB
@documenso/web:build: ├ ○ /settings                              222 B           177 kB
@documenso/web:build: ├ ○ /settings/account                      261 B           177 kB
@documenso/web:build: ├ ○ /settings/billing                      268 B           177 kB
@documenso/web:build: ├ ○ /settings/password                     262 B           177 kB
@documenso/web:build: ├ ○ /settings/profile                      261 B           177 kB
@documenso/web:build: └ λ /signup                                2.29 kB         125 kB
@documenso/web:build: + First Load JS shared by all              98.8 kB
@documenso/web:build:   ├ chunks/framework-25cb315fa3c61a79.js   45.3 kB
@documenso/web:build:   ├ chunks/main-2324ff1d8f14b74b.js        27.8 kB
@documenso/web:build:   ├ chunks/pages/_app-e0c4133317461815.js  15.5 kB
@documenso/web:build:   ├ chunks/webpack-77aaf8191d94da09.js     2.04 kB
@documenso/web:build:   └ css/42b4b9137f81990f.css               8.2 kB
@documenso/web:build: 
@documenso/web:build: λ  (Server)  server-side renders at runtime (uses getInitialProps or getServerSideProps)
@documenso/web:build: ○  (Static)  automatically rendered as static HTML (uses no initial props)
@documenso/web:build: 

 Tasks:    1 successful, 1 total
Cached:    1 cached, 1 total
  Time:    3.285s >>> FULL TURBO

More on incremental migration from Next.js docs.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/documenso/documenso/pull/178 **Author:** [@doug-andrade](https://github.com/doug-andrade) **Created:** 5/31/2023 **Status:** ❌ Closed **Base:** `main` ← **Head:** `migrate-app-directory` --- ### 📝 Commits (2) - [`58fc047`](https://github.com/documenso/documenso/commit/58fc047b0cfd5220096391e5643e9f21ed660df3) migration: added app directory - [`878659c`](https://github.com/documenso/documenso/commit/878659cf274ba12b7fe8baada105d0128f36f0d5) import tailwind in root layout ### 📊 Changes **20 files changed** (+859 additions, -54 deletions) <details> <summary>View changed files</summary> ➕ `apps/web/app/layout.tsx` (+44 -0) ➕ `apps/web/lib/utils.ts` (+6 -0) 📝 `apps/web/package.json` (+4 -2) 📝 `apps/web/pages/api/auth/signup.ts` (+1 -1) 📝 `apps/web/pages/api/documents/[id].ts` (+2 -2) 📝 `apps/web/pages/api/documents/[id]/fields/[fid].ts` (+1 -1) 📝 `apps/web/pages/api/documents/[id]/fields/index.ts` (+2 -2) 📝 `apps/web/pages/api/documents/[id]/recipients/[rid].ts` (+1 -1) 📝 `apps/web/pages/api/documents/[id]/recipients/index.ts` (+1 -1) 📝 `apps/web/pages/api/documents/[id]/send.ts` (+1 -1) 📝 `apps/web/pages/api/documents/[id]/sign.ts` (+1 -1) 📝 `apps/web/pages/api/documents/index.ts` (+2 -2) 📝 `apps/web/pages/api/health.ts` (+1 -1) 📝 `apps/web/pages/api/test-sign/[id].ts` (+1 -1) 📝 `apps/web/pages/api/users/index.ts` (+2 -2) 📝 `apps/web/pages/api/users/me.ts` (+1 -1) 📝 `apps/web/tailwind.config.js` (+1 -0) 📝 `apps/web/tsconfig.json` (+18 -5) 📝 `package-lock.json` (+767 -28) 📝 `package.json` (+2 -2) </details> ### 📄 Description @Mythie this version is a lot cleaner thanks to @leerob adding turbo with `globalEnv` No routes have been migrated to `/app` in this PR. The purpose was to create the `/app` directory, load the fonts, add some metadata and make sure it would build. One thing you'll notice is that I appended `as any` to all of the `postHandler` and `getHandler`, without this the build would result in: ``` Type error: Argument of type '(req: NextApiRequest, res: NextApiResponse<any>) => Promise<void>' is not assignable to parameter of type 'Handle<void>'. ``` **Build Result** ``` @documenso/web:build: Route (pages) Size First Load JS @documenso/web:build: ┌ λ / 244 B 90.8 kB @documenso/web:build: ├ /_app 0 B 90.6 kB @documenso/web:build: ├ ○ /404 5.16 kB 119 kB @documenso/web:build: ├ ○ /500 5.11 kB 119 kB @documenso/web:build: ├ λ /api/auth/[...nextauth] 0 B 90.6 kB @documenso/web:build: ├ λ /api/auth/signup 0 B 90.6 kB @documenso/web:build: ├ λ /api/documents 0 B 90.6 kB @documenso/web:build: ├ λ /api/documents/[id] 0 B 90.6 kB @documenso/web:build: ├ λ /api/documents/[id]/fields 0 B 90.6 kB @documenso/web:build: ├ λ /api/documents/[id]/fields/[fid] 0 B 90.6 kB @documenso/web:build: ├ λ /api/documents/[id]/recipients 0 B 90.6 kB @documenso/web:build: ├ λ /api/documents/[id]/recipients/[rid] 0 B 90.6 kB @documenso/web:build: ├ λ /api/documents/[id]/send 0 B 90.6 kB @documenso/web:build: ├ λ /api/documents/[id]/sign 0 B 90.6 kB @documenso/web:build: ├ λ /api/health 0 B 90.6 kB @documenso/web:build: ├ λ /api/stripe/checkout-session 0 B 90.6 kB @documenso/web:build: ├ λ /api/stripe/portal-session 0 B 90.6 kB @documenso/web:build: ├ λ /api/stripe/subscription 0 B 90.6 kB @documenso/web:build: ├ λ /api/stripe/webhook 0 B 90.6 kB @documenso/web:build: ├ λ /api/test-sign/[id] 0 B 90.6 kB @documenso/web:build: ├ λ /api/users 0 B 90.6 kB @documenso/web:build: ├ λ /api/users/me 0 B 90.6 kB @documenso/web:build: ├ λ /dashboard 3 kB 170 kB @documenso/web:build: ├ λ /documents 4.36 kB 185 kB @documenso/web:build: ├ λ /documents/[id] 7.86 kB 180 kB @documenso/web:build: ├ λ /documents/[id]/recipients 3.72 kB 184 kB @documenso/web:build: ├ λ /documents/[id]/sign 15.3 kB 145 kB @documenso/web:build: ├ λ /documents/[id]/signed 1.51 kB 116 kB @documenso/web:build: ├ λ /login 6.24 kB 129 kB @documenso/web:build: ├ ○ /settings 222 B 177 kB @documenso/web:build: ├ ○ /settings/account 261 B 177 kB @documenso/web:build: ├ ○ /settings/billing 268 B 177 kB @documenso/web:build: ├ ○ /settings/password 262 B 177 kB @documenso/web:build: ├ ○ /settings/profile 261 B 177 kB @documenso/web:build: └ λ /signup 2.29 kB 125 kB @documenso/web:build: + First Load JS shared by all 98.8 kB @documenso/web:build: ├ chunks/framework-25cb315fa3c61a79.js 45.3 kB @documenso/web:build: ├ chunks/main-2324ff1d8f14b74b.js 27.8 kB @documenso/web:build: ├ chunks/pages/_app-e0c4133317461815.js 15.5 kB @documenso/web:build: ├ chunks/webpack-77aaf8191d94da09.js 2.04 kB @documenso/web:build: └ css/42b4b9137f81990f.css 8.2 kB @documenso/web:build: @documenso/web:build: λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps) @documenso/web:build: ○ (Static) automatically rendered as static HTML (uses no initial props) @documenso/web:build: Tasks: 1 successful, 1 total Cached: 1 cached, 1 total Time: 3.285s >>> FULL TURBO ``` [More on incremental migration from Next.js docs.](https://nextjs.org/docs/app/building-your-application/upgrading/app-router-migration#migrating-from-pages-to-app) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 18:48:53 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/documenso#777
No description provided.