{"id":1631,"date":"2026-11-04T08:51:32","date_gmt":"2026-11-04T08:51:32","guid":{"rendered":"https:\/\/mariogr.com\/?post_type=portfolio&#038;p=1631"},"modified":"2026-11-04T09:56:55","modified_gmt":"2026-11-04T09:56:55","slug":"buducloud-plataforma-de-gestion-empresarial","status":"publish","type":"portfolio","link":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/","title":{"rendered":"BuDuCloud &#8211; Plataforma de gesti\u00f3n empresarial"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1631\" class=\"elementor elementor-1631\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a7425e9 e-flex e-con-boxed e-con e-parent\" data-id=\"a7425e9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-27789fd elementor-widget elementor-widget-html\" data-id=\"27789fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- BuDuCloud \u00b7 Pega este bloque completo en un widget HTML de Elementor. -->\r\n<style>\r\n  .bdc-case, .bdc-case * { box-sizing: border-box; }\r\n  .bdc-case {\r\n    --bdc-text: #f3f7ff;\r\n    --bdc-muted: #aebbd0;\r\n    --bdc-blue: #73b8ff;\r\n    color: var(--bdc-text);\r\n    width: 100%;\r\n    max-width: 100%;\r\n    container: bdcCase \/ inline-size;\r\n    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\r\n  }\r\n  .bdc-case a { text-decoration: none; }\r\n  .bdc-case h2, .bdc-case h3, .bdc-case p { margin: 0; }\r\n  .bdc-case__wrap {\r\n    overflow: hidden;\r\n    border: 1px solid rgba(165, 193, 235, .17);\r\n    border-radius: 26px;\r\n    background: radial-gradient(circle at 95% 3%, rgba(73, 142, 244, .20), transparent 34%),\r\n                radial-gradient(circle at 0% 35%, rgba(86, 210, 204, .08), transparent 32%),\r\n                #151b27;\r\n    box-shadow: 0 24px 65px rgba(0, 0, 0, .18);\r\n  }\r\n  .bdc-case__inner { padding: clamp(24px, 5vw, 46px); }\r\n  .bdc-case__eyebrow {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 9px;\r\n    color: #8fd3ff;\r\n    font-size: 11px;\r\n    font-weight: 800;\r\n    letter-spacing: .16em;\r\n    text-transform: uppercase;\r\n  }\r\n  .bdc-case__eyebrow::before {\r\n    content: \"\";\r\n    width: 7px;\r\n    height: 7px;\r\n    border-radius: 50%;\r\n    background: #68ddb7;\r\n    box-shadow: 0 0 13px #68ddb7;\r\n  }\r\n  .bdc-case__brand { display: flex; align-items: center; gap: 14px; margin: 22px 0 18px; }\r\n  .bdc-case__brand img {\r\n    display: block;\r\n    width: 54px;\r\n    height: 54px;\r\n    flex: none;\r\n    border-radius: 15px;\r\n    box-shadow: 0 9px 25px rgba(30, 99, 210, .25);\r\n  }\r\n  .bdc-case__brand strong { display: block; color: #fff; font-size: 20px; line-height: 1.15; }\r\n  .bdc-case__brand span { display: block; margin-top: 4px; color: var(--bdc-muted); font-size: 12px; }\r\n  .bdc-case__title {\r\n    max-width: 760px;\r\n    color: #fff !important;\r\n    font-size: clamp(32px, 5vw, 56px) !important;\r\n    font-weight: 800 !important;\r\n    line-height: 1.09 !important;\r\n    letter-spacing: -.045em;\r\n  }\r\n  .bdc-case__title em {\r\n    font-style: normal;\r\n    background: linear-gradient(110deg, #73b8ff 12%, #8de3df 92%);\r\n    -webkit-background-clip: text;\r\n    background-clip: text;\r\n    color: transparent;\r\n  }\r\n  .bdc-case__lead { max-width: 690px; margin-top: 20px !important; color: var(--bdc-muted); font-size: 16px; line-height: 1.75; }\r\n  .bdc-case__actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 27px; }\r\n  .bdc-case__button {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    min-height: 45px;\r\n    padding: 11px 18px;\r\n    border: 1px solid rgba(190, 211, 245, .25);\r\n    border-radius: 11px;\r\n    color: #ecf5ff !important;\r\n    font-size: 13px;\r\n    font-weight: 750;\r\n    transition: transform .2s ease, border-color .2s ease, background .2s ease;\r\n  }\r\n  .bdc-case__button:hover { transform: translateY(-2px); border-color: #7cc5ff; background: rgba(124, 197, 255, .08); }\r\n  .bdc-case__button--primary { border-color: #85caff; background: linear-gradient(115deg, #2c83e7, #48b5d3); color: #fff !important; }\r\n  .bdc-case__button--primary:hover { background: linear-gradient(115deg, #3a92f4, #58c7dd); }\r\n  .bdc-case a:focus-visible { outline: 2px solid #8de3df; outline-offset: 3px; }\r\n  .bdc-case__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 34px; border-top: 1px solid rgba(165, 193, 235, .14); }\r\n  .bdc-case__fact { padding: 19px 10px 0 0; }\r\n  .bdc-case__fact small { display: block; margin-bottom: 7px; color: #8295af; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }\r\n  .bdc-case__fact strong { display: block; color: #eaf4ff; font-size: 13px; line-height: 1.45; }\r\n  .bdc-case__visual { padding: 0 clamp(17px, 4vw, 36px) clamp(17px, 4vw, 36px); }\r\n  .bdc-case__window {\r\n    overflow: hidden;\r\n    border: 1px solid rgba(157, 195, 251, .22);\r\n    border-radius: 18px;\r\n    background: #0c1524;\r\n    box-shadow: 0 22px 45px rgba(0, 0, 0, .22);\r\n  }\r\n  .bdc-case__toolbar { display: flex; align-items: center; gap: 7px; min-height: 39px; padding: 0 15px; border-bottom: 1px solid rgba(157, 195, 251, .13); }\r\n  .bdc-case__dot { width: 7px; height: 7px; border-radius: 50%; background: #30425b; }\r\n  .bdc-case__dot:first-child { background: #e99c9c; }\r\n  .bdc-case__dot:nth-child(2) { background: #e7c47d; }\r\n  .bdc-case__dot:nth-child(3) { background: #7acda7; }\r\n  .bdc-case__address { margin-left: auto; color: #71839d; font-size: 11px; }\r\n  .bdc-case__dashboard { display: grid; grid-template-columns: 155px minmax(0, 1fr); min-height: 270px; }\r\n  .bdc-case__sidebar { padding: 20px 15px; border-right: 1px solid rgba(157, 195, 251, .11); background: #101d2e; }\r\n  .bdc-case__sidebar b { display: block; margin-bottom: 24px; color: #e4f1ff; font-size: 13px; }\r\n  .bdc-case__sidebar span { display: block; margin: 0 0 15px; color: #8497b3; font-size: 11px; }\r\n  .bdc-case__sidebar span:first-of-type { color: #8dccff; }\r\n  .bdc-case__screen { padding: 21px; }\r\n  .bdc-case__screen small { display: block; color: #77bfff; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }\r\n  .bdc-case__screen h3 { margin-top: 5px; color: #edf5ff; font-size: clamp(18px, 2.5vw, 24px); font-weight: 750; }\r\n  .bdc-case__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin-top: 20px; }\r\n  .bdc-case__tile { min-height: 100px; padding: 16px 14px; border: 1px solid rgba(135, 176, 239, .16); border-radius: 12px; background: #152439; }\r\n  .bdc-case__tile i { display: block; width: 26px; height: 5px; margin-bottom: 17px; border-radius: 5px; background: #5baff7; }\r\n  .bdc-case__tile:nth-child(2) i { background: #69d5c1; }\r\n  .bdc-case__tile:nth-child(3) i { background: #b0a0ff; }\r\n  .bdc-case__tile strong { display: block; color: #f1f7ff; font-size: 13px; }\r\n  .bdc-case__tile span { display: block; margin-top: 4px; color: #8fa1b9; font-size: 11px; line-height: 1.4; }\r\n  .bdc-case__visual-note { margin: 11px 2px 0 !important; color: #8292aa; font-size: 11px; text-align: right; }\r\n  .bdc-case__body { border-top: 1px solid rgba(165, 193, 235, .12); }\r\n  .bdc-case__section { padding: 34px clamp(24px, 5vw, 46px); border-bottom: 1px solid rgba(165, 193, 235, .10); }\r\n  .bdc-case__label { display: block; margin-bottom: 12px; color: #81c7ff; font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }\r\n  .bdc-case__section h3 { color: #f4f8ff; font-size: clamp(22px, 3vw, 30px); font-weight: 760; letter-spacing: -.025em; }\r\n  .bdc-case__section > p { max-width: 720px; margin-top: 12px; color: var(--bdc-muted); font-size: 14px; line-height: 1.75; }\r\n  .bdc-case__section--soft { background: rgba(5, 16, 30, .26); }\r\n  .bdc-case__two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }\r\n  .bdc-case__two article { padding: 23px; border: 1px solid rgba(165, 193, 235, .12); border-radius: 16px; background: rgba(255, 255, 255, .025); }\r\n  .bdc-case__two article span { color: #77bfff; font-size: 11px; font-weight: 800; letter-spacing: .12em; }\r\n  .bdc-case__two article h3 { margin-top: 12px; font-size: 20px; }\r\n  .bdc-case__two article p { margin-top: 10px; color: var(--bdc-muted); font-size: 13px; line-height: 1.7; }\r\n  .bdc-case__features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; margin-top: 23px; }\r\n  .bdc-case__feature { padding: 18px; border: 1px solid rgba(165, 193, 235, .12); border-radius: 14px; background: rgba(255, 255, 255, .025); }\r\n  .bdc-case__feature b { display: block; color: #edf6ff; font-size: 14px; }\r\n  .bdc-case__feature p { margin-top: 7px; color: var(--bdc-muted); font-size: 12px; line-height: 1.6; }\r\n  .bdc-case__feature-no { display: block; margin-bottom: 12px; color: #73b8ff; font-size: 11px; font-weight: 800; letter-spacing: .14em; }\r\n  .bdc-case__work { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 23px; }\r\n  .bdc-case__work article { padding: 20px; border-left: 2px solid #66aeef; border-radius: 0 11px 11px 0; background: rgba(92, 152, 231, .06); }\r\n  .bdc-case__work article:nth-child(even) { border-color: #6ad0c5; }\r\n  .bdc-case__work b { display: block; color: #f0f7ff; font-size: 14px; }\r\n  .bdc-case__work p { margin-top: 8px; color: var(--bdc-muted); font-size: 12px; line-height: 1.65; }\r\n  .bdc-case__flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-top: 25px; }\r\n  .bdc-case__flow-step { min-width: 0; padding: 16px 11px; border: 1px solid rgba(127, 185, 244, .20); border-radius: 11px; background: rgba(30, 61, 100, .27); text-align: center; }\r\n  .bdc-case__flow-step small { display: block; margin-bottom: 6px; color: #82c4ff; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }\r\n  .bdc-case__flow-step strong { display: block; color: #ecf5ff; font-size: 12px; line-height: 1.4; }\r\n  .bdc-case__tech { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 22px; }\r\n  .bdc-case__tech article { padding: 21px; border: 1px solid rgba(165, 193, 235, .13); border-radius: 14px; background: rgba(255, 255, 255, .025); }\r\n  .bdc-case__tech small { display: block; margin-bottom: 11px; color: #7ec4fd; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }\r\n  .bdc-case__tech h4 { margin: 0; color: #f0f7ff; font-size: 17px; font-weight: 740; }\r\n  .bdc-case__tech p { margin-top: 8px; color: var(--bdc-muted); font-size: 12px; line-height: 1.7; }\r\n  .bdc-case__tech-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }\r\n  .bdc-case__tech-tags span { padding: 5px 8px; border-radius: 5px; background: rgba(111, 174, 248, .10); color: #a9d3ff; font-size: 10px; font-weight: 650; }\r\n  .bdc-case__decisions { margin-top: 22px; border-top: 1px solid rgba(165, 193, 235, .14); }\r\n  .bdc-case__decision { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 22px; padding: 19px 0; border-bottom: 1px solid rgba(165, 193, 235, .12); }\r\n  .bdc-case__decision strong { color: #ecf6ff; font-size: 13px; }\r\n  .bdc-case__decision p { color: var(--bdc-muted); font-size: 12px; line-height: 1.7; }\r\n  .bdc-case__result { display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; align-items: center; margin-top: 22px; padding: 24px; border: 1px solid rgba(120, 202, 241, .28); border-radius: 17px; background: linear-gradient(120deg, rgba(41, 107, 174, .19), rgba(51, 154, 145, .09)); }\r\n  .bdc-case__result h4 { margin: 0; color: #fff; font-size: 20px; line-height: 1.3; }\r\n  .bdc-case__result p { margin-top: 10px; color: var(--bdc-muted); font-size: 13px; line-height: 1.7; }\r\n  .bdc-case__result ul { margin: 0; padding: 0; list-style: none; }\r\n  .bdc-case__result li { padding: 6px 0 6px 22px; color: #d8eaff; font-size: 12px; line-height: 1.5; position: relative; }\r\n  .bdc-case__result li::before { content: \"\u2713\"; position: absolute; left: 0; color: #77d6c3; font-weight: 900; }\r\n  .bdc-case__sales-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 23px; }\r\n  .bdc-case__sales-grid article { padding: 19px; border: 1px solid rgba(165, 193, 235, .13); border-radius: 14px; background: rgba(255, 255, 255, .025); }\r\n  .bdc-case__sales-grid span { display: inline-grid; place-items: center; width: 30px; height: 30px; margin-bottom: 15px; border-radius: 9px; background: rgba(104, 194, 239, .13); color: #8ed8ff; font-size: 12px; font-weight: 800; }\r\n  .bdc-case__sales-grid b { display: block; color: #f0f7ff; font-size: 14px; line-height: 1.4; }\r\n  .bdc-case__sales-grid p { margin-top: 8px; color: var(--bdc-muted); font-size: 12px; line-height: 1.65; }\r\n  .bdc-case__trial { display: flex; align-items: center; gap: 19px; margin-top: 21px; padding: 19px 22px; border: 1px solid rgba(110, 214, 190, .31); border-radius: 14px; background: rgba(71, 177, 154, .09); }\r\n  .bdc-case__trial-tag { flex: none; padding: 7px 10px; border-radius: 7px; background: rgba(93, 216, 178, .16); color: #93e9cb; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }\r\n  .bdc-case__trial strong { display: block; color: #e9fff7; font-size: 14px; }\r\n  .bdc-case__trial p { margin-top: 4px; color: #b8d1ce; font-size: 12px; line-height: 1.5; }\r\n  .bdc-case__closing { padding: 32px clamp(24px, 5vw, 46px) 37px; background: linear-gradient(100deg, rgba(63, 128, 218, .15), rgba(55, 197, 182, .06)); }\r\n  .bdc-case__closing h3 { color: #fff; font-size: clamp(21px, 3vw, 28px); font-weight: 760; }\r\n  .bdc-case__closing p { margin-top: 9px; color: var(--bdc-muted); font-size: 13px; line-height: 1.7; }\r\n  .bdc-case__closing .bdc-case__contact { margin-top: 17px; font-size: 12px; }\r\n  .bdc-case__contact a { color: #9bdcff !important; text-decoration: underline; text-underline-offset: 3px; }\r\n  @media (max-width: 680px) {\r\n    .bdc-case__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }\r\n    .bdc-case__dashboard { grid-template-columns: minmax(0, 1fr); }\r\n    .bdc-case__sidebar { display: none; }\r\n    .bdc-case__tiles { grid-template-columns: 1fr; }\r\n    .bdc-case__tile { min-height: auto; }\r\n    .bdc-case__two, .bdc-case__features, .bdc-case__work, .bdc-case__tech, .bdc-case__result, .bdc-case__sales-grid { grid-template-columns: 1fr; }\r\n    .bdc-case__flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }\r\n    .bdc-case__decision { grid-template-columns: 1fr; gap: 5px; }\r\n    .bdc-case__trial { align-items: flex-start; flex-direction: column; gap: 12px; }\r\n    .bdc-case__visual-note { text-align: left; }\r\n  }\r\n  @container bdcCase (max-width: 680px) {\r\n    .bdc-case__title { font-size: 34px !important; }\r\n    .bdc-case__facts, .bdc-case__flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }\r\n    .bdc-case__dashboard, .bdc-case__two, .bdc-case__features, .bdc-case__work, .bdc-case__tech, .bdc-case__result, .bdc-case__decision, .bdc-case__sales-grid { grid-template-columns: 1fr; }\r\n    .bdc-case__sidebar { display: none; }\r\n    .bdc-case__tiles { grid-template-columns: 1fr; }\r\n    .bdc-case__tile { min-height: auto; }\r\n    .bdc-case__decision { gap: 5px; }\r\n    .bdc-case__trial { align-items: flex-start; flex-direction: column; gap: 12px; }\r\n  }\r\n  @media (prefers-reduced-motion: reduce) { .bdc-case__button { transition: none; } }\r\n<\/style>\r\n\r\n<div class=\"bdc-case\">\r\n  <div class=\"bdc-case__wrap\">\r\n    <div class=\"bdc-case__inner\">\r\n      <span class=\"bdc-case__eyebrow\">Caso de estudio \u00b7 Producto SaaS<\/span>\r\n      <div class=\"bdc-case__brand\">\r\n        <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/buducloud.mariogr.com\/icon.png\" alt=\"Icono de BuDuCloud\" width=\"54\" height=\"54\" loading=\"lazy\">\r\n        <div><strong>BuDuCloud<\/strong><span>Plataforma de gesti\u00f3n empresarial<\/span><\/div>\r\n      <\/div>\r\n      <h2 class=\"bdc-case__title\">La gesti\u00f3n de una empresa, <em>en un solo lugar.<\/em><\/h2>\r\n      <p class=\"bdc-case__lead\">BuDuCloud es una plataforma de gesti\u00f3n empresarial que re\u00fane equipo, jornada, documentaci\u00f3n, comunicaci\u00f3n y facturaci\u00f3n. Un proyecto full stack construido desde la experiencia de usuario hasta la API y su despliegue en producci\u00f3n.<\/p>\r\n      <div class=\"bdc-case__actions\">\r\n        <a class=\"bdc-case__button bdc-case__button--primary\" href=\"https:\/\/buducloud.mariogr.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Visitar BuDuCloud \u2197<\/a>\r\n        <a class=\"bdc-case__button\" href=\"https:\/\/buducloud.mariogr.com\/#vista-previa\" target=\"_blank\" rel=\"noopener noreferrer\">Explorar la interfaz \u2197<\/a>\r\n      <\/div>\r\n      <div class=\"bdc-case__facts\" aria-label=\"Ficha del proyecto\">\r\n        <div class=\"bdc-case__fact\"><small>Tipo<\/small><strong>Plataforma SaaS B2B<\/strong><\/div>\r\n        <div class=\"bdc-case__fact\"><small>Alcance<\/small><strong>Producto multiempresa<\/strong><\/div>\r\n        <div class=\"bdc-case__fact\"><small>Trabajo<\/small><strong>Dise\u00f1o y desarrollo full stack<\/strong><\/div>\r\n        <div class=\"bdc-case__fact\"><small>Estado<\/small><strong>En producci\u00f3n \u00b7 2026<\/strong><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"bdc-case__visual\">\r\n      <div class=\"bdc-case__window\" role=\"img\" aria-label=\"Ilustraci\u00f3n de los m\u00f3dulos de BuDuCloud: equipo, jornada y facturaci\u00f3n\">\r\n        <div class=\"bdc-case__toolbar\"><span class=\"bdc-case__dot\"><\/span><span class=\"bdc-case__dot\"><\/span><span class=\"bdc-case__dot\"><\/span><span class=\"bdc-case__address\">buducloud.mariogr.com<\/span><\/div>\r\n        <div class=\"bdc-case__dashboard\">\r\n          <div class=\"bdc-case__sidebar\"><b>BuDuCloud<\/b><span>\u25a6 &nbsp; Resumen<\/span><span>\u25f7 &nbsp; Jornada<\/span><span>\u2667 &nbsp; Equipo<\/span><span>\u25a4 &nbsp; Documentos<\/span><span>\u25a3 &nbsp; Facturas<\/span><\/div>\r\n          <div class=\"bdc-case__screen\">\r\n            <small>Tu espacio de trabajo<\/small>\r\n            <h3>Todo conectado<\/h3>\r\n            <div class=\"bdc-case__tiles\">\r\n              <div class=\"bdc-case__tile\"><i><\/i><strong>Equipo<\/strong><span>Personas, roles y permisos<\/span><\/div>\r\n              <div class=\"bdc-case__tile\"><i><\/i><strong>Jornada<\/strong><span>Fichajes y ausencias<\/span><\/div>\r\n              <div class=\"bdc-case__tile\"><i><\/i><strong>Facturaci\u00f3n<\/strong><span>Facturas y albaranes<\/span><\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <p class=\"bdc-case__visual-note\">Vista ilustrativa de los m\u00f3dulos del producto.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"bdc-case__body\">\r\n      <section class=\"bdc-case__section bdc-case__two\" aria-label=\"Objetivo y enfoque\">\r\n        <article><span>01 \/ EL OBJETIVO<\/span><h3>Ordenar el d\u00eda a d\u00eda<\/h3><p>Reunir procesos que suelen estar dispersos \u2014equipo, fichajes, ausencias, documentos y facturas\u2014 en un espacio f\u00e1cil de consultar para cada persona de la empresa.<\/p><\/article>\r\n        <article><span>02 \/ EL ENFOQUE<\/span><h3>Una base com\u00fan<\/h3><p>Construir una aplicaci\u00f3n multiempresa con m\u00f3dulos conectados, permisos por rol y componentes compartidos. La arquitectura permite incorporar funciones sin duplicar la l\u00f3gica esencial.<\/p><\/article>\r\n      <\/section>\r\n\r\n      <section class=\"bdc-case__section bdc-case__section--soft\">\r\n        <span class=\"bdc-case__label\">Mi aportaci\u00f3n<\/span>\r\n        <h3>Producto, c\u00f3digo y puesta en marcha<\/h3>\r\n        <p>El trabajo abarca las distintas capas del proyecto, desde la interfaz que utiliza cada empresa hasta los servicios y datos que la sostienen.<\/p>\r\n        <div class=\"bdc-case__work\">\r\n          <article><b>Experiencia e interfaz<\/b><p>Dise\u00f1o responsive de la web p\u00fablica y del panel privado, con un sistema de componentes visuales reutilizables.<\/p><\/article>\r\n          <article><b>L\u00f3gica de negocio<\/b><p>Desarrollo de m\u00f3dulos para equipos, jornada, documentos, facturaci\u00f3n y soporte, con una API organizada por dominios.<\/p><\/article>\r\n          <article><b>Datos y acceso<\/b><p>Modelado de entidades, migraciones y validaci\u00f3n de datos; sesiones, membres\u00edas, roles y permisos por empresa.<\/p><\/article>\r\n          <article><b>Despliegue<\/b><p>Preparaci\u00f3n de la web y la API como aplicaciones Node.js separadas en Plesk, con un proceso de instalaci\u00f3n, migraci\u00f3n y compilaci\u00f3n.<\/p><\/article>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"bdc-case__section\">\r\n        <span class=\"bdc-case__label\">Qu\u00e9 permite hacer<\/span>\r\n        <h3>Del primer fichaje a la \u00faltima factura<\/h3>\r\n        <p>Los m\u00f3dulos est\u00e1n conectados para que el trabajo cotidiano resulte m\u00e1s sencillo de organizar y consultar.<\/p>\r\n        <div class=\"bdc-case__features\">\r\n          <div class=\"bdc-case__feature\"><span class=\"bdc-case__feature-no\">01 \/ PERSONAS<\/span><b>Equipo y organizaci\u00f3n<\/b><p>Trabajadores, centros, departamentos, invitaciones y roles personalizados.<\/p><\/div>\r\n          <div class=\"bdc-case__feature\"><span class=\"bdc-case__feature-no\">02 \/ TIEMPO<\/span><b>Jornada y ausencias<\/b><p>Fichajes, pausas, c\u00f3digos QR, vacaciones y calendario de equipo.<\/p><\/div>\r\n          <div class=\"bdc-case__feature\"><span class=\"bdc-case__feature-no\">03 \/ ARCHIVOS<\/span><b>Documentos y contratos<\/b><p>Archivos organizados, permisos de acceso y seguimiento de vencimientos.<\/p><\/div>\r\n          <div class=\"bdc-case__feature\"><span class=\"bdc-case__feature-no\">04 \/ OPERACIONES<\/span><b>Facturas y albaranes<\/b><p>Gesti\u00f3n comercial, documentos PDF y c\u00f3digos QR de verificaci\u00f3n.<\/p><\/div>\r\n          <div class=\"bdc-case__feature\"><span class=\"bdc-case__feature-no\">05 \/ EQUIPO<\/span><b>Comunicaci\u00f3n<\/b><p>Chat en tiempo real, avisos y notificaciones dentro del mismo espacio.<\/p><\/div>\r\n          <div class=\"bdc-case__feature\"><span class=\"bdc-case__feature-no\">06 \/ CONTROL<\/span><b>Seguridad y auditor\u00eda<\/b><p>Permisos por empresa, historial de actividad y herramientas de administraci\u00f3n.<\/p><\/div>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"bdc-case__section bdc-case__section--soft\">\r\n        <span class=\"bdc-case__label\">Arquitectura<\/span>\r\n        <h3>C\u00f3mo est\u00e1 construida BuDuCloud<\/h3>\r\n        <p>El proyecto est\u00e1 organizado como un monorepo con aplicaciones separadas para la web y la API, m\u00e1s paquetes compartidos para interfaz, tipos y base de datos.<\/p>\r\n        <div class=\"bdc-case__flow\" aria-label=\"Capas t\u00e9cnicas del producto\">\r\n          <div class=\"bdc-case__flow-step\"><small>Interfaz<\/small><strong>Next.js + React<\/strong><\/div>\r\n          <div class=\"bdc-case__flow-step\"><small>Servicios<\/small><strong>NestJS + Fastify<\/strong><\/div>\r\n          <div class=\"bdc-case__flow-step\"><small>Persistencia<\/small><strong>Prisma + MariaDB<\/strong><\/div>\r\n          <div class=\"bdc-case__flow-step\"><small>Producci\u00f3n<\/small><strong>Node.js + Plesk<\/strong><\/div>\r\n        <\/div>\r\n        <div class=\"bdc-case__tech\">\r\n          <article><small>01 \/ FRONTEND<\/small><h4>Una interfaz para cada contexto<\/h4><p>Next.js 15 y React 19 sirven la web p\u00fablica y la aplicaci\u00f3n privada. TypeScript, Tailwind CSS y un paquete de componentes compartidos mantienen coherencia visual y de comportamiento.<\/p><div class=\"bdc-case__tech-tags\"><span>Next.js 15<\/span><span>React 19<\/span><span>TypeScript<\/span><span>Tailwind CSS<\/span><\/div><\/article>\r\n          <article><small>02 \/ BACKEND<\/small><h4>Servicios por dominio<\/h4><p>NestJS 11 sobre Fastify organiza la API REST en m\u00f3dulos como autenticaci\u00f3n, empresas, jornada, documentos y facturaci\u00f3n. Los guards aplican el contexto de empresa y los permisos de cada usuario.<\/p><div class=\"bdc-case__tech-tags\"><span>NestJS 11<\/span><span>Fastify<\/span><span>REST API<\/span><span>RBAC<\/span><\/div><\/article>\r\n          <article><small>03 \/ DATOS<\/small><h4>Modelo y validaci\u00f3n compartidos<\/h4><p>Prisma 6 conecta con MariaDB y mantiene el esquema mediante migraciones versionadas. Los tipos y esquemas Zod compartidos ayudan a validar datos de forma consistente entre web y API.<\/p><div class=\"bdc-case__tech-tags\"><span>Prisma 6<\/span><span>MariaDB<\/span><span>Zod<\/span><span>Migraciones<\/span><\/div><\/article>\r\n          <article><small>04 \/ TIEMPO REAL<\/small><h4>Comunicaci\u00f3n inmediata<\/h4><p>Socket.IO conecta el chat y las notificaciones con la aplicaci\u00f3n. Las conexiones se autentican y se asocian a la empresa correspondiente.<\/p><div class=\"bdc-case__tech-tags\"><span>Socket.IO<\/span><span>WebSockets<\/span><span>Chat<\/span><\/div><\/article>\r\n          <article><small>05 \/ IDENTIDAD<\/small><h4>Acceso y sesiones<\/h4><p>Contrase\u00f1as protegidas con Argon2id, tokens JWT de corta duraci\u00f3n y renovaci\u00f3n mediante cookies httpOnly. El acceso combina verificaci\u00f3n de correo, membres\u00edas y roles.<\/p><div class=\"bdc-case__tech-tags\"><span>Argon2id<\/span><span>JWT<\/span><span>Cookies httpOnly<\/span><\/div><\/article>\r\n          <article><small>06 \/ ENTREGA<\/small><h4>Del repositorio al servidor<\/h4><p>pnpm y Turborepo coordinan el monorepo. En Plesk, web y API se ejecutan en subdominios distintos y un script prepara dependencias, cliente Prisma, migraciones y compilaci\u00f3n.<\/p><div class=\"bdc-case__tech-tags\"><span>pnpm<\/span><span>Turborepo<\/span><span>Plesk<\/span><span>Node.js<\/span><\/div><\/article>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"bdc-case__section\">\r\n        <span class=\"bdc-case__label\">Decisiones t\u00e9cnicas<\/span>\r\n        <h3>Los detalles que sostienen el producto<\/h3>\r\n        <p>La complejidad del proyecto est\u00e1 en hacer que muchas funciones convivan con una experiencia y unas reglas de acceso coherentes.<\/p>\r\n        <div class=\"bdc-case__decisions\">\r\n          <div class=\"bdc-case__decision\"><strong>Multiempresa<\/strong><p>Las rutas de empresa resuelven el contexto activo y comprueban la membres\u00eda y los permisos necesarios antes de operar con sus datos.<\/p><\/div>\r\n          <div class=\"bdc-case__decision\"><strong>Componentes comunes<\/strong><p>La web reutiliza un sistema de interfaz, mientras los tipos y validaciones compartidos reducen diferencias entre lo que acepta el frontend y lo que procesa la API.<\/p><\/div>\r\n          <div class=\"bdc-case__decision\"><strong>Documentos \u00fatiles<\/strong><p>La plataforma genera facturas y albaranes en PDF, incorpora c\u00f3digos QR y organiza archivos con reglas de acceso seg\u00fan el contexto de cada empresa.<\/p><\/div>\r\n          <div class=\"bdc-case__decision\"><strong>Despliegue repetible<\/strong><p>El proceso de Plesk ejecuta las migraciones antes de compilar y reiniciar las aplicaciones, para mantener c\u00f3digo y esquema de datos alineados.<\/p><\/div>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"bdc-case__section bdc-case__section--soft\">\r\n        <span class=\"bdc-case__label\">Resultado<\/span>\r\n        <h3>Un producto real, disponible en producci\u00f3n<\/h3>\r\n        <div class=\"bdc-case__result\">\r\n          <div><h4>BuDuCloud ya se puede explorar<\/h4><p>La web p\u00fablica presenta el producto y permite ver una vista previa de la interfaz. La aplicaci\u00f3n y la API funcionan en subdominios propios, con MariaDB como base de datos.<\/p><\/div>\r\n          <ul><li>Web p\u00fablica y panel privado<\/li><li>API REST y comunicaci\u00f3n en tiempo real<\/li><li>Modelo de datos con migraciones<\/li><li>Despliegue en Plesk<\/li><\/ul>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"bdc-case__section\" aria-label=\"BuDuCloud para empresas\">\r\n        <span class=\"bdc-case__label\">Para empresas<\/span>\r\n        <h3>\u00bfTe gustar\u00eda contratar BuDuCloud para tu negocio?<\/h3>\r\n        <p>Adem\u00e1s de ser un proyecto de desarrollo, BuDuCloud est\u00e1 pensado para quienes necesitan organizar la operativa diaria de su empresa en una sola plataforma.<\/p>\r\n        <div class=\"bdc-case__sales-grid\">\r\n          <article><span>01<\/span><b>Todo a mano<\/b><p>Consulta equipo, jornadas, documentos y facturaci\u00f3n desde un mismo espacio de trabajo.<\/p><\/article>\r\n          <article><span>02<\/span><b>Accesos a medida<\/b><p>Invita a tu equipo y define qu\u00e9 puede ver o gestionar cada persona mediante roles y permisos.<\/p><\/article>\r\n          <article><span>03<\/span><b>Organizaci\u00f3n adaptable<\/b><p>Gestiona empresas, centros y departamentos seg\u00fan la estructura de tu negocio.<\/p><\/article>\r\n        <\/div>\r\n        <div class=\"bdc-case__trial\">\r\n          <span class=\"bdc-case__trial-tag\">Prueba gratuita<\/span>\r\n          <div><strong>Expl\u00f3ralo durante 14 d\u00edas<\/strong><p>Empieza sin tarjeta y consulta los planes disponibles cuando quieras dar el siguiente paso.<\/p><\/div>\r\n        <\/div>\r\n      <\/section>\r\n    <\/div>\r\n\r\n    <div class=\"bdc-case__closing\">\r\n      <h3>Empieza a organizar tu empresa con BuDuCloud<\/h3>\r\n      <p>Crea tu cuenta para probar la plataforma o revisa los planes y precios actuales.<\/p>\r\n      <div class=\"bdc-case__actions\">\r\n        <a class=\"bdc-case__button bdc-case__button--primary\" href=\"https:\/\/buducloud.mariogr.com\/registro\" target=\"_blank\" rel=\"noopener noreferrer\">Empezar prueba gratis \u2197<\/a>\r\n        <a class=\"bdc-case__button\" href=\"https:\/\/buducloud.mariogr.com\/precios\" target=\"_blank\" rel=\"noopener noreferrer\">Ver planes y precios \u2197<\/a>\r\n      <\/div>\r\n      <p class=\"bdc-case__contact\">\u00bfQuieres saber m\u00e1s sobre BuDuCloud? <a href=\"https:\/\/mariogr.com\/#contact\" target=\"_blank\" rel=\"noopener noreferrer\">Hablar con Mario \u2197<\/a><\/p>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"featured_media":1632,"menu_order":0,"template":"","portfolio_categories":[47,53],"portfolio_tags":[61,27,54],"class_list":["post-1631","portfolio","type-portfolio","status-publish","has-post-thumbnail","hentry","portfolio_categories-informatica","portfolio_categories-web","portfolio_tags-api","portfolio_tags-app","portfolio_tags-web"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>BuDuCloud - Plataforma de gesti\u00f3n empresarial - Mario Gonz\u00e1lez<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"BuDuCloud - Plataforma de gesti\u00f3n empresarial - Mario Gonz\u00e1lez\" \/>\n<meta property=\"og:description\" content=\"Caso de estudio \u00b7 Producto SaaS BuDuCloudPlataforma de gesti\u00f3n empresarial La gesti\u00f3n de una empresa, en un solo lugar. BuDuCloud...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/\" \/>\n<meta property=\"og:site_name\" content=\"Mario Gonz\u00e1lez\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-04T09:56:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mariogr.com\/wp-content\/uploads\/2026\/11\/icon.png\" \/>\n\t<meta property=\"og:image:width\" content=\"256\" \/>\n\t<meta property=\"og:image:height\" content=\"256\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mariogr.com\\\/index.php\\\/portfolio-archive\\\/buducloud-plataforma-de-gestion-empresarial\\\/\",\"url\":\"https:\\\/\\\/mariogr.com\\\/index.php\\\/portfolio-archive\\\/buducloud-plataforma-de-gestion-empresarial\\\/\",\"name\":\"BuDuCloud - Plataforma de gesti\u00f3n empresarial - Mario Gonz\u00e1lez\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariogr.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mariogr.com\\\/index.php\\\/portfolio-archive\\\/buducloud-plataforma-de-gestion-empresarial\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mariogr.com\\\/index.php\\\/portfolio-archive\\\/buducloud-plataforma-de-gestion-empresarial\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mariogr.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/icon.png\",\"datePublished\":\"2026-11-04T08:51:32+00:00\",\"dateModified\":\"2026-11-04T09:56:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mariogr.com\\\/index.php\\\/portfolio-archive\\\/buducloud-plataforma-de-gestion-empresarial\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mariogr.com\\\/index.php\\\/portfolio-archive\\\/buducloud-plataforma-de-gestion-empresarial\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/mariogr.com\\\/index.php\\\/portfolio-archive\\\/buducloud-plataforma-de-gestion-empresarial\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mariogr.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/icon.png\",\"contentUrl\":\"https:\\\/\\\/mariogr.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/icon.png\",\"width\":256,\"height\":256},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mariogr.com\\\/index.php\\\/portfolio-archive\\\/buducloud-plataforma-de-gestion-empresarial\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/mariogr.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Portfolio\",\"item\":\"https:\\\/\\\/mariogr.com\\\/index.php\\\/portfolio-archive\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"BuDuCloud &#8211; Plataforma de gesti\u00f3n empresarial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mariogr.com\\\/#website\",\"url\":\"https:\\\/\\\/mariogr.com\\\/\",\"name\":\"Mario Gonz\u00e1lez\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/mariogr.com\\\/#\\\/schema\\\/person\\\/eb8233b36ab81d794487c9dabf5099ec\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mariogr.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/mariogr.com\\\/#\\\/schema\\\/person\\\/eb8233b36ab81d794487c9dabf5099ec\",\"name\":\"Mario Gonz\u00e1lez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd530be9d9f1f94c4f61cde6df1335bd8ac6fcc3f83a362eb0911f10b6f91d25?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd530be9d9f1f94c4f61cde6df1335bd8ac6fcc3f83a362eb0911f10b6f91d25?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd530be9d9f1f94c4f61cde6df1335bd8ac6fcc3f83a362eb0911f10b6f91d25?s=96&d=mm&r=g\",\"caption\":\"Mario Gonz\u00e1lez\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd530be9d9f1f94c4f61cde6df1335bd8ac6fcc3f83a362eb0911f10b6f91d25?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/mariogr.com\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/mariogr99\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"BuDuCloud - Plataforma de gesti\u00f3n empresarial - Mario Gonz\u00e1lez","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/","og_locale":"es_ES","og_type":"article","og_title":"BuDuCloud - Plataforma de gesti\u00f3n empresarial - Mario Gonz\u00e1lez","og_description":"Caso de estudio \u00b7 Producto SaaS BuDuCloudPlataforma de gesti\u00f3n empresarial La gesti\u00f3n de una empresa, en un solo lugar. BuDuCloud...","og_url":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/","og_site_name":"Mario Gonz\u00e1lez","article_modified_time":"2026-11-04T09:56:55+00:00","og_image":[{"width":256,"height":256,"url":"https:\/\/mariogr.com\/wp-content\/uploads\/2026\/11\/icon.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/","url":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/","name":"BuDuCloud - Plataforma de gesti\u00f3n empresarial - Mario Gonz\u00e1lez","isPartOf":{"@id":"https:\/\/mariogr.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/#primaryimage"},"image":{"@id":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/#primaryimage"},"thumbnailUrl":"https:\/\/mariogr.com\/wp-content\/uploads\/2026\/11\/icon.png","datePublished":"2026-11-04T08:51:32+00:00","dateModified":"2026-11-04T09:56:55+00:00","breadcrumb":{"@id":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/#primaryimage","url":"https:\/\/mariogr.com\/wp-content\/uploads\/2026\/11\/icon.png","contentUrl":"https:\/\/mariogr.com\/wp-content\/uploads\/2026\/11\/icon.png","width":256,"height":256},{"@type":"BreadcrumbList","@id":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/buducloud-plataforma-de-gestion-empresarial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/mariogr.com\/"},{"@type":"ListItem","position":2,"name":"Portfolio","item":"https:\/\/mariogr.com\/index.php\/portfolio-archive\/"},{"@type":"ListItem","position":3,"name":"BuDuCloud &#8211; Plataforma de gesti\u00f3n empresarial"}]},{"@type":"WebSite","@id":"https:\/\/mariogr.com\/#website","url":"https:\/\/mariogr.com\/","name":"Mario Gonz\u00e1lez","description":"","publisher":{"@id":"https:\/\/mariogr.com\/#\/schema\/person\/eb8233b36ab81d794487c9dabf5099ec"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mariogr.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/mariogr.com\/#\/schema\/person\/eb8233b36ab81d794487c9dabf5099ec","name":"Mario Gonz\u00e1lez","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fd530be9d9f1f94c4f61cde6df1335bd8ac6fcc3f83a362eb0911f10b6f91d25?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fd530be9d9f1f94c4f61cde6df1335bd8ac6fcc3f83a362eb0911f10b6f91d25?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fd530be9d9f1f94c4f61cde6df1335bd8ac6fcc3f83a362eb0911f10b6f91d25?s=96&d=mm&r=g","caption":"Mario Gonz\u00e1lez"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/fd530be9d9f1f94c4f61cde6df1335bd8ac6fcc3f83a362eb0911f10b6f91d25?s=96&d=mm&r=g"},"sameAs":["https:\/\/mariogr.com","https:\/\/www.linkedin.com\/in\/mariogr99\/"]}]}},"_links":{"self":[{"href":"https:\/\/mariogr.com\/index.php\/wp-json\/wp\/v2\/portfolio\/1631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mariogr.com\/index.php\/wp-json\/wp\/v2\/portfolio"}],"about":[{"href":"https:\/\/mariogr.com\/index.php\/wp-json\/wp\/v2\/types\/portfolio"}],"version-history":[{"count":7,"href":"https:\/\/mariogr.com\/index.php\/wp-json\/wp\/v2\/portfolio\/1631\/revisions"}],"predecessor-version":[{"id":1654,"href":"https:\/\/mariogr.com\/index.php\/wp-json\/wp\/v2\/portfolio\/1631\/revisions\/1654"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mariogr.com\/index.php\/wp-json\/wp\/v2\/media\/1632"}],"wp:attachment":[{"href":"https:\/\/mariogr.com\/index.php\/wp-json\/wp\/v2\/media?parent=1631"}],"wp:term":[{"taxonomy":"portfolio_categories","embeddable":true,"href":"https:\/\/mariogr.com\/index.php\/wp-json\/wp\/v2\/portfolio_categories?post=1631"},{"taxonomy":"portfolio_tags","embeddable":true,"href":"https:\/\/mariogr.com\/index.php\/wp-json\/wp\/v2\/portfolio_tags?post=1631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}