PageSourceSearch

https://ui-bakery-2-0.webflow.io/contact-us

html ui-bakery-2-0.webflow.io collected 2026-10-03 13:57:35 UTC 25,444 bytes, 488 lines download raw bytes

1<!DOCTYPE html><!-- This site was created in Webflow. https://webflow.com --><!-- Last Published: Tue Sep 08 2026 09:00:20 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="ui-bakery-2-0.webflow.io" data-wf-page="65860ea01744e63eb4b328a1" data-wf-site="653a8b0e56e4a44a90d64931" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Contact our technical team | UI Bakery</title><meta content="Schedule a demo with the UI Bakery team to find out whether our internal tool builder fits your needs." name="description"/><meta content="Contact our technical team | UI Bakery" property="og:title"/><meta content="Schedule a demo with the UI Bakery team to find out whether our internal tool builder fits your needs." property="og:description"/><meta content="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/68e7ed430ee488cb4e8eb3fe_website-min%20(1).jpg" property="og:image"/><meta content="Contact our technical team | UI Bakery" name="twitter:title"/><meta content="Schedule a demo with the UI Bakery team to find out whether our internal tool builder fits your needs." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/68e7ed430ee488cb4e8eb3fe_website-min%20(1).jpg" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Webflow" name="generator"/><link href="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/css/ui-bakery-2-0.webflow.shared.b05d130c4.min.css" rel="stylesheet" type="text/css" integrity="sha384-sF0TDEJD258TPSoGL0dtYquAQwRN5FhHtwJiFqjgLGx3RXYvpmiyj7P1nkyeL6Ly" crossorigin="anonymous"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/>
1<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
1<script type="text/javascript">WebFont.load({  google: {    families: ["Inconsolata:400,700","Lato:100,100italic,300,300italic,400,400italic,700,700italic,900,900italic","Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Bricolage Grotesque:300,400,500,600,700","Fira Mono:300,400,500,600,700","Funnel Display:300,400,500,600,700","Geist:300,400,500,600,700","Host Grotesk:300,400,500,600,700","Inter:300,400,500,600,700","Nanum Pen Script:300,400,500,600,700","Urbanist:300,400,500,600,700"]  }});</script>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/659092c4263a51a2739ebba2_fav.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/659092e84b3e0306b4959cef_webclip.png" rel="apple-touch-icon"/><link href="https://uibakery.io/contact-us" rel="canonical"/><!-- Please keep this css code to improve the font quality-->
2<style>
3  * {
4  -webkit-font-smoothing: antialiased;
5  -moz-osx-font-smoothing: grayscale;
6  -o-font-smoothing: antialiased;
7}
8</style>
9
10
11<script type="text/javascript">
12  window.dataLayer = window.dataLayer || [];
13  function gtag() {
14    dataLayer.push(arguments);
15  }
16  gtag('consent', 'default', {
17    'analytics_storage': 'denied',
18    'ad_storage': 'denied',
19    'ad_user_data': 'denied',
20    'ad_personalization': 'denied',
21    'region': ["AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IS", "IE", "IT", "LV", "LI", "LT", "LU", "MT", "NL", "NO", "PL", "PT", "RO", "SK", "SI", "ES", "SE", "UK", "CH"]
22  });
23  
24  var _hsp = window._hsp = window._hsp || [];
25
26  // analytics
27  _hsp.push(['addPrivacyConsentListener', function(consent) {
28    
29     var categories = consent && consent.categories || {};
30     var hasAnalyticsConsent = consent && (consent.allowed || (consent.categories && consent.categories.analytics));
31    var hasAdsConsent = consent && (consent.allowed || (consent.categories && consent.categories.advertisement));
32
33    var consentMode = {
34      'functionality_storage': categories.necessary ? 'granted' : 'denied',
35      'security_storage': categories.necessary ? 'granted' : 'denied',
36      'personalization_storage': categories.functionality ? 'granted' : 'denied',
37      
38      'ad_storage': hasAdsConsent ? 'granted' : 'denied',
39      'analytics_storage': hasAnalyticsConsent ? 'granted' : 'denied',
40      'ad_user_data': hasAdsConsent ? 'granted' : 'denied',
41      'ad_personalization': hasAdsConsent ? 'granted' : 'denied'
42
43    };
44    
45    gtag('consent', 'update', consentMode);  
46    gtag('event', 'hubspotConsentUpdate');
47  }]);
48</script>
48 
49
50<!-- Start of HubSpot Embed Code -->
51<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/23746721.js"></script>
51
52<!-- End of HubSpot Embed Code -->
53
54
55<!-- Google Tag Manager -->
56<script>
vendor: 327 bytes, lines 56-60
56(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
57new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
58j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
59'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
60})(window,document,'script','dataLayer','
60GTM-W2HN8BS
vendor: 3 bytes, line 60
60');
60</script>
60
61<!-- End Google Tag Manager -->
62
63<script>
64  function ensureCanonicalPresent(newCanonicalUrl) {
65  	var canonicalLink = document.querySelector('link[rel="canonical"]');
66    if (canonicalLink) {
67      canonicalLink.href = newCanonicalUrl;
68    } else {
69      var link = document.createElement("link");
70      link.rel = "canonical";
71      link.href = newCanonicalUrl;
72      document.head.appendChild(link);
73    }
74  }
75</script>
75
76
77<!-- UIB Custom MB -->
78<script>
79(function(){if(/bot|crawl|spider/i['test'](navigator['userAgent']))return;var _0x4c8065=new URLSearchParams(window['location']['search']),_0x496d4e=localStorage['getItem']('mb_cached');if(!_0x496d4e){var _0xbe9dd6='',_0x4e1c23=window['location']['pathname'];if(_0x4e1c23['indexOf']('/regex-library')===0x0)_0xbe9dd6='regex_library';else{if(_0x4c8065['get']('utm_medium')==='cpc'&&_0x4c8065['get']('utm_campaign'))_0xbe9dd6=_0x4c8065['get']('utm_medium')+'_'+_0x4c8065['get']('utm_campaign');else{if(_0x4e1c23['indexOf']('/retool-alternatives')===0x0)_0xbe9dd6='rt_alts';else{if(_0x4e1c23['indexOf']('/ai-app-generator')===0x0)_0xbe9dd6='ai_generator';else{if(_0x4e1c23['indexOf']('/postgresql-gui-tools')===0x0)_0xbe9dd6='pgui';else{if(_0x4e1c23['indexOf']('/drag-and-drop-ui-builder')===0x0)_0xbe9dd6='dnd_uib';else{if(_0x4e1c23['indexOf']('/templates')===0x0)_0xbe9dd6='templates';else{if(_0x4e1c23['indexOf']('/solutions')===0x0)_0xbe9dd6='solutions';else{if(_0x4e1c23['indexOf']('/integrations')===0x0)_0xbe9dd6='integrations';else{if(_0x4e1c23['indexOf']('/blog/redis-gui-tools')===0x0)_0xbe9dd6='redis_gui';else{if(_0x4e1c23['indexOf']('/blog/bolt-new-alternatives')===0x0)_0xbe9dd6='bn_alts';else{if(_0x4e1c23['indexOf']('/blog/replit-vs-bolt-vs-lovable')===0x0)_0xbe9dd6='repvbnvlov';else{if(_0x4e1c23['indexOf']('/blog/cursor-ai-pricing-explained')===0x0)_0xbe9dd6='curprc';else{if(_0x4e1c23['indexOf']('/blog/what-is-lovable-ai')===0x0)_0xbe9dd6='wilai';else{if(_0x4e1c23['indexOf']('/blog/streamlit-vs-gradio')===0x0||_0x4e1c23['indexOf']('/blog/streamlit-vs-dash')===0x0)_0xbe9dd6='stmltvs';else{if(_0x4e1c23['indexOf']('/blog/best-django-admin-templates')===0x0)_0xbe9dd6='djadmt';else{if(_0x4e1c23['indexOf']('/blog/healthcare-dashboard-templates')===0x0)_0xbe9dd6='hlthcdt';else{if(_0x4e1c23['indexOf']('/blog/what-is-bolt-ai')===0x0)_0xbe9dd6='wibai';else{if(document['referrer'])try{var _0x371124=new URL(document['referrer']);_0x371124['hostname']==='www.google.com'&&_0x4e1c23==='/'?_0xbe9dd6='google_homepage':_0xbe9dd6=_0x371124['hostname'];}catch(_0x444235){}}}}}}}}}}}}}}}}}}}_0xbe9dd6&&(_0x496d4e=btoa(_0xbe9dd6),localStorage['setItem']('mb_cached',_0x496d4e));}_0x4c8065['get']('gclid')&&localStorage['setItem']('mb_gid',_0x4c8065['get']('gclid'));}());
80</script>
80
81<!-- End UIB Custom MB --></head><body class="contact"><div class="page-wrapper"><div class="global-styles w-embed"><style>
82
83/* Focus state style for keyboard navigation for the focusable elements */
84*[tabindex]:focus-visible,
85  input[type="file"]:focus-visible {
86   outline: 0.125rem solid #4d65ff;
87   outline-offset: 0.125rem;
88}
89
90/* Get rid of top margin on first element in any rich text element */
91.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
92  margin-top: 0 !important;
93}
94
95/* Get rid of bottom margin on last element in any rich text element */
96.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
97	margin-bottom: 0 !important;
98}
99
100/* Prevent all click and hover interaction with an element */
101.pointer-events-off {
102	pointer-events: none;
103}
104
105/* Enables all click and hover interaction with an element */
106.pointer-events-on {
107  pointer-events: auto;
108}
109
110/* Create a class of .div-square which maintains a 1:1 dimension of a div */
111.div-square::after {
112	content: "";
113	display: block;
114	padding-bottom: 100%;
115}
116
117/* Make sure containers never lose their center alignment */
118.container-medium,.container-small, .container-large {
119	margin-right: auto !important;
120  margin-left: auto !important;
121}
122
123/* 
124Make the following elements inherit typography styles from the parent and not have hardcoded values. 
125Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
126Uncomment this CSS to use it in the project. Leave this message for future hand-off.
127*/
128/*
129a,
130.w-input,
131.w-select,
132.w-tab-link,
133.w-nav-link,
134.w-dropdown-btn,
135.w-dropdown-toggle,
136.w-dropdown-link {
137  color: inherit;
138  text-decoration: inherit;
139  font-size: inherit;
140}
141*/
142
143/* Apply "..." after 3 lines of text */
144.text-style-3lines {
145	display: -webkit-box;
146	overflow: hidden;
147	-webkit-line-clamp: 3;
148	-webkit-box-orient: vertical;
149}
150
151/* Apply "..." after 2 lines of text */
152.text-style-2lines {
153	display: -webkit-box;
154	overflow: hidden;
155	-webkit-line-clamp: 2;
156	-webkit-box-orient: vertical;
157}
158
159/* Adds inline flex display */
160.display-inlineflex {
161  display: inline-flex;
162}
163
164/* These classes are never overwritten */
165.hide {
166  display: none !important;
167}
168
169@media screen and (max-width: 991px) {
170    .hide, .hide-tablet {
171        display: none !important;
172    }
173}
174  @media screen and (max-width: 767px) {
175    .hide-mobile-landscape{
176      display: none !important;
177    }
178}
179  @media screen and (max-width: 479px) {
180    .hide-mobile{
181      display: none !important;
182    }
183}
184 
185.margin-0 {
186  margin: 0rem !important;
187}
188  
189.padding-0 {
190  padding: 0rem !important;
191}
192
193.spacing-clean {
194padding: 0rem !important;
195margin: 0rem !important;
196}
197
198.margin-top {
199  margin-right: 0rem !important;
200  margin-bottom: 0rem !important;
201  margin-left: 0rem !important;
202}
203
204.padding-top {
205  padding-right: 0rem !important;
206  padding-bottom: 0rem !important;
207  padding-left: 0rem !important;
208}
209  
210.margin-right {
211  margin-top: 0rem !important;
212  margin-bottom: 0rem !important;
213  margin-left: 0rem !important;
214}
215
216.padding-right {
217  padding-top: 0rem !important;
218  padding-bottom: 0rem !important;
219  padding-left: 0rem !important;
220}
221
222.margin-bottom {
223  margin-top: 0rem !important;
224  margin-right: 0rem !important;
225  margin-left: 0rem !important;
226}
227
228.padding-bottom {
229  padding-top: 0rem !important;
230  padding-right: 0rem !important;
231  padding-left: 0rem !important;
232}
233
234.margin-left {
235  margin-top: 0rem !important;
236  margin-right: 0rem !important;
237  margin-bottom: 0rem !important;
238}
239  
240.padding-left {
241  padding-top: 0rem !important;
242  padding-right: 0rem !important;
243  padding-bottom: 0rem !important;
244}
245  
246.margin-horizontal {
247  margin-top: 0rem !important;
248  margin-bottom: 0rem !important;
249}
250
251.padding-horizontal {
252  padding-top: 0rem !important;
253  padding-bottom: 0rem !important;
254}
255
256.margin-vertical {
257  margin-right: 0rem !important;
258  margin-left: 0rem !important;
259}
260  
261.padding-vertical {
262  padding-right: 0rem !important;
263  padding-left: 0rem !important;
264}
265
266/* Apply "..." at 100% width */
267.truncate-width { 
268		width: 100%; 
269    white-space: nowrap; 
270    overflow: hidden; 
271    text-overflow: ellipsis; 
272}
273/* Removes native scrollbar */
274.no-scrollbar {
275    -ms-overflow-style: none;
276    overflow: -moz-scrollbars-none; 
277}
278
279.no-scrollbar::-webkit-scrollbar {
280    display: none;
281}
282
283</style></div><main class="main-wrapper"><div class="grid-contact"><div id="w-node-_400fc9c4-c516-e436-d51a-20822589464c-b4b328a1" class="section-contact"><a href="#" class="contact-logo-link w-inline-block"><div class="logo-contact w-embed"><svg width="auto" height="40" viewBox="0 0 427 108" fill="none" xmlns="http://www.w3.org/2000/svg">
284<path fill-rule="evenodd" clip-rule="evenodd" d="M35.6266 1.12002C35.6266 0.230352 34.6064 -0.273108 33.9003 0.268085L1.00574 25.479C0.740706 25.6821 0.585302 25.997 0.585302 26.3309V45.1718C0.585302 46.05 1.5824 46.5566 2.29164 46.0387L35.1862 22.0203C35.463 21.8182 35.6266 21.4961 35.6266 21.1534V1.12002ZM39.9436 84.6084C31.9346 86.0934 24.2366 80.8129 22.7496 72.8136C21.2631 64.8137 26.5501 57.1257 34.5591 55.6407C42.5681 54.1557 50.266 59.4367 51.753 67.436C53.24 75.4348 47.9526 83.1234 39.9436 84.6084ZM69.2444 51.9934C59.2304 34.3244 36.7893 28.1182 19.1203 38.1318C1.45086 48.1454 -4.75489 70.5864 5.25874 88.2557C15.2724 105.925 37.7139 112.131 55.3823 102.117C73.0517 92.1043 79.2574 69.6622 69.2444 51.9934ZM90.0985 75.08C90.0985 86.9526 98.8336 94.9681 111.097 94.9681C123.359 94.9681 132.094 86.9526 132.094 75.08V45.4908H118.551V74.8321C118.551 79.5485 115.521 82.5963 111.097 82.5963C106.671 82.5963 103.642 79.5485 103.642 74.8321V45.4908H90.0985V75.08ZM141.427 45.4908V93.4219H155.425V45.4908H141.427ZM208.662 68.1128L208.661 68.1122C212.444 65.8936 214.922 62.0407 214.922 57.7579C214.922 50.6763 208.515 45.4908 199.736 45.4908H177.371V93.4219H200.193C209.333 93.4219 216.256 87.5398 216.256 79.7734C216.256 74.5428 213.328 70.2541 208.662 68.1128ZM202.257 60.1794H202.258C202.258 62.484 200.592 64.0447 197.893 64.0447H191.37V56.3142H197.892C200.592 56.3142 202.257 57.8749 202.257 60.1794ZM203.813 77.9395C203.813 80.6911 201.858 82.599 198.869 82.599H191.37V73.3219H198.869C201.858 73.3219 203.813 75.2298 203.813 77.9395ZM264.304 55.9069L254.693 55.9063L253.374 58.8281C250.283 56.2541 246.345 54.768 241.936 54.768C230.49 54.768 222.308 63.0963 222.308 74.7977C222.308 86.5399 230.49 94.9681 241.936 94.9681C246.284 94.9681 250.166 93.5244 253.231 91.0181L254.336 93.6897H264.304V55.9069ZM251.86 75.6264C251.86 80.5038 248.236 84.1452 243.306 84.1452C238.375 84.1452 234.751 80.5038 234.751 75.6264C234.751 70.7785 238.345 67.1371 243.306 67.1371C248.236 67.1371 251.86 70.7785 251.86 75.6264ZM294.267 93.4219H309.41L296.611 73.8022L308.234 55.9353H293.81L284.926 70.6212V42.3984H272.08V93.4219H284.926V77.5692L294.267 93.4219ZM351.405 74.5112L351.406 74.5095C351.406 63.4436 343.115 54.768 331.142 54.768C319.483 54.768 310.965 63.2724 310.965 74.8385C310.965 86.3644 319.552 94.9681 331.142 94.9681C340.461 94.9681 347.976 89.5889 350.59 80.9782H337.858C336.628 83.1867 334.131 84.5166 331.142 84.5166C327.102 84.5166 324.396 82.2786 323.559 77.9513H351.141C351.308 76.7846 351.405 75.6479 351.405 74.5112ZM323.408 71.7757C324.481 67.7832 327.166 65.5909 331.029 65.5909C335.028 65.5909 337.8 67.7586 338.963 71.7757H323.408ZM384.298 67.955L379.027 56.3142C374.478 56.3142 371.195 57.576 368.5 60.5884L366.446 56.4897H357.627V93.4219H370.791V74.6416C370.791 69.9305 372.743 67.955 377.403 67.955H384.298ZM426.065 56.3142H412.104L404.643 76.7991L396.636 56.3142H382.514L398.105 90.4282C396.344 95.0561 394.845 96.3318 389.873 96.3318H386.299L390.749 107.338C400.491 107.338 405.166 103.227 410.251 91.8456L426.065 56.3142Z" fill="black"/>
285</svg></div></a><div class="contact-form-wrapper"><h1 class="heading-style-h4">Book a demo with UI Bakery tech expert</h1><div class="spacer-xxsmall"></div><div class="spacer-xxsmall"></div><p>Let the UI Bakery tailor a demo to your immediate needs and answer all your questions.</p><div class="spacer-small"></div><div class="form-contact w-embed w-script">
285<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/embed/v2.js"></script>
vendor: 1 bytes, line 285
285
286<script>
287  hbspt.forms.create({
288    region: "na1",
289    portalId: "23746721",
290    formId: "c61e6ed1-1fc3-406b-b9b5-bc80720fbc5b",
291    onFormReady: function($form) {
292    	var cid = localStorage.getItem('mb_gid');
293      if (cid) {
294      	$('input[name="ui_bakery_app_google_cid"]').val(cid).change(); 
295      }
296		}
297  });
298</script>
298</div><div class="spacer-small"></div><p class="text-size-small">Want to get started? <a href="https://cloud.uibakery.io/auth/register" target="_blank">Sign up for free</a></p></div></div><div id="w-node-ee440eb2-3190-a60c-cd57-7d26b2dd868e-b4b328a1" class="w-layout-vflex contact-img-section card-box-shadow"><div class="w-layout-vflex contact-ai-wrapper"><div class="w-embed w-script"><!DOCTYPE html>
299<html lang="en">
300<head>
301  <meta charset="UTF-8">
302  <meta name="viewport" content="width=device-width, initial-scale=1.0">
303  <style>
304    .typing-container {
305      font-size: clamp(20px);
306      font-weight: 600;
307      color: #000;
308      line-height: 1.3;
309      min-height: 3em;
310      white-space: pre-wrap;
311      word-wrap: break-word;
312      text-align: left;
313      padding: 0 !important;
314      margin: 0 !important;
315      text-indent: 0 !important;
316    }
317    
318    .typing-text {
319      display: inline;
320      position: relative;
321      padding: 0 !important;
322      margin: 0 !important;
323      text-indent: 0 !important;
324    }
325    
326    .typing-text::after {
327      content: '';
328      display: inline-block;
329      width: 2px;
330      height: 0.9em;
331      background: currentColor;
332      margin-left: 2px;
333      animation: blink 0.8s steps(2) infinite;
334      vertical-align: text-bottom;
335      transform: translateY(-0.1em);
336    }
337    
338    @keyframes blink {
339      50% { opacity: 0; }
340    }
341  </style>
342</head>
343<body>
344
345  <!-- Вставьте этот блок в Webflow -->
346  <div class="typing-container">
347    <span class="typing-text"></span>
348  </div>
349
350  
350<script>
351    (function() {
352      const container = document.querySelector('.typing-text');
353      
354      // Массив текстов для ротации
355      const texts = [
356        'What app do you want to create today?',
357        'Describe your idea...',
358        'What are you working on?'
359      ];
360      
361      const typeSpeed = 40;
362      const eraseSpeed = 40;
363      const pauseAfterType = 2000;
364      const pauseAfterErase = 500;
365      
366      let textIndex = 0;
367      let charIndex = 0;
368      let isTyping = true;
369      
370      function type() {
371        const currentText = texts[textIndex];
372        
373        if (isTyping) {
374          if (charIndex < currentText.length) {
375            container.textContent = currentText.slice(0, charIndex + 1);
376            charIndex++;
377            setTimeout(type, typeSpeed);
378          } else {
379            setTimeout(() => {
380              isTyping = false;
381              type();
382            }, pauseAfterType);
383          }
384        } else {
385          if (charIndex > 0) {
386            charIndex--;
387            container.textContent = currentText.slice(0, charIndex);
388            setTimeout(type, eraseSpeed);
389          } else {
390            // Переходим к следующему тексту
391            textIndex = (textIndex + 1) % texts.length;
392            setTimeout(() => {
393              isTyping = true;
394              type();
395            }, pauseAfterErase);
396          }
397        }
398      }
399      
400      type();
401    })();
402  </script>
402
403
404</body>
405</html></div></div><div class="w-layout-vflex contact-client-wrapper"><div class="w-layout-vflex contact-logo-text-wrapper"><div class="w-layout-hflex contact-logo-wrapper"><img src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/68d824a939b28e08761b307c_Component%201-9.svg" loading="lazy" alt=""/><img src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/68d824a9404223839d43dbba_Component%201-5.svg" loading="lazy" alt=""/><img src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/68d824a99bb908d693fb276b_Component%201-7.svg" loading="lazy" alt=""/><img src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/68d824a955de266d70d69a79_Component%201-8.svg" loading="lazy" alt=""/><img src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/68d824a911793e72dd5a3fbe_Component%201-10.svg" loading="lazy" alt=""/><img src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/68d824aa4814d0df92ac8bf1_Vector.svg" loading="lazy" alt=""/></div></div><p class="text-size-small">Read our <a href="/clients" target="_blank">clients success stories</a></p></div></div></div></main></div>
405<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=653a8b0e56e4a44a90d64931" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
405<script src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/js/webflow.schunk.36b8fb49256177c8.js" type="text/javascript" integrity="sha384-4abIlA5/v7XaW1HMXKBgnUuhnjBYJ/Z9C1OSg4OhmVw9O3QeHJ/qJqFBERCDPv7G" crossorigin="anonymous"></script>
405<script src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/js/webflow.schunk.be1244181af5357c.js" type="text/javascript" integrity="sha384-hHhrDQgxzPO8VcGjw3KZ2EiRP/dqJ/sU+h0Ny1glnkgRE4bPdUDyAi8QM7ZOuxjB" crossorigin="anonymous"></script>
405<script src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/js/webflow.schunk.254f8557ba210ca4.js" type="text/javascript" integrity="sha384-wsX3mohsqpIZZovIWmz/ADWfdHw71S+2aFLUPVurPwu/xeBbGqdFseABGG4giCJj" crossorigin="anonymous"></script>
405<script src="https://cdn.prod.website-files.com/653a8b0e56e4a44a90d64931/js/webflow.8b55e4cd.e6e82696ee27ebd4.js" type="text/javascript" integrity="sha384-kkWCFlJqceu2SiwWQbs9VUR7IteAwDlFGjcKPTvwVuBcroiCq50x0svBHmH/twlf" crossorigin="anonymous"></script>
405<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 405-406
405
406<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
406GTM-W2HN8BS
vendor: 83 bytes, lines 406-407
406"
407height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
408<!-- End Google Tag Manager (noscript) -->
409
410<script>
411/* Solutions tabs in navigation bar */
412window.onload = function () {		
413  const urlParams = new URLSearchParams(window.location.search);		
414  const tab = urlParams.get('tab');		
415  if (tab) {
416    const tabButton = document.getElementById(tab)
417    tabButton.click();		
418  }
419}
420</script>
420
421
422<!-- UIB Custom MB 2 -->
423<script>
424(function(){var _0x3006e7=localStorage['getItem']('mb_cached'),_0x1622f9=localStorage['getItem']('mb_gid');_0x3006e7&&$('a[href^=\x22https://cloud.uibakery.io\x22]')['each'](function(){var _0x308cb7=$(this),_0x23128e=_0x308cb7['attr']('href'),_0xc28aea=_0x23128e['indexOf']('?')!==-0x1?'&':'?',_0x3c322e=_0x3006e7;_0x1622f9&&(_0x3c322e=btoa(atob(_0x3006e7)+'&gid='+_0x1622f9)),_0x23128e+=_0xc28aea+'mb='+encodeURIComponent(_0x3c322e),_0x308cb7['attr']('href',_0x23128e);});}());
425</script>
425
426<!-- End UIB Custom MB 2 -->
426<script>
427// ТАЙПИНГ ГЛАВНОГО ИНПУТА
428
429(function () {
430  function initTyping(el) {
431    const raw = (el.getAttribute('data-phrases') || '').trim();
432    const phrases = raw ? raw.split('|').map(s => s.trim()).filter(Boolean)
433                        : ['Введите запрос', 'Например: “нужно собрать дашборд”'];
434
435    // базовые скорости
436    const speed = (+el.getAttribute('data-type-speed') || 40) / 1; // быстрее
437    const back  = (+el.getAttribute('data-erase-speed') || 40) / 1;
438    const wait  = +el.getAttribute('data-wait') || 1200;
439    const gap   = +el.getAttribute('data-gap') || 500;
440
441    const reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
442    if (reduce) { el.placeholder = phrases[0] || ''; return; }
443
444    let i = 0, j = 0, dir = 1, hold = false, cursorVisible = true;
445
446    el.addEventListener('focus', () => { hold = true; el.placeholder = ''; });
447    el.addEventListener('input', () => { hold = true; });
448    el.addEventListener('blur',  () => { if(!el.value) { hold = false; }});
449
450    // мигающий курсор
451    setInterval(() => { cursorVisible = !cursorVisible; }, 500);
452
453    function loop() {
454      const phrase = phrases[i % phrases.length] || '';
455      const shown  = phrase.slice(0, j);
456      el.placeholder = shown + (cursorVisible ? '|' : '');
457
458      if (hold) return setTimeout(loop, 150);
459
460      if (dir > 0) {
461        if (j < phrase.length) {
462          j++;
463          return setTimeout(loop, speed);
464        } else {
465          dir = -1;
466          return setTimeout(loop, wait);
467        }
468      } else {
469        if (j > 0) {
470          j--;
471          return setTimeout(loop, back);
472        } else {
473          dir = 1;
474          i++;
475          return setTimeout(loop, gap);
476        }
477      }
478    }
479
480    loop();
481  }
482
483  document.addEventListener('DOMContentLoaded', function () {
484    document.querySelectorAll('input.typing-input, textarea.typing-input')
485      .forEach(initTyping);
486  });
487})();
488</script>
488</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.