From ee2cb0eedf472210c21e1a6a869692d3a770216d Mon Sep 17 00:00:00 2001 From: Catalin Pit <25515812+catalinpit@users.noreply.github.com> Date: Fri, 8 Mar 2024 10:20:58 +0200 Subject: [PATCH 01/11] docs: add article about public api --- apps/marketing/content/blog/public-api.mdx | 301 ++++++++++++++++++ .../public/blog/api-implementation.webp | Bin 0 -> 56982 bytes apps/marketing/public/blog/api-package.webp | Bin 0 -> 19380 bytes .../public/blog/blog-author-catalin.webp | Bin 0 -> 18814 bytes apps/marketing/public/blog/docs.webp | Bin 0 -> 135304 bytes 5 files changed, 301 insertions(+) create mode 100644 apps/marketing/content/blog/public-api.mdx create mode 100644 apps/marketing/public/blog/api-implementation.webp create mode 100644 apps/marketing/public/blog/api-package.webp create mode 100644 apps/marketing/public/blog/blog-author-catalin.webp create mode 100644 apps/marketing/public/blog/docs.webp diff --git a/apps/marketing/content/blog/public-api.mdx b/apps/marketing/content/blog/public-api.mdx new file mode 100644 index 000000000..dd9a0b174 --- /dev/null +++ b/apps/marketing/content/blog/public-api.mdx @@ -0,0 +1,301 @@ +--- +title: 'Building the Documenso Public API - The Why and How' +description: 'This article talks about the need for the public API and the process of building it. It also discusses the requirements we had to meet and the constraints we had to work within.' +authorName: 'Catalin' +authorImage: '/blog/blog-author-catalin.webp' +authorRole: 'Developer' +date: 2024-03-08 +tags: + - Development + - API +--- + +This article covers the process of building the public API for Documenso. It starts by explaining why the API was needed for a digital document signing company in the first place. Then, it'll dive into the steps we took to build it. Lastly, it'll present the requirements we had to meet and the constraints we had to work within. + +## Why the public API + +We decided to build the public API to open a new way of interacting with Documenso. While the web app does the job well, there are use cases where it's not enough. In those cases, the users might want to interact with the platform programmatically. Usually, that's for integrating Documenso with other applications. + +The new public API enables them to do that. The users can integrate Documenso's functionalities within other applications to automate tasks, create custom solutions, and build custom workflows, to name just a few. + +The API provides 12 endpoints at the time of writing this article: + +- (GET) `/api/v1/documents` - retrieve all the documents +- (POST) `/api/v1/documents` - upload a new document and getting a presigned URL +- (GET) `/api/v1/documents/{id}` - fetch a specific document +- (DELETE) `/api/v1/documents/{id}` - delete a specific document +- (POST) `/api/v1/templates/{templateId}/create-document` - create a new document from an existing template +- (POST) `/api/v1/documents/{id}/send` - send a document for signing +- (POST) `/api/v1/documents/{id}/recipients` - create a document recipient +- (PATCH) `/api/v1/documents/{id}/recipients/{recipientId}` - update the details of a document recipient +- (DELETE) `/api/v1/documents/{id}/recipients/{recipientId}` - delete a specific recipient from a document +- (POST) `/api/v1/documents/{id}/fields` - create a field for a document +- (PATCH) `/api/v1/documents/{id}/fields` - update the details of a document field +- (DELETE) `/api/v1/documents/{id}/fields` - delete a field from a document + +> Check out the [API documentation](https://app.documenso.com/api/v1/openapi). + +Moreover, it also enables us to enhance the platform by bringing other integrations to Documenso, such as Zapier. + +In conclusion, the new public API extends Documenso's capabilities, provides more flexibility for users, and opens up a broader world of possibilities. + +## Picking the right approach & tech + +Once we decided to build the API, we had to choose the approach and technologies to use. There were 2 options: + +1. Build an additional application +2. Launch the API in the existing codebase + +### 1. Build an additional application + +That would mean creating a new codebase and building the API from scratch. Having a separate app for the API would result in benefits such as: + +- lower latency responses +- supporting larger field uploads +- separation between the apps (Documenso and the API) +- customizability and flexibility +- easier testing and debugging + +This approach has significant benefits. However, one major drawback is that it requires additional resources. + +We'd have to spend a lot of time just on the core stuff, such as building and configuring the basic server. After that, we'd spend time implementing the endpoints and authorization, among other things. + +When the building is done, there will be another application to deploy and manage. + +All of this would stretch our already limited resources. + +So, we asked ourselves if there is another way of doing it without sacrificing the API quality and the developer experience. + +### 2. Launch the API in the existing codebase + +The other option was to launch the API in the existing codebase. Rather than writing everything from scratch, we could use most of our existing code. + +Since we're using tRPC for our internal API (backend), we looked for solutions that work well with tRPC. We narrowed down the choices to: + +- [trpc-openapi](https://github.com/jlalmes/trpc-openapi) +- [ts-rest](https://ts-rest.com/) + +Both technologies allow you to build public APIs. The `trpc-openapi` technology allows you to easily turn tRPC procedures into REST endpoints. It's more like a plugin for tRPC. + +On the other hand, `ts-rest` is more of a standalone solution. `ts-rest` enables you to create a contract for the API, which can be used both on the client and server. You can consume and implement the contract in your application, thus providing end-to-end type safety and RPC-like client. + +> You can see a [comparison between trpc-openapi and ts-rest](https://catalins.tech/public-api-trpc/) here. + +So, the main difference between the 2 is that `trpc-openapi` is like a plugin that extends tRPC's capabilities, whereas `ts-rest` provides the tools for building a standalone API. + +### Our choice + +After analyzing and comparing the 2 options, we decided to go with `ts-rest` because of its benefits. + +Here's a paragraph from the `ts-rest` documentation that hits the nail on the head: + +> tRPC has many plugins to solve this issue by mapping the API implementation to a REST-like API, however, these approaches are often a bit clunky and reduce the safety of the system overall, ts-rest does this heavy lifting in the client and server implementations rather than requiring a second layer of abstraction and API endpoint(s) to be defined. + +## API Requirements + +We defined the following requirements for the API: + +- The API should use path-based versioning (e.g. `/v1`) +- The system should use bearer tokens for API authentication + - The API token should be a random string of 32 to 40 characters +- The system should encrypt the token and store the encrypted value +- The system should only display the API token when it's created +- The API should have self-generated documentation like Swagger +- Users should be able to create an API key + - Users should be able to choose a token name + - Users should be able to choose an expiration date for the token + - User should be able to choose between 7 days, 1 month, 3 months, 6 months, 12 months, never +- System should display all the user's tokens in the settings page + - System should display the token name, creation date, expiration date and a delete button +- Users should be able to delete an API key +- Users should be able to retrieve all the documents from their account +- Users should be able to upload a new document + - Users should receive an S3 pre-signed URL after a successful upload +- Users should be able to retrieve a specific document from their account by its id +- Users should be able to delete a specific document from their account by its id +- Users should be able to create a new document from an existing document template +- Users should be able to send a document for signing to 1 or more recipients +- Users should be able to create a recipient for a document +- Users should be able to update the details of a recipient +- Users should be able to delete a recipient from a document +- Users should be able to create a field (e.g. signature, email, name, date) for a document +- Users should be able to update a field for a document +- Users should be able to delete a field from a document + +## Constraints + +We also faced the following constraints while developing the API: + +1. Resources + +Limited resources were one of the main constraints. We're a new startup with a relatively small team. Building and maintaining an additional application would strain our limited resources. + +2. Technology stack + +Another constraint was the technology stack. Our tech stack includes TypeScript, Prisma, and tRPC, among others. We also use Vercel for hosting. + +As a result, we wanted to use technologies we are comfortable with. This allowed us to leverage our existing knowledge and ensured consistency across our applications. + +Using familiar technologies also meant we could develop the API faster, as we didn't have to spend time learning new technologies. We could also leverage existing code and tools used in our main application. + +It's worth mentioning that this is not a permanent decision. We're open to moving the API to another codebase/tech stack when it makes sense (e.g. API is heavily used and needs better performance). + +3. File uploads + +Due to our current architecture, we support file uploads with a maximum size of 50 MB. To circumvent this, we created an additional step for uploading documents. + +Users make a POST request to the `/api/v1/documents` endpoint and the API responds with an S3 pre-signed URL. The users then make a 2nd request to the pre-signed URL with their document. + +## How we built the API + +![API package diagram](api-package.webp) + +Our codebase is a monorepo, so we created a new API package in the `packages` directory. It contains both the API implementation and its documentation. + +The main 2 blocks of the implementation consist of the API contract and the code for the API endpoints. + +![API implementation diagram](api-implementation.webp) + +In a few words, the API contract defines the API structure, the format of the requests and responses, how to authenticate API calls, the available endpoints and their associated HTTP verbs. You can explore the [API contract](https://github.com/documenso/documenso/blob/main/packages/api/v1/contract.ts) on GitHub. + +Then, there's the implementation part, which is the actual code for each endpoint defined in the API contract. The implementation is where the API contract is brought to life and made functional. + +Let's take the endpoint `/api/v1/documents` as an example. + +```ts +export const ApiContractV1 = c.router( + { + getDocuments: { + method: 'GET', + path: '/api/v1/documents', + query: ZGetDocumentsQuerySchema, + responses: { + 200: ZSuccessfulResponseSchema, + 401: ZUnsuccessfulResponseSchema, + 404: ZUnsuccessfulResponseSchema, + }, + summary: 'Get all documents', + }, + ... + } +); +``` + +The API contract specifies the following things for `getDocuments`: + +- the allowed HTTP request method is GET, so trying to make a POST request, for example, results in an error +- the path is `/api/v1/documents` +- the query parameters the user can pass with the request + - in this case - `page` and `perPage` +- the allowed responses and their schema + - `200` returns an object containing an array of all documents and a field `totalPages`, which is self-explanatory + - `401` returns an object with a message such as "Unauthorized" + - `404` returns an object with a message such as "Not found" + +The implementation of this endpoint needs to match the contract completely; otherwise, `ts-rest` will complain, and your API might not work as intended. + +The `getDocuments` function from the `implementation.ts` file runs when the user hits the endpoint. + +```ts +export const ApiContractV1Implementation = createNextRoute(ApiContractV1, { + getDocuments: authenticatedMiddleware(async (args, user, team) => { + const page = Number(args.query.page) || 1; + const perPage = Number(args.query.perPage) || 10; + + const { data: documents, totalPages } = await findDocuments({ + page, + perPage, + userId: user.id, + teamId: team?.id, + }); + + return { + status: 200, + body: { + documents, + totalPages, + }, + }; + }), + ... +}); +``` + +There is a middleware, too, `authenticatedMiddleware`, that handles the authentication for API requests. It ensures that the API token exists and the token used has the appropriate privileges for the resource it accesses. + +So, that's how the other endpoints work as well. The code differs, but the principles are the same. You can explore the [API implementation](https://github.com/documenso/documenso/blob/main/packages/api/v1/implementation.ts) and the [middleware code](https://github.com/documenso/documenso/blob/main/packages/api/v1/middleware/authenticated.ts) on GitHub. + +### Documentation + +For the documentation, we decided to use Swagger UI, which automatically generates the documentation from the OpenAPI specification. + +The OpenAPI specification describes an API containing the available endpoints and their HTTP request methods, authentication methods, and so on. Its purpose is to help both machines and humans understand the API without having to look at the code. + +The Documenso OpenAPI specification is live [here](https://documenso.com/api/v1/openapi.json). + +Thankfully, `ts-rest` makes it seamless to generate the OpenAPI specification. + +```ts +import { generateOpenApi } from '@ts-rest/open-api'; + +import { ApiContractV1 } from './contract'; + +export const OpenAPIV1 = generateOpenApi( + ApiContractV1, + { + info: { + title: 'Documenso API', + version: '1.0.0', + description: 'The Documenso API for retrieving, creating, updating and deleting documents.', + }, + }, + { + setOperationId: true, + }, +); +``` + +Then, the Swagger UI takes the OpenAPI specification as a prop and generates the documentation. The code below shows the component responsible for generating the documentation. + +```ts +'use client'; + +import SwaggerUI from 'swagger-ui-react'; +import 'swagger-ui-react/swagger-ui.css'; + +import { OpenAPIV1 } from '@documenso/api/v1/openapi'; + +export const OpenApiDocsPage = () => { + return ; +}; + +export default OpenApiDocsPage; +``` + +Lastly, we create an API endpoint to display the Swagger documentation. The code below dynamically imports the `OpenApiDocsPage` component and displays it. + +```ts +'use client'; + +import dynamic from 'next/dynamic'; + +const Docs = dynamic(async () => import('@documenso/api/v1/api-documentation'), { + ssr: false, +}); + +export default function OpenApiDocsPage() { + return ; +} +``` + +You can access and play around with the documentation at [documenso.com/api/v1/openapi](https://documenso.com/api/v1/openapi). You should see a page like the one shown in the screenshot below. + +![The documentation for the Documenso API](docs.webp) + +> This article shows how to [generate Swagger documentation for a Next.js API](https://catalins.tech/generate-swagger-documentation-next-js-api/). + +So, that's how we went about building the first iteration of the public API after taking into consideration all the constraints and the current needs. The [GitHub pull request for the API](https://github.com/documenso/documenso/pull/674) is publicly available on GitHub. You can go through it at your own pace. + +## Conclusion + +The current architecture and approach work well for our current stage and needs. However, as we continue to grow and evolve, our architecture and approach will likely need to adapt. We monitor API usage and performance regularly and collect feedback from users. This enables us to find areas for improvement, understand our users' needs, and make informed decisions about the next steps. diff --git a/apps/marketing/public/blog/api-implementation.webp b/apps/marketing/public/blog/api-implementation.webp new file mode 100644 index 0000000000000000000000000000000000000000..575df5dab95ab53bc3cfae13c26745897c89cac2 GIT binary patch literal 56982 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%0DNY?b$G>x{Ng{mc#hw~!KFDu z?Y7vb$e;&wv<~!>RO05Rb4(ZS5ev{d%^Bea1>%Taw-xL%6@)){fM#DOkIKKDccJth zx7OeZ=?VA<>=cRKaG%boWo!8p1rhD=?i|&)hDH8L7sh^jx6tp02E(VnU{Em6T_jSn zh%Q}leG*A>xr)DEzscb@s^c~vk^;PlCxk9H%=#c`8iFTyh*(1DG|>3Fb9>fS&)ytQMRu8v(#2nJBHyGQf^xx7E@ z@s6fVa^1JXY+^2v`jsuI@rLcx7BP={U+0Aa&53-YuW z8fkZ_-@+zkSr1Me1ZxWelH76tMvUtqogv>H4<~H*CmJXQL0~m=O_VK~Bgn99gBx@l zmb%`FJM>;WKZ4zVa5{PY5)Vct~^2a+#V7_ z)qvIvknTTl>lpil{ea`N*ktZ%^2|fp(myug7Z>|$$MG`7%!}o6M51n)Se_QBar8%Q+b*nZ-3(*4GWejS=_RL|r>O&wAVi8r&EH(Npk*70~ z#vCC!;T`?`6tHuH_2A*=gVP_DF4|d2JPD^8Rx(}m7i_) z>vOihG={V>Y zehAmA8C-c65YzNxdvQPA^^vW?+>S(J?mqrIp7!I6YIVG=Jae$U2q{S*0z`bhhY{lx z`ly2N{fj&c+Es=F4ig@1t5$n-G*Q1$Aq@0gJJ0atr7-{-;{1N~nSCRl{hJG3#65bJ z5f6_!sG_deB-1AIW7sCnZN~$B3x5vG6)W+F*oijqaxgn|1@s#X%JS9Wn=54yJs5Jr zi!Epy^bf|wVrr6x(IsFZ-e@w9;r*NpSTG4y@&&NAp2i?Y$x8#4ZRR|2KLhEOTwKF2RjC53{m0``nRm}EdrH34Inb`)sgGvpNnk$HZ7*Q zau}hkB=^azjd{v7AEYa-?QZWmjG>kZ!Q)+7&cojp%0DNU;|0(lT9PXZuk#aRZK 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 WkO^c0nZW-e@H(-Sp}Q*50d)t(H_|fz literal 0 HcmV?d00001 diff --git a/apps/marketing/public/blog/blog-author-catalin.webp b/apps/marketing/public/blog/blog-author-catalin.webp new file mode 100644 index 0000000000000000000000000000000000000000..19803d87d3421590c0c31afbe6eee3ec95bea7f5 GIT binary patch literal 18814 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 Ar2qf` literal 0 HcmV?d00001 diff --git a/apps/marketing/public/blog/docs.webp b/apps/marketing/public/blog/docs.webp new file mode 100644 index 0000000000000000000000000000000000000000..466b560b27fadbe4d349ab2b6d09fb778056723a GIT binary patch literal 135304 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 literal 0 HcmV?d00001 From ec7b69f1a45e5dc7788c9713f0ee418eababacb1 Mon Sep 17 00:00:00 2001 From: Catalin Pit <25515812+catalinpit@users.noreply.github.com> Date: Wed, 13 Mar 2024 11:59:12 +0200 Subject: [PATCH 02/11] implement feedback --- apps/marketing/content/blog/public-api.mdx | 27 ++++++++-------------- 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/apps/marketing/content/blog/public-api.mdx b/apps/marketing/content/blog/public-api.mdx index dd9a0b174..cb1ee660b 100644 --- a/apps/marketing/content/blog/public-api.mdx +++ b/apps/marketing/content/blog/public-api.mdx @@ -16,7 +16,7 @@ This article covers the process of building the public API for Documenso. It sta We decided to build the public API to open a new way of interacting with Documenso. While the web app does the job well, there are use cases where it's not enough. In those cases, the users might want to interact with the platform programmatically. Usually, that's for integrating Documenso with other applications. -The new public API enables them to do that. The users can integrate Documenso's functionalities within other applications to automate tasks, create custom solutions, and build custom workflows, to name just a few. +With the new public API that's now possible. You can integrate Documenso's functionalities within other applications to automate tasks, create custom solutions, and build custom workflows, to name just a few. The API provides 12 endpoints at the time of writing this article: @@ -58,11 +58,7 @@ That would mean creating a new codebase and building the API from scratch. Havin This approach has significant benefits. However, one major drawback is that it requires additional resources. -We'd have to spend a lot of time just on the core stuff, such as building and configuring the basic server. After that, we'd spend time implementing the endpoints and authorization, among other things. - -When the building is done, there will be another application to deploy and manage. - -All of this would stretch our already limited resources. +We'd have to spend a lot of time just on the core stuff, such as building and configuring the basic server. After that, we'd spend time implementing the endpoints and authorization, among other things. When the building is done, there will be another application to deploy and manage. All of this would stretch our already limited resources. So, we asked ourselves if there is another way of doing it without sacrificing the API quality and the developer experience. @@ -85,9 +81,7 @@ So, the main difference between the 2 is that `trpc-openapi` is like a plugin th ### Our choice -After analyzing and comparing the 2 options, we decided to go with `ts-rest` because of its benefits. - -Here's a paragraph from the `ts-rest` documentation that hits the nail on the head: +After analyzing and comparing the 2 options, we decided to go with `ts-rest` because of its benefits. Here's a paragraph from the `ts-rest` documentation that hits the nail on the head: > tRPC has many plugins to solve this issue by mapping the API implementation to a REST-like API, however, these approaches are often a bit clunky and reduce the safety of the system overall, ts-rest does this heavy lifting in the client and server implementations rather than requiring a second layer of abstraction and API endpoint(s) to be defined. @@ -98,7 +92,7 @@ We defined the following requirements for the API: - The API should use path-based versioning (e.g. `/v1`) - The system should use bearer tokens for API authentication - The API token should be a random string of 32 to 40 characters -- The system should encrypt the token and store the encrypted value +- The system should hash the token and store the hashed value - The system should only display the API token when it's created - The API should have self-generated documentation like Swagger - Users should be able to create an API key @@ -126,11 +120,11 @@ We defined the following requirements for the API: We also faced the following constraints while developing the API: -1. Resources +**1. Resources** Limited resources were one of the main constraints. We're a new startup with a relatively small team. Building and maintaining an additional application would strain our limited resources. -2. Technology stack +**2. Technology stack** Another constraint was the technology stack. Our tech stack includes TypeScript, Prisma, and tRPC, among others. We also use Vercel for hosting. @@ -140,7 +134,7 @@ Using familiar technologies also meant we could develop the API faster, as we di It's worth mentioning that this is not a permanent decision. We're open to moving the API to another codebase/tech stack when it makes sense (e.g. API is heavily used and needs better performance). -3. File uploads +**3. File uploads** Due to our current architecture, we support file uploads with a maximum size of 50 MB. To circumvent this, we created an additional step for uploading documents. @@ -150,9 +144,7 @@ Users make a POST request to the `/api/v1/documents` endpoint and the API respon ![API package diagram](api-package.webp) -Our codebase is a monorepo, so we created a new API package in the `packages` directory. It contains both the API implementation and its documentation. - -The main 2 blocks of the implementation consist of the API contract and the code for the API endpoints. +Our codebase is a monorepo, so we created a new API package in the `packages` directory. It contains both the API implementation and its documentation. The main 2 blocks of the implementation consist of the API contract and the code for the API endpoints. ![API implementation diagram](api-implementation.webp) @@ -223,14 +215,13 @@ export const ApiContractV1Implementation = createNextRoute(ApiContractV1, { There is a middleware, too, `authenticatedMiddleware`, that handles the authentication for API requests. It ensures that the API token exists and the token used has the appropriate privileges for the resource it accesses. -So, that's how the other endpoints work as well. The code differs, but the principles are the same. You can explore the [API implementation](https://github.com/documenso/documenso/blob/main/packages/api/v1/implementation.ts) and the [middleware code](https://github.com/documenso/documenso/blob/main/packages/api/v1/middleware/authenticated.ts) on GitHub. +That's how the other endpoints work as well. The code differs, but the principles are the same. You can explore the [API implementation](https://github.com/documenso/documenso/blob/main/packages/api/v1/implementation.ts) and the [middleware code](https://github.com/documenso/documenso/blob/main/packages/api/v1/middleware/authenticated.ts) on GitHub. ### Documentation For the documentation, we decided to use Swagger UI, which automatically generates the documentation from the OpenAPI specification. The OpenAPI specification describes an API containing the available endpoints and their HTTP request methods, authentication methods, and so on. Its purpose is to help both machines and humans understand the API without having to look at the code. - The Documenso OpenAPI specification is live [here](https://documenso.com/api/v1/openapi.json). Thankfully, `ts-rest` makes it seamless to generate the OpenAPI specification. From 6643c4b9fc4077b43b5e27b1f3a5a5677ebd3dcc Mon Sep 17 00:00:00 2001 From: Catalin Pit <25515812+catalinpit@users.noreply.github.com> Date: Wed, 13 Mar 2024 12:00:42 +0200 Subject: [PATCH 03/11] update author description --- apps/marketing/content/blog/public-api.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/marketing/content/blog/public-api.mdx b/apps/marketing/content/blog/public-api.mdx index cb1ee660b..e30a2e45a 100644 --- a/apps/marketing/content/blog/public-api.mdx +++ b/apps/marketing/content/blog/public-api.mdx @@ -3,7 +3,7 @@ title: 'Building the Documenso Public API - The Why and How' description: 'This article talks about the need for the public API and the process of building it. It also discusses the requirements we had to meet and the constraints we had to work within.' authorName: 'Catalin' authorImage: '/blog/blog-author-catalin.webp' -authorRole: 'Developer' +authorRole: 'I like to code and write' date: 2024-03-08 tags: - Development From a9bb559568917540f3274480ce10564f925f9d85 Mon Sep 17 00:00:00 2001 From: Catalin Pit <25515812+catalinpit@users.noreply.github.com> Date: Thu, 14 Mar 2024 10:56:46 +0200 Subject: [PATCH 04/11] fix: avoid opengraph image limit --- .../blog/[post]/opengraph/route.tsx | 77 +++++++++++++++++++ .../src/app/(marketing)/blog/[post]/page.tsx | 8 +- 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx new file mode 100644 index 000000000..906ee18cd --- /dev/null +++ b/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx @@ -0,0 +1,77 @@ +import { ImageResponse } from 'next/og'; +import { NextResponse } from 'next/server'; + +import { allBlogPosts } from 'contentlayer/generated'; + +export const runtime = 'edge'; + +const contentType = 'image/png'; + +const IMAGE_SIZE = { + width: 1200, + height: 630, +}; + +type BlogPostOpenGraphImageProps = { + params: { post: string }; +}; + +export async function GET(_request: Request, { params }: BlogPostOpenGraphImageProps) { + const blogPost = allBlogPosts.find((post) => post._raw.flattenedPath === `blog/${params.post}`); + + if (!blogPost) { + return NextResponse.json({ error: 'Not found' }, { status: 404 }); + } + + // The long urls are needed for a compiler optimisation on the Next.js side, lifting this up + // to a constant will break og image generation. + const [interBold, interRegular, backgroundImage, logoImage] = await Promise.all([ + fetch(new URL('@documenso/assets/fonts/inter-bold.ttf', import.meta.url)).then(async (res) => + res.arrayBuffer(), + ), + fetch(new URL('@documenso/assets/fonts/inter-regular.ttf', import.meta.url)).then(async (res) => + res.arrayBuffer(), + ), + fetch(new URL('@documenso/assets/images/background-blog-og.png', import.meta.url)).then( + async (res) => res.arrayBuffer(), + ), + fetch(new URL('@documenso/assets/logo.png', import.meta.url)).then(async (res) => + res.arrayBuffer(), + ), + ]); + + return new ImageResponse( + ( +

