diff --git a/web/src/Routes.tsx b/web/src/Routes.tsx
index 91d11c8d9355513d498e844b799fe17d2340ad2e..200a05cce6341b8d0a6796135fea3fd93762aed4 100644
--- a/web/src/Routes.tsx
+++ b/web/src/Routes.tsx
@@ -13,6 +13,7 @@ import { Home } from './pages/home'
 import { Implementations } from './pages/implementations'
 import { NotFound } from './pages/not-found'
 import { Patterns } from './pages/patterns'
+import { Reports } from './pages/reports'
 
 const Routes = () => {
   return (
@@ -21,6 +22,7 @@ const Routes = () => {
       <Route path="/" page={Home} name="home" />
       <Route path="/patterns" page={Patterns} name="patterns" />
       <Route path="/implementations" page={Implementations} name="implementations" />
+      <Route path="/reports" page={Reports} name="reports" />
     </Router>
   )
 }
diff --git a/web/src/pages/implementations/implementations.spec.tsx b/web/src/pages/implementations/implementations.spec.tsx
index 4453a4ffa0e56a5bdccaeadbfbb1dee510da6b92..2706a015d74990d74531f055f8e859eb453aa103 100644
--- a/web/src/pages/implementations/implementations.spec.tsx
+++ b/web/src/pages/implementations/implementations.spec.tsx
@@ -7,6 +7,6 @@ describe('Implementations page', () => {
     RTL.render(<Implementations />)
 
     RTL.screen.getByText('Implementaciones')
-    RTL.screen.getByText(/contenido de implementaciones 2/i)
+    RTL.screen.getByText(/contenido de implementaciones/i)
   })
 })
diff --git a/web/src/pages/implementations/implementations.tsx b/web/src/pages/implementations/implementations.tsx
index ffa99d45e8847e30be194931e9c9799aa347c792..53b78a5c6330e8d83dff01f2787ba39e6836f0a1 100644
--- a/web/src/pages/implementations/implementations.tsx
+++ b/web/src/pages/implementations/implementations.tsx
@@ -9,7 +9,7 @@ export const Implementations = () => {
         Implementaciones
       </Heading>
       <Text fontSize="lg" mb="4">
-        Contenido de implementaciones 2
+        Contenido de implementaciones
       </Text>
     </Box>
   )
diff --git a/web/src/pages/reports/index.ts b/web/src/pages/reports/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6f39093024f8af714e1f9f43fea8003f1d337ec3
--- /dev/null
+++ b/web/src/pages/reports/index.ts
@@ -0,0 +1 @@
+export * from './reports'
diff --git a/web/src/pages/reports/reports.spec.tsx b/web/src/pages/reports/reports.spec.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..f16813a4856edb215c9a904f94974374565c82c2
--- /dev/null
+++ b/web/src/pages/reports/reports.spec.tsx
@@ -0,0 +1,12 @@
+import * as RTL from '@redwoodjs/testing/web'
+
+import { Reports } from '.'
+
+describe('Reports page', () => {
+  it('renders successfully', () => {
+    RTL.render(<Reports />)
+
+    RTL.screen.getByText('Reportes')
+    RTL.screen.getByText(/contenido de reportes/i)
+  })
+})
diff --git a/web/src/pages/reports/reports.stories.tsx b/web/src/pages/reports/reports.stories.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..1d5b5fcf43a40d4d6a33e379b8c0e75ae51a931a
--- /dev/null
+++ b/web/src/pages/reports/reports.stories.tsx
@@ -0,0 +1,12 @@
+import type { StoryObj } from '@storybook/react'
+
+import { Reports } from '.'
+
+export default {
+  component: Reports,
+  title: 'Reports page',
+}
+
+export const Default: StoryObj<typeof Reports> = {
+  render: () => <Reports />,
+}
diff --git a/web/src/pages/reports/reports.tsx b/web/src/pages/reports/reports.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..cb4e288eb6083d412036ba59b7437c4061f97d91
--- /dev/null
+++ b/web/src/pages/reports/reports.tsx
@@ -0,0 +1,16 @@
+import React from 'react'
+
+import { Text, Heading, Box } from '@chakra-ui/react'
+
+export const Reports = () => {
+  return (
+    <Box>
+      <Heading as="h1" size="xl" mb="6">
+        Reportes
+      </Heading>
+      <Text fontSize="lg" mb="4">
+        Contenido de reportes
+      </Text>
+    </Box>
+  )
+}