From cbdb2ee1547fcfbef8c874da60b17eee80b5fa18 Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Sun, 12 Oct 2025 22:49:13 +0200 Subject: Get rid of trajectory and portfolio --- public/fonts/robotoflex.woff2 | Bin 0 -> 747084 bytes src/content.config.ts | 16 -- src/data/portfolio/mapa-ferrol.mdx | 45 ---- src/data/portfolio/mientreno.mdx | 17 -- src/data/portfolio/order-extractor.mdx | 27 --- src/data/portfolio/qr-ponteareas.mdx | 13 -- src/data/portfolio/qr-touro.mdx | 13 -- src/data/portfolio/vigo-360.mdx | 17 -- src/data/portfolio/wp-consulting.mdx | 9 - src/layouts/HomePageLayout.astro | 46 +--- src/layouts/Layout.astro | 15 +- src/layouts/PortfolioListLayout.astro | 137 ------------ src/layouts/PortfolioSingleLayout.astro | 370 -------------------------------- src/pages/contact.astro | 32 +-- src/pages/portfolio/[id].astro | 17 -- src/pages/portfolio/index.astro | 5 - src/pages/trajectory.astro | 5 - src/partials/Header.astro | 5 +- styles/_variables.scss | 4 +- styles/shared.scss | 14 ++ 20 files changed, 37 insertions(+), 770 deletions(-) create mode 100644 public/fonts/robotoflex.woff2 delete mode 100644 src/data/portfolio/mapa-ferrol.mdx delete mode 100644 src/data/portfolio/mientreno.mdx delete mode 100644 src/data/portfolio/order-extractor.mdx delete mode 100644 src/data/portfolio/qr-ponteareas.mdx delete mode 100644 src/data/portfolio/qr-touro.mdx delete mode 100644 src/data/portfolio/vigo-360.mdx delete mode 100644 src/data/portfolio/wp-consulting.mdx delete mode 100644 src/layouts/PortfolioListLayout.astro delete mode 100644 src/layouts/PortfolioSingleLayout.astro delete mode 100644 src/pages/portfolio/[id].astro delete mode 100644 src/pages/portfolio/index.astro delete mode 100644 src/pages/trajectory.astro diff --git a/public/fonts/robotoflex.woff2 b/public/fonts/robotoflex.woff2 new file mode 100644 index 0000000..b4acfba Binary files /dev/null and b/public/fonts/robotoflex.woff2 differ diff --git a/src/content.config.ts b/src/content.config.ts index acaaf8a..b5fca4e 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -11,22 +11,6 @@ const blog = defineCollection({ }), }); -const portfolio = defineCollection({ - loader: glob({ pattern: "**/*.{md,mdx}", base: "src/data/portfolio" }), - schema: z.object({ - title: z.string(), - description: z.string(), - technologies: z.array(z.string()), - githubLink: z.string().url().optional(), - onlineLink: z.string().url().optional(), - demoLink: z.string().url().optional(), - images: z.array( - z.object({ src: z.string(), alt: z.string() }) - ).default([]) - }), -}); - export const collections = { blog, - portfolio, }; diff --git a/src/data/portfolio/mapa-ferrol.mdx b/src/data/portfolio/mapa-ferrol.mdx deleted file mode 100644 index 6152ced..0000000 --- a/src/data/portfolio/mapa-ferrol.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Mapa de patrimonio da Costa Ártabra" -description: "Desarrollo de una aplicación completa para el patrimonio cultural y militar de la Costa Ártabra." -technologies: ["dotnet", "react", "mysql", "ubuntu"] -onlineLink: "https://mapacostaartabramilitar.com" -images: -- src: "/images/portfolio/mapa-ferrol/home-narrow" - alt: "Vista principal del mapa con los elementos del patrimonio" -- src: "/images/portfolio/mapa-ferrol/home-info-narrow" - alt: "Sheet con información de un elemento patrimonial" -- src: "/images/portfolio/mapa-ferrol/route-id-narrow" - alt: "Vista de una ruta predefinida" -- src: "/images/portfolio/mapa-ferrol/planner-narrow" - alt: "Planificador de rutas de senderismo" ---- - -Desarrollo de una **aplicación web integral** para la exploración del patrimonio cultural y militar de la Costa Ártabra (Ferrol, Ares, Valdoviño). La plataforma incluye baterías costeras, faros, rutas de senderismo y puntos de interés natural, ofreciendo una experiencia adaptada principalmente a dispositivos móviles. - -Tecnologías clave: - -* Backend con ASP.NET Core y base de datos MySQL. -* Frontend en React (TypeScript) y mapas interactivos con MapLibre. -* Teselas vectoriales de OpenStreetMap con [Protomaps](https://protomaps.com/) para un mapa de alta calidad y buen rendimiento. -* Calculador de rutas autoalojado con [OSRM](https://project-osrm.org/) para optimización de rutas. - -Diseñada para autonomía y privacidad: - -* Infraestructura autoalojada (Ubuntu) sin dependencia de APIs comerciales. -* Optimización de rutas con motor de cálculo interno (OSRM). -* Panel de administración para gestión centralizada del patrimonio. - -## Características clave - -1. **Tecnologías autónomas**: Implementación sin dependencia de servicios externos (como Google Maps), garantizando privacidad del usuario y reducción de costos. - -2. **Gestión de recursos**: Solución personalizada para iconografía y capas de mapa, asegurando consistencia visual y eficiencia. - -3. **Planificación de rutas inteligente**: Sistema de optimización para senderismo basado en puntos patrimoniales, con énfasis en rendimiento y estabilidad. - -4. **Panel de administración**: Herramienta interna para gestión de contenido por personal no técnico. - - ---- - -Desarrollado en 2025 en colaboración con [Kendra](https://kendra.es/). diff --git a/src/data/portfolio/mientreno.mdx b/src/data/portfolio/mientreno.mdx deleted file mode 100644 index 79a40c6..0000000 --- a/src/data/portfolio/mientreno.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "MiEntreno" -description: "Creación de un sitio web dinámico con PHP adaptado a móviles y accesible mediante QR en localizaciones físicas" -technologies: ["dotnet", "azure"] ---- - -Aplicación web para la gestión de entrenamientos deportivos, con una interfaz sencilla y fácil de usar. Desarrollado con ASP.NET Core, Razor Pages y SQL Server, y alojada en Azure App Service. - -La aplicación permite a los entrenadores personales crear y gestionar rutinas de entrenamiento para sus clientes, que pueden proporcionar _feedback_ sobre estos. Además, los clientes pueden ver sus rutinas de entrenamiento y registrar sus progresos en la aplicación. - -La principal complejidad que me encontré en este proyecto fue la implementación de los dos roles de usuario (entrenador y cliente) y la gestión de los permisos de acceso a las distintas partes de la aplicación, con filtrado para evitar mostrar datos potencialmente sensibles. - -Además, el tiempo de desarrollo era muy limitado, al tratarse del proyecto final de ciclo, en un plazo de 3 meses desde la concepción de la idea, redacción del proyecto y desarrollo de la aplicación. Podría considerarse un _MVP_ (Producto Mínimo Viable) de la idea original, con muchas funcionalidades que quedaron fuera del alcance de este proyecto. - -También, fue un "campo de pruebas" para mí, ya que fue el primer proyecto serio que desarrollé con ASP.NET Core, y donde también quise introducir el uso de emailing transaccional, colas de mensajes y otros conceptos más avanzados que no había utilizado antes en una aplicación real. - -El código fuente se puede encontrar en [GitHub](https://github.com/arielcostas/mientreno) bajo la licencia GNU Affero GPL v3.0. diff --git a/src/data/portfolio/order-extractor.mdx b/src/data/portfolio/order-extractor.mdx deleted file mode 100644 index dfdbd2e..0000000 --- a/src/data/portfolio/order-extractor.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Extractor de pedidos (2023-actualidad)" -description: "Extractor de pedidos de compra online para generar informes de ventas y rentabilidad" -technologies: ["java", "windows"] ---- - -Implementación de una aplicación de escritorio que extrae los datos sobre los pedidos on-line -de diversas plataformas (como WooCommerce, Amazon y Ebay) para almacenar de forma local y -centralizada. Además, cruza estos datos con la base de datos de productos en almacén y sus -precios de coste, para generar informes de Excel sobre los ingresos y costes por cada pedido, -así como calcular la rentabilidad de estos. - -Los principales problemas enfrentados en este proyecto fueron la diversidad de formatos de los -datos de entrada y la necesidad de mantener la aplicación actualizada con los cambios en las -plataformas de venta online; además de no contar con SDKs oficiales para estas plataformas, -teniendo que implementar llamadas HTTP a las API públicas, a veces con autenticación compleja -o firma de peticiones (como AWS Signature V4). - -Por otra parte, está la distribución, instalación y actualización de la aplicación en los -equipos del cliente, teniendo que generar un instalador MSI firmado a partir del Java compilado -y _shaded_ con sus dependencias mediante maven, y `jpackage` para generar el ejecutable nativo -de Windows. - -Trabajo inicial realizado en 2023 para un cliente de España, con mantenimiento hasta la actualidad. -En 2025 se comenzó un proyecto de migración a una aplicación cloud con más funcionalidades y que -soluciona dificultades como la sincronización de datos entre equipos y la generación de nuevos tipos -de informes. diff --git a/src/data/portfolio/qr-ponteareas.mdx b/src/data/portfolio/qr-ponteareas.mdx deleted file mode 100644 index 61449f3..0000000 --- a/src/data/portfolio/qr-ponteareas.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Museo a ceo aberto de Ponteareas" -description: "Creación de un sitio web dinámico con PHP adaptado a móviles y accesible mediante QR en localizaciones físicas" -technologies: ["php", "web"] -demoLink: "https://museocorpus.ponteareas.gal/?place=01-bugallal" ---- - -Creación de un sitio web dinámico con PHP adaptado a móviles y accesible mediante -QR en localizaciones físicas. Cada página muestra datos de la ubicación correspondiente -en tres idiomas (castellano, gallego e inglés), una galería de imágenes en 360º con -la biblioteca PanoLens y vídeos incrustados de YouTube. - -Desarrollado en 2021 en colaboración con [Kendra](https://kendra.es/). diff --git a/src/data/portfolio/qr-touro.mdx b/src/data/portfolio/qr-touro.mdx deleted file mode 100644 index 63a770e..0000000 --- a/src/data/portfolio/qr-touro.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Punto de información turística en móviles" -description: "Creación de un sitio web dinámico con PHP adaptado a móviles y accesible mediante QR en localizaciones físicas" -technologies: ["typescript", "web"] -demoLink: "https://www.concellodetouro.com/qr-carteis/petroglifo.html" ---- - -Desarrollo de un generador estático en TypeScript para información turística del Concello de -Touro, A Coruña, con un sitio web dinámico adaptado a móviles. El sitio se accede mediante códigos QR -en localizaciones físicas, permitiendo a los usuarios obtener información sobre el patrimonio cultural -y natural de la zona. - -Desasrrollado en 2020, en colaboración con [Kendra](https://kendra.es/). diff --git a/src/data/portfolio/vigo-360.mdx b/src/data/portfolio/vigo-360.mdx deleted file mode 100644 index 2bebdf3..0000000 --- a/src/data/portfolio/vigo-360.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Vigo 360" -description: "Desarrollo y publicación de un blog sobre Vigo" -technologies: ["go", "mysql", "ubuntu"] -onlineLink: "https://vigo360.es" -githubLink: "https://github.com/arielcostas/vigo360" ---- - -Blog sobre Vigo y su entorno, orientado principalmente a hablar de movilidad y toponimia. Desarrollado en Go, con base de datos MySQL y desplegado sobre infraestructura propia. - -Opté por desarrollarlo de cero, en lugar de invertir mis esfuerzos en aprender a desarrollar sobre WordPress, por la necesidad de mantener una tonelada de plugins, un tema propio y código que no controlaba. Además, me permitió aprender Go y desplegar una aplicación en producción. - -Además de esto, ocasionalmente publico contenido en este blog sobre transporte público, movilidad y toponimia en Vigo y su entorno; sin fines de lucro y con un nivel de rigor que nos ha llevado a ser citados en medios de comunicación locales como un medio especializado en estos temas. - -El blog cuenta con un sistema publicaciones, comentarios, etiquetas y búsqueda (con Algolia), así como optimización para buscadores y redes sociales con etiquetas de OpenGraph, Twitter Cards y datos semánticos de Schema.org mediante JSON-LD. - -Durante 2025 se planea hacer una reescritura de la aplicación usando .NET para poder implementar nuevas funcionalidades, como procesamiento de fondo de ciertas tareas (generar miniaturas, indexar contenido, etc.) y mejorar la manteniabilidad del código, o búsqueda mediante vectores sin depender de terceros. diff --git a/src/data/portfolio/wp-consulting.mdx b/src/data/portfolio/wp-consulting.mdx deleted file mode 100644 index 0b6a35f..0000000 --- a/src/data/portfolio/wp-consulting.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Consultoría WordPress" -description: "Trabajos de mantenimiento, optimización y migración de sitios web WordPress y tiendas online WooCommerce" -technologies: ["php"] ---- - -Trabajos de mantenimiento, optimización y migración de sitios web WordPress y tiendas online WooCommerce. Incluyendo la instalación y configuración de plugins, temas y optimización de rendimiento y SEO. - -Trabajo bajo la premisa de reducir la dependencia de plugins y temas de terceros, y de mejorar la seguridad y rendimiento de los sitios web; además de usar herramientas optimizadas y sin limitaciones artificiales bajo muros de pago, en la medida de lo posible. diff --git a/src/layouts/HomePageLayout.astro b/src/layouts/HomePageLayout.astro index fb3cf34..ca009a5 100644 --- a/src/layouts/HomePageLayout.astro +++ b/src/layouts/HomePageLayout.astro @@ -24,56 +24,12 @@ const schema = { />

