[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"global":3,"services:en":200,"technology-names:en":248,"service:support:en":296},{"id":4,"documentId":5,"siteName":6,"siteUrl":7,"createdAt":8,"updatedAt":9,"publishedAt":10,"locale":11,"logo":12,"ogImage":26,"nav":71,"headerCta":94,"contact":99,"footer":114,"organization":133,"brief":147},5,"pdvc9bpy99219el368k0axyu","Spot","https:\u002F\u002Fwespot.ru","2026-10-27T11:56:47.515Z","2026-10-28T01:53:56.708Z","2026-10-28T01:53:56.790Z","en",{"id":13,"documentId":14,"name":15,"alternativeText":6,"caption":16,"focalPoint":16,"width":17,"height":18,"formats":16,"hash":19,"ext":20,"mime":21,"size":22,"url":23,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":25,"updatedAt":25,"publishedAt":25},28,"tampnmiu5mwua40w53mjugw8","logo-spot.svg",null,116,34,"logo_spot_53ec7bfdce",".svg","image\u002Fsvg+xml",8.28,"\u002Fuploads\u002Flogo_spot_53ec7bfdce.svg","local","2026-10-26T22:32:01.303Z",{"id":27,"documentId":28,"name":29,"alternativeText":6,"caption":16,"focalPoint":16,"width":30,"height":31,"formats":32,"hash":67,"ext":34,"mime":37,"size":68,"url":69,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":70,"updatedAt":70,"publishedAt":70},29,"g7keq692g2z8vgqzkv8bzt0r","spot.jpg",1200,630,{"large":33,"small":43,"medium":51,"thumbnail":59},{"ext":34,"url":35,"hash":36,"mime":37,"name":38,"path":16,"size":39,"width":40,"height":41,"sizeInBytes":42},".jpg","\u002Fuploads\u002Flarge_spot_e52160dbaa.jpg","large_spot_e52160dbaa","image\u002Fjpeg","large_spot.jpg",26.66,1000,525,26659,{"ext":34,"url":44,"hash":45,"mime":37,"name":46,"path":16,"size":47,"width":48,"height":49,"sizeInBytes":50},"\u002Fuploads\u002Fsmall_spot_e52160dbaa.jpg","small_spot_e52160dbaa","small_spot.jpg",10.21,500,263,10208,{"ext":34,"url":52,"hash":53,"mime":37,"name":54,"path":16,"size":55,"width":56,"height":57,"sizeInBytes":58},"\u002Fuploads\u002Fmedium_spot_e52160dbaa.jpg","medium_spot_e52160dbaa","medium_spot.jpg",17.69,750,394,17692,{"ext":34,"url":60,"hash":61,"mime":37,"name":62,"path":16,"size":63,"width":64,"height":65,"sizeInBytes":66},"\u002Fuploads\u002Fthumbnail_spot_e52160dbaa.jpg","thumbnail_spot_e52160dbaa","thumbnail_spot.jpg",3.81,245,129,3808,"spot_e52160dbaa",33.67,"\u002Fuploads\u002Fspot_e52160dbaa.jpg","2026-10-26T22:32:01.363Z",[72,78,82,86,90],{"id":73,"label":74,"href":75,"kind":76,"strong":77,"external":77},174,"Services","\u002Fservices","text",false,{"id":79,"label":80,"href":81,"kind":76,"strong":77,"external":77},175,"Projects","\u002Fcases",{"id":83,"label":84,"href":85,"kind":76,"strong":77,"external":77},176,"Expertise","\u002F#expertise",{"id":87,"label":88,"href":89,"kind":76,"strong":77,"external":77},177,"How we work","\u002F#how",{"id":91,"label":92,"href":93,"kind":76,"strong":77,"external":77},178,"Contacts","#contact",{"id":95,"label":96,"href":97,"kind":98,"strong":77,"external":77},179,"Discuss a project","#brief","btn-a",{"id":4,"heading":100,"text":101,"cta":102,"links":104},"Let's discuss your project","We reply the same day. The first step is a 30-minute call or a brief in Telegram.",{"id":103,"label":96,"href":97,"kind":98,"strong":77,"external":77},180,[105,109],{"id":106,"label":107,"href":108,"kind":76,"strong":77,"external":77},181,"push@wespot.ru","mailto:push@wespot.ru",{"id":110,"label":111,"href":112,"kind":76,"strong":77,"external":113},182,"@khudyakv","https:\u002F\u002Ft.me\u002Fkhudyakv",true,{"id":4,"legal":115,"links":116},"© 2022–2026 Spot",[117,121,125,129],{"id":118,"label":119,"href":120,"kind":76,"strong":77,"external":77},183,"Privacy policy","\u002Fprivacy",{"id":122,"label":123,"href":124,"kind":76,"strong":77,"external":77},184,"Terms of use","\u002Fterms",{"id":126,"label":127,"href":128,"kind":76,"strong":113,"external":113},185,"Habr","https:\u002F\u002Fhabr.com\u002Fru\u002Fusers\u002Fkhudyakv\u002Farticles\u002F",{"id":130,"label":131,"href":132,"kind":76,"strong":113,"external":113},186,"Telegram","https:\u002F\u002Ft.me\u002Ffrontend_lite",{"id":134,"name":6,"alternateNames":135,"legalName":16,"inn":16,"email":107,"phone":16,"telegram":112,"country":136,"description":137,"sameAs":138},6,"Wespot","RU","We build the online touchpoints between a business and its customers, partners and employees: customer accounts and stores, dealer and partner portals, CRM and internal systems for teams.",[139,141,144],{"id":140,"label":131,"href":112,"kind":76,"strong":77,"external":113},187,{"id":142,"label":143,"href":132,"kind":76,"strong":77,"external":113},188,"Read on Telegram",{"id":145,"label":146,"href":128,"kind":76,"strong":77,"external":113},189,"Articles on Habr",{"id":4,"label":96,"title":148,"submit":149,"successText":150,"errorText":151,"people":152,"fields":175,"consent":196},"Fill in a brief \u003Cspan style=\"color: #6B6B72\">about your task\u003C\u002Fspan>","Send the brief","Thank you! We have your brief and will get back to you as soon as we can.","The brief could not be sent. Write to us at push@wespot.ru or on Telegram @khudyakv.",[153],{"id":154,"name":155,"role":156,"photo":157},9,"Vladislav Khudyakov","Founder",{"id":158,"documentId":159,"name":160,"alternativeText":161,"caption":16,"focalPoint":16,"width":162,"height":162,"formats":163,"hash":171,"ext":34,"mime":37,"size":172,"url":173,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":174,"updatedAt":174,"publishedAt":174},30,"fbfagczmqep6lcsch1v3c81f","vladislav-khudyakov.jpg","Владислав Худяков",160,{"thumbnail":164},{"ext":34,"url":165,"hash":166,"mime":37,"name":167,"path":16,"size":168,"width":169,"height":169,"sizeInBytes":170},"\u002Fuploads\u002Fthumbnail_vladislav_khudyakov_0a1f3babcf.jpg","thumbnail_vladislav_khudyakov_0a1f3babcf","thumbnail_vladislav-khudyakov.jpg",5.61,156,5606,"vladislav_khudyakov_0a1f3babcf",5.82,"\u002Fuploads\u002Fvladislav_khudyakov_0a1f3babcf.jpg","2026-10-26T22:32:01.379Z",[176,183,189],{"id":177,"label":178,"name":179,"tag":180,"type":76,"placeholder":181,"autocomplete":179,"rows":182,"required":113},13,"Name*","name","input","How should we address you?",0,{"id":184,"label":185,"name":186,"tag":180,"type":76,"placeholder":187,"autocomplete":188,"rows":182,"required":113},14,"How can we reach you*","contact","Messenger, phone, email","off",{"id":190,"label":191,"name":192,"tag":193,"type":76,"placeholder":194,"autocomplete":188,"rows":195,"required":77},15,"About the task","task","textarea","What needs to be done, the timeline, any constraints",4,{"id":4,"before":197,"link":198,"href":120,"after":199},"I agree to the processing of my personal data. See the ","privacy policy",".",[201,209,218,226,234,241],{"id":202,"documentId":203,"title":204,"slug":205,"num":206,"text":207,"isLinked":77,"order":182,"ctaLabel":208},36,"xom9f9b8uov8k5jzse6cawd0","Customer accounts and portals","lk","01","Accounts for customers, partners and employees: orders, payments, requests, history and access roles.","Discuss the task",{"id":210,"documentId":211,"title":212,"slug":213,"num":214,"text":215,"isLinked":77,"order":216,"ctaLabel":217},35,"tumsah9k2m6m0sewkabpw61e","Corporate systems","corporate","02","CRM, ERP and internal systems. Customers, finances, requests and access in one place.",1,"Discuss a system",{"id":219,"documentId":220,"title":221,"slug":222,"num":223,"text":224,"isLinked":77,"order":225,"ctaLabel":208},37,"zunn9dms6ad8texoqw6y3tdr","Mini Apps and web services","mini-apps","03","Mini Apps, chatbots and web services that automate individual business processes.",2,{"id":227,"documentId":228,"title":229,"slug":230,"num":231,"text":232,"isLinked":77,"order":233,"ctaLabel":208},38,"jhuw9zs2spni1yu9a682x04h","Special projects and complex interfaces","special","04","Web games, configurators and calculators. Built for Alfa-Bank, Raiffeisen Life and SPLAT.",3,{"id":235,"documentId":236,"title":237,"slug":238,"num":239,"text":240,"isLinked":77,"order":195,"ctaLabel":208},39,"ckrj708ld8bs46wv7klunsjo","Service integrations","integrations","05","Data exchange with 1C, CRM, YooKassa, Stripe, delivery services and SMS gateways.",{"id":242,"documentId":243,"title":244,"slug":245,"num":246,"text":247,"isLinked":77,"order":4,"ctaLabel":208},40,"yuha2yu8lv44n7tn7bacrsgk","Support and scaling","support","06","We join existing products and work with someone else's code. We optimise performance and move legacy to a new stack.",[249,253,257,260,264,268,272,276,280,284,288,292],{"id":250,"documentId":251,"name":252},169,"p8vqp4j7u4d5hczr7szvpixb","Vue",{"id":254,"documentId":255,"name":256},128,"cz2o7v44o0aco9e5ug991orw","React",{"id":65,"documentId":258,"name":259},"xlc3e2f0g2e8d21dtz56fhqq","Nuxt",{"id":261,"documentId":262,"name":263},130,"tn8tizd5lz1g7lobpen0g8jp","Next.js",{"id":265,"documentId":266,"name":267},131,"j4b9wdar97fh6a7n4np1ol1b","TypeScript",{"id":269,"documentId":270,"name":271},132,"y119214qgyryif676kl65vzm","Vite",{"id":273,"documentId":274,"name":275},133,"h32yowozezgx7shnoavwhdhr","Sass",{"id":277,"documentId":278,"name":279},134,"nptn5i4h1260f2i8vsf05xm8","Pinia",{"id":281,"documentId":282,"name":283},135,"deb59z0fojzpks7jg8zqhy9x","GSAP",{"id":285,"documentId":286,"name":287},136,"ipa2daxz0h944wz1bpkhaphz","Canvas",{"id":289,"documentId":290,"name":291},137,"rzotygp0g2fxn3ynxnucq3jp","Anime.js",{"id":293,"documentId":294,"name":295},138,"hd8evrxia67rvyuvmv0tij7o","Figma",{"id":242,"documentId":243,"title":244,"slug":245,"num":246,"order":4,"text":247,"ctaLabel":208,"includes":297,"isLinked":77,"createdAt":298,"updatedAt":299,"publishedAt":300,"locale":11,"projects":301,"faqs":1213,"blocks":1266,"seo":1607},"[Scope of the service: which tasks we solve and what the work includes]","2026-10-27T11:56:47.241Z","2026-10-28T01:53:58.283Z","2026-10-28T01:53:58.329Z",[302,902],{"id":303,"documentId":304,"title":305,"slug":306,"order":216,"lede":307,"desc":307,"collab":77,"clientName":308,"kind":309,"stack":310,"site":311,"noSiteText":312,"task":313,"result":311,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":11,"tags":317,"partner":16,"formats":324,"points":325,"slides":335,"cover":377,"coverSettings":383,"categories":385,"services":393,"client":767,"taskList":772,"done":773,"gallery":789,"testimonial":790,"nextProject":807,"seo":899},50,"jzhsxo67cxtotrobtcmid5rg","Three years developing the CRM of the Virtuozy music school chain","virtuozy","Every branch got a reactive real-time schedule and a set of useful business management modules.","Virtuozy music school chain","CRM system","Vue.js, Pinia, PrimeVue, PHP, Socket.IO","","Internal system","\u003Cp>Optimise the schedule and take the load off the administrators of the school chain: lessons, substitutions and reschedules must update in every branch at once, without calls and manual reconciliation.\u003C\u002Fp>\n\u003Cp>Deliver real-time and fill the system with business management modules: students, teachers, payments and reporting in one CRM.\u003C\u002Fp>","2026-10-27T11:56:45.992Z","2026-10-28T01:53:58.401Z","2026-10-28T01:53:58.485Z",[318,321],{"id":319,"label":320},481,"Virtuozy",{"id":322,"label":323},482,"Education",[],[326,329,332],{"id":327,"text":328},378,"Frontend stack migration to Vue.js",{"id":330,"text":331},379,"Modular system introduced",{"id":333,"text":334},380,"Reactive forms, recurring lessons",[336],{"id":337,"documentId":338,"name":339,"alternativeText":340,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":343,"hash":373,"ext":345,"mime":348,"size":374,"url":375,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":376,"updatedAt":376,"publishedAt":376},12,"oepj2jygdk1n4z0b7wxud8tm","virtuozy-laptop.webp","3 года развиваем CRM сети музыкальных школ «Виртуозы»",1536,864,{"large":344,"small":353,"medium":360,"thumbnail":367},{"ext":345,"url":346,"hash":347,"mime":348,"name":349,"path":16,"size":350,"width":40,"height":351,"sizeInBytes":352},".webp","\u002Fuploads\u002Flarge_virtuozy_laptop_ceee7f8cbb.webp","large_virtuozy_laptop_ceee7f8cbb","image\u002Fwebp","large_virtuozy-laptop.webp",32.99,562,32994,{"ext":345,"url":354,"hash":355,"mime":348,"name":356,"path":16,"size":357,"width":48,"height":358,"sizeInBytes":359},"\u002Fuploads\u002Fsmall_virtuozy_laptop_ceee7f8cbb.webp","small_virtuozy_laptop_ceee7f8cbb","small_virtuozy-laptop.webp",13.39,281,13394,{"ext":345,"url":361,"hash":362,"mime":348,"name":363,"path":16,"size":364,"width":56,"height":365,"sizeInBytes":366},"\u002Fuploads\u002Fmedium_virtuozy_laptop_ceee7f8cbb.webp","medium_virtuozy_laptop_ceee7f8cbb","medium_virtuozy-laptop.webp",23.22,422,23220,{"ext":345,"url":368,"hash":369,"mime":348,"name":370,"path":16,"size":371,"width":64,"height":293,"sizeInBytes":372},"\u002Fuploads\u002Fthumbnail_virtuozy_laptop_ceee7f8cbb.webp","thumbnail_virtuozy_laptop_ceee7f8cbb","thumbnail_virtuozy-laptop.webp",5.21,5212,"virtuozy_laptop_ceee7f8cbb",66.57,"\u002Fuploads\u002Fvirtuozy_laptop_ceee7f8cbb.webp","2026-10-26T22:31:58.739Z",{"id":337,"documentId":338,"name":339,"alternativeText":340,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":378,"hash":373,"ext":345,"mime":348,"size":374,"url":375,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":376,"updatedAt":376,"publishedAt":376},{"large":379,"small":380,"medium":381,"thumbnail":382},{"ext":345,"url":346,"hash":347,"mime":348,"name":349,"path":16,"size":350,"width":40,"height":351,"sizeInBytes":352},{"ext":345,"url":354,"hash":355,"mime":348,"name":356,"path":16,"size":357,"width":48,"height":358,"sizeInBytes":359},{"ext":345,"url":361,"hash":362,"mime":348,"name":363,"path":16,"size":364,"width":56,"height":365,"sizeInBytes":366},{"ext":345,"url":368,"hash":369,"mime":348,"name":370,"path":16,"size":371,"width":64,"height":293,"sizeInBytes":372},{"id":303,"ratio":311,"position":384,"scale":216},"50% 50%",[386],{"id":177,"documentId":387,"label":388,"slug":389,"order":182,"createdAt":390,"updatedAt":391,"publishedAt":392,"locale":11},"tanodytymqmx8fmdfitrupv8","Accounts and CRM","crm","2026-10-27T11:54:45.703Z","2026-10-27T12:06:29.151Z","2026-10-27T12:06:29.154Z",[394,699],{"id":210,"documentId":211,"title":212,"slug":213,"num":214,"order":216,"text":215,"ctaLabel":217,"includes":311,"isLinked":77,"createdAt":395,"updatedAt":396,"publishedAt":397,"locale":11,"blocks":398,"seo":696},"2026-10-27T11:56:46.975Z","2026-10-28T01:53:57.182Z","2026-10-28T01:53:57.322Z",[399,590,607,619,686,690],{"id":134,"heading":400,"note":401,"initial":216,"modules":402,"__component":589},"What we build the system from","The module scheme is an example. The set of modules and scenarios is assembled for the processes of a specific company.",[403,436,469,496,525,556],{"id":404,"name":405,"text":406,"features":407,"events":420},31,"Customers","One customer card with the whole history: contacts, deals, contracts and communications in one place.",[408,411,414,417],{"id":409,"label":410},438,"Customer card",{"id":412,"label":413},439,"History",{"id":415,"label":416},440,"Segments",{"id":418,"label":419},441,"Search",[421,425,428,432],{"id":422,"time":423,"text":424},121,"Today","Customer card created",{"id":426,"time":423,"text":427},122,"Contract added",{"id":429,"time":430,"text":431},123,"Yesterday","Manager assigned",{"id":433,"time":434,"text":435},124,"A week ago","First request",{"id":437,"name":438,"text":439,"features":440,"events":453},32,"Requests","Requests from every channel land in one queue; each has an owner and a status.",[441,444,447,450],{"id":442,"label":443},442,"Request queue",{"id":445,"label":446},443,"Statuses",{"id":448,"label":449},444,"Owners",{"id":451,"label":452},445,"Notifications",[454,458,462,466],{"id":455,"time":456,"text":457},125,"10:24","Request from the website form",{"id":459,"time":460,"text":461},126,"10:31","Owner assigned",{"id":463,"time":464,"text":465},127,"12:05","Status: in progress",{"id":254,"time":467,"text":468},"16:40","Request closed",{"id":470,"name":471,"text":472,"features":473,"events":486},33,"Finance","Invoices, payments and settlements linked to customers and deals, with export to accounting systems.",[474,477,480,483],{"id":475,"label":476},446,"Invoices",{"id":478,"label":479},447,"Payments",{"id":481,"label":482},448,"1C integration",{"id":484,"label":485},449,"YooKassa",[487,489,491,493],{"id":65,"time":423,"text":488},"Invoice issued",{"id":261,"time":423,"text":490},"Payment via YooKassa",{"id":265,"time":423,"text":492},"Export to 1C",{"id":269,"time":494,"text":495},"Tomorrow","Reconciliation report",{"id":18,"name":497,"text":498,"features":499,"events":512},"Data and reports","Reports on key metrics are built from the live data of the system, with no manual spreadsheet work.",[500,503,506,509],{"id":501,"label":502},450,"Reports",{"id":504,"label":505},451,"Dashboards",{"id":507,"label":508},452,"Export",{"id":510,"label":511},453,"Reference data",[513,516,519,522],{"id":273,"time":514,"text":515},"Monday","Weekly report",{"id":277,"time":517,"text":518},"Daily","Dashboard update",{"id":281,"time":520,"text":521},"On request","Export to Excel",{"id":285,"time":523,"text":524},"Monthly","Branch summary",{"id":210,"name":526,"text":527,"features":528,"events":541},"Roles and access","Every employee sees and changes only what their work requires. Actions are recorded in a log.",[529,532,535,538],{"id":530,"label":531},454,"Roles",{"id":533,"label":534},455,"Permissions",{"id":536,"label":537},456,"Branches",{"id":539,"label":540},457,"Action log",[542,545,548,552],{"id":289,"time":543,"text":544},"09:00","Administrator signed in",{"id":293,"time":546,"text":547},"09:12","Permissions granted to a manager",{"id":549,"time":550,"text":551},139,"11:30","Branch access",{"id":553,"time":554,"text":555},140,"18:00","Log entry",{"id":202,"name":557,"text":558,"features":559,"events":572},"Processes","The company's key processes become scenarios of the system: stages, checks and automatic actions.",[560,563,566,569],{"id":561,"label":562},458,"Stages",{"id":564,"label":565},459,"Automation",{"id":567,"label":568},460,"Schedule",{"id":570,"label":571},461,"Approvals",[573,577,581,585],{"id":574,"time":575,"text":576},141,"Stage 1","Request accepted",{"id":578,"time":579,"text":580},142,"Stage 2","Approval",{"id":582,"time":583,"text":584},143,"Stage 3","Automatic notification",{"id":586,"time":587,"text":588},144,"Stage 4","Done","blocks.modules",{"id":134,"heading":591,"note":592,"items":593,"__component":606},"When you need your own system","Processes have outgrown spreadsheets and off-the-shelf tools",[594,598,602],{"id":595,"num":206,"title":596,"text":597},256,"Data is scattered","Customers, requests and finances live in different spreadsheets and services; the overall picture is assembled by hand.",{"id":599,"num":214,"title":600,"text":601},257,"Off-the-shelf doesn't fit","A ready-made CRM forces the business to adapt to it, and improvements hit the limits of the platform.",{"id":603,"num":223,"title":604,"text":605},258,"The system is outdated","The internal tool works but is hard to develop. We migrate to a modern stack without stopping the business.","blocks.when",{"id":134,"heading":608,"project":609,"testimonial":610,"__component":618},"Case",{"id":303,"documentId":304,"title":305,"slug":306,"order":216,"lede":307,"desc":307,"collab":77,"clientName":308,"kind":309,"stack":310,"site":311,"noSiteText":312,"task":313,"result":311,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":11},{"id":195,"documentId":611,"text":612,"name":613,"role":614,"createdAt":615,"updatedAt":616,"publishedAt":617,"locale":11},"yzg2zta62sp74w1dtqx0bjeg","“Together with Spot we moved our internal CRM to Vue.js. The online schedule and the key modules run reliably across every branch of our music school chain.”","Dmitry Bidulya","CEO, Virtuozy","2026-10-27T11:56:45.782Z","2026-10-27T12:06:29.444Z","2026-10-27T12:06:29.448Z","blocks.project-quote",{"id":134,"cards":620,"__component":685},[621,646],{"id":622,"label":623,"title":624,"dark":77,"chips":625},11,"Integrations","We connect the system to what already works",[626,629,632,634,637,640,643],{"id":627,"label":628},462,"1C",{"id":630,"label":631},463,"CRM",{"id":633,"label":485},464,{"id":635,"label":636},465,"Stripe",{"id":638,"label":639},466,"Delivery services",{"id":641,"label":642},467,"SMS gateways",{"id":644,"label":645},468,"Other APIs",{"id":337,"label":647,"title":648,"dark":113,"chips":649},"Stack","Technologies that can be developed long-term",[650,653,656,658,661,664,667,670,673,676,679,682],{"id":651,"label":652},469,"Vue\u002FNuxt",{"id":654,"label":655},470,"React\u002FNext",{"id":657,"label":267},471,{"id":659,"label":660},472,"Python\u002FDjango\u002FFastAPI",{"id":662,"label":663},473,"NestJS",{"id":665,"label":666},474,"PostgreSQL",{"id":668,"label":669},475,"Redis",{"id":671,"label":672},476,"RabbitMQ",{"id":674,"label":675},477,"Docker",{"id":677,"label":678},478,"Nginx",{"id":680,"label":681},479,"S3",{"id":683,"label":684},480,"Grafana","blocks.chips-cards",{"id":687,"heading":688,"cta":16,"__component":689},56,"F.A.Q","blocks.faq",{"id":134,"label":691,"title":692,"link":693,"__component":695},"5 more areas","All services",{"id":694,"label":692,"href":75,"kind":76,"strong":77,"external":77},191,"blocks.cta",{"id":697,"metaTitle":698,"metaDescription":215,"canonical":16,"noIndex":77,"ogImage":16},110,"Corporate systems — Spot",{"id":242,"documentId":243,"title":244,"slug":245,"num":246,"order":4,"text":247,"ctaLabel":208,"includes":297,"isLinked":77,"createdAt":298,"updatedAt":299,"publishedAt":300,"locale":11,"blocks":700,"seo":764},[701,704,724,758],{"id":303,"heading":702,"body":297,"__component":703},"What's included","blocks.includes",{"id":242,"heading":705,"projects":706,"__component":723},"Cases",[707,708],{"id":303,"documentId":304,"title":305,"slug":306,"order":216,"lede":307,"desc":307,"collab":77,"clientName":308,"kind":309,"stack":310,"site":311,"noSiteText":312,"task":313,"result":311,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":11},{"id":709,"documentId":710,"title":711,"slug":712,"order":195,"lede":713,"desc":713,"collab":113,"clientName":714,"kind":715,"stack":716,"site":311,"noSiteText":717,"task":718,"result":719,"createdAt":720,"updatedAt":721,"publishedAt":722,"locale":11},51,"qdeu7079nihj4cfspmqsvnx0","Calculators and services for an insurance company","raiffeisen","As part of support we improved the website and systems: the insured-event form and the policy issuing flow.","Raiffeisen Life","Calculators and services","1C-Bitrix, Native Frontend","Link no longer public","\u003Cp>Improve the insurer's website and internal services as part of support: simplify the insured-event form and update the policy issuing flow so the price on the site matches the price in the contract.\u003C\u002Fp>","Over a year of support we updated the main flows, the insured-event form and the policy issuing mechanism; the insurer's website and services keep evolving.","2026-10-27T11:56:46.153Z","2026-10-28T01:53:58.578Z","2026-10-28T01:53:58.669Z","blocks.projects-cards",{"id":725,"heading":88,"lead":726,"principlesHeading":727,"steps":728,"principles":745,"__component":757},70,"We were doing custom development long before neural networks, and the process took shape back then. AI helps us ship and maintain the product faster. Stability and security are still on us.","You always know what is going on",[729,733,737,741],{"id":730,"num":206,"title":731,"text":732},295,"Brief and estimate","We discuss the task and estimate it. Then we write a specification: features, technical decisions, roles, rules and edge cases. We develop against it (SDD) and accept the result against it too.",{"id":734,"num":214,"title":735,"text":736},296,"Clickable prototype","We build a prototype from your design or with neural networks. The scenarios can be walked through by hand before the main development starts.",{"id":738,"num":223,"title":739,"text":740},297,"Development and integration","After the prototype demo we adjust the specification. Simple code is written with Codex and Claude Code: routine work goes faster and the budget goes further. We know where AI can go wrong, so every change is checked by a developer in code review. We connect the product to your systems and external services: CRM, payments and others. Everything built during the stage is available in the demo environment at the project link.",{"id":742,"num":231,"title":743,"text":744},298,"Testing and release","Once the functionality is ready, we cover it with tests and prepare the launch on a staging environment: a copy of the production environment where the product is checked in real conditions. After the final testing we move it to production and set up monitoring.",[746,749,753],{"id":747,"title":502,"text":748},208,"Every 1–2 weeks we send a report: what was done, what we take on next and where an overrun is possible if the tasks change. You learn about extra costs before they happen, not after.",{"id":750,"title":751,"text":752},209,"Demo link","The current version of the product is always open. Come in at any moment, try everything and send the link to colleagues.",{"id":754,"title":755,"text":756},210,"Direct line to the team","A shared chat with the developers, no chain of managers. Questions are answered by the people who write the code.","blocks.how",{"id":759,"heading":688,"cta":760,"__component":689},66,{"id":761,"label":762,"href":97,"kind":763,"strong":77,"external":77},201,"Ask your question","btn-d",{"id":765,"metaTitle":766,"metaDescription":247,"canonical":16,"noIndex":77,"ogImage":16},115,"Support and scaling — Spot",{"id":759,"documentId":768,"name":320,"order":622,"showInMarquee":113,"createdAt":769,"updatedAt":770,"publishedAt":771,"locale":11,"logo":16},"sw4ys6qn5d0mehqodmpe8j1o","2026-10-27T11:54:45.794Z","2026-10-27T12:06:29.298Z","2026-10-27T12:06:29.301Z",[],[774,776,779,782,784,787],{"id":775,"text":328},381,{"id":777,"text":778},382,"Real-time schedule in every branch on Socket.IO",{"id":780,"text":781},383,"Substitutions and reschedules without manual reconciliation",{"id":783,"text":331},384,{"id":785,"text":786},385,"Student, teacher, payment and reporting modules",{"id":788,"text":334},386,[],{"id":195,"documentId":611,"text":612,"name":613,"role":614,"createdAt":615,"updatedAt":616,"publishedAt":617,"locale":11,"photo":791},{"id":216,"documentId":792,"name":793,"alternativeText":794,"caption":16,"focalPoint":16,"width":83,"height":83,"formats":795,"hash":802,"ext":34,"mime":37,"size":803,"url":804,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":805,"updatedAt":805,"publishedAt":806},"o07v86mfumrgwdobzggkp4qp","dmitry-bidulya.jpg","Дмитрий Бидуля",{"thumbnail":796},{"ext":34,"url":797,"hash":798,"mime":37,"name":799,"path":16,"size":800,"width":169,"height":169,"sizeInBytes":801},"\u002Fuploads\u002Fthumbnail_dmitry_bidulya_e8819c9f79.jpg","thumbnail_dmitry_bidulya_e8819c9f79","thumbnail_dmitry-bidulya.jpg",6.31,6311,"dmitry_bidulya_e8819c9f79",7.39,"\u002Fuploads\u002Fdmitry_bidulya_e8819c9f79.jpg","2026-10-26T22:31:57.378Z","2026-10-26T22:31:57.379Z",{"id":808,"documentId":809,"title":810,"slug":811,"order":225,"lede":812,"desc":812,"collab":77,"clientName":813,"kind":814,"stack":815,"site":816,"noSiteText":311,"task":817,"result":818,"createdAt":819,"updatedAt":820,"publishedAt":821,"locale":11,"tags":822,"formats":830,"points":831,"slides":838,"cover":871,"coverSettings":877,"taskList":878,"done":879,"gallery":895,"seo":896},54,"jf35hvefa8t9rhg8jii1vxs3","Extended the online store of sports brand Vetersport","vetersport","Added bundles and discounts and sped up the site before Black Friday.","Vetersport","Online store","Redis, Nginx, 1C, S3 + CDN, Prometheus","https:\u002F\u002Fveter.cc\u002F","\u003Cp>Improve the online store of a sports equipment brand and prepare the server for sales-season load.\u003C\u002Fp>\n\u003Cp>Launch product bundles with a set discount and simplify checkout with form suggestions. Take load off the server: move files to cloud storage, set up caching and monitoring so the store runs without failures on Black Friday.\u003C\u002Fp>","The site configuration was updated for higher throughput; the store got bundles and monitoring to track problems on Black Friday.","2026-10-27T11:56:46.044Z","2026-10-28T01:53:59.108Z","2026-10-28T01:53:59.190Z",[823,825,827],{"id":824,"label":813},489,{"id":826,"label":814},490,{"id":828,"label":829},491,"Retail",[],[832,835],{"id":833,"text":834},413,"Connected an address and data suggestion service for forms",{"id":836,"text":837},414,"Moved file uploads to S3 cloud storage",[839],{"id":177,"documentId":840,"name":841,"alternativeText":842,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":843,"hash":867,"ext":345,"mime":348,"size":868,"url":869,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":870,"updatedAt":870,"publishedAt":870},"fgctemnasxypnn1xc1g8hxy8","vetersport-laptop.webp","Расширили функционал интернет-магазина производителя Ветерспорт",{"large":844,"small":850,"medium":856,"thumbnail":862},{"ext":345,"url":845,"hash":846,"mime":348,"name":847,"path":16,"size":848,"width":40,"height":351,"sizeInBytes":849},"\u002Fuploads\u002Flarge_vetersport_laptop_0a3b6dc2cd.webp","large_vetersport_laptop_0a3b6dc2cd","large_vetersport-laptop.webp",27.51,27514,{"ext":345,"url":851,"hash":852,"mime":348,"name":853,"path":16,"size":854,"width":48,"height":358,"sizeInBytes":855},"\u002Fuploads\u002Fsmall_vetersport_laptop_0a3b6dc2cd.webp","small_vetersport_laptop_0a3b6dc2cd","small_vetersport-laptop.webp",12.07,12072,{"ext":345,"url":857,"hash":858,"mime":348,"name":859,"path":16,"size":860,"width":56,"height":365,"sizeInBytes":861},"\u002Fuploads\u002Fmedium_vetersport_laptop_0a3b6dc2cd.webp","medium_vetersport_laptop_0a3b6dc2cd","medium_vetersport-laptop.webp",19.85,19848,{"ext":345,"url":863,"hash":864,"mime":348,"name":865,"path":16,"size":371,"width":64,"height":293,"sizeInBytes":866},"\u002Fuploads\u002Fthumbnail_vetersport_laptop_0a3b6dc2cd.webp","thumbnail_vetersport_laptop_0a3b6dc2cd","thumbnail_vetersport-laptop.webp",5210,"vetersport_laptop_0a3b6dc2cd",51.76,"\u002Fuploads\u002Fvetersport_laptop_0a3b6dc2cd.webp","2026-10-26T22:31:58.988Z",{"id":177,"documentId":840,"name":841,"alternativeText":842,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":872,"hash":867,"ext":345,"mime":348,"size":868,"url":869,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":870,"updatedAt":870,"publishedAt":870},{"large":873,"small":874,"medium":875,"thumbnail":876},{"ext":345,"url":845,"hash":846,"mime":348,"name":847,"path":16,"size":848,"width":40,"height":351,"sizeInBytes":849},{"ext":345,"url":851,"hash":852,"mime":348,"name":853,"path":16,"size":854,"width":48,"height":358,"sizeInBytes":855},{"ext":345,"url":857,"hash":858,"mime":348,"name":859,"path":16,"size":860,"width":56,"height":365,"sizeInBytes":861},{"ext":345,"url":863,"hash":864,"mime":348,"name":865,"path":16,"size":371,"width":64,"height":293,"sizeInBytes":866},{"id":808,"ratio":311,"position":384,"scale":216},[],[880,883,886,889,892],{"id":881,"text":882},415,"Product bundles with a set discount",{"id":884,"text":885},416,"Address and data suggestions in forms",{"id":887,"text":888},417,"File uploads moved to S3 with CDN delivery",{"id":890,"text":891},418,"Server optimisation and caching",{"id":893,"text":894},419,"Monitoring and failure alerts",[],{"id":422,"metaTitle":897,"metaDescription":898,"canonical":16,"noIndex":77,"ogImage":16},"Preparing a sports equipment online store for Black Friday","Discounted bundles, S3 and CDN, caching and monitoring for the Vetersport store. The site held the sales-day load.",{"id":17,"metaTitle":900,"metaDescription":901,"canonical":16,"noIndex":77,"ogImage":16},"CRM development for a music school chain on Vue.js","3 years of developing the Virtuozy CRM: real-time schedule on Socket.IO, students, payments and reporting for every branch.",{"id":709,"documentId":710,"title":711,"slug":712,"order":195,"lede":713,"desc":713,"collab":113,"clientName":714,"kind":715,"stack":716,"site":311,"noSiteText":717,"task":718,"result":719,"createdAt":720,"updatedAt":721,"publishedAt":722,"locale":11,"tags":903,"partner":909,"formats":915,"points":916,"slides":923,"cover":958,"coverSettings":964,"categories":965,"services":980,"client":1090,"taskList":1096,"done":1097,"gallery":1108,"testimonial":16,"nextProject":1109,"seo":1209},[904,906],{"id":905,"label":714},483,{"id":907,"label":908},484,"Insurance",{"id":195,"documentId":910,"name":911,"url":16,"order":182,"createdAt":912,"updatedAt":913,"publishedAt":914,"locale":11,"logo":16},"aftb92nnhw9ls4rpwg67z6o7","Pragmatica","2026-10-27T11:54:45.840Z","2026-10-27T12:06:29.363Z","2026-10-27T12:06:29.365Z",[],[917,920],{"id":918,"text":919},387,"Policy calculators",{"id":921,"text":922},388,"Insured-event scenarios",[924],{"id":925,"documentId":926,"name":927,"alternativeText":928,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":929,"hash":954,"ext":345,"mime":348,"size":955,"url":956,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":957,"updatedAt":957,"publishedAt":957},18,"erkuhx09vnbzhocyritt9cga","raiffeisen-laptop.webp","Калькуляторы и сервисы для страховой компании",{"large":930,"small":936,"medium":942,"thumbnail":948},{"ext":345,"url":931,"hash":932,"mime":348,"name":933,"path":16,"size":934,"width":40,"height":351,"sizeInBytes":935},"\u002Fuploads\u002Flarge_raiffeisen_laptop_8eebfcc8da.webp","large_raiffeisen_laptop_8eebfcc8da","large_raiffeisen-laptop.webp",25.82,25824,{"ext":345,"url":937,"hash":938,"mime":348,"name":939,"path":16,"size":940,"width":48,"height":358,"sizeInBytes":941},"\u002Fuploads\u002Fsmall_raiffeisen_laptop_8eebfcc8da.webp","small_raiffeisen_laptop_8eebfcc8da","small_raiffeisen-laptop.webp",10.66,10658,{"ext":345,"url":943,"hash":944,"mime":348,"name":945,"path":16,"size":946,"width":56,"height":365,"sizeInBytes":947},"\u002Fuploads\u002Fmedium_raiffeisen_laptop_8eebfcc8da.webp","medium_raiffeisen_laptop_8eebfcc8da","medium_raiffeisen-laptop.webp",18.15,18152,{"ext":345,"url":949,"hash":950,"mime":348,"name":951,"path":16,"size":952,"width":64,"height":293,"sizeInBytes":953},"\u002Fuploads\u002Fthumbnail_raiffeisen_laptop_8eebfcc8da.webp","thumbnail_raiffeisen_laptop_8eebfcc8da","thumbnail_raiffeisen-laptop.webp",4.4,4396,"raiffeisen_laptop_8eebfcc8da",48.37,"\u002Fuploads\u002Fraiffeisen_laptop_8eebfcc8da.webp","2026-10-26T22:31:59.820Z",{"id":925,"documentId":926,"name":927,"alternativeText":928,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":959,"hash":954,"ext":345,"mime":348,"size":955,"url":956,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":957,"updatedAt":957,"publishedAt":957},{"large":960,"small":961,"medium":962,"thumbnail":963},{"ext":345,"url":931,"hash":932,"mime":348,"name":933,"path":16,"size":934,"width":40,"height":351,"sizeInBytes":935},{"ext":345,"url":937,"hash":938,"mime":348,"name":939,"path":16,"size":940,"width":48,"height":358,"sizeInBytes":941},{"ext":345,"url":943,"hash":944,"mime":348,"name":945,"path":16,"size":946,"width":56,"height":365,"sizeInBytes":947},{"ext":345,"url":949,"hash":950,"mime":348,"name":951,"path":16,"size":952,"width":64,"height":293,"sizeInBytes":953},{"id":709,"ratio":311,"position":384,"scale":216},[966,973],{"id":190,"documentId":967,"label":968,"slug":969,"order":225,"createdAt":970,"updatedAt":971,"publishedAt":972,"locale":11},"px7ocjz6yw8c5f1dv9lhszzc","Games and loyalty","games","2026-10-27T11:54:45.713Z","2026-10-27T12:06:29.164Z","2026-10-27T12:06:29.165Z",{"id":974,"documentId":975,"label":976,"slug":230,"order":233,"createdAt":977,"updatedAt":978,"publishedAt":979,"locale":11},16,"p0gjo9lj5uk1xox3vvfqxjmh","Special projects","2026-10-27T11:54:45.717Z","2026-10-27T12:06:29.169Z","2026-10-27T12:06:29.171Z",[981,1070],{"id":227,"documentId":228,"title":229,"slug":230,"num":231,"order":233,"text":232,"ctaLabel":208,"includes":297,"isLinked":77,"createdAt":982,"updatedAt":983,"publishedAt":984,"locale":11,"blocks":985,"seo":1067},"2026-10-27T11:56:47.157Z","2026-10-28T01:53:57.941Z","2026-10-28T01:53:57.990Z",[986,988,1048,1064],{"id":987,"heading":702,"body":297,"__component":703},46,{"id":202,"heading":705,"projects":989,"__component":723},[990,1005,1016,1032,1033],{"id":991,"documentId":992,"title":993,"slug":994,"order":233,"lede":995,"desc":995,"collab":113,"clientName":996,"kind":997,"stack":998,"site":311,"noSiteText":999,"task":1000,"result":1001,"createdAt":1002,"updatedAt":1003,"publishedAt":1004,"locale":11},43,"dz53r8mitt3dtxzu29ni7apu","An onboarding game for a loyalty programme","more-vygody","A web game that onboards customers into the bank's loyalty system.","Alfa-Bank","Web game in a WebView","Vue.js, Pinia, CSS3 Animation, Laravel (PHP), Zabbix","Inside the bank's app","\u003Cp>Introduce the bank's customers to the loyalty programme through a game and motivate them to earn and spend points.\u003C\u002Fp>\n\u003Cp>Build two mechanics: a quiz that explains the programme rules and grants attempts, and fishing with collectible items and real prizes. Collect player behaviour analytics to improve the game experience.\u003C\u002Fp>","The game runs inside the bank's app as onboarding into the loyalty programme: the quiz explains the rules, and customers get collectible items and prizes for their attempts.","2026-10-27T11:56:46.091Z","2026-10-27T12:27:43.482Z","2026-10-27T12:27:43.493Z",{"id":1006,"documentId":1007,"title":1008,"slug":1009,"order":4,"lede":1010,"desc":1010,"collab":113,"clientName":996,"kind":997,"stack":998,"site":311,"noSiteText":999,"task":1011,"result":1012,"createdAt":1013,"updatedAt":1014,"publishedAt":1015,"locale":11},44,"mdr5m390jta7okrng52xusvy","A quiz that recommends the Alfa card","atlas","A web quiz game with card-swipe mechanics that unlocks locations as you progress.","\u003Cp>Build a game around geographic locations: the player answers a series of questions about one of them, and a successful session unlocks a new location the next day. Track key events and player behaviour to improve the game experience.\u003C\u002Fp>","The game runs inside the bank's app: the swipe quiz brings players back every day for a new location, and key event analytics shows where the problems are and whether customers reach the card recommendation.","2026-10-27T11:56:46.202Z","2026-10-27T12:27:43.517Z","2026-10-27T12:27:43.532Z",{"id":1017,"documentId":1018,"title":1019,"slug":1020,"order":1021,"lede":1022,"desc":1022,"collab":113,"clientName":1023,"kind":1024,"stack":1025,"site":1026,"noSiteText":311,"task":1027,"result":1028,"createdAt":1029,"updatedAt":1030,"publishedAt":1031,"locale":11},47,"ooxg56w21e9uft4wk5oh2x7o","Launch landing page for Splat Biohack+","splat",8,"Build awareness of the new brand among customers and reveal its unique selling points.","SPLAT","Product page","Nuxt 3, Wordpress (Headless), GraphQL","https:\u002F\u002Fwww.splatbiohack.com\u002F","\u003Cp>Develop a landing page for the BIOHACK+ launch on a tight deadline together with the design team.\u003C\u002Fp>\n\u003Cp>Make the page editable: the client's team must manage the content themselves, add new products and manage marketplace links for a quick purchase.\u003C\u002Fp>","The landing page launched on time for the product start: the SPLAT team updates content, adds products and marketplace links through the content management system without developers.","2026-10-27T11:56:46.392Z","2026-10-27T12:27:43.627Z","2026-10-27T12:27:43.642Z",{"id":709,"documentId":710,"title":711,"slug":712,"order":195,"lede":713,"desc":713,"collab":113,"clientName":714,"kind":715,"stack":716,"site":311,"noSiteText":717,"task":718,"result":719,"createdAt":720,"updatedAt":721,"publishedAt":722,"locale":11},{"id":1034,"documentId":1035,"title":1036,"slug":1037,"order":154,"lede":1038,"desc":1038,"collab":77,"clientName":1039,"kind":1040,"stack":1041,"site":311,"noSiteText":1042,"task":1043,"result":1044,"createdAt":1045,"updatedAt":1046,"publishedAt":1047,"locale":11},52,"lsfpzts1qol8bleck5gvqp79","A quiz for the interactive stand of the developer Praktika","praktika","One version for the touch panel, the employee's tablet and the visitor's phone.","Praktika","Quiz for a stand","Vue.js, Pinia, Vue-Validate, PHP, Sms.ru, Google Docs","Internal service","\u003Cp>Build a quiz for a property developer's interactive stand at a forum in an EXPO centre: by answering questions, a visitor finds out which profession suits them.\u003C\u002Fp>\n\u003Cp>Collect participants' contacts and confirm the phone number by SMS. One version must work on the stand's touch panel, an employee's tablet and a visitor's phone.\u003C\u002Fp>","Over a few days of the forum we collected more than 300 live leads with confirmed numbers from different devices: the stand's touch panel, employees' tablets and visitors' phones.","2026-10-27T11:56:46.448Z","2026-10-28T01:53:58.775Z","2026-10-28T01:53:58.864Z",{"id":759,"heading":88,"lead":726,"principlesHeading":727,"steps":1049,"principles":1057,"__component":757},[1050,1052,1054,1055],{"id":1051,"num":206,"title":731,"text":732},279,{"id":1053,"num":214,"title":735,"text":736},280,{"id":358,"num":223,"title":739,"text":740},{"id":1056,"num":231,"title":743,"text":744},282,[1058,1060,1062],{"id":1059,"title":502,"text":748},196,{"id":1061,"title":751,"text":752},197,{"id":1063,"title":755,"text":756},198,{"id":1065,"heading":688,"cta":1066,"__component":689},62,{"id":1061,"label":762,"href":97,"kind":763,"strong":77,"external":77},{"id":1068,"metaTitle":1069,"metaDescription":232,"canonical":16,"noIndex":77,"ogImage":16},113,"Special projects and complex interfaces — Spot",{"id":242,"documentId":243,"title":244,"slug":245,"num":246,"order":4,"text":247,"ctaLabel":208,"includes":297,"isLinked":77,"createdAt":298,"updatedAt":299,"publishedAt":300,"locale":11,"blocks":1071,"seo":1089},[1072,1073,1077,1087],{"id":303,"heading":702,"body":297,"__component":703},{"id":242,"heading":705,"projects":1074,"__component":723},[1075,1076],{"id":303,"documentId":304,"title":305,"slug":306,"order":216,"lede":307,"desc":307,"collab":77,"clientName":308,"kind":309,"stack":310,"site":311,"noSiteText":312,"task":313,"result":311,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":11},{"id":709,"documentId":710,"title":711,"slug":712,"order":195,"lede":713,"desc":713,"collab":113,"clientName":714,"kind":715,"stack":716,"site":311,"noSiteText":717,"task":718,"result":719,"createdAt":720,"updatedAt":721,"publishedAt":722,"locale":11},{"id":725,"heading":88,"lead":726,"principlesHeading":727,"steps":1078,"principles":1083,"__component":757},[1079,1080,1081,1082],{"id":730,"num":206,"title":731,"text":732},{"id":734,"num":214,"title":735,"text":736},{"id":738,"num":223,"title":739,"text":740},{"id":742,"num":231,"title":743,"text":744},[1084,1085,1086],{"id":747,"title":502,"text":748},{"id":750,"title":751,"text":752},{"id":754,"title":755,"text":756},{"id":759,"heading":688,"cta":1088,"__component":689},{"id":761,"label":762,"href":97,"kind":763,"strong":77,"external":77},{"id":765,"metaTitle":766,"metaDescription":247,"canonical":16,"noIndex":77,"ogImage":16},{"id":1091,"documentId":1092,"name":714,"order":4,"showInMarquee":113,"createdAt":1093,"updatedAt":1094,"publishedAt":1095,"locale":11,"logo":16},60,"ym8t6y8mqdwq18zd11j8iaa3","2026-10-27T11:54:45.764Z","2026-10-27T12:06:29.236Z","2026-10-27T12:06:29.240Z",[],[1098,1100,1102,1105],{"id":1099,"text":919},389,{"id":1101,"text":922},390,{"id":1103,"text":1104},391,"Insured-event form",{"id":1106,"text":1107},392,"Policy issuing on the website",[],{"id":1006,"documentId":1007,"title":1008,"slug":1009,"order":4,"lede":1010,"desc":1010,"collab":113,"clientName":996,"kind":997,"stack":998,"site":311,"noSiteText":999,"task":1011,"result":1012,"createdAt":1013,"updatedAt":1014,"publishedAt":1015,"locale":11,"tags":1110,"formats":1116,"points":1128,"slides":1138,"cover":1178,"coverSettings":1184,"taskList":1185,"done":1186,"gallery":1205,"seo":1206},[1111,1112,1114],{"id":140,"label":996},{"id":142,"label":1113},"“Atlas”",{"id":145,"label":1115},"Fintech",[1117,1120,1122,1125],{"id":1118,"label":1119},190,"Interactive special project",{"id":694,"label":1121},"Mini game",{"id":1123,"label":1124},192,"QA",{"id":1126,"label":1127},193,"DevOps",[1129,1132,1135],{"id":1130,"text":1131},331,"Questions about geographic locations, answered with a swipe",{"id":1133,"text":1134},332,"A new location unlocks the day after a successful session",{"id":1136,"text":1137},333,"Behaviour and key event analytics",[1139],{"id":1140,"documentId":1141,"name":1142,"alternativeText":1143,"caption":16,"focalPoint":16,"width":1144,"height":1145,"formats":1146,"hash":1174,"ext":34,"mime":37,"size":1175,"url":1176,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":1177,"updatedAt":1177,"publishedAt":1177},19,"r9g8z3qtrbtt8g088945ng5m","alfa-atlas.jpg","Квиз для рекомендаций Альфа-карты",1024,537,{"large":1147,"small":1154,"medium":1161,"thumbnail":1168},{"ext":34,"url":1148,"hash":1149,"mime":37,"name":1150,"path":16,"size":1151,"width":40,"height":1152,"sizeInBytes":1153},"\u002Fuploads\u002Flarge_alfa_atlas_ddebcb2aae.jpg","large_alfa_atlas_ddebcb2aae","large_alfa-atlas.jpg",64.51,524,64513,{"ext":34,"url":1155,"hash":1156,"mime":37,"name":1157,"path":16,"size":1158,"width":48,"height":1159,"sizeInBytes":1160},"\u002Fuploads\u002Fsmall_alfa_atlas_ddebcb2aae.jpg","small_alfa_atlas_ddebcb2aae","small_alfa-atlas.jpg",21.24,262,21237,{"ext":34,"url":1162,"hash":1163,"mime":37,"name":1164,"path":16,"size":1165,"width":56,"height":1166,"sizeInBytes":1167},"\u002Fuploads\u002Fmedium_alfa_atlas_ddebcb2aae.jpg","medium_alfa_atlas_ddebcb2aae","medium_alfa-atlas.jpg",39.63,393,39627,{"ext":34,"url":1169,"hash":1170,"mime":37,"name":1171,"path":16,"size":1172,"width":64,"height":254,"sizeInBytes":1173},"\u002Fuploads\u002Fthumbnail_alfa_atlas_ddebcb2aae.jpg","thumbnail_alfa_atlas_ddebcb2aae","thumbnail_alfa-atlas.jpg",6.97,6969,"alfa_atlas_ddebcb2aae",67.37,"\u002Fuploads\u002Falfa_atlas_ddebcb2aae.jpg","2026-10-26T22:31:59.898Z",{"id":1140,"documentId":1141,"name":1142,"alternativeText":1143,"caption":16,"focalPoint":16,"width":1144,"height":1145,"formats":1179,"hash":1174,"ext":34,"mime":37,"size":1175,"url":1176,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":1177,"updatedAt":1177,"publishedAt":1177},{"large":1180,"small":1181,"medium":1182,"thumbnail":1183},{"ext":34,"url":1148,"hash":1149,"mime":37,"name":1150,"path":16,"size":1151,"width":40,"height":1152,"sizeInBytes":1153},{"ext":34,"url":1155,"hash":1156,"mime":37,"name":1157,"path":16,"size":1158,"width":48,"height":1159,"sizeInBytes":1160},{"ext":34,"url":1162,"hash":1163,"mime":37,"name":1164,"path":16,"size":1165,"width":56,"height":1166,"sizeInBytes":1167},{"ext":34,"url":1169,"hash":1170,"mime":37,"name":1171,"path":16,"size":1172,"width":64,"height":254,"sizeInBytes":1173},{"id":1006,"ratio":311,"position":384,"scale":216},[],[1187,1190,1193,1196,1199,1202],{"id":1188,"text":1189},334,"Reactive frontend",{"id":1191,"text":1192},335,"Card swipe animation",{"id":1194,"text":1195},336,"Prize delivery system",{"id":1197,"text":1198},337,"Extended device support",{"id":1200,"text":1201},338,"Game session analytics",{"id":1203,"text":1204},339,"Managed content",[],{"id":687,"metaTitle":1207,"metaDescription":1208,"canonical":16,"noIndex":77,"ogImage":16},"A quiz game for a bank in a WebView: development on Vue.js and Laravel","The “Atlas” game for Alfa-Bank: a swipe quiz across locations, daily player returns, key event analytics.",{"id":1210,"metaTitle":1211,"metaDescription":1212,"canonical":16,"noIndex":77,"ogImage":16},117,"Policy calculators and services for the insurer Raiffeisen Life","Support of an insurance website on 1C-Bitrix: insured-event form, online policy issuing, calculators.",[1214,1222,1230,1238,1245,1252,1259],{"id":1215,"documentId":1216,"question":1217,"answer":1218,"order":182,"createdAt":1219,"updatedAt":1220,"publishedAt":1221,"locale":11},25,"dmecq2q423srweqrd068vdkx","We already have a system, but the contractor disappeared. Will you take it over?","Yes. First we study the code and write down in a specification the rules the system follows today. Then we decide together what to improve and what to rewrite.","2026-10-27T11:56:45.706Z","2026-10-27T12:06:29.370Z","2026-10-27T12:06:29.373Z",{"id":1223,"documentId":1224,"question":1225,"answer":1226,"order":216,"createdAt":1227,"updatedAt":1228,"publishedAt":1229,"locale":11},26,"isakfq4sz4tlv93qye86sm2a","Can we start with a small part?","Yes, and most of the time that is the right way. We launch one scenario and expand once the first real users appear.","2026-10-27T11:56:45.744Z","2026-10-27T12:06:29.378Z","2026-10-27T12:06:29.381Z",{"id":1231,"documentId":1232,"question":1233,"answer":1234,"order":225,"createdAt":1235,"updatedAt":1236,"publishedAt":1237,"locale":11},27,"m93dux663mw3o0su76g2hb6o","How much does it cost and how long does it take?","We give an estimate after the brief: the price and timeline depend on the number of roles, integrations and scenarios. To make the scope clear earlier, the first stage is a clickable prototype — you can walk through it before the main development and adjust the specification.","2026-10-27T11:56:45.755Z","2026-10-27T12:06:29.385Z","2026-10-27T12:06:29.388Z",{"id":18,"documentId":1239,"question":1240,"answer":1241,"order":233,"createdAt":1242,"updatedAt":1243,"publishedAt":1244,"locale":11},"lrwdw5domnj5cksjo5z693vu","How does the work go?","Four stages: brief and estimate, clickable prototype, development with integrations, testing and release. At the first stage we write a specification — roles, rules and edge cases — and develop against it. Before launch we test in a staging environment and connect monitoring.","2026-10-27T11:56:45.758Z","2026-10-28T01:53:59.841Z","2026-10-28T01:53:59.855Z",{"id":27,"documentId":1246,"question":1247,"answer":1248,"order":195,"createdAt":1249,"updatedAt":1250,"publishedAt":1251,"locale":11},"b1qz515rjys8nojrx0kan4k0","How do you use AI, and will quality suffer?","AI writes boilerplate code and speeds up routine work, but every change goes through code review and tests. We know where neural networks make mistakes, so business logic and integrations are checked by hand. The code lives in git and is backed up.","2026-10-27T11:56:45.763Z","2026-10-27T12:06:29.401Z","2026-10-27T12:06:29.404Z",{"id":158,"documentId":1253,"question":1254,"answer":1255,"order":4,"createdAt":1256,"updatedAt":1257,"publishedAt":1258,"locale":11},"mh0h6u9yy2kj6xsv2i5oykak","Do you integrate with 1C, payments and external services?","Yes. Customer accounts and CRMs are usually connected to 1C, payment acquiring, telephony and analytics: we sync data both ways and fix the exchange rules in the specification. An example is the Luzhniki Tennis Club account with 1C:Fitness, payments and membership.","2026-10-27T11:56:45.766Z","2026-10-27T12:06:29.409Z","2026-10-27T12:06:29.412Z",{"id":404,"documentId":1260,"question":1261,"answer":1262,"order":134,"createdAt":1263,"updatedAt":1264,"publishedAt":1265,"locale":11},"jm8geopu3odeyz4zrig6dth1","What happens to the project after launch?","We stay on for support and development: we watch the monitoring, ship improvements and scale for growing load. The stack is proven and the code is documented — a new team can join the project easily if needed.","2026-10-27T11:56:45.771Z","2026-10-27T12:06:29.427Z","2026-10-27T12:06:29.430Z",[1267,1268,1587,1597],{"id":303,"heading":702,"body":297,"__component":703},{"id":242,"heading":705,"projects":1269,"__component":723},[1270,1470],{"id":303,"documentId":304,"title":305,"slug":306,"order":216,"lede":307,"desc":307,"collab":77,"clientName":308,"kind":309,"stack":310,"site":311,"noSiteText":312,"task":313,"result":311,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":11,"tags":1271,"partner":16,"formats":1274,"points":1275,"slides":1279,"cover":1286,"coverSettings":1292,"categories":1293,"services":1295,"client":1423,"taskList":1424,"done":1425,"gallery":1432,"testimonial":1433,"nextProject":1437,"seo":1469},[1272,1273],{"id":319,"label":320},{"id":322,"label":323},[],[1276,1277,1278],{"id":327,"text":328},{"id":330,"text":331},{"id":333,"text":334},[1280],{"id":337,"documentId":338,"name":339,"alternativeText":340,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":1281,"hash":373,"ext":345,"mime":348,"size":374,"url":375,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":376,"updatedAt":376,"publishedAt":376},{"large":1282,"small":1283,"medium":1284,"thumbnail":1285},{"ext":345,"url":346,"hash":347,"mime":348,"name":349,"path":16,"size":350,"width":40,"height":351,"sizeInBytes":352},{"ext":345,"url":354,"hash":355,"mime":348,"name":356,"path":16,"size":357,"width":48,"height":358,"sizeInBytes":359},{"ext":345,"url":361,"hash":362,"mime":348,"name":363,"path":16,"size":364,"width":56,"height":365,"sizeInBytes":366},{"ext":345,"url":368,"hash":369,"mime":348,"name":370,"path":16,"size":371,"width":64,"height":293,"sizeInBytes":372},{"id":337,"documentId":338,"name":339,"alternativeText":340,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":1287,"hash":373,"ext":345,"mime":348,"size":374,"url":375,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":376,"updatedAt":376,"publishedAt":376},{"large":1288,"small":1289,"medium":1290,"thumbnail":1291},{"ext":345,"url":346,"hash":347,"mime":348,"name":349,"path":16,"size":350,"width":40,"height":351,"sizeInBytes":352},{"ext":345,"url":354,"hash":355,"mime":348,"name":356,"path":16,"size":357,"width":48,"height":358,"sizeInBytes":359},{"ext":345,"url":361,"hash":362,"mime":348,"name":363,"path":16,"size":364,"width":56,"height":365,"sizeInBytes":366},{"ext":345,"url":368,"hash":369,"mime":348,"name":370,"path":16,"size":371,"width":64,"height":293,"sizeInBytes":372},{"id":303,"ratio":311,"position":384,"scale":216},[1294],{"id":177,"documentId":387,"label":388,"slug":389,"order":182,"createdAt":390,"updatedAt":391,"publishedAt":392,"locale":11},[1296,1403],{"id":210,"documentId":211,"title":212,"slug":213,"num":214,"order":216,"text":215,"ctaLabel":217,"includes":311,"isLinked":77,"createdAt":395,"updatedAt":396,"publishedAt":397,"locale":11,"blocks":1297,"seo":1402},[1298,1366,1371,1374,1399,1400],{"id":134,"heading":400,"note":401,"initial":216,"modules":1299,"__component":589},[1300,1311,1322,1333,1344,1355],{"id":404,"name":405,"text":406,"features":1301,"events":1306},[1302,1303,1304,1305],{"id":409,"label":410},{"id":412,"label":413},{"id":415,"label":416},{"id":418,"label":419},[1307,1308,1309,1310],{"id":422,"time":423,"text":424},{"id":426,"time":423,"text":427},{"id":429,"time":430,"text":431},{"id":433,"time":434,"text":435},{"id":437,"name":438,"text":439,"features":1312,"events":1317},[1313,1314,1315,1316],{"id":442,"label":443},{"id":445,"label":446},{"id":448,"label":449},{"id":451,"label":452},[1318,1319,1320,1321],{"id":455,"time":456,"text":457},{"id":459,"time":460,"text":461},{"id":463,"time":464,"text":465},{"id":254,"time":467,"text":468},{"id":470,"name":471,"text":472,"features":1323,"events":1328},[1324,1325,1326,1327],{"id":475,"label":476},{"id":478,"label":479},{"id":481,"label":482},{"id":484,"label":485},[1329,1330,1331,1332],{"id":65,"time":423,"text":488},{"id":261,"time":423,"text":490},{"id":265,"time":423,"text":492},{"id":269,"time":494,"text":495},{"id":18,"name":497,"text":498,"features":1334,"events":1339},[1335,1336,1337,1338],{"id":501,"label":502},{"id":504,"label":505},{"id":507,"label":508},{"id":510,"label":511},[1340,1341,1342,1343],{"id":273,"time":514,"text":515},{"id":277,"time":517,"text":518},{"id":281,"time":520,"text":521},{"id":285,"time":523,"text":524},{"id":210,"name":526,"text":527,"features":1345,"events":1350},[1346,1347,1348,1349],{"id":530,"label":531},{"id":533,"label":534},{"id":536,"label":537},{"id":539,"label":540},[1351,1352,1353,1354],{"id":289,"time":543,"text":544},{"id":293,"time":546,"text":547},{"id":549,"time":550,"text":551},{"id":553,"time":554,"text":555},{"id":202,"name":557,"text":558,"features":1356,"events":1361},[1357,1358,1359,1360],{"id":561,"label":562},{"id":564,"label":565},{"id":567,"label":568},{"id":570,"label":571},[1362,1363,1364,1365],{"id":574,"time":575,"text":576},{"id":578,"time":579,"text":580},{"id":582,"time":583,"text":584},{"id":586,"time":587,"text":588},{"id":134,"heading":591,"note":592,"items":1367,"__component":606},[1368,1369,1370],{"id":595,"num":206,"title":596,"text":597},{"id":599,"num":214,"title":600,"text":601},{"id":603,"num":223,"title":604,"text":605},{"id":134,"heading":608,"project":1372,"testimonial":1373,"__component":618},{"id":303,"documentId":304,"title":305,"slug":306,"order":216,"lede":307,"desc":307,"collab":77,"clientName":308,"kind":309,"stack":310,"site":311,"noSiteText":312,"task":313,"result":311,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":11},{"id":195,"documentId":611,"text":612,"name":613,"role":614,"createdAt":615,"updatedAt":616,"publishedAt":617,"locale":11},{"id":134,"cards":1375,"__component":685},[1376,1385],{"id":622,"label":623,"title":624,"dark":77,"chips":1377},[1378,1379,1380,1381,1382,1383,1384],{"id":627,"label":628},{"id":630,"label":631},{"id":633,"label":485},{"id":635,"label":636},{"id":638,"label":639},{"id":641,"label":642},{"id":644,"label":645},{"id":337,"label":647,"title":648,"dark":113,"chips":1386},[1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398],{"id":651,"label":652},{"id":654,"label":655},{"id":657,"label":267},{"id":659,"label":660},{"id":662,"label":663},{"id":665,"label":666},{"id":668,"label":669},{"id":671,"label":672},{"id":674,"label":675},{"id":677,"label":678},{"id":680,"label":681},{"id":683,"label":684},{"id":687,"heading":688,"cta":16,"__component":689},{"id":134,"label":691,"title":692,"link":1401,"__component":695},{"id":694,"label":692,"href":75,"kind":76,"strong":77,"external":77},{"id":697,"metaTitle":698,"metaDescription":215,"canonical":16,"noIndex":77,"ogImage":16},{"id":242,"documentId":243,"title":244,"slug":245,"num":246,"order":4,"text":247,"ctaLabel":208,"includes":297,"isLinked":77,"createdAt":298,"updatedAt":299,"publishedAt":300,"locale":11,"blocks":1404,"seo":1422},[1405,1406,1410,1420],{"id":303,"heading":702,"body":297,"__component":703},{"id":242,"heading":705,"projects":1407,"__component":723},[1408,1409],{"id":303,"documentId":304,"title":305,"slug":306,"order":216,"lede":307,"desc":307,"collab":77,"clientName":308,"kind":309,"stack":310,"site":311,"noSiteText":312,"task":313,"result":311,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":11},{"id":709,"documentId":710,"title":711,"slug":712,"order":195,"lede":713,"desc":713,"collab":113,"clientName":714,"kind":715,"stack":716,"site":311,"noSiteText":717,"task":718,"result":719,"createdAt":720,"updatedAt":721,"publishedAt":722,"locale":11},{"id":725,"heading":88,"lead":726,"principlesHeading":727,"steps":1411,"principles":1416,"__component":757},[1412,1413,1414,1415],{"id":730,"num":206,"title":731,"text":732},{"id":734,"num":214,"title":735,"text":736},{"id":738,"num":223,"title":739,"text":740},{"id":742,"num":231,"title":743,"text":744},[1417,1418,1419],{"id":747,"title":502,"text":748},{"id":750,"title":751,"text":752},{"id":754,"title":755,"text":756},{"id":759,"heading":688,"cta":1421,"__component":689},{"id":761,"label":762,"href":97,"kind":763,"strong":77,"external":77},{"id":765,"metaTitle":766,"metaDescription":247,"canonical":16,"noIndex":77,"ogImage":16},{"id":759,"documentId":768,"name":320,"order":622,"showInMarquee":113,"createdAt":769,"updatedAt":770,"publishedAt":771,"locale":11,"logo":16},[],[1426,1427,1428,1429,1430,1431],{"id":775,"text":328},{"id":777,"text":778},{"id":780,"text":781},{"id":783,"text":331},{"id":785,"text":786},{"id":788,"text":334},[],{"id":195,"documentId":611,"text":612,"name":613,"role":614,"createdAt":615,"updatedAt":616,"publishedAt":617,"locale":11,"photo":1434},{"id":216,"documentId":792,"name":793,"alternativeText":794,"caption":16,"focalPoint":16,"width":83,"height":83,"formats":1435,"hash":802,"ext":34,"mime":37,"size":803,"url":804,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":805,"updatedAt":805,"publishedAt":806},{"thumbnail":1436},{"ext":34,"url":797,"hash":798,"mime":37,"name":799,"path":16,"size":800,"width":169,"height":169,"sizeInBytes":801},{"id":808,"documentId":809,"title":810,"slug":811,"order":225,"lede":812,"desc":812,"collab":77,"clientName":813,"kind":814,"stack":815,"site":816,"noSiteText":311,"task":817,"result":818,"createdAt":819,"updatedAt":820,"publishedAt":821,"locale":11,"tags":1438,"formats":1442,"points":1443,"slides":1446,"cover":1453,"coverSettings":1459,"taskList":1460,"done":1461,"gallery":1467,"seo":1468},[1439,1440,1441],{"id":824,"label":813},{"id":826,"label":814},{"id":828,"label":829},[],[1444,1445],{"id":833,"text":834},{"id":836,"text":837},[1447],{"id":177,"documentId":840,"name":841,"alternativeText":842,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":1448,"hash":867,"ext":345,"mime":348,"size":868,"url":869,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":870,"updatedAt":870,"publishedAt":870},{"large":1449,"small":1450,"medium":1451,"thumbnail":1452},{"ext":345,"url":845,"hash":846,"mime":348,"name":847,"path":16,"size":848,"width":40,"height":351,"sizeInBytes":849},{"ext":345,"url":851,"hash":852,"mime":348,"name":853,"path":16,"size":854,"width":48,"height":358,"sizeInBytes":855},{"ext":345,"url":857,"hash":858,"mime":348,"name":859,"path":16,"size":860,"width":56,"height":365,"sizeInBytes":861},{"ext":345,"url":863,"hash":864,"mime":348,"name":865,"path":16,"size":371,"width":64,"height":293,"sizeInBytes":866},{"id":177,"documentId":840,"name":841,"alternativeText":842,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":1454,"hash":867,"ext":345,"mime":348,"size":868,"url":869,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":870,"updatedAt":870,"publishedAt":870},{"large":1455,"small":1456,"medium":1457,"thumbnail":1458},{"ext":345,"url":845,"hash":846,"mime":348,"name":847,"path":16,"size":848,"width":40,"height":351,"sizeInBytes":849},{"ext":345,"url":851,"hash":852,"mime":348,"name":853,"path":16,"size":854,"width":48,"height":358,"sizeInBytes":855},{"ext":345,"url":857,"hash":858,"mime":348,"name":859,"path":16,"size":860,"width":56,"height":365,"sizeInBytes":861},{"ext":345,"url":863,"hash":864,"mime":348,"name":865,"path":16,"size":371,"width":64,"height":293,"sizeInBytes":866},{"id":808,"ratio":311,"position":384,"scale":216},[],[1462,1463,1464,1465,1466],{"id":881,"text":882},{"id":884,"text":885},{"id":887,"text":888},{"id":890,"text":891},{"id":893,"text":894},[],{"id":422,"metaTitle":897,"metaDescription":898,"canonical":16,"noIndex":77,"ogImage":16},{"id":17,"metaTitle":900,"metaDescription":901,"canonical":16,"noIndex":77,"ogImage":16},{"id":709,"documentId":710,"title":711,"slug":712,"order":195,"lede":713,"desc":713,"collab":113,"clientName":714,"kind":715,"stack":716,"site":311,"noSiteText":717,"task":718,"result":719,"createdAt":720,"updatedAt":721,"publishedAt":722,"locale":11,"tags":1471,"partner":1474,"formats":1475,"points":1476,"slides":1479,"cover":1486,"coverSettings":1492,"categories":1493,"services":1496,"client":1540,"taskList":1541,"done":1542,"gallery":1547,"testimonial":16,"nextProject":1548,"seo":1586},[1472,1473],{"id":905,"label":714},{"id":907,"label":908},{"id":195,"documentId":910,"name":911,"url":16,"order":182,"createdAt":912,"updatedAt":913,"publishedAt":914,"locale":11,"logo":16},[],[1477,1478],{"id":918,"text":919},{"id":921,"text":922},[1480],{"id":925,"documentId":926,"name":927,"alternativeText":928,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":1481,"hash":954,"ext":345,"mime":348,"size":955,"url":956,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":957,"updatedAt":957,"publishedAt":957},{"large":1482,"small":1483,"medium":1484,"thumbnail":1485},{"ext":345,"url":931,"hash":932,"mime":348,"name":933,"path":16,"size":934,"width":40,"height":351,"sizeInBytes":935},{"ext":345,"url":937,"hash":938,"mime":348,"name":939,"path":16,"size":940,"width":48,"height":358,"sizeInBytes":941},{"ext":345,"url":943,"hash":944,"mime":348,"name":945,"path":16,"size":946,"width":56,"height":365,"sizeInBytes":947},{"ext":345,"url":949,"hash":950,"mime":348,"name":951,"path":16,"size":952,"width":64,"height":293,"sizeInBytes":953},{"id":925,"documentId":926,"name":927,"alternativeText":928,"caption":16,"focalPoint":16,"width":341,"height":342,"formats":1487,"hash":954,"ext":345,"mime":348,"size":955,"url":956,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":957,"updatedAt":957,"publishedAt":957},{"large":1488,"small":1489,"medium":1490,"thumbnail":1491},{"ext":345,"url":931,"hash":932,"mime":348,"name":933,"path":16,"size":934,"width":40,"height":351,"sizeInBytes":935},{"ext":345,"url":937,"hash":938,"mime":348,"name":939,"path":16,"size":940,"width":48,"height":358,"sizeInBytes":941},{"ext":345,"url":943,"hash":944,"mime":348,"name":945,"path":16,"size":946,"width":56,"height":365,"sizeInBytes":947},{"ext":345,"url":949,"hash":950,"mime":348,"name":951,"path":16,"size":952,"width":64,"height":293,"sizeInBytes":953},{"id":709,"ratio":311,"position":384,"scale":216},[1494,1495],{"id":190,"documentId":967,"label":968,"slug":969,"order":225,"createdAt":970,"updatedAt":971,"publishedAt":972,"locale":11},{"id":974,"documentId":975,"label":976,"slug":230,"order":233,"createdAt":977,"updatedAt":978,"publishedAt":979,"locale":11},[1497,1520],{"id":227,"documentId":228,"title":229,"slug":230,"num":231,"order":233,"text":232,"ctaLabel":208,"includes":297,"isLinked":77,"createdAt":982,"updatedAt":983,"publishedAt":984,"locale":11,"blocks":1498,"seo":1519},[1499,1500,1507,1517],{"id":987,"heading":702,"body":297,"__component":703},{"id":202,"heading":705,"projects":1501,"__component":723},[1502,1503,1504,1505,1506],{"id":991,"documentId":992,"title":993,"slug":994,"order":233,"lede":995,"desc":995,"collab":113,"clientName":996,"kind":997,"stack":998,"site":311,"noSiteText":999,"task":1000,"result":1001,"createdAt":1002,"updatedAt":1003,"publishedAt":1004,"locale":11},{"id":1006,"documentId":1007,"title":1008,"slug":1009,"order":4,"lede":1010,"desc":1010,"collab":113,"clientName":996,"kind":997,"stack":998,"site":311,"noSiteText":999,"task":1011,"result":1012,"createdAt":1013,"updatedAt":1014,"publishedAt":1015,"locale":11},{"id":1017,"documentId":1018,"title":1019,"slug":1020,"order":1021,"lede":1022,"desc":1022,"collab":113,"clientName":1023,"kind":1024,"stack":1025,"site":1026,"noSiteText":311,"task":1027,"result":1028,"createdAt":1029,"updatedAt":1030,"publishedAt":1031,"locale":11},{"id":709,"documentId":710,"title":711,"slug":712,"order":195,"lede":713,"desc":713,"collab":113,"clientName":714,"kind":715,"stack":716,"site":311,"noSiteText":717,"task":718,"result":719,"createdAt":720,"updatedAt":721,"publishedAt":722,"locale":11},{"id":1034,"documentId":1035,"title":1036,"slug":1037,"order":154,"lede":1038,"desc":1038,"collab":77,"clientName":1039,"kind":1040,"stack":1041,"site":311,"noSiteText":1042,"task":1043,"result":1044,"createdAt":1045,"updatedAt":1046,"publishedAt":1047,"locale":11},{"id":759,"heading":88,"lead":726,"principlesHeading":727,"steps":1508,"principles":1513,"__component":757},[1509,1510,1511,1512],{"id":1051,"num":206,"title":731,"text":732},{"id":1053,"num":214,"title":735,"text":736},{"id":358,"num":223,"title":739,"text":740},{"id":1056,"num":231,"title":743,"text":744},[1514,1515,1516],{"id":1059,"title":502,"text":748},{"id":1061,"title":751,"text":752},{"id":1063,"title":755,"text":756},{"id":1065,"heading":688,"cta":1518,"__component":689},{"id":1061,"label":762,"href":97,"kind":763,"strong":77,"external":77},{"id":1068,"metaTitle":1069,"metaDescription":232,"canonical":16,"noIndex":77,"ogImage":16},{"id":242,"documentId":243,"title":244,"slug":245,"num":246,"order":4,"text":247,"ctaLabel":208,"includes":297,"isLinked":77,"createdAt":298,"updatedAt":299,"publishedAt":300,"locale":11,"blocks":1521,"seo":1539},[1522,1523,1527,1537],{"id":303,"heading":702,"body":297,"__component":703},{"id":242,"heading":705,"projects":1524,"__component":723},[1525,1526],{"id":303,"documentId":304,"title":305,"slug":306,"order":216,"lede":307,"desc":307,"collab":77,"clientName":308,"kind":309,"stack":310,"site":311,"noSiteText":312,"task":313,"result":311,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":11},{"id":709,"documentId":710,"title":711,"slug":712,"order":195,"lede":713,"desc":713,"collab":113,"clientName":714,"kind":715,"stack":716,"site":311,"noSiteText":717,"task":718,"result":719,"createdAt":720,"updatedAt":721,"publishedAt":722,"locale":11},{"id":725,"heading":88,"lead":726,"principlesHeading":727,"steps":1528,"principles":1533,"__component":757},[1529,1530,1531,1532],{"id":730,"num":206,"title":731,"text":732},{"id":734,"num":214,"title":735,"text":736},{"id":738,"num":223,"title":739,"text":740},{"id":742,"num":231,"title":743,"text":744},[1534,1535,1536],{"id":747,"title":502,"text":748},{"id":750,"title":751,"text":752},{"id":754,"title":755,"text":756},{"id":759,"heading":688,"cta":1538,"__component":689},{"id":761,"label":762,"href":97,"kind":763,"strong":77,"external":77},{"id":765,"metaTitle":766,"metaDescription":247,"canonical":16,"noIndex":77,"ogImage":16},{"id":1091,"documentId":1092,"name":714,"order":4,"showInMarquee":113,"createdAt":1093,"updatedAt":1094,"publishedAt":1095,"locale":11,"logo":16},[],[1543,1544,1545,1546],{"id":1099,"text":919},{"id":1101,"text":922},{"id":1103,"text":1104},{"id":1106,"text":1107},[],{"id":1006,"documentId":1007,"title":1008,"slug":1009,"order":4,"lede":1010,"desc":1010,"collab":113,"clientName":996,"kind":997,"stack":998,"site":311,"noSiteText":999,"task":1011,"result":1012,"createdAt":1013,"updatedAt":1014,"publishedAt":1015,"locale":11,"tags":1549,"formats":1553,"points":1558,"slides":1562,"cover":1569,"coverSettings":1575,"taskList":1576,"done":1577,"gallery":1584,"seo":1585},[1550,1551,1552],{"id":140,"label":996},{"id":142,"label":1113},{"id":145,"label":1115},[1554,1555,1556,1557],{"id":1118,"label":1119},{"id":694,"label":1121},{"id":1123,"label":1124},{"id":1126,"label":1127},[1559,1560,1561],{"id":1130,"text":1131},{"id":1133,"text":1134},{"id":1136,"text":1137},[1563],{"id":1140,"documentId":1141,"name":1142,"alternativeText":1143,"caption":16,"focalPoint":16,"width":1144,"height":1145,"formats":1564,"hash":1174,"ext":34,"mime":37,"size":1175,"url":1176,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":1177,"updatedAt":1177,"publishedAt":1177},{"large":1565,"small":1566,"medium":1567,"thumbnail":1568},{"ext":34,"url":1148,"hash":1149,"mime":37,"name":1150,"path":16,"size":1151,"width":40,"height":1152,"sizeInBytes":1153},{"ext":34,"url":1155,"hash":1156,"mime":37,"name":1157,"path":16,"size":1158,"width":48,"height":1159,"sizeInBytes":1160},{"ext":34,"url":1162,"hash":1163,"mime":37,"name":1164,"path":16,"size":1165,"width":56,"height":1166,"sizeInBytes":1167},{"ext":34,"url":1169,"hash":1170,"mime":37,"name":1171,"path":16,"size":1172,"width":64,"height":254,"sizeInBytes":1173},{"id":1140,"documentId":1141,"name":1142,"alternativeText":1143,"caption":16,"focalPoint":16,"width":1144,"height":1145,"formats":1570,"hash":1174,"ext":34,"mime":37,"size":1175,"url":1176,"previewUrl":16,"provider":24,"provider_metadata":16,"createdAt":1177,"updatedAt":1177,"publishedAt":1177},{"large":1571,"small":1572,"medium":1573,"thumbnail":1574},{"ext":34,"url":1148,"hash":1149,"mime":37,"name":1150,"path":16,"size":1151,"width":40,"height":1152,"sizeInBytes":1153},{"ext":34,"url":1155,"hash":1156,"mime":37,"name":1157,"path":16,"size":1158,"width":48,"height":1159,"sizeInBytes":1160},{"ext":34,"url":1162,"hash":1163,"mime":37,"name":1164,"path":16,"size":1165,"width":56,"height":1166,"sizeInBytes":1167},{"ext":34,"url":1169,"hash":1170,"mime":37,"name":1171,"path":16,"size":1172,"width":64,"height":254,"sizeInBytes":1173},{"id":1006,"ratio":311,"position":384,"scale":216},[],[1578,1579,1580,1581,1582,1583],{"id":1188,"text":1189},{"id":1191,"text":1192},{"id":1194,"text":1195},{"id":1197,"text":1198},{"id":1200,"text":1201},{"id":1203,"text":1204},[],{"id":687,"metaTitle":1207,"metaDescription":1208,"canonical":16,"noIndex":77,"ogImage":16},{"id":1210,"metaTitle":1211,"metaDescription":1212,"canonical":16,"noIndex":77,"ogImage":16},{"id":725,"heading":88,"lead":726,"principlesHeading":727,"steps":1588,"principles":1593,"__component":757},[1589,1590,1591,1592],{"id":730,"num":206,"title":731,"text":732},{"id":734,"num":214,"title":735,"text":736},{"id":738,"num":223,"title":739,"text":740},{"id":742,"num":231,"title":743,"text":744},[1594,1595,1596],{"id":747,"title":502,"text":748},{"id":750,"title":751,"text":752},{"id":754,"title":755,"text":756},{"id":759,"heading":688,"items":1598,"cta":1606,"__component":689},[1599,1600,1601,1602,1603,1604,1605],{"id":1215,"documentId":1216,"question":1217,"answer":1218,"order":182,"createdAt":1219,"updatedAt":1220,"publishedAt":1221,"locale":11},{"id":1223,"documentId":1224,"question":1225,"answer":1226,"order":216,"createdAt":1227,"updatedAt":1228,"publishedAt":1229,"locale":11},{"id":1231,"documentId":1232,"question":1233,"answer":1234,"order":225,"createdAt":1235,"updatedAt":1236,"publishedAt":1237,"locale":11},{"id":18,"documentId":1239,"question":1240,"answer":1241,"order":233,"createdAt":1242,"updatedAt":1243,"publishedAt":1244,"locale":11},{"id":27,"documentId":1246,"question":1247,"answer":1248,"order":195,"createdAt":1249,"updatedAt":1250,"publishedAt":1251,"locale":11},{"id":158,"documentId":1253,"question":1254,"answer":1255,"order":4,"createdAt":1256,"updatedAt":1257,"publishedAt":1258,"locale":11},{"id":404,"documentId":1260,"question":1261,"answer":1262,"order":134,"createdAt":1263,"updatedAt":1264,"publishedAt":1265,"locale":11},{"id":761,"label":762,"href":97,"kind":763,"strong":77,"external":77},{"id":765,"metaTitle":766,"metaDescription":247,"canonical":16,"noIndex":77,"ogImage":16}]