+ {/* @ts-expect-error Lack of typing from ImageResponse */} + og-background + + {/* @ts-expect-error Lack of typing from ImageResponse */} + logo + +

+ {blogPost.title} +

+ +

Written by {blogPost.authorName}

+
+ ), + { + ...IMAGE_SIZE, + fonts: [ + { + name: 'Inter', + data: interRegular, + style: 'normal', + weight: 400, + }, + { + name: 'Inter', + data: interBold, + style: 'normal', + weight: 700, + }, + ], + }, + ); +} diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx index bd5fdb2da..fc65d9772 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx @@ -25,6 +25,12 @@ export const generateMetadata = ({ params }: { params: { post: string } }) => { absolute: `${blogPost.title} - Documenso Blog`, }, description: blogPost.description, + openGraph: { + images: [`${blogPost.href}/opengraph`], + }, + twitter: { + images: [`${blogPost.href}/opengraph`], + }, }; }; @@ -94,7 +100,7 @@ export default function BlogPostPage({ params }: { params: { post: string } }) { - {post.cta && } + {post.cta && } ); } From d6c8a3d32c5939536f8c87e4b6938f03d35744f8 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Thu, 14 Mar 2024 09:20:01 +0000 Subject: [PATCH 05/11] fix: what happens if we use a dynamic import? --- .../src/app/(marketing)/blog/[post]/opengraph/route.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx index 906ee18cd..6f16b5092 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx @@ -1,12 +1,8 @@ import { ImageResponse } from 'next/og'; import { NextResponse } from 'next/server'; -import { allBlogPosts } from 'contentlayer/generated'; - export const runtime = 'edge'; -const contentType = 'image/png'; - const IMAGE_SIZE = { width: 1200, height: 630, @@ -17,6 +13,8 @@ type BlogPostOpenGraphImageProps = { }; export async function GET(_request: Request, { params }: BlogPostOpenGraphImageProps) { + const { allBlogPosts } = await import('contentlayer/generated'); + const blogPost = allBlogPosts.find((post) => post._raw.flattenedPath === `blog/${params.post}`); if (!blogPost) { From 4926b6de509b7b5942a16238030507faf7098f74 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Thu, 14 Mar 2024 09:40:26 +0000 Subject: [PATCH 06/11] fix: boring sign/verify approach --- .../blog/[post]/opengraph/route.tsx | 22 +++++++++++-------- .../src/app/(marketing)/blog/[post]/page.tsx | 18 +++++++++++++-- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx index 6f16b5092..f17a7931a 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx @@ -1,6 +1,8 @@ import { ImageResponse } from 'next/og'; import { NextResponse } from 'next/server'; +import { verify } from '@documenso/lib/server-only/crypto/verify'; + export const runtime = 'edge'; const IMAGE_SIZE = { @@ -8,16 +10,18 @@ const IMAGE_SIZE = { height: 630, }; -type BlogPostOpenGraphImageProps = { - params: { post: string }; -}; +export async function GET(_request: Request) { + const url = new URL(_request.url); -export async function GET(_request: Request, { params }: BlogPostOpenGraphImageProps) { - const { allBlogPosts } = await import('contentlayer/generated'); + const signature = url.searchParams.get('sig'); + const title = url.searchParams.get('title'); + const author = url.searchParams.get('author'); - const blogPost = allBlogPosts.find((post) => post._raw.flattenedPath === `blog/${params.post}`); + if (!title || !author || !signature) { + return NextResponse.json({ error: 'Not found' }, { status: 404 }); + } - if (!blogPost) { + if (!verify({ title, author }, signature)) { return NextResponse.json({ error: 'Not found' }, { status: 404 }); } @@ -48,10 +52,10 @@ export async function GET(_request: Request, { params }: BlogPostOpenGraphImageP logo

- {blogPost.title} + {title}

-

Written by {blogPost.authorName}

+

Written by {author}

), { diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx index fc65d9772..d8ef587c4 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx @@ -7,6 +7,8 @@ import { ChevronLeft } from 'lucide-react'; import type { MDXComponents } from 'mdx/types'; import { useMDXComponent } from 'next-contentlayer/hooks'; +import { sign } from '@documenso/lib/server-only/crypto/sign'; + import { CallToAction } from '~/components/(marketing)/call-to-action'; export const dynamic = 'force-dynamic'; @@ -20,16 +22,28 @@ export const generateMetadata = ({ params }: { params: { post: string } }) => { }; } + const signature = sign({ + title: blogPost.title, + author: blogPost.authorName, + }); + + // Use the url constructor to ensure that things are escaped as they should be + const openGraphImageUrl = new URL(`${blogPost.href}/opengraph`); + + openGraphImageUrl.searchParams.set('title', blogPost.title); + openGraphImageUrl.searchParams.set('author', blogPost.authorName); + openGraphImageUrl.searchParams.set('sig', signature); + return { title: { absolute: `${blogPost.title} - Documenso Blog`, }, description: blogPost.description, openGraph: { - images: [`${blogPost.href}/opengraph`], + images: [openGraphImageUrl.toString()], }, twitter: { - images: [`${blogPost.href}/opengraph`], + images: [openGraphImageUrl.toString()], }, }; }; From f5967e28c3fa751b54e1c9ad79bbb04ee52641b9 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Thu, 14 Mar 2024 10:02:09 +0000 Subject: [PATCH 07/11] fix: without protection? --- .../blog/[post]/opengraph-image.tsx | 76 ------------------- .../blog/[post]/opengraph/route.tsx | 9 +-- 2 files changed, 1 insertion(+), 84 deletions(-) delete mode 100644 apps/marketing/src/app/(marketing)/blog/[post]/opengraph-image.tsx diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/opengraph-image.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/opengraph-image.tsx deleted file mode 100644 index 4c01967d2..000000000 --- a/apps/marketing/src/app/(marketing)/blog/[post]/opengraph-image.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { ImageResponse } from 'next/og'; - -import { allBlogPosts } from 'contentlayer/generated'; - -export const runtime = 'edge'; - -export const contentType = 'image/png'; - -export const IMAGE_SIZE = { - width: 1200, - height: 630, -}; - -type BlogPostOpenGraphImageProps = { - params: { post: string }; -}; - -export default async function BlogPostOpenGraphImage({ params }: BlogPostOpenGraphImageProps) { - const blogPost = allBlogPosts.find((post) => post._raw.flattenedPath === `blog/${params.post}`); - - if (!blogPost) { - return null; - } - - // The long urls are needed for a compiler optimisation on the Next.js side, lifting this up - // to a constant will break og image generation. - const [interBold, interRegular, backgroundImage, logoImage] = await Promise.all([ - fetch(new URL('@documenso/assets/fonts/inter-bold.ttf', import.meta.url)).then(async (res) => - res.arrayBuffer(), - ), - fetch(new URL('@documenso/assets/fonts/inter-regular.ttf', import.meta.url)).then(async (res) => - res.arrayBuffer(), - ), - fetch(new URL('@documenso/assets/images/background-blog-og.png', import.meta.url)).then( - async (res) => res.arrayBuffer(), - ), - fetch(new URL('@documenso/assets/logo.png', import.meta.url)).then(async (res) => - res.arrayBuffer(), - ), - ]); - - return new ImageResponse( - ( -
- {/* @ts-expect-error Lack of typing from ImageResponse */} - og-background - - {/* @ts-expect-error Lack of typing from ImageResponse */} - logo - -

- {blogPost.title} -

- -

Written by {blogPost.authorName}

-
- ), - { - ...IMAGE_SIZE, - fonts: [ - { - name: 'Inter', - data: interRegular, - style: 'normal', - weight: 400, - }, - { - name: 'Inter', - data: interBold, - style: 'normal', - weight: 700, - }, - ], - }, - ); -} diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx index f17a7931a..70233bbdd 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/opengraph/route.tsx @@ -1,8 +1,6 @@ import { ImageResponse } from 'next/og'; import { NextResponse } from 'next/server'; -import { verify } from '@documenso/lib/server-only/crypto/verify'; - export const runtime = 'edge'; const IMAGE_SIZE = { @@ -13,15 +11,10 @@ const IMAGE_SIZE = { export async function GET(_request: Request) { const url = new URL(_request.url); - const signature = url.searchParams.get('sig'); const title = url.searchParams.get('title'); const author = url.searchParams.get('author'); - if (!title || !author || !signature) { - return NextResponse.json({ error: 'Not found' }, { status: 404 }); - } - - if (!verify({ title, author }, signature)) { + if (!title || !author) { return NextResponse.json({ error: 'Not found' }, { status: 404 }); } From 0db2e6643dd8678283eb3b1ab3ab499bfe62a0fc Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Thu, 14 Mar 2024 10:39:48 +0000 Subject: [PATCH 08/11] fix: final final v2 --- .../src/app/(marketing)/blog/[post]/page.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx index d8ef587c4..b0d59edc1 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx @@ -28,11 +28,11 @@ export const generateMetadata = ({ params }: { params: { post: string } }) => { }); // Use the url constructor to ensure that things are escaped as they should be - const openGraphImageUrl = new URL(`${blogPost.href}/opengraph`); - - openGraphImageUrl.searchParams.set('title', blogPost.title); - openGraphImageUrl.searchParams.set('author', blogPost.authorName); - openGraphImageUrl.searchParams.set('sig', signature); + const searchParams = new URLSearchParams({ + title: blogPost.title, + author: blogPost.authorName, + sig: signature, + }); return { title: { @@ -40,10 +40,10 @@ export const generateMetadata = ({ params }: { params: { post: string } }) => { }, description: blogPost.description, openGraph: { - images: [openGraphImageUrl.toString()], + images: [`${blogPost.href}/opengraph?${searchParams.toString()}`], }, twitter: { - images: [openGraphImageUrl.toString()], + images: [`${blogPost.href}/opengraph?${searchParams.toString()}`], }, }; }; From 524a7918d55754a7c26e107f268db298cd7a3eb3 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Thu, 14 Mar 2024 10:41:59 +0000 Subject: [PATCH 09/11] fix: toss the signature --- apps/marketing/src/app/(marketing)/blog/[post]/page.tsx | 8 -------- 1 file changed, 8 deletions(-) diff --git a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx index b0d59edc1..3e50f8305 100644 --- a/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx +++ b/apps/marketing/src/app/(marketing)/blog/[post]/page.tsx @@ -7,8 +7,6 @@ import { ChevronLeft } from 'lucide-react'; import type { MDXComponents } from 'mdx/types'; import { useMDXComponent } from 'next-contentlayer/hooks'; -import { sign } from '@documenso/lib/server-only/crypto/sign'; - import { CallToAction } from '~/components/(marketing)/call-to-action'; export const dynamic = 'force-dynamic'; @@ -22,16 +20,10 @@ export const generateMetadata = ({ params }: { params: { post: string } }) => { }; } - const signature = sign({ - title: blogPost.title, - author: blogPost.authorName, - }); - // Use the url constructor to ensure that things are escaped as they should be const searchParams = new URLSearchParams({ title: blogPost.title, author: blogPost.authorName, - sig: signature, }); return { From d5c4885c67a0a71aabf0c370b5a19e77da4de119 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Thu, 14 Mar 2024 12:39:09 +0000 Subject: [PATCH 10/11] fix: update signup form to handle password managers better --- apps/web/src/app/(unauthenticated)/layout.tsx | 2 +- .../src/app/(unauthenticated)/signup/page.tsx | 2 +- apps/web/src/components/forms/v2/signup.tsx | 32 ++++++++----------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/apps/web/src/app/(unauthenticated)/layout.tsx b/apps/web/src/app/(unauthenticated)/layout.tsx index 03a73278f..05055d508 100644 --- a/apps/web/src/app/(unauthenticated)/layout.tsx +++ b/apps/web/src/app/(unauthenticated)/layout.tsx @@ -10,7 +10,7 @@ type UnauthenticatedLayoutProps = { export default function UnauthenticatedLayout({ children }: UnauthenticatedLayoutProps) { return ( -
+
diff --git a/apps/web/src/components/forms/v2/signup.tsx b/apps/web/src/components/forms/v2/signup.tsx index a7e33a759..b3b502993 100644 --- a/apps/web/src/components/forms/v2/signup.tsx +++ b/apps/web/src/components/forms/v2/signup.tsx @@ -108,17 +108,6 @@ export const SignUpFormV2 = ({ const name = form.watch('name'); const url = form.watch('url'); - // To continue we need to make sure name, email, password and signature are valid - const canContinue = - form.formState.dirtyFields.name && - form.formState.errors.name === undefined && - form.formState.dirtyFields.email && - form.formState.errors.email === undefined && - form.formState.dirtyFields.password && - form.formState.errors.password === undefined && - form.formState.dirtyFields.signature && - form.formState.errors.signature === undefined; - const { mutateAsync: signup } = trpc.auth.signup.useMutation(); const onFormSubmit = async ({ name, email, password, signature, url }: TSignUpFormV2Schema) => { @@ -169,6 +158,14 @@ export const SignUpFormV2 = ({ } }; + const onNextClick = async () => { + const valid = await form.trigger(['name', 'email', 'password', 'signature']); + + if (valid) { + setStep('CLAIM_USERNAME'); + } + }; + const onSignUpWithGoogleClick = async () => { try { await signIn('google', { callbackUrl: SIGN_UP_REDIRECT_PATH }); @@ -224,7 +221,7 @@ export const SignUpFormV2 = ({
-
+
{step === 'BASIC_DETAILS' && (

Create a new account

@@ -257,8 +254,8 @@ export const SignUpFormV2 = ({ {step === 'BASIC_DETAILS' && (
@@ -360,8 +357,8 @@ export const SignUpFormV2 = ({ {step === 'CLAIM_USERNAME' && (
@@ -431,9 +428,8 @@ export const SignUpFormV2 = ({ type="button" size="lg" className="flex-1 disabled:cursor-not-allowed" - disabled={!canContinue} loading={form.formState.isSubmitting} - onClick={() => setStep('CLAIM_USERNAME')} + onClick={onNextClick} > Next From fd4d5468cfc331f221d4e2d1a74ae60ac6af7fb4 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Thu, 14 Mar 2024 23:52:49 +1100 Subject: [PATCH 11/11] fix: use gif for readme --- README.md | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 93c6d9f95..b83df450a 100644 --- a/README.md +++ b/README.md @@ -30,17 +30,8 @@ Contributor Covenant

-
- - - - - +
+
## About this project