Inicio

+

Te doy la bienvenida a mi web. Me llamo Ariel, y aquí encontrarás información sobre mí y mis proyectos.

-

¿Quién soy?

- -

- Soy un desarrollador de software con varios años de experiencia en el - sector, especializado en el desarrollo de aplicaciones web y la - administración de sistemas Cloud. Me apasiona la tecnología y disfruto - creando soluciones prácticas y eficientes para resolver problemas reales, - simplificando la vida y el trabajo de las personas. -

- -

- En mi tiempo libre, fuera de mi trabajo, me interesan temas como la - filosofía, la economía y las finanzas, así como el derecho y la política. Me - gusta aprender sobre cómo funcionan las cosas y cómo se relacionan entre sí, - y reflexionar sobre el impacto que tienen en nuestra sociedad y en nuestras - vidas cotidianas. -

- -

¿Qué hago?

- -

- Actualmente trabajo como desarrollador de software y administrador Cloud en - Estelaria Solutions, una empresa de tecnología en Vigo (España). Me encargo - de desarrollar aplicaciones web en PHP y desplegarlas en la nube de forma - segura y eficiente. -

- - Conoce más sobre mi trayectoria profesional - -

- También realizo ocasinalmente proyectos personales y freelance para clientes - que necesitan soluciones a medida o apoyo técnico en sus proyectos. Me gusta - trabajar con tecnologías modernas y aprender nuevas habilidades para mejorar - mi trabajo y ofrecer un mejor servicio a mis clientes. -

