diff --git a/.env.dev b/.env.dev
index 2ed15c3007c7c2e7df64232fc86d1b892c58f3de..cfae5ca996d0db5135691be5042f8855d0c2cb20 100644
--- a/.env.dev
+++ b/.env.dev
@@ -1 +1 @@
-REDWOOD_ENV_API_URL=https://localhost:8080
+REDWOOD_ENV_API_URL=https://localhost:8080/api
diff --git a/web/package.json b/web/package.json
index 4ec5c55b72a71e50d7a29860af6acf4e583c19ff..e4c9759ff9db0783fb8bc2b07affceaeecb60a31 100644
--- a/web/package.json
+++ b/web/package.json
@@ -22,7 +22,8 @@
     "prop-types": "15.8.1",
     "react": "18.2.0",
     "react-dom": "18.2.0",
-    "react-query": "^3.39.3"
+    "react-query": "^3.39.3",
+    "ts-pattern": "^5.0.8"
   },
   "devDependencies": {
     "@chakra-ui/storybook-addon": "^5.1.0",
@@ -31,8 +32,7 @@
     "@types/react-dom": "18.2.15"
   },
   "scripts": {
-    "start_new": "yarn run copy-env && rw dev",
-    "start_aux": "rw",
+    "start": "yarn run copy-env && rw dev",
     "test": "rw test a",
     "test:watch": "rw test --watch",
     "test-coverage": "rw test a --no-watch --collect-coverage",
diff --git a/web/public/env.js b/web/public/env.js
index dae11de18343839a36a9d6c0c66119823f6cb33e..5b819f23a96c53fce6ccc69ca8b5ce0d2f1fb539 100644
--- a/web/public/env.js
+++ b/web/public/env.js
@@ -1 +1 @@
-window.env = {"REDWOOD_ENV_API_URL":"http://localhost:8080"};
\ No newline at end of file
+window.env = {"REDWOOD_ENV_API_URL":"http://localhost:8080/api"};
\ No newline at end of file
diff --git a/web/scripts/copy-env.js b/web/scripts/copy-env.js
index d1c276cadaaefc49af89ba2a50354a3037316403..230850aeb309ec0db01e6ad422e2cc07e87970c1 100644
--- a/web/scripts/copy-env.js
+++ b/web/scripts/copy-env.js
@@ -15,9 +15,6 @@ const convertFile = (source, destination) => {
     if (err) {
       throw err
     }
-
-    // eslint-disable-next-line no-console
-    console.log(`Converted ${source} to ${destination}`)
   })
 }
 
diff --git a/web/src/pages/Patterns/patterns.tsx b/web/src/pages/Patterns/patterns.tsx
index 1b019f8e0347efa8e17d591851659af507eb51a0..912a72573851d1dfe09ef8f044d6ef93217da91c 100644
--- a/web/src/pages/Patterns/patterns.tsx
+++ b/web/src/pages/Patterns/patterns.tsx
@@ -16,20 +16,20 @@ import {
   HStack,
   Icon,
   IconButton,
+  Spinner,
 } from '@chakra-ui/react'
 import { FaEdit, FaEye, FaPlus, FaTrash } from 'react-icons/fa'
 import { Link, routes } from '@redwoodjs/router'
 import { patterns } from '.'
 import { Pattern } from 'src/models'
 import { GetPatternsQuery } from './query-builder'
+import { match } from 'ts-pattern'
 
 const tableHeaders = ['Titulo', 'Descripcion', '#Implementaciones', '']
 
 export const Patterns: React.FC = () => {
   const patternsQuery = GetPatternsQuery.useQuery({})
 
-  console.log({ status: patternsQuery.status, data: patternsQuery.data })
-
   return (
     <VStack alignItems="flex-start" spacing="0">
       <Heading as="h2" px="6">
@@ -46,30 +46,38 @@ export const Patterns: React.FC = () => {
             </Tr>
           </Thead>
           <Tbody>
-            {patterns.map((pattern, index) => (
-              <Tr key={`pattern-${pattern.title}-${index}`}>
-                <Td>
-                  <Link to={routes.pattern({ id: pattern.id })}>
-                    {pattern.title}
-                  </Link>
-                </Td>
-                <Td>
-                  <Tooltip label={pattern.description} hasArrow>
-                    <Text isTruncated maxW="sm">
-                      {pattern.description}
-                    </Text>
-                  </Tooltip>
-                </Td>
-                <Td>
-                  <Text textAlign="center">
-                    {pattern.numberOfImplementations}
-                  </Text>
-                </Td>
-                <Td>
-                  <ActionsRow pattern={pattern} />
-                </Td>
-              </Tr>
-            ))}
+            {match(patternsQuery)
+              .with({ status: 'success', data: [] }, () => (
+                <Text>No se encontraron patrones</Text>
+              ))
+              .with({ status: 'success' }, ({ data }) =>
+                data.map((pattern, index) => (
+                  <Tr key={`pattern-${pattern.title}-${index}`}>
+                    <Td>
+                      <Link to={routes.pattern({ id: pattern.id })}>
+                        {pattern.title}
+                      </Link>
+                    </Td>
+                    <Td>
+                      <Tooltip label={pattern.description} hasArrow>
+                        <Text isTruncated maxW="sm">
+                          {pattern.description}
+                        </Text>
+                      </Tooltip>
+                    </Td>
+                    <Td>
+                      <Text textAlign="center">
+                        {pattern.numberOfImplementations}
+                      </Text>
+                    </Td>
+                    <Td>
+                      <ActionsRow pattern={pattern} />
+                    </Td>
+                  </Tr>
+                ))
+              )
+              .with({ status: 'loading' }, () => <Spinner />)
+              .otherwise(() => null)}
           </Tbody>
         </Table>
       </TableContainer>
diff --git a/web/src/services/axios-service.ts b/web/src/services/axios-service.ts
index 2b2a8426be68670d238914ade4440b38cb50f92e..7979906db114cb09e02ef3efcfe11893f3fcab6d 100644
--- a/web/src/services/axios-service.ts
+++ b/web/src/services/axios-service.ts
@@ -1,7 +1,7 @@
 import axios from 'axios'
 
 const axiosService = axios.create({
-  baseURL: process.env.REDWOOD_ENV_API_URL || 'https://localhost:8080',
+  baseURL: process.env.REDWOOD_ENV_API_URL || 'https://localhost:8080/api',
 })
 
 export default axiosService
diff --git a/yarn.lock b/yarn.lock
index 06ce6d860ffcfe824c925a2997803aa9fa3a61e5..a407428368a28e3a6b04e802041d4843a1d0b1f6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -23685,6 +23685,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"ts-pattern@npm:^5.0.8":
+  version: 5.0.8
+  resolution: "ts-pattern@npm:5.0.8"
+  checksum: c0767f4a4ce960cc87e69274f750d4672e37e865b779f8aed472fb22566baaedd584caf7dfd454905c25138aabe88f3abb5c2351487b223e822a3affae9611eb
+  languageName: node
+  linkType: hard
+
 "ts-toolbelt@npm:9.6.0":
   version: 9.6.0
   resolution: "ts-toolbelt@npm:9.6.0"
@@ -24650,6 +24657,7 @@ __metadata:
     react: 18.2.0
     react-dom: 18.2.0
     react-query: ^3.39.3
+    ts-pattern: ^5.0.8
   languageName: unknown
   linkType: soft