{"id":194759,"date":"2026-03-25T04:20:02","date_gmt":"2026-03-25T08:20:02","guid":{"rendered":"https:\/\/innowise.com\/?post_type=case&#038;p=194759"},"modified":"2026-04-07T04:17:10","modified_gmt":"2026-04-07T08:17:10","slug":"gestical-platform-modernization","status":"publish","type":"case","link":"https:\/\/innowise.com\/pl\/case\/gestical-platform-modernization\/","title":{"rendered":"Modernizacja platformy operacyjnej Gestical"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"194759\" class=\"elementor elementor-194759\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a5d40de e-flex e-con-boxed e-con e-parent\" data-id=\"a5d40de\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-b8b99be e-con-full e-flex e-con e-child\" data-id=\"b8b99be\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-22b05d8 elementor-widget elementor-widget-image\" data-id=\"22b05d8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/generated_019cd68b-4e5a-723d-80d1-4f37b596173e-1.svg\" title=\"\" alt=\"gestical\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-87e3df3 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"87e3df3\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Re-architecturing an operational app for Gestical<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0d4cf26 last-child-mb-0 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"0d4cf26\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Innowise migrated all client applications to a single Azure-based ecosystem utilizing a unified technology stack.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2201c4c elementor-mobile-align-justify elementor-widget-mobile__width-inherit btn-min-320 elementor-widget elementor-widget-button\" data-id=\"2201c4c\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Start my project<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-123eae4 e-con-full e-flex e-con e-child\" data-id=\"123eae4\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-de8bb5d elementor-widget elementor-widget-html\" data-id=\"de8bb5d\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.hero-info-card {\n    display: flex;\n    flex-direction: column;\n    \n    color: #2e2e2e;\n    background-color: #FFFFFF;\n\n\n\n    width: 400px;\n    \n    height: 100%;\n}\n\n.hero-info-card__content {\n    display: flex;\n    flex-direction: column;\n    row-gap: 20px;\n\n    padding: 30px;\n\n    border-width: 0px 1px 1px 1px;\n    border-style: solid;\n    border-color: #999999;\n    \n    flex-grow: 1;\n}\n\n.hero-info-card__content-row {\n    display: grid;\n    grid-template-columns: 102px 1fr;\n\n    column-gap: 40px;\n}\n\n\nimg.hero-info-card__img {\n    display: flex;\n    object-fit: cover;\n    width: 100%;\n    height: auto;\n}\n\n.hero-info-card__param {\n    font-family: Karla;\n    font-weight: 600;\n    font-size: 16px;\n    line-height: 150%;\n\n    text-transform: uppercase;\n}\n\n.hero-info-card__value {\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 16px;\n    line-height: 150%;\n}\n\n@media screen and (max-width:1279px) {\n    .hero-info-card {\n        display: grid;\n        grid-template-columns: 390px 1fr;\n\n        place-items: stretch;\n\n        width: 100%;\n    }\n    \n    .hero-info-card__content {\n        padding: 30px 175px 30px 30px;\n\n        border-width: 1px 0px 1px 0px;\n    }\n\n}\n\n\n@media screen and (max-width:840px) {\n    .hero-info-card__content {\n        padding: 30px;\n    }\n}\n\n\n@media screen and (max-width:780px) {\n    .hero-info-card {\n        grid-template-columns: 1fr 1fr;\n    }\n}\n\n\n\n\n@media screen and (max-width:767px) {\n    .hero-info-card {\n        display: flex;\n        flex-direction: column;\n\n        width: 100%;\n    }\n    \n    img.hero-info-card__img {\n        max-height: 300px;\n    }\n\n    \n    .hero-info-card__content {\n        padding: 20px 15px;\n\n        row-gap: 15px;\n\n        border-width: 0px 0px 1px 0px;\n    }\n    \n    .hero-info-card__param {\n        font-size: 14px;\n    }\n\n    .hero-info-card__value {\n        font-size: 14px;\n    }\n}\n<\/style>\n\n<div class=\"hero-info-card\">\n    <img decoding=\"async\" class=\"hero-info-card__img\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/smart-meter-integration.png\" alt=\"Futuristic smart energy meter device with a glowing digital display\"\/>\n    <div class=\"hero-info-card__content\">\n        <div class=\"hero-info-card__content-row\">\n            <span class=\"hero-info-card__param\">Industry<\/span>\n            <span  class=\"hero-info-card__value\"><a href=\"https:\/\/innowise.com\/industries\/energy-and-utilities\/\" style=\"text-decoration: underline\">Energy & Utilities<\/a>\n<\/span>\n        <\/div>\n        <div class=\"hero-info-card__content-row\">\n            <span class=\"hero-info-card__param\">Employees<\/span>\n            <span class=\"hero-info-card__value\">11-50<\/span>\n        <\/div>\n        \n        <div class=\"hero-info-card__content-row\">\n            <span class=\"hero-info-card__param\">Region<\/span>\n            <span class=\"hero-info-card__value\">Switzerland<\/span>\n        <\/div>\n        \n\n        <div class=\"hero-info-card__content-row\">\n            <span class=\"hero-info-card__param\">Services<\/span>\n            <span class=\"hero-info-card__value\">Software development <a href=\"https:\/\/innowise.com\/hire-developers\/it-staff-augmentation\/\" style=\"text-decoration: underline\">Staff augmentation<\/a><\/span>\n        <\/div>\n        \n                <div class=\"hero-info-card__content-row\">\n            <span class=\"hero-info-card__param\">Client since<\/span>\n            <span class=\"hero-info-card__value\">2025<\/span>\n        <\/div>\n    <\/div>\n<\/div>\t\t\t\t<\/div>\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<div class=\"elementor-element elementor-element-60191b4 article-description e-flex e-con-boxed e-con e-parent\" data-id=\"60191b4\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-97ca77d author-article e-con-full e-flex e-con e-child\" data-id=\"97ca77d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-538f134 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-html\" data-id=\"538f134\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.section-bg--white, .section-bg--grey {\n    position: relative;\n}\n\n.section-bg--white::before, .section-bg--grey::before {\n    content:\"\";\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left:-100vw;\n    width: 300vw;\n}\n\n.section-bg--white::before {\n    background-color: #ffffff;\n}\n\n.section-bg--grey::before {\n    background-color: #FBFBFD;\n}\n\n\n.summarize_ai_button {\n    min-width:320px !important;\n    align-items: center;\n    justify-content: center;\n}\n\n@media (max-width: 767px) {\n    .summarize_ai_button {\n        width: 100% !important;\n        min-width: initial !important;\n    }\n}\n\n\n\/* hiding generic disclaimer for open cases *\/\n\/*.case-alert-wrapper {\n    display: none !important;\n}*\/\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7e768ef e-con-full section-bg--white e-flex e-con e-child\" data-id=\"7e768ef\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f4a37e2 e-con-full e-flex e-con e-child\" data-id=\"f4a37e2\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bd197f8 elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"bd197f8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Client overview<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b3436c8 elementor-widget elementor-widget-shortcode\" data-id=\"b3436c8\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[summarize_button_ai]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8c0f0c6 elementor-widget__width-inherit elementor-widget-tablet__width-inherit last-child-mb-0 elementor-widget elementor-widget-text-editor\" data-id=\"8c0f0c6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/gestical.ch\/en\/\" target=\"_blank\" rel=\"nofollow noreffer\">Gestical<\/a> is a Swiss-based company focusing on energy efficiency, specifically in the measurement and accounting of heat and water consumption for residential and industrial buildings. At the core of their operations lies a proprietary suite of interconnected applications that supports everything from task planning and fieldwork to reporting and billing.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-055f915 elementor-widget elementor-widget-html\" data-id=\"055f915\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.testim-container {\n    display: flex;\n    align-items: start;\n\n    gap: 20px;\n\n    width: 100%;\n\n    padding: 50px 50px 50px 30px;\n\n    color: #2e2e2e;\n\n    border: 1px solid transparent;\n    border-image: linear-gradient(93.93deg, #60B5FF 3.21%, #EB757C 96.79%) 1 round;  \n}\n\n\nimg.testim-icon {\n    display: flex;\n    width: 24px;\n    height: auto;\n\n    aspect-ratio: 1\/1;\n\n    flex-shrink: 0;\n}\n\n.testim-content {\n    display: flex;\n    flex-direction: column;\n\n    gap: 40px;\n}\n\np.testim-text {\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 22px;\n    line-height: 150%;\n\n    margin: 0;\n}\n\n.testim__lower-part-container {\n    display: flex;\n    align-items: center;\n    gap: 40px;\n}\n\n.testim-author__container {\n    display: flex;\n    gap: 40px;\n\n    align-items: start;\n}\n\nimg.testim-author__img {\n    display: flex;\n\n    flex-shrink: 0;\n}\n\n.testim-author__info {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n}\n\n.testim-author__name {\n    font-family: Sora;\n    font-weight: 600;\n    font-size: 20px;\n    line-height: 135%;\n\n    margin: 0;\n}\n\n.testim-author__role {\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 18px;\n    line-height: 150%;\n\n    margin: 0;\n}\n\n.testim-link-btn {\n    align-self: end;\n\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 18px;\n    line-height: 150%;\n    letter-spacing: 0%;\n\n    cursor: pointer;\n\n    border: none;\n    border-radius: 0;\n    margin: 0;\n    padding: 0;\n    background: none;\n\n    color: #C63031;\n    border-bottom: 1px solid #C63031;\n}\n\n.testim-link-btn:hover, .testim-link-btn:active, .testim-link-btn:focus {\n    color: #C63031 !important;\n    border-bottom: 1px solid #C63031 !important;\n}\n\n.testim-modal__backdrop {\n\n    position: fixed;\n    top: 0;\n    left: 0;\n    height: 100vh;\n    width: 100vw;\n\n    display: none;\n\n    align-items: center;\n    justify-content: center;\n\n    padding: 0 15px;\n    max-height: 100vh;\n\n    z-index: 99999999;\n\n    background-color: rgba(0, 0, 0, 0.4);\n}\n\n.testim-modal__backdrop.testim-modal--open {\n    display: flex;\n    flex-direction: column;\n}\n\n.testim-modal {\n    max-width: 700px;\n    width: 100%;\n    position: relative;\n    background-color: #ffffff;\n}\n\n.testim-modal__sources {\n    overflow-y: auto;\n    width: 100%;\n    height: 100%;\n    max-height: calc(100vh - 140px);\n}\n.testim-modal__sources img {\n    width: 100%;\n    max-width: 700px;\n}\n\n.testim-modal__close-btn {\n    position: absolute;\n    top: 15px;\n    right: 15px;\n\n    cursor: pointer;\n\n    display: flex;\n\n    border: none;\n    border-radius: 0;\n    margin: 0;\n    padding: 0;\n    background: none;\n}\n\n\n.testim-modal__sources::-webkit-scrollbar {\n    width: 5px !important;\n    background-color: #F5F5F7 !important;\n}\n\n.testim-modal__sources::-webkit-scrollbar-thumb {\n    background-color: #999999 !important;\n    border-radius: 5px !important;\n}\n\n@media screen and (max-width:767px) {\n    \n    .testim__lower-part-container {\n        gap: 20px;\n        align-items: start;\n        img {\n            width: 76px;\n        }\n    }\n    \n    .testim-author__container {\n        gap: 20px;\n    }\n\n    .testim-link-btn {\n        align-self: start;\n\n        font-size: 14px;\n    }\n    .testim-container {\n        flex-direction: column;\n        gap: 10px;\n\n        padding: 20px;\n    }\n\n    img.testim-icon {\n        width: 16px;\n    }\n\n    .testim-content {\n        gap: 30px;\n    }\n\n    p.testim-text {\n        font-size: 16px;\n    }\n\n    img.testim-author__img {\n        width: 76px;\n    }\n\n    .testim-author__name {\n        font-size: 16px;\n    }\n\n    .testim-author__role {\n        font-size: 14px;\n    }\n}\n<\/style>\n\n<div class=\"testim-container\">\n    <img decoding=\"async\"  class=\"testim-icon\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/Frame-2131329670.svg\" alt=\"Quote icon\" \/>\n    <div class=\"testim-content\">\n        <p class=\"testim-text\">\n            While the project's complexity was initially underestimated, the subsequent reinforcement of the team significantly enhanced operational organization and communication. This allowed Innowise to professionally manage intricate technical layers, delivering high-quality results that met our business objectives.\n        <\/p>\n        <div  class=\"testim__lower-part-container\">\n            <div class=\"testim-author__img\">\n                <img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/generated_019cd68b-4e5a-723d-80d1-4f37b596173e-1.svg\" \/ alt=\"\">\n            <\/div>\n            <div class=\"testim-author__container\">\n                <div class=\"testim-author__info\">\n                    <span class=\"testim-author__name\">Sacha De Toni\n<\/span>\n                    <span class=\"testim-author__role\">Co-director and CIO, Gestical\n<\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"testim-modal__backdrop\">\n    <div class=\"testim-modal\">\n        <button class=\"testim-modal__close-btn\" title=\"Close\"><img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/carbon_close.svg\" alt=\"Cross icon\" \/><\/button>\n        <div class=\"testim-modal__sources\">\n            <img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/1_11zon.png\" alt=\"Letter of recommendation, Page 1\" \/>\n            <img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/2_11zon.png\" alt=\"Letter of recommendation, Page 2\" \/>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", ()=>{\n    const dialogOpener = document.querySelector(\".testim-link-btn\");\n    const dialog = document.querySelector(\".testim-modal__backdrop\");\n    const dialogCloser = document.querySelector(\".testim-modal__close-btn\");\n    \n    \n    const escHandler = function(event) {\n      if (event.isComposing) {\n        return;\n      }\n      if (event.code = \"Escape\") {\n        const openedModal = document.querySelector(\".testim-modal__backdrop.testim-modal--open\");\n        \n        if (openedModal)\n            openedModal.classList.remove(\"testim-modal--open\")\n            \n        window.removeEventListener(\"keyup\", escHandler);\n      }\n    }\n    \n    dialogOpener.addEventListener(\"click\", () => {\n        dialog.classList.add(\"testim-modal--open\")\n        \n        window.addEventListener(\"keyup\", escHandler);\n        \n    })\n    dialogCloser.addEventListener(\"click\", () => {\n        dialog.classList.remove(\"testim-modal--open\")\n            \n        window.removeEventListener(\"keyup\", escHandler);\n    })\n    dialog.addEventListener(\"click\", (event) => {\n        if (event.target === event.currentTarget) {\n            dialog.classList.remove(\"testim-modal--open\")\n            \n            window.removeEventListener(\"keyup\", escHandler);\n        }\n    })\n})\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9c97c75 e-con-full  section-bg--grey e-flex e-con e-child\" data-id=\"9c97c75\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7241990 elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"7241990\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Challenge<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45d384e elementor-widget__width-inherit elementor-widget-tablet__width-inherit last-child-mb-0 elementor-widget elementor-widget-text-editor\" data-id=\"45d384e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Over time, Gestical\u2019s application ecosystem \u2014 Gestical Web, Gestical Plan, and Gestical MIF \u2014 had grown significantly in features and system load. However, architecture, infrastructure, and performance optimization had not evolved accordingly.<\/span> <span style=\"font-weight: 400;\">Innowise was engaged to modernize the core application, Gestical Web.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5bb8bb6 elementor-widget elementor-widget-html\" data-id=\"5bb8bb6\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n.challenge-tabs {\r\n    display: flex;\r\n    flex-direction: column;\r\n\r\n    width: 100%;\r\n}\r\n\r\n.challenge-tab-container {\r\n    display: grid;\r\n    grid-template-columns: 1fr 1fr;\r\n\r\n    width: 100%;\r\n\r\n    place-items: stretch;\r\n}\r\n\r\n\r\n.challenge-tab-container button.challenge-tab-btn {\r\n    display: flex;\r\n\r\n    font-family: Sora;\r\n    font-weight: 400;\r\n    font-size: 24px;\r\n    line-height: 135%;\r\n\r\n    text-align: start;\r\n\r\n    cursor: pointer;\r\n\r\n    background-color: transparent;\r\n    color: #717171;\r\n    border: none;\r\n    border-bottom: 1px solid #999999;\r\n\r\n    padding: 0 40px 30px;\r\n    \r\n    border-radius: 0;\r\n    \r\n    \r\n    white-space: normal;\r\n    \r\n    transition: initial;\r\n}\r\n\r\n.challenge-tab-container button.challenge-tab-btn.challenge-tab-btn--active {\r\n    color: #2E2E2E;\r\n    border-bottom: 2px solid #C63031;\r\n\r\n    cursor: default;\r\n\r\n    padding: 0 40px 29px;\r\n}\r\n\r\n.challenge-tab-content {\r\n    display: none;\r\n\r\n    flex-direction: column;\r\n    gap: 18px;\r\n\r\n    padding: 40px 40px 0;\r\n\r\n    font-family: Karla;\r\n    font-weight: 400;\r\n    font-size: 22px;\r\n    line-height: 150%;\r\n}\r\n\r\n.challenge-tab-content.challenge-tab-content--active {\r\n    display: flex;\r\n}\r\n\r\n.challenge-tab-content>* {\r\n    margin: 0;\r\n}\r\n\r\n.challenge-tab-content ul {\r\n    list-style-position: outside;\r\n    \r\n    margin: 0;\r\n    padding: 0;\r\n    \r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 16px;\r\n    \r\n    padding-left: 1.5em;\r\n}\r\n\r\n.challenge-tab-content li {\r\n    margin: 0;\r\n    padding: 0;\r\n}\r\n\r\n@media screen and (max-width:780px) {\r\n    .challenge-tab-content {\r\n        padding: 30px 30px 0;\r\n    }\r\n\r\n    .challenge-tab-container button.challenge-tab-btn {\r\n        padding: 0 20px 15px;\r\n    }\r\n\r\n    .challenge-tab-container button.challenge-tab-btn.challenge-tab-btn--active {\r\n        padding: 0 20px 14px;\r\n    }\r\n}\r\n\r\n@media screen and (max-width:767px) {\r\n    .challenge-tab-content {\r\n        padding: 20px 0 0;\r\n\r\n        font-size: 16px;\r\n    }\r\n    \r\n    .challenge-tab-container button.challenge-tab-btn {\r\n        padding: 0 15px 15px;\r\n\r\n        font-size: 16px;\r\n    }\r\n\r\n    .challenge-tab-container button.challenge-tab-btn.challenge-tab-btn--active {\r\n        padding: 0 15px 14px;\r\n        color: #2E2E2E;\r\n    }\r\n}\r\n<\/style>\r\n\r\n<div class=\"challenge-tabs\">\r\n    <div class=\"challenge-tab-container\">\r\n        <button class=\"challenge-tab-btn challenge-tab-btn--active\">Business challenges<\/button>\r\n        <button class=\"challenge-tab-btn\">Technical challenges<\/button>\r\n    <\/div>\r\n    <div class=\"challenge-tab-content-container\">\r\n        <div class=\"challenge-tab-content challenge-tab-content--active\">\r\n            <ul>\r\n                <li><b>System slowdowns and outages.<\/b> The Gestical system was not designed for dynamic scaling. As the number of buildings, devices, and users increased, the risk of outages and system slowdowns grew.<\/li>\r\n                <li><b>Heavy reliance on documented workflows outside the system.<\/b> Many fundamental business processes had not been integrated into the system or adequately documented, forcing everything to be documented externally to the system. Consequently, employees had to rely on documentation present outside the system to complete their tasks. This resulted in an increase in manual work, a slowdown in operations, and a greater risk of not having complete information in the system.<\/li>\r\n            <\/ul>\r\n        <\/div>\r\n\r\n        <div class=\"challenge-tab-content\">\r\n            <ul>\r\n                <li>\r\n                    <b>Outdated technology stack.<\/b> Applications were built with an outdated version of ASP.NET MVC and hosted on a single Azure virtual machine.\r\n                <\/li>\r\n                <li>\r\n                    <b>Non-optimized database.<\/b> The client\u2019s on-premise database lacked normalization and indexing, impacting performance.\r\n                <\/li>\r\n            <\/ul>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n    const tabButtons = [...document.querySelectorAll(\".challenge-tabs .challenge-tab-btn\")];\r\n    const tabContents = [...document.querySelectorAll(\".challenge-tabs .challenge-tab-content\")];\r\n\r\n    const tabButtonActiveClass = \"challenge-tab-btn--active\"\r\n    const tabContentActiveClass = \"challenge-tab-content--active\"\r\n\r\n    const activateItem = (index) => {\r\n        tabButtons.forEach((item, itemIndex) => {\r\n            if (itemIndex === index) {\r\n                item.classList.add(tabButtonActiveClass);\r\n            } else {\r\n                item.classList.remove(tabButtonActiveClass);\r\n            }\r\n        });\r\n        \r\n        tabContents.forEach(\r\n            (itemDesc, itemDescIndex) => {\r\n                if (itemDescIndex === index) {\r\n                    itemDesc.classList.add(tabContentActiveClass);\r\n                } else {\r\n                    itemDesc.classList.remove(tabContentActiveClass);\r\n                }\r\n            }\r\n        );\r\n    }\r\n\r\n    tabButtons.forEach((item, index)=>{\r\n        item.addEventListener(\"click\", () => activateItem(index))\r\n    })\r\n})\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-159721f e-con-full elementor-hidden-desktop e-flex e-con e-child\" data-id=\"159721f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6b61216 elementor-widget__width-inherit elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"6b61216\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Modernize your internal systems with Innowise<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-181906c elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"181906c\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Let\u2019s talk<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7ed1eeb e-con-full section-bg--white e-flex e-con e-child\" data-id=\"7ed1eeb\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ae13185 elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"ae13185\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Solution we delivered<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e23681e e-con-full e-flex e-con e-child\" data-id=\"e23681e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35bc552 elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"35bc552\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Phased modernization of the Gestical platform<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-85a5ac7 e-con-full e-flex e-con e-child\" data-id=\"85a5ac7\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-acff474 elementor-widget__width-inherit elementor-widget-tablet__width-inherit last-child-mb-0 elementor-widget elementor-widget-text-editor\" data-id=\"acff474\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Innowise implemented a phased modernization strategy that transformed Gestical\u2019s legacy system into a cloud-native, scalable, and secure platform.<\/p><p>The modernization covered Gestical\u2019s core operational application, Gestical Web, which users use to manage buildings, monitor devices, generate reports, and energy costs.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e0f79fc elementor-widget__width-inherit elementor-widget elementor-widget-image\" data-id=\"e0f79fc\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-before-modernization.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"gestical-platform-before-modernization\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MTk0ODIxLCJ1cmwiOiJodHRwczpcL1wvaW5ub3dpc2UuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI2XC8wM1wvZ2VzdGljYWwtcGxhdGZvcm0tYmVmb3JlLW1vZGVybml6YXRpb24ucG5nIn0%3D\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1000\" height=\"570\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-before-modernization.png\" class=\"attachment-full size-full wp-image-194821\" alt=\"Legacy Gestical web platform interface with multiple panels, tables, and a light-themed dashboard before modernization\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-before-modernization.png 1000w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-before-modernization-300x171.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-before-modernization-768x438.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-before-modernization-18x10.png 18w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f601fe1 elementor-widget__width-inherit elementor-widget elementor-widget-image\" data-id=\"f601fe1\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-after-modernization.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"gestical-platform-after-modernization\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MTk0ODIyLCJ1cmwiOiJodHRwczpcL1wvaW5ub3dpc2UuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI2XC8wM1wvZ2VzdGljYWwtcGxhdGZvcm0tYWZ0ZXItbW9kZXJuaXphdGlvbi5wbmcifQ%3D%3D\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"2000\" height=\"1140\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-after-modernization.png\" class=\"attachment-full size-full wp-image-194822\" alt=\"Modernized Gestical web application with simplified layout and improved navigation\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-after-modernization.png 2000w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-after-modernization-300x171.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-after-modernization-1024x584.png 1024w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-after-modernization-768x438.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-after-modernization-1536x876.png 1536w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-platform-after-modernization-18x10.png 18w\" sizes=\"(max-width: 2000px) 100vw, 2000px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-05598c0 e-con-full e-flex e-con e-child\" data-id=\"05598c0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-431f55e elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"431f55e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Architecture redesign and platform modernization<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f789558 e-con-full e-flex e-con e-child\" data-id=\"f789558\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-83ea4a6 elementor-widget__width-inherit elementor-widget-tablet__width-inherit last-child-mb-0 elementor-widget elementor-widget-text-editor\" data-id=\"83ea4a6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The modernization began with a comprehensive assessment of the existing Gestical Web ecosystem. The legacy application was built using an outdated version of ASP.NET MVC and hosted on a single Azure virtual machine, which created scalability constraints and performance issues.<\/p><p>Our team reimplemented Gestical Web using Next.js and NestJS and deployed it to <b>Azure App Service<\/b>, a cloud-managed PaaS platform. This approach reduced the client\u2019s infrastructure management effort and ongoing maintenance costs.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08d4530 elementor-widget__width-inherit elementor-widget elementor-widget-image\" data-id=\"08d4530\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-system-architecture-overview.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"gestical-system-architecture-overview\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MTk0ODQ1LCJ1cmwiOiJodHRwczpcL1wvaW5ub3dpc2UuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI2XC8wM1wvZ2VzdGljYWwtc3lzdGVtLWFyY2hpdGVjdHVyZS1vdmVydmlldy5wbmcifQ%3D%3D\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"880\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-system-architecture-overview.png\" class=\"attachment-full size-full wp-image-194845\" alt=\"Architecture diagram of Gestical platform\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-system-architecture-overview.png 1000w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-system-architecture-overview-300x264.png 300w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-system-architecture-overview-768x676.png 768w, https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/gestical-system-architecture-overview-14x12.png 14w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-083be07 e-con-full e-flex e-con e-child\" data-id=\"083be07\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2165d5b elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"2165d5b\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Database migration & optimization<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f9e789a e-con-full e-flex e-con e-child\" data-id=\"f9e789a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c3ee8c3 elementor-widget__width-inherit elementor-widget-tablet__width-inherit last-child-mb-0 elementor-widget elementor-widget-text-editor\" data-id=\"c3ee8c3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A critical part of the modernization was the migration and optimization of the database layer. To address critical performance issues, we migrated the self-hosted MySQL database to Azure Database for MySQL.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-255068c e-con-full e-flex e-con e-child\" data-id=\"255068c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d44ad4 elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"5d44ad4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Introduction of a unified API layer<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-db774f4 e-con-full e-flex e-con e-child\" data-id=\"db774f4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a0417a4 elementor-widget__width-inherit elementor-widget-tablet__width-inherit last-child-mb-0 elementor-widget elementor-widget-text-editor\" data-id=\"a0417a4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Previously, several applications accessed the database directly, creating hidden dependencies. This made updates risky and increased migration complexity.<\/p><p>We introduced a centralized REST API layer that now serves as the single point of communication between the client\u2019s applications and the database. This approach standardized data exchange, strengthened validation and access control, and significantly reduced architectural complexity.<\/p><p>All system components of Gestical Web now interact through this secure API layer.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-50544cf e-con-full e-flex e-con e-child\" data-id=\"50544cf\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ee2d13a elementor-widget elementor-widget-html\" data-id=\"ee2d13a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.quote-container {\n    display: flex;\n    align-items: start;\n\n    gap: 20px;\n\n    width: 100%;\n\n    padding: 50px 50px 50px 30px;\n\n    color: #2e2e2e;\n\n    border: 1px solid transparent;\n    border-image: linear-gradient(93.93deg, #60B5FF 3.21%, #EB757C 96.79%) 1;\n}\n\nimg.tools-grid-item__img {\n    width: 50px;\n    aspect-ratio: 1 \/ 1;\n    filter: grayscale(1);\n}\n\n\nimg.quote-icon {\n    display: flex;\n    width: 24px;\n    height: auto;\n\n    aspect-ratio: 1\/1;\n\n    flex-shrink: 0;\n}\n\n.quote-content {\n    display: flex;\n    flex-direction: column;\n\n    gap: 40px;\n}\n\np.quote-text {\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 22px;\n    line-height: 150%;\n\n    margin: 0;\n}\n\n.quote-author__container {\n    display: flex;\n    gap: 20px;\n\n    align-items: center;\n}\n\nimg.quote-author__img {\n    display: flex;\n    width: 100px;\n    height: auto;\n\n    aspect-ratio: 1\/1;\n\n    flex-shrink: 0;\n}\n\n.quote-author__info {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n\n    flex-basis: 320px;\n    flex-grow: 0;\n}\n\n.quote-author__name {\n    font-family: Sora;\n    font-weight: 600;\n    font-size: 20px;\n    line-height: 135%;\n\n    margin: 0;\n}\n\n.quote-author__role {\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 18px;\n    line-height: 150%;\n\n    margin: 0;\n}\n\n@media screen and (max-width:767px) {\n    \n    .quote-container {\n        flex-direction: column;\n        gap: 10px;\n\n        padding: 20px;\n    }\n\n    img.quote-icon {\n        width: 16px;\n    }\n\n    .quote-content {\n        gap: 20px;\n    }\n\n    p.quote-text {\n        font-size: 16px;\n    }\n\n    img.quote-author__img {\n        width: 60px;\n    }\n\n    .quote-author__name {\n        font-size: 16px;\n    }\n\n    .quote-author__role {\n        font-size: 14px;\n    }\n}\n<\/style>\n\n<div class=\"quote-container\">\n    <img decoding=\"async\"  class=\"quote-icon\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/Frame-2131329670.svg\" alt=\"Quote icon\" \/>\n    <div class=\"quote-content\">\n        <p class=\"quote-text\">\n           Working on the Gestical platform required careful alignment between existing systems and the new architecture. Our team focused on designing a scalable foundation that allows the platform to evolve while maintaining continuity for ongoing operations.\n        <\/p>\n        <div class=\"quote-author__container\">\n            <img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Photo-2.png\" alt=\"Aliaksandr Kavalchuk\" class=\"quote-author__img\">\n            <div class=\"quote-author__info\">\n                <p class=\"quote-author__name\" >Aliaksandr Kavalchuk<\/p>\n                <span class=\"quote-author__role\">Project Manager<\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dff057d e-con-full section-bg--grey e-flex e-con e-child\" data-id=\"dff057d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-48a31a4 elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"48a31a4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Technologies<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7fb304a elementor-widget elementor-widget-html\" data-id=\"7fb304a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.tech-grid {\n    display: grid;\n\n    grid-template-columns: repeat(2, 1fr);\n    column-gap: 60px;\n    row-gap: 80px;\n}\n\n.tech-grid-item {\n    display: grid;\n    flex-direction: column;\n        grid-template-rows: subgrid;\n    grid-row: span 2;\n    gap: 20px;\n}\n\n.tech-grid-item__title-wrapper {\n    display: flex;\n    flex-direction: column;\n    padding-bottom: 20px;\n    \n    \/* THE FIX: Use a background gradient instead of border-image *\/\n    background-image: linear-gradient(93.93deg, #60B5FF 3.21%, #EB757C 96.79%);\n    background-size: 100% 1px; \/* 100% width, 1px height *\/\n    background-position: bottom left;\n    background-repeat: no-repeat;\n}\n\nh4.tech-grid-item__title {\n    font-family: Sora;\n    font-weight: 600;\n    font-size: 20px;\n    line-height: 135%;\n\n    margin: 0;\n}\n\np.tech-grid-item__techs {\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 18px;\n    line-height: 150%;\n\n    margin: 0;\n}\n\n@media screen and (max-width:780px) {\n    .tech-grid {\n        grid-template-columns: repeat(2, 1fr);\n        column-gap: 60px;\n        row-gap: 60px;\n    }\n}\n\n\n\n@media screen and (max-width:767px) {\n    .tech-grid {\n        grid-template-columns: 1fr;\n        gap: 30px;\n    }\n\n    .tech-grid-item {\n        gap: 10px;\n    }\n\n    .tech-grid-item__title-wrapper {\n        padding-bottom: 10px;\n    }\n\n    h4.tech-grid-item__title {\n        font-size: 14px;\n        line-height: 120%;\n    }\n\n    p.tech-grid-item__techs {\n        font-size: 14px;\n        line-height: 150%;\n    }\n}\n<\/style>\n\n<div class=\"tech-grid\">\n  <div class=\"tech-grid-item\">\n    <div class=\"tech-grid-item__title-wrapper\">\n      <h4 class=\"tech-grid-item__title\">Backend<\/h4>\n    <\/div>\n    <p class=\"tech-grid-item__techs\">NestJS<\/p>\n  <\/div>\n    \n  <div class=\"tech-grid-item\">\n    <div class=\"tech-grid-item__title-wrapper\">\n      <h4 class=\"tech-grid-item__title\">Frontend<\/h4>\n    <\/div>\n    <p class=\"tech-grid-item__techs\">React, TypeScript<\/p>\n  <\/div>\n\n  <div class=\"tech-grid-item\">\n    <div class=\"tech-grid-item__title-wrapper\">\n      <h4 class=\"tech-grid-item__title\">Database & Data Access<\/h4>\n    <\/div>\n    <p class=\"tech-grid-item__techs\">MySQL, TypeORM<\/p>\n  <\/div>\n  \n  <div class=\"tech-grid-item\">\n    <div class=\"tech-grid-item__title-wrapper\">\n      <h4 class=\"tech-grid-item__title\">Authentication & Security<\/h4>\n    <\/div>\n    <p class=\"tech-grid-item__techs\">Azure AD<\/p>\n  <\/div>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-904df3a e-con-full section-bg--white e-flex e-con e-child\" data-id=\"904df3a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2343ecf elementor-widget elementor-widget-html\" data-id=\"2343ecf\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"team-grid\">\n  <div class=\"team-title-wrapper\">\n    <h2 class=\"team-title\">Team<\/h2>\n  <\/div>\n  \n  <div style=\"background: #fff;\" class=\"team-grid-item\"><\/div>\n\n  <div class=\"team-grid-item\">\n    <div class=\"team-grid-item__count\">\n      <img decoding=\"async\"\n        src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/Icon.svg\"\n        alt=\"Icon\"\n      \/>\n      <span>2<\/span>\n    <\/div>\n    <span class=\"team-grid-item__type\">Front-End Developer<\/span>\n  <\/div>\n  \n  <div class=\"team-grid-item\">\n    <div class=\"team-grid-item__count\">\n      <img decoding=\"async\"\n        src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/Icon.svg\"\n        alt=\"Icon\"\n      \/>\n      <span>2<\/span>\n    <\/div>\n    <span class=\"team-grid-item__type\">Back-End Developer<\/span>\n  <\/div>\n  \n  <div class=\"team-grid-item\">\n    <div class=\"team-grid-item__count\">\n      <img decoding=\"async\"\n        src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/Icon.svg\"\n        alt=\"Icon\"\n      \/>\n      <span>1<\/span>\n    <\/div>\n    <span class=\"team-grid-item__type\">Project Manager<\/span>\n  <\/div>\n  \n  <div class=\"team-grid-item\">\n    <div class=\"team-grid-item__count\">\n      <img decoding=\"async\"\n        src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/Icon.svg\"\n        alt=\"Icon\"\n      \/>\n      <span>1<\/span>\n    <\/div>\n    <span class=\"team-grid-item__type\">QA Engineer<\/span>\n  <\/div>\n  \n  <div class=\"team-grid-item\">\n    <div class=\"team-grid-item__count\">\n      <img decoding=\"async\"\n        src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/Icon.svg\"\n        alt=\"Icon\"\n      \/>\n      <span>1<\/span>\n    <\/div>\n    <span class=\"team-grid-item__type\">Business Analyst<\/span>\n  <\/div>\n  \n  <div class=\"team-grid-item\">\n    <div class=\"team-grid-item__count\">\n      <img decoding=\"async\"\n        src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/Icon.svg\"\n        alt=\"Icon\"\n      \/>\n      <span>1<\/span>\n    <\/div>\n    <span class=\"team-grid-item__type\">Solution Architect<\/span>\n  <\/div>\n  \n  <div class=\"team-grid-item\">\n    <div class=\"team-grid-item__count\">\n      <img decoding=\"async\"\n        src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/Icon.svg\"\n        alt=\"Icon\"\n      \/>\n      <span>1<\/span>\n    <\/div>\n    <span class=\"team-grid-item__type\">UX\/UI Designer<\/span>\n  <\/div>\n  \n<\/div>\n\n\n\n        \n<style>\n.team-grid {\n    display: grid;\n\n    width: 100%;\n\n    grid-template-columns: repeat(3, 1fr);\n    gap: 20px;\n\n    place-items: stretch;\n\n    color: #2E2E2E;\n}\n\n.team-title-wrapper, .team-grid-item {\n    display: flex;\n    gap: 5px;\n}\n\n.team-grid-item {\n    padding: 40px 30px;\n}\n\n.team-title-wrapper {\n    padding: 40px 30px;\n    padding-left: 0;\n}\n\n.team-title-wrapper {\n    flex-direction: row;\n    align-items: center;\n}\n\n.team-grid-item {\n    flex-direction: column;\n    align-items: start;\n\n    background-color: #F5F5F7;\n}\n\nh2.team-title {\n    font-family: Sora;\n    font-weight: 400;\n    font-size: 36px;\n    line-height: 46px;\n\n    margin: 0;\n}\n\n.team-grid-item__count {\n    display: flex;\n    align-items: center;\n    gap: 5px;\n}\n\n.team-grid-item__count > span {\n    font-family: Sora;\n    font-weight: 600;\n    font-size: 18px;\n    line-height: 130%;\n    text-align: center;\n\n    position: relative;\n    top: 1px;\n\n    color: #C63031;\n}\n\n.team-grid-item__count > img {\n    display: flex;\n\n    width: 20px;\n    height: auto;\n    aspect-ratio: 1\/1;\n\n    flex-shrink: 0;\n}\n\n.team-grid-item__type {\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 18px;\n    line-height: 150%;\n}\n\n@media screen and (max-width:780px) {\n    .team-grid-item {\n        padding: 30px;\n    }\n\n    .team-title-wrapper {\n        padding: 30px;\n        padding-left: 0;\n    }\n}\n\n@media screen and (max-width:767px) {\n\n    h2.team-title {\n        font-size: 24px;\n        line-height: 36px;\n        \n        margin: 0;\n    }\n\n    .team-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 10px;\n    }\n\n    .team-grid-item {\n        padding: 20px;\n    }\n\n    .team-title-wrapper {\n        padding: 0px;\n\n        grid-column: span 2;\n\n        margin-bottom: 20px;\n    }\n\n    .team-grid-item--placeholder {\n        display: none;\n    }\n\n    .team-grid-item__count > img {\n        width: 16px;\n    }\n    .team-grid-item__count > span {\n        font-size: 14px;\n        top: 0;\n    }\n\n    .team-grid-item__type {\n        font-size: 14px;\n    }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-03f4e16 elementor-widget elementor-widget-image\" data-id=\"03f4e16\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"400\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/innowise-team.jpg\" class=\"attachment-full size-full wp-image-188146\" alt=\"Innowise team\" srcset=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/innowise-team.jpg 1000w, https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/innowise-team-300x120.jpg 300w, https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/innowise-team-768x307.jpg 768w, https:\/\/innowise.com\/wp-content\/uploads\/2025\/10\/innowise-team-18x7.jpg 18w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0ad8ca5 e-con-full section-bg--grey e-flex e-con e-child\" data-id=\"0ad8ca5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5db0aea elementor-widget elementor-widget-html\" data-id=\"5db0aea\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\nh2.results__title {\n    font-family: Sora;\n    font-weight: 400;\n    font-size: 36px;\n    line-height: 46px;\n\n    margin: 0;\n}\n\n.results__title-wrapper {\n    display: flex;\n    gap: 30px;\n\n    align-items: center;\n    justify-content: space-between;\n\n    width: 100%;\n\n    border-bottom: 1px solid transparent;\n    border-image: linear-gradient(93.93deg, #60B5FF 3.21%, #EB757C 96.79%) 1 round; \n}\n\n.results__duration-wrapper {\n    display: flex;\n    background-color: #F5F5F7;\n}\n\n.results__duration-wrapper > * {\n    padding: 30px 40px;\n}\n\n.results__duration-param {\n    font-family: Sora;\n    font-weight: 600;\n    font-size: 20px;\n    line-height: 135%;\n\n    text-align: center;\n}\n\n.results__duration-value {\n    font-family: Karla;\n    font-weight: 400;\n    font-size: 22px;\n    line-height: 110%;\n\n    text-align: center;\n}\n\n@media screen and (max-width:767px) {\n    \n    h2.results__title {\n        font-size: 24px;\n        line-height: 36px;\n    }\n\n    .results__title-wrapper {\n        flex-direction: column;\n        align-items: start;\n    }\n\n    .results__duration-wrapper {\n        display: grid;\n        grid-template-columns: 1fr 1fr;\n        width: 100%;\n    }\n\n    .results__duration-wrapper > * {\n        padding: 15px;\n    }\n\n    .results__duration-param {\n        font-size: 16px;\n        line-height: 120%;\n    }\n\n    .results__duration-value {\n        font-size: 16px;\n        line-height: 20px;\n    }\n\n}\n<\/style>\n\n\n<div class=\"results__title-wrapper\">\n    <h2 class=\"results__title\">Results<\/h2>\n    <div class=\"results__duration-wrapper\">\n        <div class=\"results__duration-param\">Project duration<\/div>\n        <div class=\"results__duration-value\">January 2025 - Ongoing<\/div>\n    <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b87d36d e-con-full e-flex e-con e-child\" data-id=\"b87d36d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1a0623b elementor-widget__width-inherit elementor-widget-tablet__width-inherit last-child-mb-0 elementor-widget elementor-widget-text-editor\" data-id=\"1a0623b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The Gestical Web platform now operates within a unified backend architecture, improving system reliability and creating a more stable environment for managing operational workflows.<\/p><p>By deploying the platform on Azure App Service, the client reduced infrastructure maintenance costs and simplified ongoing platform management.<\/p><p>With the introduction of a <b>centralized REST API layer<\/b>, communication between applications and the database is now standardized and more secure, reducing hidden dependencies and making future system updates easier to implement.<\/p><p>These steps establish a structured, secure, and scalable cloud-native foundation for the continued phased modernization of the Gestical platform.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-95dede8 table-content-container e-con-full e-flex e-con e-child\" data-id=\"95dede8\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-32a4a45 e-con-full stickyTable e-flex e-con e-child\" data-id=\"32a4a45\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-c2c808c author-block e-con-full e-flex e-con e-child\" data-id=\"c2c808c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b697f5 ddcv elementor-widget elementor-widget-html\" data-id=\"5b697f5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\nul.generic-case-ul {\r\n    list-style: none;\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 30px;\r\n    font-family: Karla;\r\n    font-weight: 400;\r\n    font-size: 22px;\r\n    line-height: 150%;\r\n    margin: 0;\r\n    padding: 0;\r\n}\r\n\r\nul.generic-case-ul li {\r\n    position: relative;\r\n    display: flex;\r\n    align-items: start;\r\n    gap: 20px;\r\n    margin: 0;\r\n}\r\n\r\nul.generic-case-ul li::before {\r\n    content: \"\";\r\n    width: 16px;\r\n    height: 0;\r\n    border: 1px solid #C63031;\r\n    position: relative;\r\n    top: 0.7em;\r\n    flex-shrink: 0;\r\n}\r\n\r\nh4 {\r\n    color: #2e2e2e;\r\n    font-family: Sora !important;\r\nfont-weight: 600 !important;\r\nfont-size: 20px !important;\r\nline-height: 135% !important;\r\nmargin: 0 0 40px 0;\r\n}\r\n\r\n@media(max-width: 767px) {\r\n    h4 {\r\nfont-size: 16px !important;\r\nmargin: 0 0 20px 0;\r\n}\r\n}\r\n\r\n.article-description > .e-con-inner{\r\n     align-items: baseline !important;\r\n}\r\n\r\n.stickyTable {\r\n    position: sticky;\r\n    top: 72px;\r\n    bottom: auto;   \r\n}  \r\n\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", ()=>{\r\n        \r\nconst headerElement = document.querySelector(\".new-menu\");\r\n\r\nconst stickyElement = document.querySelector(\".stickyTable\");\r\n\r\nconst headerElementH = headerElement.clientHeight;\r\n\r\nstickyElement.style.top =  headerElementH + 60 + \"px\"\r\n        \r\n});\r\n<\/script>\r\n\r\n\r\n<!--NOTE Change data-id in wrapper styles for hide this block on the mobile device screen-->\r\n<div class=\"toc-wrapper\">\r\n  <h4 class=\"toc-title\">Table of contents<\/h4>\r\n  <div class=\"toc toc-2\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\n  \/\/NOTE Add the value from h2 as the key and the text you want to display as the key value in LINKS variable:\r\n  \/\/   const LINKS = {\r\n  \/\/       \"The demand for retail digital transformation\": \"The demand\"\r\n  \/\/   }\r\n\r\n  \r\n  \/\/NOTE Add the value from h2 as the key and the text you want to display as the key value in LINKS variable:\r\n  \/\/   const LINKS = {\r\n  \/\/       \"The demand for retail digital transformation\": \"The demand\"\r\n  \/\/   }\r\n\r\n  const LINKS = {\r\n    \"Unleashing the power of .NET 8\": \"gggggg\",\r\n    \"Revamping legacy systems: unlocking business potential through software modernization\":\r\n      \"hello\",\r\n      \"Solution we delivered\": \"Solution\",\r\n  };\r\n\r\n  const OFFSET = 70;\r\n   const PADDING_BOTTOM_FOR_SCROLL = 100;\r\n  let headerList = [];\r\n  let allLinks = [];\r\n  \r\n  let ticking = false;\r\n     \r\n\r\n  const createList = () => {\r\n      \r\n      console.log('create');\r\n      \r\n      \r\n    const tocTarget = document.querySelector(\".toc.toc-2\");\r\n    const toc = document.createElement(\"ul\");\r\n    \r\n    \r\n    \r\n     headerList = [...document.querySelectorAll(\"h2\")];\r\n\r\n\r\n    \r\n    headerList = headerList.slice(0, -3);\r\n    \r\n    headerList.forEach(()=>{\r\n        \r\n    })\r\n    \r\n    const filteredNodes = [document.querySelector(\".related_content_blog_container h2\")]\r\n    \r\n    headerList = headerList.filter((node)=> !filteredNodes.includes(node))\r\n    \r\n    \r\n   headerList.forEach((header,index) => {\r\n      const headerId = header.getAttribute(\"id\");\r\n      const headerText =\r\n        header.dataset.title && header.dataset.title !== \"\"\r\n          ? header.dataset.title\r\n          : header.textContent;\r\n          \r\n\r\n      const headerTocText = header.dataset.title;\r\n\r\n      const idFromText =\r\n        !headerId || headerId === \"\"\r\n          ? headerText\r\n              .toLowerCase()\r\n              .replace(\/[^\\w ]+\/g, \"\")\r\n              .replace(\/ +\/g, \"-\")\r\n          : headerId;\r\n          \r\n         \r\n\r\n      const newListItem = document.createElement(\"li\");\r\n      const newLink = document.createElement(\"a\");\r\n      newLink.setAttribute(\"href\", \"#\" + idFromText);\r\n      newLink.textContent = LINKS[headerText] || headerText;\r\n\r\n      newLink.addEventListener(\"click\", (e) => {\r\n          \r\n        e.preventDefault();\r\n        const y =\r\n          header.getBoundingClientRect().top +\r\n          window.pageYOffset -\r\n          PADDING_BOTTOM_FOR_SCROLL -\r\n          OFFSET;\r\n          ticking = true; \r\n        window.scrollTo({ top: y, behavior: \"smooth\" });\r\n        \r\n        setTimeout(()=>{\r\n            ticking = false;\r\n        },500);\r\n        \r\n      });\r\n      \r\n\r\n      newListItem.appendChild(newLink);\r\n    toc.appendChild(newListItem);\r\n    \r\n    \r\n    });\r\n    tocTarget.appendChild(toc);\r\n    allLinks = Array.from(document.querySelector(\".toc.toc-2\").querySelectorAll(\"ul li\"));\r\n  };\r\n\r\n  const setContainerHeight = () => {\r\n    \/*const windowHeight = window.innerHeight;\r\n    const tocContainer = document.querySelector(\".ddcv\");\r\n\r\n    tocContainer.style.maxHeight = \"calc(100vh - 420px)\";\r\n    tocContainer.style.minHeight = \"200px\";*\/\r\n    \r\n    const tocContainer = document.querySelector(\".author-block\")\r\n    tocContainer.style.maxHeight = \"calc(100vh - 180px)\"\r\n  };\r\n\r\n\r\n  const checkScroll = () => {\r\n      const windowHeight = window.innerHeight;\r\n      const scrollTop = window.scrollY || document.documentElement.scrollTop;\r\n\r\n      let selectedHeaderIndex = -1;\r\n      \r\n      \/\/console.log('headerList', headerList)\r\n      headerList.forEach((header, index) => {\r\n        \r\n  const posTop = header.getBoundingClientRect().top;\r\n       \r\n\r\n const isInViewport = posTop + elem.clientHeight <= window.innerHeight ;\r\n \r\n \r\n\r\n \r\n if(isInViewport){\r\n      selectedHeaderIndex = index;\r\n }\r\n\r\n      });\r\n      \r\n\r\n\r\n        allLinks.forEach((link, i) => {\r\n            if(i === selectedHeaderIndex){\r\n              link.classList.remove(\"pre-active\");  \r\n              link.classList.add(\"active\");\r\n            }\r\n            if(i < selectedHeaderIndex){\r\n              link.classList.add(\"pre-active\"); \r\n               link.classList.remove(\"active\");\r\n            }\r\n             if(i > selectedHeaderIndex){\r\n            link.classList.remove(\"pre-active\");\r\n            link.classList.remove(\"active\");\r\n            }\r\n            \r\n            \r\n            \r\n        });\r\n        \r\n\r\n\r\n  };\r\n\r\n  const loadAllImages = () => {\r\n    const images = document.getElementsByTagName(\"img\");\r\n\r\n    for (let i = 0; i < images.length; i++) {\r\n      const img = images[i];\r\n      const src = img.getAttribute(\"data-src\") || img.src;\r\n      img.src = src;\r\n    }\r\n  };\r\n\r\n  loadAllImages();\r\n  \r\n  \r\n  \r\n\r\n\r\n  document.addEventListener(\"DOMContentLoaded\", () => {\r\n      \r\n      \r\n     setTimeout(()=>{\r\n           createList();\r\n    setContainerHeight();\r\n  \r\n    \r\n    document.addEventListener(\"scroll\", (event) => {\r\n  if (!ticking) {\r\n    checkScroll();\r\n  }\r\n});\r\n    \r\n    \r\n},300) \r\n\r\n    \r\n  });\r\n  \r\n<\/script>\r\n\r\n\r\n<style>\r\n.table-content-container .elementor-widget-wrap {\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n}\r\n\r\n@media (max-width: 1279px) {\r\n    .table-content-container {\r\n   display: none !important;\r\n}\r\n}\r\n\r\n\r\n\r\n.toc-wrapper {\r\n    display: flex;\r\n    flex-direction: column;\r\n    row-gap: 30px;\r\n    font-family: \"Karla\";\r\n    box-sizing: border-box;\r\n    \/*height: 100%;*\/\r\n    \r\n    flex: 1;\r\n}\r\n.ddcv {\r\n    \r\n    flex-basis:100%;\r\n    flex-grow: 1;\r\n    flex-shrink: 1;\r\n    overflow-y: auto;\r\n}\r\n\r\n\r\n.toc-wrapper {\r\n    overflow-y: auto;\r\n    flex-shrink: 1;\r\n    flex-basis:100%;\r\n    flex-grow: 1;\r\n}\r\n\r\n.toc-wrapper::-webkit-scrollbar, .ddcv::-webkit-scrollbar {\r\n    position: absolute !important;\r\n    width: 4px !important;\r\n    background-color: #F5F5F7 !important;\r\n}\r\n\r\n.toc-wrapper::-webkit-scrollbar-thumb, .ddcv::-webkit-scrollbar-thumb {\r\n    position: absolute !important;\r\n    background-color: #999999 !important;\r\n    border-radius: 4px !important;\r\n}\r\n\r\n\/*.toc-wrapper .toc {\r\n    scrollbar-width: 4px !important;\r\n    scrollbar-color: auto !important;\r\n}*\/\r\n\r\n\r\nh4.toc-title {\r\n    margin: 0;\r\n    font-family: Karla;\r\n    font-size: 22px;\r\n    line-height: 28px;\r\n    font-weight: 700;\r\n}\r\n\r\n@media screen and (max-width: 1279px) {\r\n    .ddcv {\r\n        margin-top: 0px;\r\n        position: absolute;\r\n        top: 0px;\r\n        left: 50%;\r\n        transform: translate(50%, 0);\r\n    }\r\n}\r\n\r\n@media screen and (max-width: 767px) {\r\n    .ddcv {\r\n        display: none;\r\n    }\r\n}\r\n\r\n.toc ul {\r\n  list-style: none;\r\n  font-family: \"Karla\";\r\n  font-size: 16px;\r\n  line-height: 22px;\r\n  padding: 0px;\r\n  border-left: 1px solid #717171;\r\n}\r\n\r\n.toc li {\r\n  margin-left: -1px;\r\n  margin-top: 0;\r\n  padding: 16px 16px 16px 20px;\r\n  font-size: 18px;\r\n  line-height: 22px;\r\n  color: #717171;\r\n  border-left: 2px solid transparent;\r\n}\r\n\r\n.toc ul li a {\r\n    display: block;\r\n     width: 100%;\r\n    color: inherit;\r\n    text-decoration: none !important;\r\n}\r\n\r\n.toc ul .active {\r\n    color: #2E2E2E;\r\n    border-left: 2px solid #C63031;\r\n}\r\n\r\n.toc ul .pre-active {\r\n    border-left: 2px solid #C63031;\r\n}\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9277c81 e-con-full .cta-short-wrapper e-flex e-con e-child\" data-id=\"9277c81\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b51f48f elementor-widget-tablet__width-inherit elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"b51f48f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Modernize your internal systems with Innowise<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e8c58f9 elementor-mobile-align-justify elementor-widget-mobile__width-inherit elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"e8c58f9\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#contact-form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Let's talk<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\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<div class=\"elementor-element elementor-element-e5559d1 e-flex e-con-boxed e-con e-parent\" data-id=\"e5559d1\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57fee06 elementor-widget elementor-widget-heading\" data-id=\"57fee06\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Related cases<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ff569e9 e-con-full slider-overflow e-flex e-con e-child\" data-id=\"ff569e9\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dfd15ae elementor-widget elementor-widget-shortcode\" data-id=\"dfd15ae\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n        <div class=\"slider-overflow\">\n            <div class=\"swiper-related\">\n                <div class=\"swiper-wrapper\">\n        <div class=\"swiper-slide\">\n            <div class=\"swiper-into-e1\">\n                <div class=\"swiper-slide__inner-container\">\n                    <div class=\"block-div-img-rel\">\n                        <a href=\"https:\/\/innowise.com\/pl\/case\/ios-and-vr-meditation-app-development\/\" aria-label=\"block_194217\">\n                            <img decoding=\"async\" class=\"slide__img-rel\" \n                             src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/iOS-and-VR-meditation-app-suite-for-Grozio-Planeta-UAB-2.png\" alt=\"iOS and VR meditation app suite for Gro\u017eio Planeta UAB\">\n                        <\/a>\n                    <\/div>\n                    <div class=\"border-slide-rel\">\n                        <div class=\"swip-title-rel-qe mb-10\" style=\"\">\n                            <a href=\"https:\/\/innowise.com\/pl\/case\/ios-and-vr-meditation-app-development\/\" aria-label=\"iOS and VR meditation app suite for Gro\u017eio Planeta UAB\" >iOS and VR meditation app suite for Gro\u017eio Planeta UAB<\/a>\n                        <\/div>\n                        <div class=\"swip-array-rel\">\n                            <a href=\"\/pl\/cases\/aws\/\">AWS<\/a><a href=\"\/pl\/cases\/django\/\">Django<\/a><a href=\"\/pl\/cases\/opieka-zdrowotna\/\">Healthcare<\/a><a href=\"\/pl\/cases\/mobile-development\/\">Mobile development<\/a><a href=\"\/pl\/cases\/php\/\">PHP<\/a><a href=\"\/pl\/cases\/python\/\">Python<\/a>\n                        <\/div>\n                        <div class=\"slide__button-wrapper_mob\">\n                            <span class=\"slide__button-text_mob\">Read more<\/span>\n                            <img decoding=\"async\" class=\"slide__button-img_mob\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2021\/12\/arrow-more.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"slide__button-wrapper\">\n                <a href=\"https:\/\/innowise.com\/pl\/case\/ios-and-vr-meditation-app-development\/\" aria-label=\"Read more about iOS and VR meditation app suite for Gro\u017eio Planeta UAB\">\n                    <div class=\"arrow-btn3-rel\">\n                        <svg class=\"arrow-btn__svg\"\n                             width=\"110\"\n                             height=\"18\"\n                             viewBox=\"0 0 110 18\"\n                             fill=\"none\"\n                             xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M9 1L17 8.99999L9 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M0 9.00018L17 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M99 1L107 8.99999L99 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M90 9.00018L107 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                        <\/svg>\n                    <\/div>\n                <\/a>\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div class=\"swiper-into-e1\">\n                <div class=\"swiper-slide__inner-container\">\n                    <div class=\"block-div-img-rel\">\n                        <a href=\"https:\/\/innowise.com\/pl\/case\/custom-website-development-for-airline\/\" aria-label=\"block_193018\">\n                            <img decoding=\"async\" class=\"slide__img-rel\" \n                             src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/02\/airplane-in-the-sky.jpg\" alt=\"Multi-page charter airline website for a startup air carrier\">\n                    <div class=\"cases-post__thumbnail_opencase_img\">\n                        <div>\n                            <img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/Flyyo-logo.png\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                \n                        <\/a>\n                    <\/div>\n                    <div class=\"border-slide-rel\">\n                        <div class=\"swip-title-rel-qe mb-10\" style=\"\">\n                            <a href=\"https:\/\/innowise.com\/pl\/case\/custom-website-development-for-airline\/\" aria-label=\"Multi-page charter airline website for a startup air carrier\" >Multi-page charter airline website for a startup air carrier<\/a>\n                        <\/div>\n                        <div class=\"swip-array-rel\">\n                            <a href=\"\/pl\/cases\/php\/\">PHP<\/a><a href=\"\/pl\/cases\/transport\/\">Transportation<\/a><a href=\"\/pl\/cases\/design\/\">UI\/UX design<\/a><a href=\"\/pl\/cases\/tworzenie-aplikacji-webowych\/\">Web development<\/a><a href=\"\/pl\/cases\/website\/\">Website<\/a>\n                        <\/div>\n                        <div class=\"slide__button-wrapper_mob\">\n                            <span class=\"slide__button-text_mob\">Read more<\/span>\n                            <img decoding=\"async\" class=\"slide__button-img_mob\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2021\/12\/arrow-more.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"slide__button-wrapper\">\n                <a href=\"https:\/\/innowise.com\/pl\/case\/custom-website-development-for-airline\/\" aria-label=\"Read more about Multi-page charter airline website for a startup air carrier\">\n                    <div class=\"arrow-btn3-rel\">\n                        <svg class=\"arrow-btn__svg\"\n                             width=\"110\"\n                             height=\"18\"\n                             viewBox=\"0 0 110 18\"\n                             fill=\"none\"\n                             xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M9 1L17 8.99999L9 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M0 9.00018L17 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M99 1L107 8.99999L99 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M90 9.00018L107 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                        <\/svg>\n                    <\/div>\n                <\/a>\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div class=\"swiper-into-e1\">\n                <div class=\"swiper-slide__inner-container\">\n                    <div class=\"block-div-img-rel\">\n                        <a href=\"https:\/\/innowise.com\/pl\/case\/custom-fhir-integration-gateway\/\" aria-label=\"block_193309\">\n                            <img decoding=\"async\" class=\"slide__img-rel\" \n                             src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/image-teaser-fim.jpg\" alt=\"Designing a data integration gateway for FIM Medical\">\n                    <div class=\"cases-post__thumbnail_opencase_img\">\n                        <div>\n                            <img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/logo-fim.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                \n                        <\/a>\n                    <\/div>\n                    <div class=\"border-slide-rel\">\n                        <div class=\"swip-title-rel-qe mb-10\" style=\"\">\n                            <a href=\"https:\/\/innowise.com\/pl\/case\/custom-fhir-integration-gateway\/\" aria-label=\"Designing a data integration gateway for FIM Medical\" >Designing a data integration gateway for FIM Medical<\/a>\n                        <\/div>\n                        <div class=\"swip-array-rel\">\n                            <a href=\"\/pl\/cases\/net\/\">.NET<\/a><a href=\"\/pl\/cases\/c\/\">C#<\/a><a href=\"\/pl\/cases\/opieka-zdrowotna\/\">Healthcare<\/a><a href=\"\/pl\/cases\/integracja\/\">Integration<\/a><a href=\"\/pl\/cases\/staff-augmentation\/\">Staff augmentation<\/a>\n                        <\/div>\n                        <div class=\"slide__button-wrapper_mob\">\n                            <span class=\"slide__button-text_mob\">Read more<\/span>\n                            <img decoding=\"async\" class=\"slide__button-img_mob\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2021\/12\/arrow-more.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"slide__button-wrapper\">\n                <a href=\"https:\/\/innowise.com\/pl\/case\/custom-fhir-integration-gateway\/\" aria-label=\"Read more about Designing a data integration gateway for FIM Medical\">\n                    <div class=\"arrow-btn3-rel\">\n                        <svg class=\"arrow-btn__svg\"\n                             width=\"110\"\n                             height=\"18\"\n                             viewBox=\"0 0 110 18\"\n                             fill=\"none\"\n                             xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M9 1L17 8.99999L9 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M0 9.00018L17 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M99 1L107 8.99999L99 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M90 9.00018L107 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                        <\/svg>\n                    <\/div>\n                <\/a>\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div class=\"swiper-into-e1\">\n                <div class=\"swiper-slide__inner-container\">\n                    <div class=\"block-div-img-rel\">\n                        <a href=\"https:\/\/innowise.com\/pl\/case\/fast-website-delivery\/\" aria-label=\"block_192516\">\n                            <img decoding=\"async\" class=\"slide__img-rel\" \n                             src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/02\/image-teaser-3.png\" alt=\"Fast Website Delivery for Family Businesses\">\n                    <div class=\"cases-post__thumbnail_opencase_img\">\n                        <div>\n                            <img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/02\/Logo-symbolname-green-1.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                \n                        <\/a>\n                    <\/div>\n                    <div class=\"border-slide-rel\">\n                        <div class=\"swip-title-rel-qe mb-10\" style=\"\">\n                            <a href=\"https:\/\/innowise.com\/pl\/case\/fast-website-delivery\/\" aria-label=\"Fast Website Delivery for Family Businesses\" >Fast Website Delivery for Family Businesses<\/a>\n                        <\/div>\n                        <div class=\"swip-array-rel\">\n                            <a href=\"\/pl\/cases\/cms\/\">CMS website development<\/a><a href=\"\/pl\/cases\/budownictwo\/\">Construction<\/a><a href=\"\/pl\/cases\/horeca\/\">HoReCa<\/a><a href=\"\/pl\/cases\/js\/\">JavaScript<\/a><a href=\"\/pl\/cases\/php\/\">PHP<\/a><a href=\"\/pl\/cases\/website\/\">Website<\/a><a href=\"\/pl\/cases\/wordpress\/\">WordPress<\/a>\n                        <\/div>\n                        <div class=\"slide__button-wrapper_mob\">\n                            <span class=\"slide__button-text_mob\">Read more<\/span>\n                            <img decoding=\"async\" class=\"slide__button-img_mob\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2021\/12\/arrow-more.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"slide__button-wrapper\">\n                <a href=\"https:\/\/innowise.com\/pl\/case\/fast-website-delivery\/\" aria-label=\"Read more about Fast Website Delivery for Family Businesses\">\n                    <div class=\"arrow-btn3-rel\">\n                        <svg class=\"arrow-btn__svg\"\n                             width=\"110\"\n                             height=\"18\"\n                             viewBox=\"0 0 110 18\"\n                             fill=\"none\"\n                             xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M9 1L17 8.99999L9 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M0 9.00018L17 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M99 1L107 8.99999L99 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M90 9.00018L107 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                        <\/svg>\n                    <\/div>\n                <\/a>\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div class=\"swiper-into-e1\">\n                <div class=\"swiper-slide__inner-container\">\n                    <div class=\"block-div-img-rel\">\n                        <a href=\"https:\/\/innowise.com\/pl\/case\/finance-ai-assistant\/\" aria-label=\"block_191935\">\n                            <img decoding=\"async\" class=\"slide__img-rel\" \n                             src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/02\/image-teaser-2.png\" alt=\"Haia: finance AI assistant\">\n                    <div class=\"cases-post__thumbnail_opencase_img\">\n                        <div>\n                            <img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/02\/Haia-logo-1.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                \n                        <\/a>\n                    <\/div>\n                    <div class=\"border-slide-rel\">\n                        <div class=\"swip-title-rel-qe mb-10\" style=\"\">\n                            <a href=\"https:\/\/innowise.com\/pl\/case\/finance-ai-assistant\/\" aria-label=\"Haia: finance AI assistant\" >Haia: finance AI assistant<\/a>\n                        <\/div>\n                        <div class=\"swip-array-rel\">\n                            <a href=\"\/pl\/cases\/ai\/\">AI<\/a><a href=\"\/pl\/cases\/blockchain\/\">Blockchain<\/a><a href=\"\/pl\/cases\/fintech\/\">FinTech<\/a><a href=\"\/pl\/cases\/kotlin\/\">Kotlin<\/a><a href=\"\/pl\/cases\/smart-contract\/\">Smart contract<\/a><a href=\"\/pl\/cases\/web3\/\">Web3<\/a>\n                        <\/div>\n                        <div class=\"slide__button-wrapper_mob\">\n                            <span class=\"slide__button-text_mob\">Read more<\/span>\n                            <img decoding=\"async\" class=\"slide__button-img_mob\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2021\/12\/arrow-more.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"slide__button-wrapper\">\n                <a href=\"https:\/\/innowise.com\/pl\/case\/finance-ai-assistant\/\" aria-label=\"Read more about Haia: finance AI assistant\">\n                    <div class=\"arrow-btn3-rel\">\n                        <svg class=\"arrow-btn__svg\"\n                             width=\"110\"\n                             height=\"18\"\n                             viewBox=\"0 0 110 18\"\n                             fill=\"none\"\n                             xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M9 1L17 8.99999L9 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M0 9.00018L17 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M99 1L107 8.99999L99 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M90 9.00018L107 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                        <\/svg>\n                    <\/div>\n                <\/a>\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div class=\"swiper-into-e1\">\n                <div class=\"swiper-slide__inner-container\">\n                    <div class=\"block-div-img-rel\">\n                        <a href=\"https:\/\/innowise.com\/pl\/case\/blockchain-ecosystem-development\/\" aria-label=\"block_179475\">\n                            <img decoding=\"async\" class=\"slide__img-rel\" \n                             src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/12\/Hero-image.jpg\" alt=\"Blockchain ecosystem powered by Layer 2 zk-Rollups\">\n                    <div class=\"cases-post__thumbnail_opencase_img\">\n                        <div>\n                            <img decoding=\"async\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2025\/12\/prophaust.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                \n                        <\/a>\n                    <\/div>\n                    <div class=\"border-slide-rel\">\n                        <div class=\"swip-title-rel-qe mb-10\" style=\"\">\n                            <a href=\"https:\/\/innowise.com\/pl\/case\/blockchain-ecosystem-development\/\" aria-label=\"Blockchain ecosystem powered by Layer 2 zk-Rollups\" >Blockchain ecosystem powered by Layer 2 zk-Rollups<\/a>\n                        <\/div>\n                        <div class=\"swip-array-rel\">\n                            <a href=\"\/pl\/cases\/blockchain\/\">Blockchain<\/a><a href=\"\/pl\/cases\/fintech\/\">FinTech<\/a><a href=\"\/pl\/cases\/kotlin\/\">Kotlin<\/a><a href=\"\/pl\/cases\/node-js\/\">Node.js<\/a><a href=\"\/pl\/cases\/python\/\">Python<\/a><a href=\"\/pl\/cases\/smart-contract\/\">Smart contract<\/a>\n                        <\/div>\n                        <div class=\"slide__button-wrapper_mob\">\n                            <span class=\"slide__button-text_mob\">Read more<\/span>\n                            <img decoding=\"async\" class=\"slide__button-img_mob\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2021\/12\/arrow-more.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"slide__button-wrapper\">\n                <a href=\"https:\/\/innowise.com\/pl\/case\/blockchain-ecosystem-development\/\" aria-label=\"Read more about Blockchain ecosystem powered by Layer 2 zk-Rollups\">\n                    <div class=\"arrow-btn3-rel\">\n                        <svg class=\"arrow-btn__svg\"\n                             width=\"110\"\n                             height=\"18\"\n                             viewBox=\"0 0 110 18\"\n                             fill=\"none\"\n                             xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M9 1L17 8.99999L9 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M0 9.00018L17 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M99 1L107 8.99999L99 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M90 9.00018L107 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                        <\/svg>\n                    <\/div>\n                <\/a>\n            <\/div>\n        <\/div>\n        <div class=\"swiper-slide\">\n            <div class=\"swiper-into-e1\">\n                <div class=\"swiper-slide__inner-container\">\n                    <div class=\"block-div-img-rel\">\n                        <a href=\"https:\/\/innowise.com\/pl\/case\/ai-ergonomics-software-scaling\/\" aria-label=\"block_195080\">\n                            <img decoding=\"async\" class=\"slide__img-rel\" \n                             src=\"https:\/\/innowise.com\/wp-content\/uploads\/2026\/03\/image.png\" alt=\"Scaling AI ergonomics assessment software\">\n                        <\/a>\n                    <\/div>\n                    <div class=\"border-slide-rel\">\n                        <div class=\"swip-title-rel-qe mb-10\" style=\"\">\n                            <a href=\"https:\/\/innowise.com\/pl\/case\/ai-ergonomics-software-scaling\/\" aria-label=\"Scaling AI ergonomics assessment software\" >Scaling AI ergonomics assessment software<\/a>\n                        <\/div>\n                        <div class=\"swip-array-rel\">\n                            <a href=\"\/pl\/cases\/angular\/\">Angular<\/a><a href=\"\/pl\/cases\/tworzenie-back-end\/\">Back-end development<\/a><a href=\"\/pl\/cases\/przedsiebiorstwa\/\">Enterprise<\/a><a href=\"\/pl\/cases\/tworzenie-front-end\/\">Front-end development<\/a><a href=\"\/pl\/cases\/node-js\/\">Node.js<\/a><a href=\"\/pl\/cases\/qa\/\">QA<\/a>\n                        <\/div>\n                        <div class=\"slide__button-wrapper_mob\">\n                            <span class=\"slide__button-text_mob\">Read more<\/span>\n                            <img decoding=\"async\" class=\"slide__button-img_mob\" src=\"https:\/\/innowise.com\/wp-content\/uploads\/2021\/12\/arrow-more.svg\" alt=\"\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"slide__button-wrapper\">\n                <a href=\"https:\/\/innowise.com\/pl\/case\/ai-ergonomics-software-scaling\/\" aria-label=\"Read more about Scaling AI ergonomics assessment software\">\n                    <div class=\"arrow-btn3-rel\">\n                        <svg class=\"arrow-btn__svg\"\n                             width=\"110\"\n                             height=\"18\"\n                             viewBox=\"0 0 110 18\"\n                             fill=\"none\"\n                             xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M9 1L17 8.99999L9 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M0 9.00018L17 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M99 1L107 8.99999L99 17\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                            <path d=\"M90 9.00018L107 9.00018\"\n                                  stroke=\"#C63031\"\n                                  stroke-width=\"2\"\/>\n                        <\/svg>\n                    <\/div>\n                <\/a>\n            <\/div>\n        <\/div>\n                <\/div>\n                \n                <div class=\"swiper-related__navigation\">\n                    <button class=\"swiper-related__navigation-btn\">\n                        <svg width=\"25\" height=\"24\" viewBox=\"0 0 25 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <g>\n                                <path d=\"M12 4L4 12L12 20\" stroke=\"#2E2E2E\" stroke-width=\"2\"\/>\n                                <path d=\"M21 12.0002L4 12.0002\" stroke=\"#2E2E2E\" stroke-width=\"2\"\/>\n                            <\/g>\n                        <\/svg>\n                    <\/button>\n                \n                    <button class=\"swiper-related__navigation-btn\">\n                        <svg width=\"25\" height=\"24\" viewBox=\"0 0 25 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M13 4L21 12L13 20\" stroke=\"#2E2E2E\" stroke-width=\"2\"\/>\n                            <path d=\"M4 12.0002L21 12.0002\" stroke=\"#2E2E2E\" stroke-width=\"2\"\/>\n                        <\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"cases-swiper-pagination\"><\/div>\n        \n        <script src=\"\/wp-content\/themes\/hello-elementor\/assets\/js\/slb-case.js\"><\/script>  \n        <link rel=\"stylesheet\" href=\"\/wp-content\/themes\/hello-elementor\/assets\/css\/case-slider.css\"><\/div>\n\t\t\t\t\t\t<\/div>\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<div class=\"elementor-element elementor-element-6d14f2e e-flex e-con-boxed e-con e-parent\" data-id=\"6d14f2e\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-69cdb98 elementor-widget elementor-widget-shortcode\" data-id=\"69cdb98\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f100240-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"100240\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/pl\/wp-json\/wp\/v2\/case\/194759#wpcf7-f100240-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" enctype=\"multipart\/form-data\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"100240\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f100240-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<style>\n#form-templates .contact__info {\n  background-color: #f4f4f4;\n  padding: 70px 44px 70px 50px;\n  position: relative;\n  max-width: 540px;\n  width: 100%;\nborder: 1px solid #AEB1B7;\n}\n\n#form-templates .contact__info-background {\n  z-index: -1;\n  position: absolute;\n  top: 20px;\n  left: 20px;\n  width: 100%;\n  height: 100%;\n  border: 1px dashed #ef4557;\n}\n\n\n#form-templates .new-container{\ndisplay: flex;\njustify-content: space-between;\nflex-wrap: wrap;\n}\n\n\n#form-templates{\npadding: 100px 15px 100px 15px;        \n}\n\n#form-templates .contact__info-heading {\n  font-family: 'Sora' !important;\n  font-style: normal !important;\n  font-weight: 400 !important;\n  font-size: 36px !important;\n  line-height: 46px !important;\n  color: #2E2E2E !important;\n   margin-bottom: 60px !important;\n\n}\n\n\n#form-templates .message label{\ncolor: #585858 !important;   \n}\n\n.elementor-widget-container.form-template h2,.elementor-widget-container.form-template h1{\n font-size: 60px !important;\n  line-height: 70px !important;\n  font-family: \"Sora\", Sans-serif;\n  font-weight: 400;\n  margin: 0;  \n  margin-bottom: 20px;\n}\n\n\n\n\n.elementor-widget-container.form-template p{\n  font-family: \"Karla\", Sans-serif;\n  font-size: 22px;\n  font-weight: 400;\n  line-height: 28px;\n  color: var( --e-global-color-primary );\n  max-width: 700px;\n  margin: 0; \n  margin-bottom: 40px;\n} \n  \n\n\n.new-container #spinner{\nwidth: 50%;\nmax-width: 700px;\n}\n\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:30px; \n    \n}\n\n\n#form-templates .contact__info-heading {\n  margin-bottom: 67px;\n  font-size: 36px;\n  font-family: karla;\n  color:  #2E2E2E;\n\n  line-height: 49px;\n}\n\n#form-templates .contact__info-steps {\n  display: flex;\n  flex-direction: column;\n  max-width: 425x;\n  row-gap: 20px;\n  border-left: 1px solid #2e2e2e;\n}\n\n#form-templates .contact__info-block {\n  position: relative;\n  padding-left: 45px;\n}\n\n#form-templates .contact__info-block:last-child {\n  box-shadow: -1px 0 0 1px #f4f4f4;\n}\n\n#form-templates .contact__info-step {\n  position: absolute;\n  border: 1px solid #2e2e2e;\n  width: 40px;\n  height: 40px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 20px;\n  left: -20px;\n  top: -8px;\n  background-color: #F4F4F4;\n  color:  #2E2E2E;\n\nfont-family: Karla;\nfont-weight: 700;\nfont-size: 18px;\nline-height: 28px;\n\n}\n\n.elementor-widget-global .contact__info-step {\n        color:  #2E2E2E;\n}\n\n#form-templates .contact__info-text {\n  margin: 0;\n  font-size: 16px;\n  line-height: 26px;\n  color: #2E2E2E;\n  font-family: karla;\n\n  width: 100%;\n}\n\n\n#form-templates .contact-us__send{\nflex-shrink: 0;\nmargin-top:0;\n}\n\n\n\n@media screen and (max-width: 1279px) {\n    .new-container #spinner{\n        width: 100%;\n        max-width:100%;\n        margin-bottom:40px;\n    }\n    \n\n    .new-container .contact__info {\n        max-width: 700px !important;\n    }\n    \n}\n\n\n@media screen and (max-width: 1279px) {\n#form-templates{\npadding: 60px 15px 70px 15px;     \n}\n}\n\n\n\n@media screen and (max-width: 767px) {\n\n#form-templates .new-container #spinner div.contact-us__wrapper:nth-child(6){\ngap:20px; \n \n}\n\n\n  #form-templates .contact__info {\n    padding: 20px 20px 40px 40px;\n    margin: 0 auto;\n  }\n\n\n#form-templates{\npadding: 40px 15px 50px 15px;  \n    \n}\n\n  \n   .new-container #spinner{\n       \n    margin-bottom:30px;   \n   }\n   \n   \n   .elementor-widget-container.form-template h2,.elementor-widget-container.form-template h1{\n   font-size: 32px !important;\n    line-height: 42px !important;    \n   }\n   \n   \n   .elementor-widget-container.form-template p{\n       \n    font-size: 16px;\n    line-height: 20px;  \n    margin-bottom: 30px;\n \n       \n   }\n   \n   #form-templates .contact__info-heading{\n   font-size: 24px !important;\n    line-height: 49px !important;    \n       \n   }\n   \n\n.mailToContact{\nmargin-top: 10px !important;        \n}\n   \n\n  #form-templates .contact__info-heading {\n    font-size: 24px;\n    margin-bottom: 37px;\n  }\n\n  #form-templates .contact__info-background {\n    top: 10px;\n    left: 10px;\n  }\n\n  #form-templates .contact__info-text {\n    font-size: 12px;\n    line-height: 20px;\n  }\n  \n  \n  #form-templates .contact__info-heading {\n   margin-bottom: 35px !important;\n\n}\n\n}\n\n@media (max-width: 767px) {\n    .mailToContact {\n        max-width: 100%;\n    }\n}\n<\/style>\n\n<script>\nwindow.addEventListener('hashchange',function(e){if(window.history.pushState){window.history.pushState('','\/',window.location.pathname)}else{window.location.hash=''}})\n<\/script>\n\n\n<div id=\"form-templates\">\n<div class=\"elementor-widget-container form-template\">\n<a name=\"contact-form\"><\/a>\n<h2>Contact us<\/h2>\n<p><a id=\"calendlylink\" style=\"color: #c63031; border-bottom: 1px solid #c63031; padding: 0;\">Book a call<\/a> or fill out the form below and we\u2019ll get back to you once we\u2019ve processed your request.<\/p>\n<\/div>\n\n<div class=\"new-container\">\n\n\n<div class=\"contact-us__main\" id=\"spinner\" data-no-defer=\"1\">\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"name\">\n<label>Name<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"field_name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__name\" id=\"contact-name\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Name*\" value=\"\" type=\"text\" name=\"field_name\" \/><\/span>\n<\/div>\n\n<div class=\"company\">\n<label>Company<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required contact-us__company\" id=\"contact-company\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Company*\" value=\"\" type=\"text\" name=\"company\" \/><\/span>\n<\/div>\n\n<\/div>\n\n<div class=\"contact-us__wrapper\">\n\n<div class=\"email\">\n<label>Email<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email contact-us__email\" id=\"contact-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Corporate email*\" value=\"\" type=\"email\" name=\"email\" \/><\/span>\n<\/div>\n\n<div class=\"phone\">\n<label>Phone<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"tel\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel contact-us__phone\" id=\"contact-phone\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Phone*\" value=\"\" type=\"tel\" name=\"tel\" \/><\/span>\n<\/div>\n\n<\/div>\n<div class=\"contact-us__wrapper subj\">\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-recipient\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-subj_js\" aria-invalid=\"false\" name=\"your-recipient\"><option value=\"\">Subject*<\/option><option value=\"IT staff augmentation\">IT staff augmentation<\/option><option value=\"Turnkey product development\">Turnkey product development<\/option><option value=\"Support and enhancement\">Support and enhancement<\/option><option value=\"Careers\">Careers<\/option><option value=\"Other\">Other<\/option><\/select><\/span>\n\n<span class=\"wpcf7-form-control-wrap\" data-name=\"form-field-budget_js\"><select class=\"wpcf7-form-control wpcf7-select\" id=\"form-field-budget_js\" aria-invalid=\"false\" name=\"form-field-budget_js\"><option value=\"\">Project budget<\/option><option value=\"Under $15K\">Under $15K<\/option><option value=\"$15K-$30K\">$15K-$30K<\/option><option value=\"$30K-$100K\">$30K-$100K<\/option><option value=\"$100K-$250K\">$100K-$250K<\/option><option value=\"$250K-$500K\">$250K-$500K<\/option><option value=\"More than $500K\">More than $500K<\/option><\/select><\/span>\n\n<\/div>\n\n\n<div class=\"message\">\n<label>Message<\/label>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"message\"><textarea cols=\"40\" rows=\"1\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required contact-us__message\" id=\"contact-message\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Describe your needs in detail*\" name=\"message\"><\/textarea><\/span>\n<\/div>\n\n<div class=\"atvoice-wrap\">\n\n<div class=\"voice-wrap\">\n<span id=\"voice-mut\" class=\"voicetext\">Send us a voice message<\/span>\n         <div class=\"qc_voice_audio_wrapper\">\n            <div class=\"qc_voice_audio_container\">\n                <div class=\"qc_voice_audio_upload_main\" id=\"qc_audio_main\">\n                    <a class=\"qc_audio_record_button\" id=\"qc_audio_record\" href=\"#\" aria-label=\"Record an audio message\">\n                        <span class=\"dashicons dashicons-microphone\"><\/span> \u00a0<\/a> \n                <\/div>\n\n                <div class=\"qc_voice_audio_recorder\" id=\"qc_audio_recorder\" style=\"display:none\">\n\n                <\/div>\n                <div class=\"qc_voice_audio_display\" id=\"qc_audio_display\"  style=\"display:none\">\n                    <audio id=\"qc-audio\" controls src=\"\"><\/audio>\n                    <span title=\"Remove and back to main upload screen.\" class=\"qc_audio_remove_button dashicons dashicons-trash\"><\/span>\n                <\/div>\n            <\/div>\n            <input type=\"hidden\" value=\"\" name=\"qcwpvoicemessage\" id=\"qc_audio_url\" \/>\n        <\/div>\n        \n<\/div>\n\n\n<div class=\"attach-wrap\">\n<span class=\"voicetext\">Attach documents<\/span>\n\n<div class='attachment'>\n\n<div class=\"downloaded\">\n<span><\/span>\n<div class=\"deleteFile\"><\/div>\n<\/div>\n\n<div class=\"attachmentButton\" onclick=\"(function cl(e){if(e.target.nodeName == 'DIV'){e.target.parentNode.children[1].children[0].click(); }})(arguments[0]);\">\n\n<div class=\"innerText\">Upload file<\/div>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"att-files\"><input size=\"40\" class=\"wpcf7-form-control wpcf7-file\" accept=\".jpg,.png,.jpeg,.pdf\" aria-invalid=\"false\" type=\"file\" name=\"att-files\" \/><\/span>\n\n<div class=\"tip\" onclick=\"event.stopPropagation()\">\n<p>You can attach 1 file up to 2MB. Valid file formats: pdf, jpg, jpeg, png.<\/p>\n<\/div>\n\n<\/div>\n\n<\/div>\n\n<\/div>\n\n\n\n<\/div>\n\n<div class=\"contact-us__wrapper\"> \n<p class=\"pp\">By clicking Send, you consent to Innowise processing your personal data per our<a href=\"\/privacy-notice\/\"> Privacy Policy <\/a>to provide you with relevant information. By submitting your phone number, you agree that we may contact you via voice calls, SMS, and messaging apps. Calling, message, and data rates may apply.<\/p>\n\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"scoring_point\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmCampaign\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmContent\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmMedium\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmSource\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"utmTerm\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"location\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"city\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"ip\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"Summ\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"gclid\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"rating\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlCompany\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"urlWithParams\" \/>\n<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"\" type=\"hidden\" name=\"audioMessageLink\" \/>\n<input class=\"wpcf7-form-control wpcf7-submit has-spinner contact-us__send\" id=\"contact-send-button\" type=\"submit\" value=\"Send\" \/>\n<\/div>\n\n<div class='mailToContact'>You can also send us your request <\/br>to <a href=\"mailto:contact@innowise.com\">contact@innowise.com<\/a><\/div>\n\n<\/div>\n\n<div class=\"elementor-widget-container\" style=\"z-index:1;\">\n<div class=\"contact__info\">\n  <div class=\"contact__info-background\"><\/div>\n  <div class=\"contact__info-heading\">What happens next?<\/div>\n  <div class=\"contact__info-steps\">\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">1<\/div>\n      <p class=\"contact__info-text\">Once we\u2019ve received and processed your request, we\u2019ll get back to you to detail your\n        project needs and sign an NDA to ensure confidentiality.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">2<\/div>\n      <p class=\"contact__info-text\">After examining your wants, needs, and expectations, our team will devise a project\n        proposal with the scope of work, team size, time, and cost estimates.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">3<\/div>\n      <p class=\"contact__info-text\">We\u2019ll arrange a meeting with you to discuss the offer and nail down the details.<\/p>\n    <\/div>\n\n    <div class=\"contact__info-block\">\n      <div class=\"contact__info-step\">4<\/div>\n      <p class=\"contact__info-text\">Finally, we\u2019ll sign a contract and start working on your project right away.<\/p>\n    <\/div>\n  <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\n<\/div>\n\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n\t\t\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<div class=\"other_services_container\">[other_services]<\/div><script>\n            jQuery( document ).ready(function($) {\n                if($('[data-elementor-type=\"wp-post\"]').length > 0){\n                    $('[data-elementor-type=\"wp-post\"]').children().last().before($('.other_services_container'));\n                }else{\n                    $('[data-elementor-type=\"wp-page\"]').children().last().before($('.other_services_container'));\n                }\n                \n                var sections = $('[data-elementor-type=\"wp-post\"]').find('.net-15.dt-16');\n                for(var i = 0; i<sections.length; i++){\n                    \n                    if($(sections[i]).hasClass( 'net-15' ) && $(sections[i]).hasClass( 'dt-16' ) && $(sections[i]).hasClass( 'elementor-hidden-desktop' )==false){\n                        $(sections[i]).before($('.other_services_container'));   \n                    }\n                }\n                \n            });\n        <\/script>","protected":false},"excerpt":{"rendered":"<p>Re-architecturing an operational app for Gestical Innowise migrated all client applications to a single Azure-based ecosystem utilizing a unified technology stack. Start my project Industry Energy &#038; Utilities Employees 11-50 Region Switzerland Services Software development Staff augmentation Client since 2025 Client overview [summarize_button_ai]Gestical is a Swiss-based company focusing on energy efficiency, specifically in the measurement [&hellip;]<\/p>\n","protected":false},"featured_media":194819,"template":"","cases":[1099,1194],"class_list":["post-194759","case","type-case","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/case\/194759","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/case"}],"about":[{"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/types\/case"}],"version-history":[{"count":0,"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/case\/194759\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/media\/194819"}],"wp:attachment":[{"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/media?parent=194759"}],"wp:term":[{"taxonomy":"cases","embeddable":true,"href":"https:\/\/innowise.com\/pl\/wp-json\/wp\/v2\/cases?post=194759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}