- -

- Si necesitas ayuda con un proyecto o quieres colaborar conmigo, no dudes en - ponerte en contacto conmigo a través de mi correo electrónico o mis redes - sociales. -

- - Echa un vistazo a mi portfolio - -

Mis reflexiones

En mi blog comparto mis reflexiones, aprendizajes y experiencias sobre los temas que me interesan, además de hablar ocasionalmente sobre tecnología y diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 6e389e2..3aa2dd0 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -1,6 +1,4 @@ --- -import "@fontsource-variable/roboto"; -import "@fontsource-variable/roboto-mono"; import Header from "../partials/Header.astro"; import Footer from "../partials/Footer.astro"; @@ -137,8 +135,19 @@ const { title, description, empty } = Astro.props; background-color: color.adjust($accent, $alpha: -0.85); } + ul:has(li) { + padding-left: 1.25rem; + margin-top: 0; + margin-bottom: 1.5rem; + + display: flex; + flex-direction: column; + gap: 0.5rem; + } + li > time { - font-family: $monoFontStack; + font-size: 0.95rem; + user-select: none; } main { diff --git a/src/layouts/PortfolioListLayout.astro b/src/layouts/PortfolioListLayout.astro deleted file mode 100644 index b509bec..0000000 --- a/src/layouts/PortfolioListLayout.astro +++ /dev/null @@ -1,137 +0,0 @@ ---- -import t from "../i18n/es.json"; - -import Layout from "./Layout.astro"; -import PortfolioProject from "@/components/PortfolioProject.astro"; - -const schema = { - "@context": "https://schema.org", - "@type": "WebPage", - url: "https://www.costas.dev/portfolio", - headline: t.portfolioPage.headline, -}; ---- - - - - - diff --git a/src/pages/contact.astro b/src/pages/contact.astro index 9cb58a6..bd5984e 100644 --- a/src/pages/contact.astro +++ b/src/pages/contact.astro @@ -25,51 +25,31 @@ const schema = {

La forma más sencilla de contactar conmigo es a través de mi dirección de correo electrónico: - ACTIVA JAVASCRIPT PARA VER ESTO. También - puedes usar WhatsApp con el - número de teléfono - ACTIVA JAVASCRIPT PARA VER ESTO. + ACTIVA JAVASCRIPT PARA VER ESTO.

-

También puedes encontrarme en algunas redes sociales:

- -
-
GitHub
-
@arielcostas
-
LinkedIn
-
- /in/ariel-costas -
-
BlueSky
-
@costas.dev
-
+

+ También puedes encontrarme en GitHub: + @arielcostas +