diff --git a/doc/api/esm.md b/doc/api/esm.md
index 122fddc4854d8c..c4bed1c690df2d 100644
--- a/doc/api/esm.md
+++ b/doc/api/esm.md
@@ -1010,7 +1010,7 @@ prints the current version of CoffeeScript per the module at the URL in
Sources that are in formats Node.js doesn’t understand can be converted into
JavaScript using the [`load` hook][load hook]. Before that hook gets called,
-however, a [`resolve` hook][resolve hook] hook needs to tell Node.js not to
+however, a [`resolve` hook][resolve hook] needs to tell Node.js not to
throw an error on unknown file types.
This is less performant than transpiling source files before running
diff --git a/doc/api/perf_hooks.md b/doc/api/perf_hooks.md
index ea6ffbef53689d..58f3bb8259195f 100644
--- a/doc/api/perf_hooks.md
+++ b/doc/api/perf_hooks.md
@@ -1076,7 +1076,7 @@ added:
- v16.14.0
-->
-* `percentile` {number} A percentile value in the range (0, 100).
+* `percentile` {number} A percentile value in the range (0, 100].
* Returns: {bigint}
Returns the value at the given percentile.
diff --git a/doc/api/process.md b/doc/api/process.md
index 38ba85dbc41b9b..fe5dc483493f30 100644
--- a/doc/api/process.md
+++ b/doc/api/process.md
@@ -3540,7 +3540,7 @@ Synchronous writes avoid problems such as output written with `console.log()` or
_**Warning**_: Synchronous writes block the event loop until the write has
completed. This can be near instantaneous in the case of output to a file, but
under high system load, pipes that are not being read at the receiving end, or
-with slow terminals or file systems, its possible for the event loop to be
+with slow terminals or file systems, it's possible for the event loop to be
blocked often enough and long enough to have severe negative performance
impacts. This may not be a problem when writing to an interactive terminal
session, but consider this particularly careful when doing production logging to
diff --git a/doc/api/readline.md b/doc/api/readline.md
index 0ae536ac302715..636dbc7a7a78de 100644
--- a/doc/api/readline.md
+++ b/doc/api/readline.md
@@ -1343,7 +1343,7 @@ const { createInterface } = require('readline');
Ctrl+E |
- Go to to end of line |
+ Go to end of line |
|
diff --git a/doc/api/tls.md b/doc/api/tls.md
index 0402bdcd97ebcc..d082ed3c80587a 100644
--- a/doc/api/tls.md
+++ b/doc/api/tls.md
@@ -228,7 +228,7 @@ To use session tickets across server restarts or load balancers, servers must
all have the same ticket keys. There are three 16-byte keys internally, but the
tls API exposes them as a single 48-byte buffer for convenience.
-Its possible to get the ticket keys by calling [`server.getTicketKeys()`][] on
+It's possible to get the ticket keys by calling [`server.getTicketKeys()`][] on
one server instance and then distribute them, but it is more reasonable to
securely generate 48 bytes of secure random data and set them with the
`ticketKeys` option of [`tls.createServer()`][]. The keys should be regularly
diff --git a/doc/api/vm.md b/doc/api/vm.md
index cbb16c602ee71c..1938b9008afeb4 100644
--- a/doc/api/vm.md
+++ b/doc/api/vm.md
@@ -1053,7 +1053,7 @@ current V8 isolate, or the main context.
* `options` {Object} Optional.
* `mode` {string} Either `'summary'` or `'detailed'`. In summary mode,
only the memory measured for the main context will be returned. In
- detailed mode, the measure measured for all contexts known to the
+ detailed mode, the memory measured for all contexts known to the
current V8 isolate will be returned.
**Default:** `'summary'`
* `execution` {string} Either `'default'` or `'eager'`. With default
diff --git a/doc/api/zlib.md b/doc/api/zlib.md
index 77e19cb4d5cf22..0b1a7cc7ca47ba 100644
--- a/doc/api/zlib.md
+++ b/doc/api/zlib.md
@@ -117,7 +117,7 @@ for (let i = 0; i < 30000; ++i) {
In the preceding example, 30,000 deflate instances are created concurrently.
Because of how some operating systems handle memory allocation and
-deallocation, this may lead to to significant memory fragmentation.
+deallocation, this may lead to significant memory fragmentation.
It is strongly recommended that the results of compression
operations be cached to avoid duplication of effort.
diff --git a/doc/contributing/maintaining-openssl.md b/doc/contributing/maintaining-openssl.md
index 25a58e2f440cc5..76fcec9ee9e2d8 100644
--- a/doc/contributing/maintaining-openssl.md
+++ b/doc/contributing/maintaining-openssl.md
@@ -25,7 +25,7 @@ Details on the fork, as well as the latest sources, can be found at
.
Branches are used per OpenSSL version (for instance,
-.
+).
## Requirements
diff --git a/doc/contributing/pull-requests.md b/doc/contributing/pull-requests.md
index bc0d072484897f..6c54b6eee581c2 100644
--- a/doc/contributing/pull-requests.md
+++ b/doc/contributing/pull-requests.md
@@ -437,7 +437,7 @@ check with the contributor to see if they intend to continue the work before
checking if they would mind if you took it over (especially if it just has
nits left). When doing so, it is courteous to give the original contributor
credit for the work they started (either by preserving their name and email
-address in the commit log, or by using an `Author:` meta-data tag in the
+address) in the commit log, or by using an `Author:` meta-data tag in the
commit.
### Approving a change
diff --git a/doc/contributing/static-analysis.md b/doc/contributing/static-analysis.md
index 6c4a03883c7caf..46ee0c3649f873 100644
--- a/doc/contributing/static-analysis.md
+++ b/doc/contributing/static-analysis.md
@@ -13,4 +13,4 @@ titled `Please add me to coverity`. A member of the build WG with admin
access will verify that the requestor is an existing collaborator as listed in
the [collaborators section](https://github.com/nodejs/node#collaborators)
on the nodejs/node project repo. Once validated the requestor will added
-to to the coverity project.
+to the coverity project.