[{"data":1,"prerenderedAt":857},["ShallowReactive",2],{"project-icra-workshop":3,"project-nav-icra-workshop":101},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":7,"slug":9,"order":10,"category":11,"sector":12,"year":13,"role":14,"status":15,"outstanding":6,"url":7,"image":16,"imageWidth":17,"imageHeight":18,"summary":19,"gallery":20,"technologies":24,"body":29,"_type":95,"_id":96,"_source":97,"_file":98,"_stem":99,"_extension":100},"\u002Fes\u002Fprojects\u002Ficra-workshop","projects",false,"","Herramienta para talleres participativos","icra-workshop",6,"Aplicación Web","Investigación · Medio ambiente","2023","Diseño y desarrollo full-stack","private","\u002Fimages\u002Fprojects\u002Ficra-workshop-2x.webp",2560,1440,"Herramienta interactiva del ICRA para recoger votos en talleres y priorizar beneficios, inconvenientes e indicadores.",[21],{"src":22,"width":17,"height":18,"alt":23},"\u002Fimages\u002Fprojects\u002Ficra-workshop-top10.webp","Ranking de los 10 aspectos más votados durante un taller (datos de prueba)",[25,26,27,28],"Nuxt 3","Vue","Pinia","Tailwind CSS",{"type":30,"children":31,"toc":89},"root",[32,41,47,53,78,84],{"type":33,"tag":34,"props":35,"children":37},"element","h2",{"id":36},"el-reto",[38],{"type":39,"value":40},"text","El reto",{"type":33,"tag":42,"props":43,"children":44},"p",{},[45],{"type":39,"value":46},"En los talleres participativos del ICRA, los asistentes valoran los beneficios y los inconvenientes de distintas soluciones para la ciudad. Hacía falta una herramienta para introducir los votos en directo y ver rápidamente qué aspectos eran prioritarios y con qué indicadores se podían medir.",{"type":33,"tag":34,"props":48,"children":50},{"id":49},"qué-hice",[51],{"type":39,"value":52},"Qué hice",{"type":33,"tag":54,"props":55,"children":56},"ul",{},[57,63,68,73],{"type":33,"tag":58,"props":59,"children":60},"li",{},[61],{"type":39,"value":62},"Fue un encargo puntual: desarrollé una aplicación web con Nuxt 3, Pinia y Tailwind CSS.",{"type":33,"tag":58,"props":64,"children":65},{},[66],{"type":39,"value":67},"Los beneficios se organizan en ambientales y socioeconómicos, y los inconvenientes van aparte. Para cada uno se introduce el número de votos, y también se pueden añadir campos personalizados durante el taller.",{"type":33,"tag":58,"props":69,"children":70},{},[71],{"type":39,"value":72},"Con un clic, la herramienta calcula el ranking de los 10 aspectos más votados y muestra sus indicadores relacionados con gráficos.",{"type":33,"tag":58,"props":74,"children":75},{},[76],{"type":39,"value":77},"Los indicadores y sus relaciones se cargan desde archivos CSV preparados por el equipo de investigación, y se pueden actualizar sin tocar el código.",{"type":33,"tag":34,"props":79,"children":81},{"id":80},"resultado",[82],{"type":39,"value":83},"Resultado",{"type":33,"tag":42,"props":85,"children":86},{},[87],{"type":39,"value":88},"Era una herramienta privada, pensada para el equipo del ICRA, que se fue ajustando con el feedback de los talleres.",{"title":7,"searchDepth":90,"depth":90,"links":91},2,[92,93,94],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"markdown","content:es:projects:icra-workshop.md","content","es\u002Fprojects\u002Ficra-workshop.md","es\u002Fprojects\u002Ficra-workshop","md",[102,171,246,328,406,467,517,595,655,719,784],{"_path":103,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":104,"description":7,"slug":105,"order":106,"category":107,"sector":108,"year":109,"role":14,"status":110,"outstanding":111,"url":112,"image":113,"imageWidth":17,"imageHeight":18,"summary":114,"technologies":115,"body":121,"_type":95,"_id":168,"_source":97,"_file":169,"_stem":170,"_extension":100},"\u002Fes\u002Fprojects\u002Fgelinet","Gelinet","gelinet",1,"Página Web","Servicios de limpieza","2021","online",true,"https:\u002F\u002Fgelinet.net","\u002Fimages\u002Fprojects\u002Fgelinet-2026.webp","Web multilingüe para una empresa de limpieza de Cassà de la Selva, ahora en migración a una web estática más rápida.",[116,117,118,119,120],"Laravel","PHP","Bootstrap","HTML","Sass",{"type":30,"children":122,"toc":163},[123,127,132,136,154,158],{"type":33,"tag":34,"props":124,"children":125},{"id":36},[126],{"type":39,"value":40},{"type":33,"tag":42,"props":128,"children":129},{},[130],{"type":39,"value":131},"Gelinet es una empresa de servicios de limpieza de Cassà de la Selva (Girona) que trabaja para negocios y particulares de toda la comarca. Necesitaba una web donde explicar sus servicios y la zona donde trabaja, y que pudiera mantener ella misma en catalán, castellano e inglés.",{"type":33,"tag":34,"props":133,"children":134},{"id":49},[135],{"type":39,"value":52},{"type":33,"tag":54,"props":137,"children":138},{},[139,144,149],{"type":33,"tag":58,"props":140,"children":141},{},[142],{"type":39,"value":143},"Diseñé y desarrollé la web en 2021 con Laravel, sobre un CMS propio que había creado para mis proyectos de cliente.",{"type":33,"tag":58,"props":145,"children":146},{},[147],{"type":39,"value":148},"Los textos de cada idioma, las secciones y el blog se gestionaban desde un panel de administración, sin depender de mí para cada cambio.",{"type":33,"tag":58,"props":150,"children":151},{},[152],{"type":39,"value":153},"En 2026 la estoy migrando a una web 100% estática con Nuxt y Tailwind, alojada en Cloudflare Pages: sin base de datos ni servidor, y con los formularios enviados con Resend.",{"type":33,"tag":34,"props":155,"children":156},{"id":80},[157],{"type":39,"value":83},{"type":33,"tag":42,"props":159,"children":160},{},[161],{"type":39,"value":162},"La web lleva en línea desde 2021 y es la única de esta lista que todavía se puede visitar. La nueva versión estática es más rápida, más segura y prácticamente no tiene coste de mantenimiento.",{"title":7,"searchDepth":90,"depth":90,"links":164},[165,166,167],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"content:es:projects:gelinet.md","es\u002Fprojects\u002Fgelinet.md","es\u002Fprojects\u002Fgelinet",{"_path":172,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":173,"description":7,"slug":174,"order":90,"category":11,"sector":175,"year":176,"role":177,"status":178,"outstanding":6,"url":7,"image":179,"imageWidth":180,"imageHeight":181,"summary":182,"gallery":183,"technologies":189,"body":191,"_type":95,"_id":243,"_source":97,"_file":244,"_stem":245,"_extension":100},"\u002Fes\u002Fprojects\u002Fclica-t","Clica't","clica-t","Educación","2016","Desarrollo full-stack","offline","\u002Fimages\u002Fprojects\u002Fclicat-home.webp",1920,1080,"Plataforma educativa para escuelas con exámenes, ejercicios, informes de progreso y comunicación con las familias.",[184],{"src":185,"width":186,"height":187,"alt":188},"\u002Fimages\u002Fprojects\u002Fclicat-deures.webp",1596,730,"Espacio del alumno con los deberes asignados por asignatura",[117,118,119,190],"CSS",{"type":30,"children":192,"toc":238},[193,197,202,206,229,233],{"type":33,"tag":34,"props":194,"children":195},{"id":36},[196],{"type":39,"value":40},{"type":33,"tag":42,"props":198,"children":199},{},[200],{"type":39,"value":201},"Clica't es una plataforma en línea para escuelas, pensada para que el profesorado pueda proponer actividades, evaluar al alumnado y hacer su seguimiento, y para que las familias puedan estar al tanto del progreso de sus hijos.",{"type":33,"tag":34,"props":203,"children":204},{"id":49},[205],{"type":39,"value":52},{"type":33,"tag":54,"props":207,"children":208},{},[209,214,219,224],{"type":33,"tag":58,"props":210,"children":211},{},[212],{"type":39,"value":213},"Empecé a desarrollarla hacia 2016 y fui añadiendo módulos para tres perfiles: profesorado, alumnado y familias, cada uno con su espacio y sus permisos.",{"type":33,"tag":58,"props":215,"children":216},{},[217],{"type":39,"value":218},"El profesorado puede crear exámenes, listas de problemas y cuadernos de ejercicios, y organizar al alumnado en grupos.",{"type":33,"tag":58,"props":220,"children":221},{},[222],{"type":39,"value":223},"Hay informes de progreso y de deberes, con exportación a Excel y PDF.",{"type":33,"tag":58,"props":225,"children":226},{},[227],{"type":39,"value":228},"Las familias tienen su propio acceso, con informes y un chat con el profesorado.",{"type":33,"tag":34,"props":230,"children":231},{"id":80},[232],{"type":39,"value":83},{"type":33,"tag":42,"props":234,"children":235},{},[236],{"type":39,"value":237},"La plataforma se usó en las escuelas durante varios cursos. Actualmente ya no está en línea, pero fue el proyecto en el que más aprendí sobre aplicaciones con muchos usuarios y roles distintos.",{"title":7,"searchDepth":90,"depth":90,"links":239},[240,241,242],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"content:es:projects:clica-t.md","es\u002Fprojects\u002Fclica-t.md","es\u002Fprojects\u002Fclica-t",{"_path":247,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":248,"description":7,"slug":249,"order":250,"category":11,"sector":12,"year":251,"role":177,"status":110,"outstanding":111,"url":252,"image":253,"imageWidth":17,"imageHeight":18,"summary":254,"gallery":255,"technologies":262,"body":268,"_type":95,"_id":325,"_source":97,"_file":326,"_stem":327,"_extension":100},"\u002Fes\u002Fprojects\u002Fedicitnet","EdiCitNet","edicitnet",3,"2020–2024","https:\u002F\u002Fediblecitiesnetwork.com","\u002Fimages\u002Fprojects\u002Fedicitnet-2x.webp","Plataforma internacional del proyecto europeo EdiCitNet sobre ciudades comestibles, desarrollada con el ICRA.",[256,259],{"src":257,"width":17,"height":18,"alt":258},"\u002Fimages\u002Fprojects\u002Fedicitnet-cataleg.webp","Catálogo de iniciativas y soluciones con el mapa interactivo",{"src":260,"width":17,"height":18,"alt":261},"\u002Fimages\u002Fprojects\u002Fedicitnet-esdeveniments.webp","Agenda de eventos con filtros y mapa",[26,263,264,265,266,267],"Node.js","Express","MySQL","Leaflet","Vue I18n",{"type":30,"children":269,"toc":320},[270,274,279,283,311,315],{"type":33,"tag":34,"props":271,"children":272},{"id":36},[273],{"type":39,"value":40},{"type":33,"tag":42,"props":275,"children":276},{},[277],{"type":39,"value":278},"EdiCitNet (Edible Cities Network) es un proyecto europeo Horizon 2020 sobre ciudades comestibles: huertos urbanos, cubiertas verdes productivas y otras iniciativas que integran la producción de alimentos en la ciudad. El proyecto necesitaba una plataforma en línea donde ciudades, entidades e investigadores pudieran compartir estas soluciones y aprender unos de otros.",{"type":33,"tag":34,"props":280,"children":281},{"id":49},[282],{"type":39,"value":52},{"type":33,"tag":54,"props":284,"children":285},{},[286,291,296,301,306],{"type":33,"tag":58,"props":287,"children":288},{},[289],{"type":39,"value":290},"Como freelance, trabajé con el equipo de desarrollo del ICRA (Instituto Catalán de Investigación del Agua) en dos versiones de la plataforma, entre 2020 y 2024.",{"type":33,"tag":58,"props":292,"children":293},{},[294],{"type":39,"value":295},"La primera versión se hizo con Vue 2 y Chart.js. La segunda es una reescritura completa con Vue 3 y Vite.",{"type":33,"tag":58,"props":297,"children":298},{},[299],{"type":39,"value":300},"Desarrollé tanto el frontend como la API, con Node.js, Express y MySQL. La API incluye autenticación, subida de imágenes y envío de correos.",{"type":33,"tag":58,"props":302,"children":303},{},[304],{"type":39,"value":305},"La plataforma tiene un catálogo de iniciativas y soluciones con mapa interactivo (Leaflet), perfiles, noticias y eventos, recursos, comunidad, preguntas y respuestas y cuestionarios de evaluación.",{"type":33,"tag":58,"props":307,"children":308},{},[309],{"type":39,"value":310},"Toda la interfaz es multilingüe.",{"type":33,"tag":34,"props":312,"children":313},{"id":80},[314],{"type":39,"value":83},{"type":33,"tag":42,"props":316,"children":317},{},[318],{"type":39,"value":319},"La plataforma sigue activa y da servicio a la red internacional del proyecto. Me permitió colaborar con un equipo de desarrollo distribuido de un centro de investigación.",{"title":7,"searchDepth":90,"depth":90,"links":321},[322,323,324],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"content:es:projects:edicitnet.md","es\u002Fprojects\u002Fedicitnet.md","es\u002Fprojects\u002Fedicitnet",{"_path":329,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":330,"description":7,"slug":331,"order":332,"category":11,"sector":333,"year":334,"role":177,"status":110,"outstanding":111,"url":335,"image":336,"imageWidth":17,"imageHeight":18,"summary":337,"gallery":338,"technologies":345,"body":346,"_type":95,"_id":403,"_source":97,"_file":404,"_stem":405,"_extension":100},"\u002Fes\u002Fprojects\u002Fnat4wat","Nat4Wat","nat4wat",4,"Investigación · Agua","2023–2025","https:\u002F\u002Fnat4wat.icra.cat","\u002Fimages\u002Fprojects\u002Fnat4wat-2x.webp","Herramienta web del ICRA para elegir soluciones basadas en la naturaleza para tratar, almacenar y reutilizar el agua.",[339,342],{"src":340,"width":17,"height":18,"alt":341},"\u002Fimages\u002Fprojects\u002Fnat4wat-solucions.webp","Catálogo de soluciones basadas en la naturaleza",{"src":343,"width":17,"height":18,"alt":344},"\u002Fimages\u002Fprojects\u002Fnat4wat-casos.webp","Listado de casos de mercado con filtros",[25,26,27,263],{"type":30,"children":347,"toc":398},[348,352,357,361,389,393],{"type":33,"tag":34,"props":349,"children":350},{"id":36},[351],{"type":39,"value":40},{"type":33,"tag":42,"props":353,"children":354},{},[355],{"type":39,"value":356},"Nat4Wat es la herramienta del proyecto europeo MULTISOURCE, financiado por el programa Horizon 2020, para ayudar a ayuntamientos, empresas y técnicos a elegir soluciones basadas en la naturaleza (como los humedales construidos) para tratar, almacenar y reutilizar el agua. Había que convertir los modelos y los datos del equipo de investigación del ICRA en una herramienta que se pudiera usar sin ser especialista.",{"type":33,"tag":34,"props":358,"children":359},{"id":49},[360],{"type":39,"value":52},{"type":33,"tag":54,"props":362,"children":363},{},[364,369,374,379,384],{"type":33,"tag":58,"props":365,"children":366},{},[367],{"type":39,"value":368},"Como freelance, entre 2023 y 2025 desarrollé el frontend con Nuxt 3 y Pinia y contribuí a la API con Node.js, junto con el equipo del ICRA.",{"type":33,"tag":58,"props":370,"children":371},{},[372],{"type":39,"value":373},"La parte central es «Find your solution», un asistente por pasos: el usuario define su escenario (agua, contaminantes, superficie, prioridades) y la herramienta le propone las soluciones más adecuadas.",{"type":33,"tag":58,"props":375,"children":376},{},[377],{"type":39,"value":378},"Las soluciones se comparan con un análisis multicriterio con gráficos, y se puede generar un informe.",{"type":33,"tag":58,"props":380,"children":381},{},[382],{"type":39,"value":383},"También hay un catálogo de soluciones, publicaciones científicas y casos de mercado, con un circuito para aceptarlos y publicarlos.",{"type":33,"tag":58,"props":385,"children":386},{},[387],{"type":39,"value":388},"Completan la herramienta los perfiles de usuario, los escenarios guardados, el servicio de ayuda, las guías y las preguntas frecuentes, todo adaptado a móviles.",{"type":33,"tag":34,"props":390,"children":391},{"id":80},[392],{"type":39,"value":83},{"type":33,"tag":42,"props":394,"children":395},{},[396],{"type":39,"value":397},"La herramienta es pública y sigue activa en nat4wat.icra.cat.",{"title":7,"searchDepth":90,"depth":90,"links":399},[400,401,402],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"content:es:projects:nat4wat.md","es\u002Fprojects\u002Fnat4wat.md","es\u002Fprojects\u002Fnat4wat",{"_path":407,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":408,"description":7,"slug":409,"order":410,"category":11,"sector":411,"year":412,"role":14,"status":15,"outstanding":6,"url":7,"image":413,"imageWidth":17,"imageHeight":18,"summary":414,"technologies":415,"body":417,"_type":95,"_id":464,"_source":97,"_file":465,"_stem":466,"_extension":100},"\u002Fes\u002Fprojects\u002Fenfaixapp","EnfaixApp","enfaixapp",5,"Cultura popular · Castells","2022","\u002Fimages\u002Fprojects\u002Fenfaixapp-2x.webp","Aplicación para organizar una colla castellera: castellers, ensayos, asistencia y diseño de castells posición por posición.",[116,117,26,416,28],"Vuex",{"type":30,"children":418,"toc":460},[419,423,428,432],{"type":33,"tag":34,"props":420,"children":421},{"id":36},[422],{"type":39,"value":40},{"type":33,"tag":42,"props":424,"children":425},{},[426],{"type":39,"value":427},"Organizar una colla castellera implica saber quién vendrá a cada ensayo y actuación, y decidir quién ocupa cada posición de la pinya y del tronco. Hacía falta una herramienta que reuniera toda esta información en un solo lugar.",{"type":33,"tag":34,"props":429,"children":430},{"id":49},[431],{"type":39,"value":52},{"type":33,"tag":54,"props":433,"children":434},{},[435,440,445,450,455],{"type":33,"tag":58,"props":436,"children":437},{},[438],{"type":39,"value":439},"En 2022 diseñé y desarrollé EnfaixApp, una aplicación web con Laravel, Vue y Tailwind CSS.",{"type":33,"tag":58,"props":441,"children":442},{},[443],{"type":39,"value":444},"Cada casteller tiene su ficha, con las posiciones en las que puede hacer castells.",{"type":33,"tag":58,"props":446,"children":447},{},[448],{"type":39,"value":449},"Hay un calendario de ensayos y actuaciones donde cada uno confirma si asistirá, y los responsables ven la asistencia al momento.",{"type":33,"tag":58,"props":451,"children":452},{},[453],{"type":39,"value":454},"La parte central es un diseñador de castells con plantillas: en él se asigna cada casteller a su posición y se puede ver el castell entero o la posición de cada persona.",{"type":33,"tag":58,"props":456,"children":457},{},[458],{"type":39,"value":459},"También tiene formularios con respuestas, notificaciones, un registro de actividad reciente y roles con permisos distintos.",{"title":7,"searchDepth":90,"depth":90,"links":461},[462,463],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},"content:es:projects:enfaixapp.md","es\u002Fprojects\u002Fenfaixapp.md","es\u002Fprojects\u002Fenfaixapp",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":7,"slug":9,"order":10,"category":11,"sector":12,"year":13,"role":14,"status":15,"outstanding":6,"url":7,"image":16,"imageWidth":17,"imageHeight":18,"summary":19,"gallery":468,"technologies":470,"body":471,"_type":95,"_id":96,"_source":97,"_file":98,"_stem":99,"_extension":100},[469],{"src":22,"width":17,"height":18,"alt":23},[25,26,27,28],{"type":30,"children":472,"toc":512},[473,477,481,485,504,508],{"type":33,"tag":34,"props":474,"children":475},{"id":36},[476],{"type":39,"value":40},{"type":33,"tag":42,"props":478,"children":479},{},[480],{"type":39,"value":46},{"type":33,"tag":34,"props":482,"children":483},{"id":49},[484],{"type":39,"value":52},{"type":33,"tag":54,"props":486,"children":487},{},[488,492,496,500],{"type":33,"tag":58,"props":489,"children":490},{},[491],{"type":39,"value":62},{"type":33,"tag":58,"props":493,"children":494},{},[495],{"type":39,"value":67},{"type":33,"tag":58,"props":497,"children":498},{},[499],{"type":39,"value":72},{"type":33,"tag":58,"props":501,"children":502},{},[503],{"type":39,"value":77},{"type":33,"tag":34,"props":505,"children":506},{"id":80},[507],{"type":39,"value":83},{"type":33,"tag":42,"props":509,"children":510},{},[511],{"type":39,"value":88},{"title":7,"searchDepth":90,"depth":90,"links":513},[514,515,516],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},{"_path":518,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":519,"description":7,"slug":520,"order":521,"category":107,"sector":522,"year":523,"role":14,"status":110,"outstanding":6,"url":524,"image":525,"imageWidth":526,"imageHeight":527,"summary":528,"gallery":529,"technologies":539,"body":540,"_type":95,"_id":592,"_source":97,"_file":593,"_stem":594,"_extension":100},"\u002Fes\u002Fprojects\u002Fhostal-bartis","Hostal Bartis","hostal-bartis",7,"Turismo","2020","https:\u002F\u002Fhostalbartis.com","\u002Fimages\u002Fprojects\u002Fhostal-bartis-home.webp",3578,1882,"Web para un hostal familiar para mostrar las habitaciones y los servicios y recibir solicitudes de reserva.",[530,533,536],{"src":531,"width":17,"height":18,"alt":532},"\u002Fimages\u002Fprojects\u002Fhostal-bartis-habitacions.webp","Página de habitaciones",{"src":534,"width":17,"height":18,"alt":535},"\u002Fimages\u002Fprojects\u002Fhostal-bartis-doble.webp","Ficha de la habitación doble con galería de fotos",{"src":537,"width":17,"height":18,"alt":538},"\u002Fimages\u002Fprojects\u002Fhostal-bartis-historia.webp","Página de historia del hostal",[116,117,118,119,190],{"type":30,"children":541,"toc":587},[542,546,551,555,578,582],{"type":33,"tag":34,"props":543,"children":544},{"id":36},[545],{"type":39,"value":40},{"type":33,"tag":42,"props":547,"children":548},{},[549],{"type":39,"value":550},"El Hostal Bartis, un negocio familiar de Figueres fundado en 1909, necesitaba una web que transmitiera el ambiente de la casa, mostrara las habitaciones y los servicios, y le permitiera recibir solicitudes de reserva directamente, sin depender solo de las plataformas de reservas.",{"type":33,"tag":34,"props":552,"children":553},{"id":49},[554],{"type":39,"value":52},{"type":33,"tag":54,"props":556,"children":557},{},[558,563,568,573],{"type":33,"tag":58,"props":559,"children":560},{},[561],{"type":39,"value":562},"Diseñé y desarrollé la web con Laravel y Bootstrap, adaptada a móviles.",{"type":33,"tag":58,"props":564,"children":565},{},[566],{"type":39,"value":567},"La monté sobre mi CMS propio para que los propietarios pudieran actualizar textos, fotos y habitaciones desde un panel.",{"type":33,"tag":58,"props":569,"children":570},{},[571],{"type":39,"value":572},"Los contenidos estaban en catalán, castellano e inglés, pensando en el visitante extranjero.",{"type":33,"tag":58,"props":574,"children":575},{},[576],{"type":39,"value":577},"Añadí un formulario de contacto y de reserva.",{"type":33,"tag":34,"props":579,"children":580},{"id":80},[581],{"type":39,"value":83},{"type":33,"tag":42,"props":583,"children":584},{},[585],{"type":39,"value":586},"La web está en línea desde 2020, y desde entonces los propietarios gestionan su contenido de forma autónoma.",{"title":7,"searchDepth":90,"depth":90,"links":588},[589,590,591],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"content:es:projects:hostal-bartis.md","es\u002Fprojects\u002Fhostal-bartis.md","es\u002Fprojects\u002Fhostal-bartis",{"_path":596,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":597,"description":7,"slug":598,"order":599,"category":107,"sector":600,"year":601,"role":14,"status":178,"outstanding":6,"url":7,"image":602,"imageWidth":17,"imageHeight":18,"summary":603,"technologies":604,"body":605,"_type":95,"_id":652,"_source":97,"_file":653,"_stem":654,"_extension":100},"\u002Fes\u002Fprojects\u002Fmerce-paytuvi","Mercè Paytuví","merce-paytuvi",8,"Artesanía textil","2019","\u002Fimages\u002Fprojects\u002Fmerce-paytuvi-2x.webp","Web y blog para una artesana textil de Mont-ras, con dos versiones entre 2019 y 2023.",[116,117,118,119,190],{"type":30,"children":606,"toc":647},[607,611,616,620,638,642],{"type":33,"tag":34,"props":608,"children":609},{"id":36},[610],{"type":39,"value":40},{"type":33,"tag":42,"props":612,"children":613},{},[614],{"type":39,"value":615},"Mercè Paytuví es una artesana textil de Mont-ras que quería mostrar su obra y explicar su proceso de trabajo, y publicar novedades sin tener que pedir ayuda cada vez.",{"type":33,"tag":34,"props":617,"children":618},{"id":49},[619],{"type":39,"value":52},{"type":33,"tag":54,"props":621,"children":622},{},[623,628,633],{"type":33,"tag":58,"props":624,"children":625},{},[626],{"type":39,"value":627},"En 2019 hice la primera versión de la web con Laravel, en catalán e inglés. Fue uno de los primeros proyectos en los que usé mi CMS propio.",{"type":33,"tag":58,"props":629,"children":630},{},[631],{"type":39,"value":632},"Entre 2022 y 2023 la rehice con un diseño nuevo con Bootstrap 5, y añadí un blog con categorías y el castellano.",{"type":33,"tag":58,"props":634,"children":635},{},[636],{"type":39,"value":637},"Ella misma podía actualizar textos, imágenes y entradas del blog desde el panel.",{"type":33,"tag":34,"props":639,"children":640},{"id":80},[641],{"type":39,"value":83},{"type":33,"tag":42,"props":643,"children":644},{},[645],{"type":39,"value":646},"Fue una colaboración de varios años que acompañó la evolución de su proyecto. Actualmente la web ya no está en línea.",{"title":7,"searchDepth":90,"depth":90,"links":648},[649,650,651],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"content:es:projects:merce-paytuvi.md","es\u002Fprojects\u002Fmerce-paytuvi.md","es\u002Fprojects\u002Fmerce-paytuvi",{"_path":656,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":657,"description":7,"slug":658,"order":659,"category":107,"sector":660,"year":109,"role":14,"status":178,"outstanding":6,"url":7,"image":661,"imageWidth":17,"imageHeight":18,"summary":662,"technologies":663,"body":664,"_type":95,"_id":716,"_source":97,"_file":717,"_stem":718,"_extension":100},"\u002Fes\u002Fprojects\u002Fintegral","Integral","integral",9,"Servicios a empresas","\u002Fimages\u002Fprojects\u002Fintegral-2x.webp","Web corporativa multilingüe para una empresa de servicios de Banyoles, gestionable desde un panel propio.",[116,117,118,190,120],{"type":30,"children":665,"toc":711},[666,670,675,679,702,706],{"type":33,"tag":34,"props":667,"children":668},{"id":36},[669],{"type":39,"value":40},{"type":33,"tag":42,"props":671,"children":672},{},[673],{"type":39,"value":674},"Integral, una empresa de servicios de Banyoles, necesitaba una web corporativa clara para presentar su actividad en varios idiomas y poder actualizarla internamente.",{"type":33,"tag":34,"props":676,"children":677},{"id":49},[678],{"type":39,"value":52},{"type":33,"tag":54,"props":680,"children":681},{},[682,687,692,697],{"type":33,"tag":58,"props":683,"children":684},{},[685],{"type":39,"value":686},"Desarrollé la web en 2021 con Laravel, Bootstrap y Sass, sobre mi CMS propio.",{"type":33,"tag":58,"props":688,"children":689},{},[690],{"type":39,"value":691},"Los contenidos estaban en catalán, castellano e inglés, con secciones y plantillas configurables y un blog con categorías.",{"type":33,"tag":58,"props":693,"children":694},{},[695],{"type":39,"value":696},"Añadí un formulario de contacto y la integración con herramientas de analítica.",{"type":33,"tag":58,"props":698,"children":699},{},[700],{"type":39,"value":701},"Tras el lanzamiento, también me encargué de la gestión del correo, los dominios y los servidores.",{"type":33,"tag":34,"props":703,"children":704},{"id":80},[705],{"type":39,"value":83},{"type":33,"tag":42,"props":707,"children":708},{},[709],{"type":39,"value":710},"La empresa tuvo una web que podía gestionar de forma autónoma. Actualmente ya no está en línea.",{"title":7,"searchDepth":90,"depth":90,"links":712},[713,714,715],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"content:es:projects:integral.md","es\u002Fprojects\u002Fintegral.md","es\u002Fprojects\u002Fintegral",{"_path":720,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":721,"description":7,"slug":722,"order":723,"category":107,"sector":724,"year":109,"role":14,"status":178,"outstanding":6,"url":7,"image":725,"imageWidth":17,"imageHeight":18,"summary":726,"gallery":727,"technologies":731,"body":734,"_type":95,"_id":781,"_source":97,"_file":782,"_stem":783,"_extension":100},"\u002Fes\u002Fprojects\u002Fdavid-busquets","David Busquets","david-busquets",10,"Música","\u002Fimages\u002Fprojects\u002Fdavidbusquets-2x.webp","Web para un músico con galería, videoclips, lista de reproducción y fechas de conciertos.",[728],{"src":729,"width":17,"height":18,"alt":730},"\u002Fimages\u002Fprojects\u002Fdavidbusquets-albums.webp","Sección de álbumes con enlaces a las plataformas de música",[26,732,733],"Tailwind","Vite",{"type":30,"children":735,"toc":776},[736,740,745,749,767,771],{"type":33,"tag":34,"props":737,"children":738},{"id":36},[739],{"type":39,"value":40},{"type":33,"tag":42,"props":741,"children":742},{},[743],{"type":39,"value":744},"El músico David Busquets quería una web ligera que reuniera toda su actividad: música, vídeos, fotos y próximos conciertos.",{"type":33,"tag":34,"props":746,"children":747},{"id":49},[748],{"type":39,"value":52},{"type":33,"tag":54,"props":750,"children":751},{},[752,757,762],{"type":33,"tag":58,"props":753,"children":754},{},[755],{"type":39,"value":756},"Creé una aplicación de una sola página con Vue 3, Vite y Tailwind CSS, rápida y adaptada a móviles.",{"type":33,"tag":58,"props":758,"children":759},{},[760],{"type":39,"value":761},"Hice componentes específicos: galería de fotos, videoclips, lista de reproducción y un calendario de conciertos.",{"type":33,"tag":58,"props":763,"children":764},{},[765],{"type":39,"value":766},"La web era multilingüe, con cambio de idioma sin recargar la página.",{"type":33,"tag":34,"props":768,"children":769},{"id":80},[770],{"type":39,"value":83},{"type":33,"tag":42,"props":772,"children":773},{},[774],{"type":39,"value":775},"La web reunió en un solo lugar toda la actividad del músico. Actualmente ya no está en línea.",{"title":7,"searchDepth":90,"depth":90,"links":777},[778,779,780],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"content:es:projects:david-busquets.md","es\u002Fprojects\u002Fdavid-busquets.md","es\u002Fprojects\u002Fdavid-busquets",{"_path":785,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":786,"description":7,"slug":787,"order":788,"category":107,"sector":789,"year":790,"role":14,"status":110,"outstanding":6,"url":791,"image":792,"imageWidth":793,"imageHeight":794,"summary":795,"technologies":796,"body":802,"_type":95,"_id":854,"_source":97,"_file":855,"_stem":856,"_extension":100},"\u002Fes\u002Fprojects\u002Fdavid-crous","David Crous","david-crous",11,"Portafolio personal","2026","https:\u002F\u002Fcrousmayne.com","\u002Fimages\u002Fprojects\u002Fdavidcrous-home.webp",3582,1870,"Esta misma web: estática, en tres idiomas y alojada en Cloudflare Pages.",[25,797,798,799,800,801],"Vue 3","Tailwind 4","Nuxt Content","Nuxt i18n","Figma",{"type":30,"children":803,"toc":849},[804,808,813,817,840,844],{"type":33,"tag":34,"props":805,"children":806},{"id":36},[807],{"type":39,"value":40},{"type":33,"tag":42,"props":809,"children":810},{},[811],{"type":39,"value":812},"Mi web anterior dependía de un CMS con servidor y base de datos. Quería una web más rápida, más sencilla de mantener y que no me costara nada tener en línea.",{"type":33,"tag":34,"props":814,"children":815},{"id":49},[816],{"type":39,"value":52},{"type":33,"tag":54,"props":818,"children":819},{},[820,825,830,835],{"type":33,"tag":58,"props":821,"children":822},{},[823],{"type":39,"value":824},"La rediseñé y desarrollé desde cero con Nuxt 3, Tailwind 4 y Nuxt Content, con todo el contenido en archivos Markdown.",{"type":33,"tag":58,"props":826,"children":827},{},[828],{"type":39,"value":829},"Todas las páginas se generan como HTML estático, en catalán, castellano e inglés.",{"type":33,"tag":58,"props":831,"children":832},{},[833],{"type":39,"value":834},"Está alojada en Cloudflare Pages: se publica automáticamente con cada cambio y mide las visitas sin cookies.",{"type":33,"tag":58,"props":836,"children":837},{},[838],{"type":39,"value":839},"Tiene SEO por idioma (hreflang, sitemap y Schema.org) y un hero con una animación de partículas interactiva.",{"type":33,"tag":34,"props":841,"children":842},{"id":80},[843],{"type":39,"value":83},{"type":33,"tag":42,"props":845,"children":846},{},[847],{"type":39,"value":848},"Es la web que estás viendo ahora.",{"title":7,"searchDepth":90,"depth":90,"links":850},[851,852,853],{"id":36,"depth":90,"text":40},{"id":49,"depth":90,"text":52},{"id":80,"depth":90,"text":83},"content:es:projects:david-crous.md","es\u002Fprojects\u002Fdavid-crous.md","es\u002Fprojects\u002Fdavid-crous",1791375141449]