diff --git a/docs/basics/errors.es.md b/docs/basics/errors.es.md
index 58b87246b..7153006cf 100644
--- a/docs/basics/errors.es.md
+++ b/docs/basics/errors.es.md
@@ -136,51 +136,6 @@ struct MyError: DebuggableError {
 
 `DebuggableError` tiene otras propiedades como `possibleCauses` y `suggestedFixes` que puedes usar para mejorar la depuración de tus errores. Echa un vistazo al protocolo para más información.
 
-## Stack Traces (Trazas de Pila)
-
-Vapor incluye soporte para visualizar stack traces para errores normales y crashes de Swift. 
-
-### Swift Backtrace
-
-Vapor usa la librería de [SwiftBacktrace](https://github.com/swift-server/swift-backtrace) para proporcionar stack traces después de un error crítico (fatal error) o comprobaciones (assertion) en Linux. Para que esto funcione, tu app debe incluir símbolos de depuración (debug symbols) durante la compilación.
-
-```sh
-swift build -c release -Xswiftc -g
-```
-
-### Trazas de Error
-
-Por defecto, `Abort` capturará el stack trace actual al inicializarse. Tus tipos de errores personalizados pueden conseguir esto conformándose con `DebuggableError` y guardando `StackTrace.capture()`.
-
-```swift
-import Vapor
-
-struct MyError: DebuggableError {
-    var identifier: String
-    var reason: String
-    var stackTrace: StackTrace?
-
-    init(
-        identifier: String,
-        reason: String,
-        stackTrace: StackTrace? = .capture()
-    ) {
-        self.identifier = identifier
-        self.reason = reason
-        self.stackTrace = stackTrace
-    }
-}
-```
-
-Cuando el [nivel de registro](logging.es.md#nivel) de tu app se establece a `.debug` o inferior, stack traces de errores se incluirán en los registros. 
-
-Los stack traces no serán capturados cuando el nivel de registro sea mayor que `.debug`. Para sobrescribir este comportamiento, establece `StackTrace.isCaptureEnabled` manualmente en `configure`. 
-
-```swift
-// Siempre captura stack traces, sin importar el nivel de registro.
-StackTrace.isCaptureEnabled = true
-```
-
 ## Middleware de Error
 
 `ErrorMiddleware` es el único middleware añadido a tu aplicación por defecto. Este middleware transforma errores de Swift que hayan sido lanzados o devueltos por tus controladores de rutas en respuestas HTTP. Sin este middleware, los errores lanzados darían lugar al cierre de la conexión sin una respuesta. 
diff --git a/docs/basics/validation.es.md b/docs/basics/validation.es.md
index 9cfbb7e82..122514006 100644
--- a/docs/basics/validation.es.md
+++ b/docs/basics/validation.es.md
@@ -1,6 +1,6 @@
 # Validación
 
-La API Validation de Vapor te ayuda a validar peticiones entrantes antes de usar la API [Content](content.md) para decodificar datos. 
+La API Validation de Vapor te ayuda a validar el cuerpo y los parámetros de consulta de una solicitud entrante antes de usar la API [Content](content.md) para decodificar datos.
 
 ## Introducción 
 
@@ -220,7 +220,7 @@ Debajo tienes una lista de los validadores soportados actualmente y una breve ex
 |`.range(_:)`|El valor se encuentra en el `Range` (rango) proporcionado.|
 |`.url`|Contiene una URL válida.|
 
-Los validadores también pueden combinarse mediante operadores para construir validaciones complejas. 
+Los validadores también pueden combinarse mediante operadores para construir validaciones complejas. Más información sobre el validador `.custom` en [[#Validadores Personalizados]].
 
 |Operador|Posición|Descripción|
 |-|-|-|
@@ -230,7 +230,11 @@ Los validadores también pueden combinarse mediante operadores para construir va
 
 ## Validadores Personalizados
 
-Crear un validador personalizado para códigos postales te permite extender la funcionalidad del marco de validación. En esta sección, te guiaremos a través de los pasos para crear un validador personalizado que valide códigos postales.
+Hay dos formas de crear validadores personalizados.
+
+### Extendiendo la API Validation
+
+Extendiendo la API Validation es la mejor opción para los casos en los que planees utilizar el validador personalizado en más de un objeto `Content`. En esta sección, te guiaremos por los pasos para crear un validador personalizado para validar códigos postales.
 
 Primero, crea un nuevo tipo para representar los resultados de la validación de `ZipCode`. Esta estructura será responsable de informar si una cadena dada es un código postal válido.
 
@@ -287,3 +291,45 @@ Ahora que has definido el validador personalizado `zipCode`, puedes usarlo para
 ```swift
 validations.add("zipCode", as: String.self, is: .zipCode)
 ```
+
+### Validador `Custom`
+
+El validador `Custom` es el más adecuado para los casos en los que deseas validar una propiedad en un solo objeto `Content`. Esta implementación tiene las siguientes dos ventajas en comparación con la extensión de la API Validation:
+
+- Lógica de validación personalizada más sencilla de implementar.
+- Sintaxis más corta.
+
+En esta sección, te guiaremos a través de los pasos para crear un validador personalizado para verificar si un empleado es parte de nuestra empresa mirando la propiedad `nameAndSurname`.
+
+```swift
+let allCompanyEmployees: [String] = [
+  "Everett Erickson",
+  "Sabrina Manning",
+  "Seth Gates",
+  "Melina Hobbs",
+  "Brendan Wade",
+  "Evie Richardson",
+]
+
+struct Employee: Content {
+  var nameAndSurname: String
+  var email: String
+  var age: Int
+  var role: String
+
+  static func validations(_ validations: inout Validations) {
+    validations.add(
+      "nameAndSurname",
+      as: String.self,
+      is: .custom("Validates whether employee is part of XYZ company by looking at name and surname.") { nameAndSurname in
+          for employee in allCompanyEmployees {
+            if employee == nameAndSurname {
+              return true
+            }
+          }
+          return false
+        }
+    )
+  }
+}
+```
diff --git a/docs/basics/validation.md b/docs/basics/validation.md
index e1484cc6f..78cd7ecfa 100644
--- a/docs/basics/validation.md
+++ b/docs/basics/validation.md
@@ -294,6 +294,7 @@ Now that you've defined the custom `zipCode` validator, you can use it to valida
 ```swift
 validations.add("zipCode", as: String.self, is: .zipCode)
 ```
+
 ### `Custom` Validator
 
 The `Custom` validator is best suited for cases where you want to validate a property in only one `Content` object. This implementation has the following two advantages compared to extending the Validation API:
@@ -301,7 +302,7 @@ The `Custom` validator is best suited for cases where you want to validate a pro
 - Simpler to implement custom validation logic.
 - Shorter syntax.
 
-In this section, we'll walk you through the steps to create a custom validator for checking whether an employee is part of our company by looking at the `nameAndSurname` property. 
+In this section, we'll walk you through the steps to create a custom validator for checking whether an employee is part of our company by looking at the `nameAndSurname` property.
 
 ```swift
 let allCompanyEmployees: [String] = [