[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"media-detail-with-another--tekhnologiya-pornhub-dlya-edtech":3},{"media":4,"anotherMedia":668},{"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16,"media_areas":17,"cover":620,"content":663},257,"jknljxwtbcr6umo95k5onfcq","Мы выбрали для EdTech ту же технологию, что и Pornhub. Потому что тормоза всем мешают","2026-07-17",null,500,"-tekhnologiya-pornhub-dlya-edtech",true,"2026-07-17T13:13:00.710Z","2026-08-31T12:17:25.061Z","2026-08-31T12:17:25.155Z","ru",[18,603],{"id":19,"documentId":20,"title":21,"slug":22,"order":10,"createdAt":23,"updatedAt":23,"publishedAt":24,"locale":16,"media":25,"localizations":602},2,"ei24o3vyhndi1hqwqhnd61p0","Все","ALL","2026-02-25T07:47:50.713Z","2026-02-25T07:47:50.739Z",[26,37,47,57,66,75,84,93,103,112,122,131,140,149,158,167,176,185,194,195,205,214,223,232,242,251,259,267,275,284,292,302,312,321,330,339,348,357,366,375,384,393,402,411,420,429,438,446,455,464,473,480,488,496,504,511,518,526,535,543,551,559,567,575,583,592],{"id":27,"documentId":28,"title":29,"date":30,"description":31,"order":32,"slug":33,"showOnMainPage":12,"createdAt":34,"updatedAt":35,"publishedAt":36,"locale":16},194,"ogd13ylii6xd51tsg0yg5vjm","Мы регулярно участвуем в премиях \u2028и рейтингах ","2025-12-12","В этом году мы не «надеялись на победу» — мы за ней поехали",600,"my-regulyarno-uchastvuem-v-premiyah-i-rejtingah-1","2026-02-27T13:43:43.450Z","2026-07-30T14:49:41.482Z","2026-07-30T14:49:41.550Z",{"id":38,"documentId":39,"title":40,"date":41,"description":42,"order":32,"slug":43,"showOnMainPage":12,"createdAt":44,"updatedAt":45,"publishedAt":46,"locale":16},188,"ydsmydf287a3yxdji1i4r5z1","еще одна победа!","2025-12-04","Проект Qtim — приложение «Дневник» для «Онлайн-школы №1» — занял третье место в Рейтинге Рунета.","eshhe-odna-pobeda","2026-03-04T07:03:38.855Z","2026-07-30T14:47:13.394Z","2026-07-30T14:47:13.435Z",{"id":48,"documentId":49,"title":50,"date":51,"description":52,"order":32,"slug":53,"showOnMainPage":12,"createdAt":54,"updatedAt":55,"publishedAt":56,"locale":16},193,"r3pwx014em719gtwicw9p36t"," церемония награждения премии «Золотой сайт»","2024-12-20","Онлайн-школа №1 забирает все награды","czeremoniya-nagrazhdeniya-premii-zolotoj-sajt","2026-03-04T10:16:10.453Z","2026-07-30T14:49:27.733Z","2026-07-30T14:49:27.815Z",{"id":58,"documentId":59,"title":60,"date":61,"description":9,"order":10,"slug":62,"showOnMainPage":12,"createdAt":63,"updatedAt":64,"publishedAt":65,"locale":16},136,"ej9r23ghy5qy8etbvuujvhun","ФНС проверяет реальность ИТ-разработок","2026-03-25","fns-proveryaet-realnost-it-razrabotok-chto-mozhno-uspet-za-30-dnej","2026-03-25T09:35:43.649Z","2026-05-27T09:11:19.129Z","2026-05-27T09:11:19.211Z",{"id":67,"documentId":68,"title":69,"date":70,"description":9,"order":10,"slug":71,"showOnMainPage":12,"createdAt":72,"updatedAt":73,"publishedAt":74,"locale":16},135,"px232j10z8907syoldwzbqnw","Почему рынку в 2026 году нужен не статус ИТ-компании, а доказуемый продукт","2026-03-27","pochemu-v-2026-godu-vazhen-ne-status-it-kompanii-a-realnyj-produkt","2026-03-27T15:41:14.276Z","2026-05-27T09:11:04.501Z","2026-05-27T09:11:04.562Z",{"id":76,"documentId":77,"title":78,"date":79,"description":9,"order":10,"slug":80,"showOnMainPage":12,"createdAt":81,"updatedAt":82,"publishedAt":83,"locale":16},149,"gbefdj7617jkuhdg2uiw6ifn","Сколько стоит разработка MVP в 2026","2026-03-26","stoimost-razrabotki-mvp-v-2026-godu","2026-03-27T16:29:20.000Z","2026-05-27T09:17:03.014Z","2026-05-27T09:17:03.107Z",{"id":85,"documentId":86,"title":87,"date":88,"description":9,"order":10,"slug":89,"showOnMainPage":12,"createdAt":90,"updatedAt":91,"publishedAt":92,"locale":16},134,"rl2huy6muohp1clo4cvg00zz","Рынок готовых платформ попадает в зону давления","2026-03-31","rynok-gotovyh-platform-pod-davleniem","2026-03-31T16:00:40.688Z","2026-05-27T09:10:09.516Z","2026-05-27T09:10:09.576Z",{"id":94,"documentId":95,"title":96,"date":97,"description":98,"order":32,"slug":99,"showOnMainPage":12,"createdAt":100,"updatedAt":101,"publishedAt":102,"locale":16},192,"slc42o5s3klmtwkvvzyjfji5","Забрали сразу две награды на премии «Золотое приложение»","2026-04-01","Две награды. Два разных проекта. Два сильных результата.\n","media-3","2026-04-03T07:26:17.360Z","2026-07-30T14:49:14.439Z","2026-07-30T14:49:14.576Z",{"id":104,"documentId":105,"title":106,"date":107,"description":9,"order":10,"slug":108,"showOnMainPage":12,"createdAt":109,"updatedAt":110,"publishedAt":111,"locale":16},156,"qu6e4sgiy5zjcz548x1mija8","Почему EdTech-проектам рискованно строиться на чужой платформе","2026-04-10","riski-edtech-proektov-na-chuzhikh-platformakh","2026-04-10T14:54:48.320Z","2026-05-27T11:20:55.448Z","2026-05-27T11:20:55.519Z",{"id":113,"documentId":114,"title":115,"date":116,"description":9,"order":117,"slug":118,"showOnMainPage":12,"createdAt":119,"updatedAt":120,"publishedAt":121,"locale":16},195,"ersgie5e85wpniq47fuqbstp","Почему дешевые обходные схемы становятся дорогими","2026-04-14",300,"pochemu-deshevye-shemy-obkhoda-privodyat-k-vysokim-zatratam","2026-04-14T13:00:12.314Z","2026-07-30T14:50:35.406Z","2026-07-30T14:50:35.453Z",{"id":123,"documentId":124,"title":125,"date":126,"description":9,"order":10,"slug":127,"showOnMainPage":12,"createdAt":128,"updatedAt":129,"publishedAt":130,"locale":16},153,"g5b2wxj7re10lyayjsqbpd9j","Как понять, чем компания реально управляет в своем ИТ-продукте","2026-04-15","kak-proverit-upravlenie-it-produktom-v-kompanii","2026-04-15T15:10:47.274Z","2026-05-27T11:14:52.446Z","2026-05-27T11:14:52.512Z",{"id":132,"documentId":133,"title":134,"date":135,"description":9,"order":10,"slug":136,"showOnMainPage":12,"createdAt":137,"updatedAt":138,"publishedAt":139,"locale":16},155,"iemgcvwws2lyzyz8qref9ebq","Где заканчивается внедрение и начинается собственный продукт","2026-04-23","vnedrenie-korobochnyh-resheniy-i-sobstvennyy-produkt-dlya-biznesa","2026-04-23T12:45:27.057Z","2026-05-27T11:20:11.958Z","2026-05-27T11:20:12.051Z",{"id":141,"documentId":142,"title":143,"date":144,"description":9,"order":10,"slug":145,"showOnMainPage":12,"createdAt":146,"updatedAt":147,"publishedAt":148,"locale":16},151,"ebwajdbr53mo5mno9n9hy44c","AI-агенты в продакшене: экономия или новая статья расходов","2026-04-29","ai-agenty-v-biznese","2026-04-29T15:00:44.149Z","2026-05-27T11:12:37.292Z","2026-05-27T11:12:37.378Z",{"id":150,"documentId":151,"title":152,"date":153,"description":9,"order":10,"slug":154,"showOnMainPage":12,"createdAt":155,"updatedAt":156,"publishedAt":157,"locale":16},137,"h713429nv5nf42hksety3udo","Как выбрать подрядчика по разработке: чек-лист от компании с 280+ проектами","2026-05-12","kak-vybrat-podryadchika-po-razrabotke","2026-05-12T14:27:43.934Z","2026-05-27T09:11:52.833Z","2026-05-27T09:11:52.888Z",{"id":159,"documentId":160,"title":161,"date":162,"description":9,"order":10,"slug":163,"showOnMainPage":12,"createdAt":164,"updatedAt":165,"publishedAt":166,"locale":16},160,"fleu8iabwalh7dwbfkxuew4p","Flutter в продакшене: где появляется экономия","2026-06-23","flutter-v-razrabotke-ekonomiya-na-mobilnykh-prilozheniyakh","2026-06-23T13:14:39.410Z","2026-06-23T13:18:38.472Z","2026-06-23T13:18:38.525Z",{"id":168,"documentId":169,"title":170,"date":171,"description":9,"order":10,"slug":172,"showOnMainPage":12,"createdAt":173,"updatedAt":174,"publishedAt":175,"locale":16},175,"g0rbfiyvtlpoh0wlalq8dsyp","Когда бизнесу пора переходить от идеи к MVP","2026-07-03","kogda-biznesu-stoit-perehodit-ot-idei-k-mvp","2026-07-03T14:26:20.648Z","2026-07-27T08:28:26.249Z","2026-07-27T08:28:26.319Z",{"id":177,"documentId":178,"title":179,"date":180,"description":9,"order":117,"slug":181,"showOnMainPage":12,"createdAt":182,"updatedAt":183,"publishedAt":184,"locale":16},256,"txt60k65mnql530q38z0path","Когда онлайн-школе пора менять стандартную LMS\n","2026-07-13","kogda-onlajn-shkole-stoit-smenit-standartnuyu-lms","2026-07-13T14:45:31.490Z","2026-08-31T12:15:47.434Z","2026-08-31T12:15:47.500Z",{"id":186,"documentId":187,"title":188,"date":189,"description":9,"order":19,"slug":190,"showOnMainPage":12,"createdAt":191,"updatedAt":192,"publishedAt":193,"locale":16},338,"b82vt0dmoot3vi0yo5y3j435","Как посчитать бюджет RAG и не переплатить за модель","2026-07-14","kak-rasschitat-byudzet-rag-i-izbezhat-lishnikh-zatrat","2026-07-14T12:01:48.568Z","2026-09-17T22:42:53.015Z","2026-09-17T22:42:53.076Z",{"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16},{"id":196,"documentId":197,"title":198,"date":199,"description":9,"order":200,"slug":201,"showOnMainPage":12,"createdAt":202,"updatedAt":203,"publishedAt":204,"locale":16},297,"yazmsp31df1ggv8saaix8dkd","«Тут почти стандартно, пара нюансов»: как эта фраза убивает экономику подписки\n","2026-07-22",1,"-tut-pochti-standartno-para-nyuansov-kak-eta-fraza-ubivaet-ekonomiku-podpiski","2026-07-22T11:46:36.625Z","2026-09-13T23:21:38.544Z","2026-09-13T23:21:38.602Z",{"id":206,"documentId":207,"title":208,"date":209,"description":9,"order":10,"slug":210,"showOnMainPage":12,"createdAt":211,"updatedAt":212,"publishedAt":213,"locale":16},258,"gnlxdx5dl5wgdemt91xm57j9","4 продукта на NestJS: где стек сработал, а где мы ушли на Go\n","2026-07-23","-produkty-na-nestjs-i-go","2026-07-23T15:10:53.621Z","2026-08-31T12:18:05.700Z","2026-08-31T12:18:05.791Z",{"id":215,"documentId":216,"title":217,"date":218,"description":9,"order":10,"slug":219,"showOnMainPage":12,"createdAt":220,"updatedAt":221,"publishedAt":222,"locale":16},352,"nlh8oehrwqcexi2atoqykh3s","Как мы для онлайн-школы выбирали между коробкой, конструктором и стройкой с нуля — и что из этого выходит по деньгам\n","2026-07-27","-vybor-mezhdu-korobkoy-konstruktorom-i-stroykoy-onlayn-shkoly","2026-07-27T15:09:01.113Z","2026-09-20T16:12:21.034Z","2026-09-20T16:12:21.186Z",{"id":224,"documentId":225,"title":226,"date":227,"description":9,"order":10,"slug":228,"showOnMainPage":12,"createdAt":229,"updatedAt":230,"publishedAt":231,"locale":16},353,"u6ilvydbctqytrf7heo2scno","Кнопка «Войти» за миллионы: когда бизнесу правда нужна своя ВКС\n","2026-07-28","-knopka-voiti-za-milliony-kogda-biznesu-pravda-nuzhna-svoya-vks","2026-07-28T13:47:41.153Z","2026-09-20T19:43:08.311Z","2026-09-20T19:43:08.377Z",{"id":233,"documentId":234,"title":235,"date":236,"description":9,"order":237,"slug":238,"showOnMainPage":12,"createdAt":239,"updatedAt":240,"publishedAt":241,"locale":16},292,"dcenjtj61ta9j4xssc9be8n4","AI-чатбот за 2 недели: что проверить до сметы на 2 млн","2026-07-30",3,"-ai-chatbot-chto-proverit-pered-razrabotkoy","2026-07-30T13:23:01.866Z","2026-09-13T22:34:22.404Z","2026-09-13T22:34:22.481Z",{"id":243,"documentId":244,"title":245,"date":246,"description":9,"order":200,"slug":247,"showOnMainPage":12,"createdAt":248,"updatedAt":249,"publishedAt":250,"locale":16},303,"k77qvgjbwvomrrx4tn51benn","Почему похожие интернет-магазины отличаются по стоимости в несколько раз","2026-07-31","-pochemu-pohozhie-internet-magaziny-otlichayutsya-po-stoimosti-v-neskolko-raz","2026-07-31T16:11:46.552Z","2026-09-14T11:00:11.859Z","2026-09-14T11:00:11.926Z",{"id":252,"documentId":253,"title":254,"date":255,"description":9,"order":10,"slug":256,"showOnMainPage":12,"createdAt":257,"updatedAt":257,"publishedAt":258,"locale":16},200,"myvt92baeeu5v8avnec7dqxv","Кнопка стала красивее, товара всё равно нет: почему редизайн не спасает продажи в e-commerce","2026-08-03","-redizayn-interfeysa-v-e-commerce","2026-08-03T15:04:24.695Z","2026-08-03T15:04:24.753Z",{"id":260,"documentId":261,"title":262,"date":263,"description":9,"order":10,"slug":264,"showOnMainPage":12,"createdAt":265,"updatedAt":265,"publishedAt":266,"locale":16},202,"a4ckp7tbgmtv0utmia4b808l","Новая роль — новый проект: когда личные кабинеты пора собирать в экосистему","2026-08-04","-lichnye-kabineti-v-ekosisteme-optimizatsiya-protsessov","2026-08-04T14:13:59.695Z","2026-08-04T14:13:59.762Z",{"id":268,"documentId":269,"title":270,"date":271,"description":9,"order":237,"slug":272,"showOnMainPage":12,"createdAt":273,"updatedAt":273,"publishedAt":274,"locale":16},204,"k14jk3d9zgf69tmumdlcoh2f","Сколько стоит AI после релиза: токены, контекст, хранение и контроль качества","2026-08-05","-stoimost-ai-posle-reliza-tokeny-kontekst-khranenie-i-kontrol-kachestva","2026-08-05T17:49:43.277Z","2026-08-05T17:49:43.342Z",{"id":276,"documentId":277,"title":278,"date":279,"description":9,"order":19,"slug":280,"showOnMainPage":12,"createdAt":281,"updatedAt":282,"publishedAt":283,"locale":16},339,"jdz6gl00sz72z0egu84yf8cn","16 млн за полгода: аутсорс или штат в 2026 году","2026-08-06","-autsorsing-ili-shtat-sravnenie-zatrat","2026-08-06T17:30:36.209Z","2026-09-17T22:44:36.382Z","2026-09-17T22:44:36.451Z",{"id":285,"documentId":286,"title":287,"date":288,"description":9,"order":10,"slug":289,"showOnMainPage":12,"createdAt":290,"updatedAt":290,"publishedAt":291,"locale":16},210,"imbbxnbft75duehba72yjk23","Любая правка — мини-проект: 6 признаков, что корпоративный сайт пора пересобирать","2026-08-10","-priznaki-neobhodimosti-peresborki-korporativnogo-sajta","2026-08-11T23:47:18.300Z","2026-08-11T23:47:18.367Z",{"id":293,"documentId":294,"title":295,"date":296,"description":9,"order":297,"slug":298,"showOnMainPage":12,"createdAt":299,"updatedAt":300,"publishedAt":301,"locale":16},351,"heaihqewz8dlu9x3ninbdiqq","GetCourse, iSpring или своя LMS: когда онлайн-школе нужна отдельная платформа","2026-08-11",5,"-getcourse-ispring-ili-svoya-lms-vybor-platformy-dlya-onlayn-shkoly","2026-08-11T23:59:00.384Z","2026-09-20T15:59:44.965Z","2026-09-20T15:59:45.057Z",{"id":303,"documentId":304,"title":305,"date":306,"description":9,"order":307,"slug":308,"showOnMainPage":12,"createdAt":309,"updatedAt":310,"publishedAt":311,"locale":16},332,"wcg59mzuex1spvgeegxdhn63","В дашборде план выполнен, в кассе денег нет: почему CRM показывает несколько версий бизнеса","2026-08-12",4,"-pochemu-crm-pokazyvaet-raznye-versii-biznesa","2026-08-12T22:13:44.432Z","2026-09-17T22:01:25.093Z","2026-09-17T22:01:25.160Z",{"id":313,"documentId":314,"title":315,"date":316,"description":9,"order":19,"slug":317,"showOnMainPage":12,"createdAt":318,"updatedAt":319,"publishedAt":320,"locale":16},350,"mpxer9aw8jjq44rby7j47pwi","Стоимость разработки интеграции — API, CRM, 1С и внешние сервисы\n","2026-08-13","stoimost-razrabotki-integracii-api-crm-1s-i-vneshnie-servisy","2026-08-18T10:36:53.371Z","2026-09-20T15:45:50.010Z","2026-09-20T15:45:50.144Z",{"id":322,"documentId":323,"title":324,"date":325,"description":9,"order":200,"slug":326,"showOnMainPage":12,"createdAt":327,"updatedAt":328,"publishedAt":329,"locale":16},304,"vvxg6n1kmg9y7k6143t9gm8o","1 октября в прод: что 12 платформам придётся перестроить из-за нового закона","2026-08-14","novyy-zakon-dlya-platform-12-servisov","2026-08-18T10:59:43.550Z","2026-09-14T12:10:46.768Z","2026-09-14T12:10:46.844Z",{"id":331,"documentId":332,"title":333,"date":334,"description":9,"order":200,"slug":335,"showOnMainPage":12,"createdAt":336,"updatedAt":337,"publishedAt":338,"locale":16},305,"z5gc803xpd7jutuksh8q0er3","97% компаний создают учебный контент сами: следующий дефицит EdTech — подготовка преподавателей","2026-08-17","97-kompaniy-sozdayut-uchebnyy-kontent-sami-podgotovka-prepodavateley","2026-08-18T11:17:37.963Z","2026-09-14T12:11:38.758Z","2026-09-14T12:11:38.812Z",{"id":340,"documentId":341,"title":342,"date":343,"description":9,"order":10,"slug":344,"showOnMainPage":12,"createdAt":345,"updatedAt":346,"publishedAt":347,"locale":16},309,"fm5glwnple0jwjkmo8gvldan","Сколько стоит мобильное приложение в 2026 году: почему сметы отличаются втрое\n","2026-08-18","stoimost-razrabotki-mobilnogo-prilozheniya-2026-smeta","2026-08-18T11:31:22.195Z","2026-09-14T12:19:58.030Z","2026-09-14T12:19:58.102Z",{"id":349,"documentId":350,"title":351,"date":352,"description":9,"order":200,"slug":353,"showOnMainPage":12,"createdAt":354,"updatedAt":355,"publishedAt":356,"locale":16},306,"x28rh3zoj50o59tcgvzve415","AI-агенты внутри компании: где нужны доступы, ограничения и человек на проверке","2026-08-19","ai-agenty-v-kompanii-dostupy-i-kontrol","2026-08-18T14:05:29.647Z","2026-09-14T12:13:14.538Z","2026-09-14T12:13:14.626Z",{"id":358,"documentId":359,"title":360,"date":361,"description":9,"order":200,"slug":362,"showOnMainPage":12,"createdAt":363,"updatedAt":364,"publishedAt":365,"locale":16},275,"cs2j0db6ed7l2zglni926s05","Как проверить AI-навык кандидата: тестовое, критерии и красные флаги","2026-08-21","proverka-ai-navyka-kandidata-testovoe-kriterii","2026-08-19T13:56:11.468Z","2026-09-09T12:26:24.517Z","2026-09-09T12:26:24.590Z",{"id":367,"documentId":368,"title":369,"date":370,"description":9,"order":200,"slug":371,"showOnMainPage":12,"createdAt":372,"updatedAt":373,"publishedAt":374,"locale":16},307,"qh3qmzfp2ceif4xf3tdoi9ap","Один товар, три цены и очередь согласований: чем B2B-маркетплейс отличается от интернет-магазина","2026-08-26","b2b-marketpleys-otlichiya-ot-internet-magazina","2026-08-26T09:04:07.905Z","2026-09-14T12:16:42.675Z","2026-09-14T12:16:42.754Z",{"id":376,"documentId":377,"title":378,"date":379,"description":9,"order":200,"slug":380,"showOnMainPage":12,"createdAt":381,"updatedAt":382,"publishedAt":383,"locale":16},308,"w8n42241rgavwtld0dn1fvcl","Один статус «готовится» запускает цепочку потерь: где ломается экономика приложения доставки","2026-08-27","gde-prilozhenie-sedaet-marzhu","2026-08-26T14:56:30.346Z","2026-09-14T12:18:58.975Z","2026-09-14T12:18:59.071Z",{"id":385,"documentId":386,"title":387,"date":388,"description":9,"order":200,"slug":389,"showOnMainPage":12,"createdAt":390,"updatedAt":391,"publishedAt":392,"locale":16},336,"xujodhmvw1zxpvpcqahtklmc","Когда D2C становится выгоднее маркетплейса: расчёт по заказам\n","2026-08-28","kogda-d2c-vygodnee-marketpleysa-raschet-po-zakazam","2026-08-27T14:24:12.532Z","2026-09-17T22:22:16.654Z","2026-09-17T22:22:16.749Z",{"id":394,"documentId":395,"title":396,"date":397,"description":9,"order":200,"slug":398,"showOnMainPage":12,"createdAt":399,"updatedAt":400,"publishedAt":401,"locale":16},310,"zm2xqct6baoxjz7jsy605ztw","Duolingo прибавил 23% ежедневной аудитории. Что интернет-магазин может забрать у совы\n","2026-08-31","duolingo-23-rosta-gamifikaciya-dlya-magazina","2026-08-31T08:37:31.518Z","2026-09-14T12:31:11.576Z","2026-09-14T12:31:11.708Z",{"id":403,"documentId":404,"title":405,"date":406,"description":9,"order":200,"slug":407,"showOnMainPage":12,"createdAt":408,"updatedAt":409,"publishedAt":410,"locale":16},341,"lb4x4pfodc0sbnv9umz0b32a","Закрыл ноутбук, открыл телефон — и начал заново: где теряется контекст пользователя\n","2026-09-01","gde-teryaetsya-kontekst-polzovatelya","2026-08-31T12:47:31.448Z","2026-09-17T23:18:23.484Z","2026-09-17T23:18:23.551Z",{"id":412,"documentId":413,"title":414,"date":415,"description":9,"order":200,"slug":416,"showOnMainPage":12,"createdAt":417,"updatedAt":418,"publishedAt":419,"locale":16},337,"pbpm1u7r2yocuobuig7aows1","После оффера оценка кандидата пропадает: как связать найм, обучение и эффективность","2026-09-02","kak-svyazat-naym-obuchenie-i-effektivnost","2026-09-02T08:28:55.851Z","2026-09-17T22:35:13.146Z","2026-09-17T22:35:13.232Z",{"id":421,"documentId":422,"title":423,"date":424,"description":9,"order":200,"slug":425,"showOnMainPage":12,"createdAt":426,"updatedAt":427,"publishedAt":428,"locale":16},266,"xigmp6s4a3rypjza7nyd2jyu","AI-агент оформляет заказ: готов ли интернет-магазин отдать ему каталог, остатки и оплату","2026-09-03","ai-agent-oformlyaet-zakaz-katalog-ostatki-oplata","2026-09-03T08:28:16.365Z","2026-09-03T12:51:46.475Z","2026-09-03T12:51:46.548Z",{"id":430,"documentId":431,"title":432,"date":433,"description":9,"order":200,"slug":434,"showOnMainPage":12,"createdAt":435,"updatedAt":436,"publishedAt":437,"locale":16},268,"ono02gti54gmgguq55q3eqfl","Мобильная LMS: как понять, что отдельному приложению есть работа\n","2026-09-04","mobilnaya-lms-otdelnoe-prilozhenie","2026-09-03T14:02:36.259Z","2026-09-04T12:25:32.211Z","2026-09-04T12:25:32.283Z",{"id":439,"documentId":440,"title":441,"date":442,"description":9,"order":200,"slug":443,"showOnMainPage":12,"createdAt":444,"updatedAt":444,"publishedAt":445,"locale":16},270,"tia92neitxsmtmvtu3k6ox2x","Пилот с планом на рост: как подготовить цифровой продукт к масштабированию","2026-09-07","pilot-s-planom-na-rost-masshtabirovanie","2026-09-07T13:11:01.617Z","2026-09-07T13:11:01.691Z",{"id":447,"documentId":448,"title":449,"date":450,"description":9,"order":200,"slug":451,"showOnMainPage":12,"createdAt":452,"updatedAt":453,"publishedAt":454,"locale":16},274,"mfzw1oxq307h7hldor2v71hh","Реклама сработала, сайт лёг: как проверить предел системы до пикового трафика","2026-09-08","reklama-srabotala-sayt-lyog-pikovyy-trafik","2026-09-08T11:25:13.641Z","2026-09-08T12:47:04.929Z","2026-09-08T12:47:04.999Z",{"id":456,"documentId":457,"title":458,"date":459,"description":9,"order":200,"slug":460,"showOnMainPage":12,"createdAt":461,"updatedAt":462,"publishedAt":463,"locale":16},277,"dqf6p9puiqfz6u2djss216vw","Баллы списались дважды: где ломается программа лояльности под нагрузкой","2026-09-09","programmnaya-loyalnost-pod-nagruzkoy","2026-09-08T11:39:39.209Z","2026-09-09T12:52:38.507Z","2026-09-09T12:52:38.592Z",{"id":465,"documentId":466,"title":467,"date":468,"description":9,"order":200,"slug":469,"showOnMainPage":12,"createdAt":470,"updatedAt":471,"publishedAt":472,"locale":16},279,"zttjv8sbmge05zro1ok576xe","Что IT-аудит находит в проекте перед релизом","2026-09-11","it-audit-pered-relizom","2026-09-08T11:52:07.373Z","2026-09-11T12:36:23.593Z","2026-09-11T12:36:23.659Z",{"id":474,"documentId":475,"title":476,"date":468,"description":9,"order":10,"slug":477,"showOnMainPage":12,"createdAt":478,"updatedAt":478,"publishedAt":479,"locale":16},281,"ggdl1zmuuohkn3ubgxqu5wdz","Этапы разработки сайта: 7 контрольных точек от идеи до запуска","etapy-razrabotki-sayta-ot-idei-do-zapuska","2026-09-11T14:21:51.168Z","2026-09-11T14:21:51.261Z",{"id":481,"documentId":482,"title":483,"date":484,"description":9,"order":10,"slug":485,"showOnMainPage":12,"createdAt":486,"updatedAt":486,"publishedAt":487,"locale":16},299,"vc9i1ztfpn2yrd5nx782zp3z","Этапы разработки дизайна сайта: как создать привлекательный и функциональный веб-дизайн","2026-09-13","etapy-razrabotki-dizayna-sayta-kak-sozdat-privlekatelnyy-i-funktsionalnyy-veb-dizayn","2026-09-13T23:38:47.063Z","2026-09-13T23:38:47.130Z",{"id":489,"documentId":490,"title":491,"date":492,"description":9,"order":10,"slug":493,"showOnMainPage":12,"createdAt":494,"updatedAt":494,"publishedAt":495,"locale":16},301,"mj85w3jsdizxt9gpk1ngf564","Сколько стоит тестирование приложения и что влияет на цену","2026-09-14","skolko-stoit-testirovanie-prilozheniya-i-chto-vliyaet-na-tsenu","2026-09-14T09:26:29.005Z","2026-09-14T09:26:29.084Z",{"id":497,"documentId":498,"title":499,"date":468,"description":9,"order":10,"slug":500,"showOnMainPage":12,"createdAt":501,"updatedAt":502,"publishedAt":503,"locale":16},311,"v3w411p7i1i1btgcmn7pwxl7","Цена уже изменилась, остаток ещё старый: где ломается единый кабинет селлера","edinyy-kabinet-sellera-dlya-marketpleysov","2026-09-11T14:35:28.405Z","2026-09-14T15:33:57.800Z","2026-09-14T15:33:57.871Z",{"id":505,"documentId":506,"title":507,"date":492,"description":9,"order":10,"slug":508,"showOnMainPage":12,"createdAt":509,"updatedAt":509,"publishedAt":510,"locale":16},313,"yv49ig9l4j8vggzenf8rdxm3","Этапы управления проектом по разработке сайта или приложения","etapy-upravleniya-proektom-po-razrabotke-sayta-ili-prilozheniya","2026-09-14T15:36:41.687Z","2026-09-14T15:36:41.763Z",{"id":512,"documentId":513,"title":514,"date":492,"description":9,"order":10,"slug":515,"showOnMainPage":12,"createdAt":516,"updatedAt":516,"publishedAt":517,"locale":16},315,"nze9zg24dgc33oo464j2wo8v","Как искусственный интеллект меняет бизнес-процессы: от автоматизации до анализа данных","kak-iskusstvennyy-intellekt-menyaet-biznes-protsessy-ot-avtomatizatsii-do-analiza-dannykh","2026-09-14T21:35:44.550Z","2026-09-14T21:35:44.618Z",{"id":519,"documentId":520,"title":521,"date":522,"description":9,"order":237,"slug":523,"showOnMainPage":12,"createdAt":524,"updatedAt":524,"publishedAt":525,"locale":16},317,"ekx4n93yajvm1hk8iqyzw4ju","Tinder обновил рекомендации. Почему маркетплейсу мало фильтров и сортировки","2026-09-15","-obnovleniya-tinder-kak-marketpleys-uluchshaet-rekomendatsii-i-sortirovku","2026-09-15T16:47:04.947Z","2026-09-15T16:47:05.044Z",{"id":527,"documentId":528,"title":529,"date":530,"description":9,"order":200,"slug":531,"showOnMainPage":12,"createdAt":532,"updatedAt":533,"publishedAt":534,"locale":16},321,"k6ijlgqkm5unejznzmeyo4vg","Интеграция с маркетплейсами и ERP: как синхронизировать заказы, статусы и остатки\n","2026-09-16","integraciya-marketpleysov-i-erp","2026-09-16T11:08:28.748Z","2026-09-16T11:31:18.295Z","2026-09-16T11:31:18.405Z",{"id":536,"documentId":537,"title":538,"date":539,"description":9,"order":10,"slug":540,"showOnMainPage":12,"createdAt":541,"updatedAt":541,"publishedAt":542,"locale":16},325,"zlz1zsbmf9t62lq9upjoh71o","Как правильно оценить разработку сайта и приложения\n","2026-09-17","kak-pravilno-otsenit-razrabotku-sayta-i-prilozheniya","2026-09-17T10:47:34.140Z","2026-09-17T10:47:34.227Z",{"id":544,"documentId":545,"title":546,"date":539,"description":9,"order":10,"slug":547,"showOnMainPage":12,"createdAt":548,"updatedAt":549,"publishedAt":550,"locale":16},330,"hk18zy8rgkffyo6py89yhijb","Как выбрать платформу для онлайн-школы","kak-vybrat-platformu-dlya-onlajn-shkoly","2026-09-17T11:02:32.852Z","2026-09-17T13:50:45.671Z","2026-09-17T13:50:45.748Z",{"id":552,"documentId":553,"title":554,"date":539,"description":9,"order":200,"slug":555,"showOnMainPage":12,"createdAt":556,"updatedAt":557,"publishedAt":558,"locale":16},331,"m3jg0ix87senqmdibgb089zk","Настройка резервного копирования: как проверить восстановление сервиса\n","rezervnoe-kopirovanie-proverka-vosstanovleniya","2026-09-17T08:38:21.082Z","2026-09-17T14:08:08.647Z","2026-09-17T14:08:08.708Z",{"id":560,"documentId":561,"title":562,"date":563,"description":9,"order":200,"slug":564,"showOnMainPage":12,"createdAt":565,"updatedAt":565,"publishedAt":566,"locale":16},343,"c4qw6xwuehgz8lo5zyabldkb","Платформа обучения сотрудников: почему курс заканчивается раньше рабочего результата","2026-09-18","platforma-obucheniya-sotrudnikov-rabochiy-rezultat","2026-09-18T10:17:38.082Z","2026-09-18T10:17:38.173Z",{"id":568,"documentId":569,"title":570,"date":563,"description":9,"order":200,"slug":571,"showOnMainPage":12,"createdAt":572,"updatedAt":573,"publishedAt":574,"locale":16},361,"fbzwk8k4u0jwlm6l2b9o2jr3","Как превращать результаты пользовательских интервью в задачи для бэклога","rezultaty-polzovatelskih-intervyu-v-zadachi-backloga","2026-09-18T13:05:14.859Z","2026-09-21T14:42:31.491Z","2026-09-21T14:42:31.557Z",{"id":576,"documentId":577,"title":578,"date":579,"description":9,"order":10,"slug":580,"showOnMainPage":12,"createdAt":581,"updatedAt":581,"publishedAt":582,"locale":16},348,"vhvm4rgi4utkvdl5lsn236cb","Омниканальная платформа: как объединить клиентов, заказы и остатки","2026-09-20","omnikanalnaya-platforma-kak-obedinit-klientov-zakazy-i-ostatki","2026-09-20T15:23:08.467Z","2026-09-20T15:23:08.536Z",{"id":584,"documentId":585,"title":586,"date":587,"description":9,"order":200,"slug":588,"showOnMainPage":12,"createdAt":589,"updatedAt":590,"publishedAt":591,"locale":16},360,"idkoix18t80we76tz6g5li5g","Как проектировать редкие пользовательские сценарии в цифровом продукте","2026-09-21","redkie-polzovatelskie-scenarii-v-cifrovom-produkte","2026-09-21T11:15:59.442Z","2026-09-21T14:12:59.342Z","2026-09-21T14:12:59.415Z",{"id":593,"documentId":594,"title":595,"date":596,"description":597,"order":32,"slug":598,"showOnMainPage":12,"createdAt":599,"updatedAt":600,"publishedAt":601,"locale":16},365,"fgve6bjyd9co2ti7cn1gr5bv","Kazan Digital Week 2025","2025-09-17","b","media-2","2026-03-06T10:35:30.810Z","2026-09-21T16:06:41.714Z","2026-09-21T16:06:41.805Z",[],{"id":604,"documentId":605,"title":606,"slug":607,"order":10,"createdAt":608,"updatedAt":608,"publishedAt":609,"locale":16,"media":610,"localizations":619},27,"x6rulaa9s3473663k7mutmd7","EdTech ","ed-tech","2026-07-30T14:30:19.041Z","2026-07-30T14:30:19.062Z",[611,612,613,614,615,616,617,618],{"id":293,"documentId":294,"title":295,"date":296,"description":9,"order":297,"slug":298,"showOnMainPage":12,"createdAt":299,"updatedAt":300,"publishedAt":301,"locale":16},{"id":331,"documentId":332,"title":333,"date":334,"description":9,"order":200,"slug":335,"showOnMainPage":12,"createdAt":336,"updatedAt":337,"publishedAt":338,"locale":16},{"id":177,"documentId":178,"title":179,"date":180,"description":9,"order":117,"slug":181,"showOnMainPage":12,"createdAt":182,"updatedAt":183,"publishedAt":184,"locale":16},{"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16},{"id":430,"documentId":431,"title":432,"date":433,"description":9,"order":200,"slug":434,"showOnMainPage":12,"createdAt":435,"updatedAt":436,"publishedAt":437,"locale":16},{"id":544,"documentId":545,"title":546,"date":539,"description":9,"order":10,"slug":547,"showOnMainPage":12,"createdAt":548,"updatedAt":549,"publishedAt":550,"locale":16},{"id":560,"documentId":561,"title":562,"date":563,"description":9,"order":200,"slug":564,"showOnMainPage":12,"createdAt":565,"updatedAt":565,"publishedAt":566,"locale":16},{"id":224,"documentId":225,"title":226,"date":227,"description":9,"order":10,"slug":228,"showOnMainPage":12,"createdAt":229,"updatedAt":230,"publishedAt":231,"locale":16},[],{"id":621,"documentId":622,"name":623,"alternativeText":9,"caption":9,"width":624,"height":624,"formats":625,"hash":654,"ext":627,"mime":630,"size":655,"url":656,"previewUrl":9,"provider":657,"provider_metadata":9,"createdAt":658,"updatedAt":658,"publishedAt":659,"related":660},542,"b0kdyle5ur2ttexwgt4i7dkr","1080x1080_01 (1).png",1080,{"large":626,"small":635,"medium":641,"thumbnail":648},{"ext":627,"url":628,"hash":629,"mime":630,"name":631,"path":9,"size":632,"width":633,"height":633,"sizeInBytes":634},".png","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_1080x1080_01_1_0da950f447.png","large_1080x1080_01_1_0da950f447","image\u002Fpng","large_1080x1080_01 (1).png",523.84,1000,523839,{"ext":627,"url":636,"hash":637,"mime":630,"name":638,"path":9,"size":639,"width":10,"height":10,"sizeInBytes":640},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_1080x1080_01_1_0da950f447.png","small_1080x1080_01_1_0da950f447","small_1080x1080_01 (1).png",155.25,155254,{"ext":627,"url":642,"hash":643,"mime":630,"name":644,"path":9,"size":645,"width":646,"height":646,"sizeInBytes":647},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_1080x1080_01_1_0da950f447.png","medium_1080x1080_01_1_0da950f447","medium_1080x1080_01 (1).png",318.4,750,318401,{"ext":627,"url":649,"hash":650,"mime":630,"name":651,"path":9,"size":652,"width":104,"height":104,"sizeInBytes":653},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_1080x1080_01_1_0da950f447.png","thumbnail_1080x1080_01_1_0da950f447","thumbnail_1080x1080_01 (1).png",20.15,20153,"1080x1080_01_1_0da950f447",120.59,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F1080x1080_01_1_0da950f447.png","aws-s3","2026-07-17T12:59:55.097Z","2026-07-17T12:59:55.098Z",[661],{"__type":662,"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16},"api::media.media",[664],{"__component":665,"id":666,"text":667},"media.text",219,"\u003Cp>У онлайн-урока и контента 18+ есть кое-что общее: когда все уже готовы, а видео еще грузится, настроение падает быстрее, чем полоска загрузки двигается вправо. В обоих случаях тормоза мешают процессу. Разница только в реакции: ученик напишет «меня не пускает», а пользователь Pornhub просто закроет вкладку. Без объяснений, без скриншотов, без «а у вас точно Chrome?». Был зритель — и нет зрителя.\u003Cbr>\u003Cbr>Эта история началась с образовательной платформы, название которой мы держим в секрете. Мы пришли сделать нормальный вход в онлайн-урок, а в рабочих вкладках внезапно появился Pornhub. Не самый очевидный сосед для LMS, зато отличный повод поговорить о видео, которое должно запускаться без драматической паузы. Заодно расскажу, как мы теперь ищем референсы для любых продуктов. Способ переносится на что угодно — не только на видео и не только на образование.\u003C\u002Fp>\u003Ch2>Все началось с кнопки «Войти в урок»\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"1920x1080_02 (1).png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F1920x1080_02_1_49f314d518.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_1920x1080_02_1_49f314d518.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_1920x1080_02_1_49f314d518.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_1920x1080_02_1_49f314d518.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_1920x1080_02_1_49f314d518.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Сценарий выглядел безобидно. Ученик открывает расписание, нажимает кнопку и сразу попадает на занятие. Без ссылки, потерявшейся в чате две недели назад. Без квеста «вспомни, под каким аккаунтом ты вошел в Zoom». Без традиционного сообщения преподавателю: «А урок сегодня здесь или где-то еще?»\u003Cbr>\u003Cbr>Для видеосвязи мы выбрали mediasoup — основу, вокруг которой команда собирает вход, роли и интерфейс под нужный сценарий. Ученику оставалась одна кнопка; вся техническая кухня работала за ней и не просилась в кадр.\u003Cbr>\u003Cbr>На этой «технической кухне» как раз и было больше всего работы, потому что кнопка «Войти в урок» — это четыре системы, которые договорились между собой. Оплата прошла — занятие открывается без письма администратору. Преподаватель перенес эфир — у ученика само меняется расписание, и кнопка ведет на новое время, а не в пустую комнату. Запись готова — она появляется в кабинете у тех, кому доступен курс.\u003Cbr>\u003Cbr>Самым капризным оказался обрыв связи. Отвалился Wi-Fi, уснул ноутбук, ребенок закрыл вкладку — раньше такой ученик шел искать ссылку заново и писать преподавателю. Теперь он нажимает ту же кнопку и возвращается в ту же комнату, в той же роли. Скучная функция, которая экономит больше нервов, чем любая красивая анимация.\u003Cbr>\u003Cbr>Готовый Zoom или встраиваемый SDK были бы быстрее на старте. Но тогда вход принадлежал бы чужому продукту: его экраны, его аккаунты, его лимиты. Вокруг mediasoup все собирается под школу — дороже в начале, зато кнопка ведет туда, куда нужно уроку, а не туда, куда разрешил вендор.\u003Cbr>\u003Cbr>Проект шел своим чередом, пока в сообществе нам не попалось \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fmediasoup.discourse.group\u002Ft\u002Fpornhub-uses-mediasoup\u002F685?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">обсуждение\u003C\u002Fa> той же технологии в Pornhub. Мы сверили название. Потом, вероятно, на всякий случай посмотрели историю браузера. Совпадение было слишком хорошим, чтобы оставить его шуткой для рабочего чата.\u003C\u002Fp>\u003Ch2>И тут все стало неприлично логично\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"1920x1080_03 (1).png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F1920x1080_03_1_356788a513.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_1920x1080_03_1_356788a513.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_1920x1080_03_1_356788a513.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_1920x1080_03_1_356788a513.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_1920x1080_03_1_356788a513.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Представим двух людей перед экраном. Один купил курс и пришел на занятие. Второй тоже оплатил доступ, просто сертификат в конце ему не нужен. Оба нажали кнопку и ждут, что сейчас все начнется. Спокойно отнестись к заставке «Подключаемся…» они готовы примерно одинаково.\u003Cbr>\u003Cbr>У сервисов 18+ цена паузы видна сразу. В справке Chaturbate \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fsupport.chaturbate.com\u002Fhc\u002Fen-us\u002Farticles\u002F360048401752-Show-Types?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">описаны\u003C\u002Fa> приватные шоу с поминутной оплатой и закрытые эфиры по билетам. Человек оплатил доступ и хочет перейти к трансляции. Спиннер загрузки в планы на вечер явно не входил. Лишний шаг или зависший экран легко превращают покупателя в бывшего посетителя.\u003Cbr>\u003Cbr>Масштаб добавляет нервозности. По данным годового \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.pornhub.com\u002Finsights\u002F2019-year-in-review?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">отчета\u003C\u002Fa> Pornhub, в 2019 году сайт получил более 42 млрд посещений — в среднем 115 млн в день. При таком трафике даже небольшой процент закрытых из-за задержки вкладок означает миллионы потерянных просмотров. Там плохо запустившееся видео замечает финансовый отчет.\u003Cbr>\u003Cbr>В EdTech последствия приходят в другой упаковке: сорванный урок, обращение в поддержку, раздраженный преподаватель и родитель, который уже набирает сообщение капслоком. Деньги могут потеряться позже, вместе с доверием и продлением курса. Тормозит экран, а неловко всей школе.\u003Cbr>\u003Cbr>Так шутка из рабочего чата превратилась в полезный референс: там путь до видео проверяют люди с очень коротким терпением. Экран завис — никто не пишет эссе «как улучшить сервис». Щелк, и вкладка стала историей.\u003C\u002Fp>\u003Ch2>Так мы стали подсматривать шире\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"1920x1080_04 (1).png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F1920x1080_04_1_c9f4fc5910.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_1920x1080_04_1_c9f4fc5910.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_1920x1080_04_1_c9f4fc5910.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_1920x1080_04_1_c9f4fc5910.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_1920x1080_04_1_c9f4fc5910.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Рабочий стол с референсами обычно выглядит предсказуемо. Онлайн-школы открывают другие онлайн-школы, банки изучают банки, доставки сравнивают, у кого симпатичнее едет курьер по карте. Так удобно проверять отраслевой минимум. На десятом похожем продукте кажется, что весь интернет собрал один дизайнер.\u003Cbr>\u003Cbr>Теперь первым делом мы записываем действие человека. Ему нужно быстро попасть в оплаченный эфир? Смотрим, кто теряет деньги при каждой секунде задержки. Нужно перебрать много вариантов? Идем туда, где этот выбор уже сократили до движения пальцем. Нужно возвращать аудиторию каждый день? Открываем игры — там за ежедневную привычку бьются давно и с огоньком.\u003C\u002Fp>\u003Ch2>Как Tinder помог искать работу\u003C\u002Fh2>\u003Cp>В 2014 году сервис Jobr \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Ftechcrunch.com\u002F2014\u002F05\u002F05\u002Fjobr\u002F?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">взял\u003C\u002Fa> у Tinder карточки и свайпы. Соискатель видел вакансию, требования и подходящие навыки. Свайп вправо означал интерес, влево — пропуск. Рекрутеры тем же движением разбирали карточки кандидатов. HR наконец получил интерфейс, в котором фраза «мы вам перезвоним» помещалась в один жест.\u003Cbr>\u003Cbr>Собеседование оставалось впереди. Свайп ускорял первый отсев и доводил стороны до взаимного интереса без длинной прогулки по анкетам. Дейтинг и рекрутинг начинались с одной ситуации: вариантов много, времени мало, описание «люблю путешествовать» помогает далеко не всегда.\u003Cbr>\u003Cbr>У нас этот сюжет повторился в миниатюре: когда ученик выбирает время урока в расписании, вариантов тоже может быть много, а решение должно занимать секунды. Экран выбора мы проверяли тем же вопросом, что и Jobr: можно ли решить одним движением.\u003C\u002Fp>\u003Ch2>Зачем Duolingo понадобилась сова с характером\u003C\u002Fh2>\u003Cp>Duolingo решал другую задачу: человек позанимался сегодня — как уговорить его вернуться завтра? Ответ пришел из игр. Очки, лиги и счетчик дней превратили большую цель «выучить язык» в короткий повод зайти сегодня. Занятие закончилось, цифра выросла, сова пока не смотрит с осуждением.\u003Cbr>\u003Cbr>В одном эксперименте компания \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fblog.duolingo.com\u002Fimproving-the-streak\u002F?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">упростила\u003C\u002Fa> продолжение серии: для нее стало достаточно одного урока вместо большого дневного плана. Компания сообщила о росте удержания на 14-й день на 3,3% и ежедневной аудитории на 1%. Серия работает просто: чем дольше она тянется, тем обиднее потерять ее из-за одного вечера на диване.\u003Cbr>\u003Cbr>У школы задача возвращения звучит иначе, но живет там же. Курс состоит из десятков эфиров, и ученик должен доходить до занятия снова и снова. Поэтому путь до урока мы делали одинаково коротким каждый раз: привычка держится на том, что завтра зайти так же легко, как вчера.\u003Cbr>\u003Cbr>Получился странный набор вкладок: Jobr забрал у дейтинга быстрый выбор, Duolingo поддержал привычку игровым прогрессом, Pornhub напомнил о цене паузы перед оплаченным видео. Зато правило сложилось простое: знакомое действие стоит искать в отрасли, где его уже довели до рефлекса.\u003C\u002Fp>\u003Ch2>Возвращаемся на онлайн-урок\u003C\u002Fh2>\u003Cp>В образовательной платформе мы связали видеосвязь с расписанием, ролями и доступом к оплаченному курсу. Ученик входит в занятие из личного кабинета, после сбоя подключается снова, а позже видит запись. Администратор не создает отдельные комнаты и не раздает ссылки. У поддержки становится меньше поводов расследовать загадочное «у меня ничего не работает».\u003Cbr>\u003Cbr>В этом проекте мы собрали онлайн-урок в один маршрут: вход, доступ, переносы, повторное подключение и запись. Референсы из других рынков стали для него краш-тестом, и у каждого мы взяли свое. У сервисов 18+ — цену первой секунды: между кликом и видео не должно быть промежуточных экранов. У дейтинга — скорость выбора: решение на экране расписания занимает одно движение, без анкеты на полстраницы. У игр — правило повторного входа: завтра должно быть так же легко, как вчера.\u003Cbr>\u003Cbr>Внутри школы это стало заметно по поддержке: она перестала вручную выдавать ссылки, а одинаковых сообщений «меня не пускает» стало меньше. Человек уже нажал кнопку. Дальше он либо попадает куда нужно, либо начинает ждать, искать ссылку и писать кому-то в чат. Мы строили первый вариант.\u003Cbr>\u003Cbr>Если важный сценарий рассыпался между ссылками, чатами и отдельными сервисами, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fcontacts?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">расскажите\u003C\u002Fa> о задаче команде Qtim. Разберем путь пользователя и соберем его в единую цепочку. Желательно до того, как аудитория проведет свою аналитику кнопкой «Закрыть вкладку».\u003C\u002Fp>",[669,723,775],{"createdAt":202,"id":196,"documentId":197,"title":198,"date":199,"description":9,"order":200,"slug":201,"showOnMainPage":12,"updatedAt":203,"publishedAt":204,"locale":16,"cover":670,"content":709,"media_event":9,"media_areas":713,"seo":9,"localizations":722},{"id":671,"documentId":672,"name":673,"alternativeText":9,"caption":9,"width":674,"height":675,"formats":676,"hash":704,"ext":627,"mime":630,"size":705,"url":706,"previewUrl":9,"provider":657,"provider_metadata":9,"createdAt":707,"updatedAt":707,"publishedAt":708},734,"n9sbgz75x8lwc3ejiqvrfy7j","Изображение Codex 14 сент. 2026 г., 02_15_57.png",1920,1280,{"large":677,"small":684,"medium":691,"thumbnail":697},{"ext":627,"url":678,"hash":679,"mime":630,"name":680,"path":9,"size":681,"width":633,"height":682,"sizeInBytes":683},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","large_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b","large_Изображение Codex 14 сент. 2026 г., 02_15_57.png",538.5,667,538496,{"ext":627,"url":685,"hash":686,"mime":630,"name":687,"path":9,"size":688,"width":10,"height":689,"sizeInBytes":690},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","small_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b","small_Изображение Codex 14 сент. 2026 г., 02_15_57.png",157.58,333,157583,{"ext":627,"url":692,"hash":693,"mime":630,"name":694,"path":9,"size":695,"width":646,"height":10,"sizeInBytes":696},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","medium_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b","medium_Изображение Codex 14 сент. 2026 г., 02_15_57.png",325.8,325804,{"ext":627,"url":698,"hash":699,"mime":630,"name":700,"path":9,"size":701,"width":702,"height":104,"sizeInBytes":703},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b","thumbnail_Изображение Codex 14 сент. 2026 г., 02_15_57.png",44.25,234,44252,"Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b",552.85,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","2026-09-13T23:17:06.834Z","2026-09-13T23:17:06.835Z",[710],{"__component":665,"id":711,"text":712},261,"\u003Cp>Представьте SaaS, который уже покупают крупные компании: продукт один, сценарии понятные, команда планирует развитие на несколько релизов вперёд. Потом приходит важный заказчик и говорит: «Тут почти стандартно, пара нюансов» — отдельный порядок согласования, отчёт для финансового отдела, свои роли в кабинете, интеграцию с внутренней системой и особые требования к хранению данных.\u003Cbr>\u003Cbr>Для продаж это понятная ситуация: крупный договор, требования объяснимы, бюджет на внедрение есть. Для продукта риск появляется позже. Исключения накапливаются незаметно: поддержка помнит, кому нельзя включать новый сценарий, разработка держит в голове старые условия, менеджеры уточняют детали в чатах перед каждым запуском.\u003Cbr>\u003Cbr>Так маленькая просьба превращается в постоянный расход. Клиент оплатил внедрение один раз, а команда возвращается к его исключению на каждом соседнем релизе: в тестировании, документации, аналитике, миграциях, поддержке и обучении новых людей. В какой-то момент SaaS с повторяемой выручкой начинает жить как поток отдельных проектов.\u003C\u002Fp>\u003Ch2>Задача в статусе «готово», а деньги всё ещё тратит\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 02_16_04.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Например, крупному клиенту нужен дополнительный статус в отчёте. На встрече это выглядит как небольшая доработка: добавить поле, проверить выгрузку, обновить инструкцию, объяснить логику клиенту. Задача проходит разработку, попадает в релиз и вроде бы закрывается.\u003Cbr>\u003Cbr>Через месяц меняется общий отчёт, и команда снова вспоминает про этот статус. Через три месяца появляется новый тариф, где статус должен работать только для части пользователей. Через полгода переносят данные, и старое исключение приходится учитывать в миграции. В трекере задача давно стоит в статусе «готово», но в экономике продукта она продолжает занимать время.\u003Cbr>\u003Cbr>Пять таких исключений команда ещё держит за счёт памяти и дисциплины. Пятьдесят превращают запуск каждого крупного клиента в отдельное расследование: где у него особые права, какие отчёты нельзя трогать, почему новая функция должна открываться только после согласования с закупками.\u003C\u002Fp>\u003Ch2>Три числа, по которым видно, что маржа уже под давлением\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 02_18_13.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Затраты на разработку видны лучше всего, но они редко показывают полную цену кастомизации. В SaaS полезно смотреть на три прикладных показателя вместе.\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e5b0b9e32ac51c6506183197545ca4126\">Сколько занимает запуск нового крупного клиента. Если раньше аккаунт поднимали за несколько дней, а теперь на каждый договор уходит несколько недель, продукт уже обслуживает настройки вместе с накопленными исключениями.\u003C\u002Fli>\u003Cli data-list-item-id=\"e3a42cf0a42ce85784da8e1c8bfd44508\">Какая доля команды уходит на индивидуальные запросы. Считать стоит всю цепочку: разработку, поддержку, аналитику, тестирование, документацию, менеджеров внедрения и людей, которые объясняют внутренние правила друг другу.\u003C\u002Fli>\u003Cli data-list-item-id=\"e1e024c3e974942b9cc90d6f43d4b0143\">Сколько клиентских сценариев нужно проверить перед релизом. Если любое изменение требует вспомнить десятки частных условий, релизная скорость падает, а стоимость подписки для команды растёт.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Когда все три числа растут одновременно, маржа уже под давлением. Это момент, когда кастомизацию нужно перестать обсуждать как «пожелания клиента» и начать разбирать как продуктовую архитектуру.\u003C\u002Fp>\u003Ch2>Правило: тариф, роль и отчёт меняются без релиза\u003C\u002Fh2>\u003Cp>Главный тест простой: запрос повторяется у нескольких клиентов одного сегмента или завязан на внутренний процесс одной компании?\u003Cbr>\u003Cbr>Если сценарий повторяется и его можно описать параметрами продукта, его стоит переводить в настройки, модуль или тарифную возможность. Если просьба нужна одному стратегическому клиенту и держится на его регламенте, её честнее считать отдельным проектом с отдельной стоимостью поддержки.\u003Cbr>\u003Cbr>Чаще всего в настройки уходят роли пользователей, состав тарифов, доступность функций, отчёты, уведомления и интеграции. Если несколько клиентов просят разные отчёты, продукту нужен набор шаблонов или конструктор. Если регулярно меняются права пользователей, нужна понятная модель ролей и действий внутри системы. Если отличаются условия оплаты, тарифы стоит связывать с набором функций, лимитами, периодами и правилами продления.\u003Cbr>\u003Cbr>Ориентир можно сформулировать жёстче: изменение тарифа, роли или отчёта должно проходить через настройки, без отдельного релиза. Пока каждую такую просьбу снова берёт разработка, кастомизация остаётся заказной задачей внутри подписки.\u003C\u002Fp>\u003Ch2>Один договор тормозит всех: цена непродуманной архитектуры\u003C\u002Fh2>\u003Cp>Один из главных вопросов для SaaS — как разные компании будут работать внутри одной системы. У каждой должны быть свои данные, настройки, роли и ограничения, при этом продукту нужна общая логика, понятные релизы и предсказуемая поддержка.\u003Cbr>\u003Cbr>Когда этот слой не продуман, команда быстро приходит к отдельным установкам, базам с разной логикой и инструкциям для каждого крупного клиента. Один договор начинает тормозить остальных, потому что любое изменение приходится проверять на наборе частных условий, а перенос данных превращается в отдельный проект.\u003Cbr>\u003Cbr>До выхода к крупным корпоративным клиентам стоит решить, как будут разделяться данные и нагрузка. В одном случае достаточно изоляции строк на уровне базы, в другом удобнее отдельная схема для каждой компании, для наиболее жестких требований нужна отдельная база. У каждого варианта своя стоимость, уровень изоляции и сложность поддержки, поэтому такую модель лучше фиксировать до разработки, пока на команду ещё не давит подписанный договор.\u003Cbr>\u003Cbr>Сюда же относятся установки в контуре клиента и частные облака. Если такие требования могут появиться в продажах, команде нужно заранее заложить инфраструктуру, доставку релизов, мониторинг, резервные копии и порядок обновлений под этот сценарий.\u003C\u002Fp>\u003Ch2>Пока тарифы зашиты в код, каждая упаковка — это релиз\u003C\u002Fh2>\u003Cp>На старте схема часто кажется простой: базовый тариф, расширенный тариф, администратор и пользователь. Потом появляются пробные периоды, годовые договоры, оплата по объёму использования, лимиты, скидки, отдельные роли для подразделений, корпоративный вход и автоматическое управление пользователями.\u003Cbr>\u003Cbr>Если тарифная логика зашита в код, новая упаковка продукта становится релизом. Команда хочет проверить другой состав тарифа или запустить пилот для части клиентов, но вместо настройки получает задачу на разработку. В корпоративном SaaS это особенно больно: клиент может попросить годовой контракт, отдельные лимиты, счета для бухгалтерии и вход через свою систему авторизации.\u003Cbr>\u003Cbr>Проще поддерживать схему, где тариф управляет набором возможностей, роли описывают действия пользователя, а доступ к функциям включается через настройки. Тогда продуктовая команда быстрее проверяет упаковку: меняет состав тарифов, запускает пилоты и даёт доступ отдельным сегментам без лишнего релиза.\u003Cbr>\u003Cbr>В Qtim при \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fsaas?utm_source=qtim_blog&amp;utm_medium=article&amp;utm_campaign=saas\">разработке SaaS-платформ\u003C\u002Fa> мы раскладываем продукт на такие слои: работа нескольких компаний в одной системе, подписки и оплата, роли и права доступа, самостоятельный запуск клиента, интеграции, админ-панель, продуктовая аналитика и инфраструктура.\u003C\u002Fp>\u003Ch2>Поддержка работает вслепую — и каждый тикет превращается в расследование\u003C\u002Fh2>\u003Cp>Когда исключения хранятся в инструкциях и переписках, поддержка первой начинает работать вслепую. В тикете написано: «Не сходится отчёт», но причину нельзя понять по одному экрану. Нужно помнить тариф, включённые модули, права пользователя, интеграции, историю платежей и особые условия клиента.\u003Cbr>\u003Cbr>Поэтому админ-панель в SaaS нужна как рабочий инструмент поддержки. Команда должна видеть компанию, активные функции, роли, лимиты, ошибки интеграций, историю изменений и события, которые влияют на поведение продукта. Иначе каждый сложный вопрос превращается в расследование по перепискам.\u003Cbr>\u003Cbr>В зрелой админке есть журнал действий, возможность проверить сценарий глазами пользователя, управление кредитами, заморозками и возвратами, статусы интеграций и понятная эскалация. Эти вещи редко продают продукт на первом звонке, зато они сохраняют скорость после роста клиентской базы.\u003C\u002Fp>\u003Ch2>Иногда правильный ответ клиенту — «нет»\u003C\u002Fh2>\u003Cp>Есть и обратная ловушка: попытаться сделать настраиваемым вообще всё. Так в продукте появляется система параметров, в которой трудно разобраться даже собственной команде, а каждое изменение требует долгого согласования.\u003Cbr>\u003Cbr>Отказывать крупному клиенту проще, когда у команды есть общий критерий. Разговор строится вокруг стоимости владения: этот сценарий будет влиять на релизы, тестирование и поддержку, поэтому у него должна быть отдельная экономика.\u003Cbr>\u003Cbr>Вместо размытого «посмотрим» лучше предложить понятный вариант: вынести запрос в отдельный проект с ценой поддержки, поставить в роадмап, если сценарий повторяется у сегмента, или оформить платный кастом с границами, SLA и сроком пересмотра. Так отказ перестаёт выглядеть упрямством и становится нормальным разговором о том, что продукт сможет поддерживать через год.\u003C\u002Fp>\u003Ch2>Начните с карты исключений — на ней сразу видно, где течёт маржа\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 02_20_41.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Переписывать платформу сразу не нужно. Сначала стоит собрать карту исключений: какие доработки делали, для кого, сколько они занимали на запуске и где продолжают требовать внимания после релиза.\u003Cbr>\u003Cbr>Отдельно выпишите тарифные исключения, роли, отчёты, интеграции, импорт данных, требования безопасности и поддержку. Для каждого пункта отметьте, повторяется ли он у нескольких клиентов одного сегмента или держится на процессе одной компании. После такого разбора становится видно, что можно перевести в настройки, что оставить как отдельную услугу, а что убрать из будущих продаж.\u003Cbr>\u003Cbr>Если нужна внешняя помощь, в Qtim мы начинаем с такого же разбора архитектуры: смотрим, где продукт теряет повторяемость, какие запросы можно вынести в платформенный слой и как перейти к новой модели без остановки продаж. Когда SaaS уже работает как отдельная установка под каждого клиента, собран на конструкторе или вырос из коробочного решения, переход обычно можно делать поэтапно: аудит, параллельная платформа, перенос клиентов, стабилизация и передача процесса команде заказчика.\u003Cbr>\u003Cbr>Цель — вернуть продукту скорость и защитить экономику подписки. Под крупный контракт появляется переиспользуемая логика, команда перестает бояться очередного исключения перед релизом, а карта исключений показывает, где маржа уходит сейчас и что стоит перевести в конфигурируемую платформу. Если хотите свериться с нашим подходом, посмотрите, как мы подходим к \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fsaas?utm_source=qtim_blog&amp;utm_medium=article&amp;utm_campaign=saas\">разработке SaaS-платформ\u003C\u002Fa>.\u003C\u002Fp>",[714,715],{"id":19,"documentId":20,"title":21,"slug":22,"order":10,"createdAt":23,"updatedAt":23,"publishedAt":24,"locale":16},{"id":716,"documentId":717,"title":718,"slug":719,"order":10,"createdAt":720,"updatedAt":720,"publishedAt":721,"locale":16},31,"x54tt9ferpmy25va1y5hlmqq","Стоимость и бюджеты","stoimost-i-byudzhety","2026-07-30T14:30:46.759Z","2026-07-30T14:30:46.777Z",[],{"createdAt":211,"id":206,"documentId":207,"title":208,"date":209,"description":9,"order":10,"slug":210,"showOnMainPage":12,"updatedAt":212,"publishedAt":213,"locale":16,"cover":724,"content":761,"media_event":9,"media_areas":765,"seo":9,"localizations":774},{"id":725,"documentId":726,"name":727,"alternativeText":9,"caption":9,"width":728,"height":728,"formats":729,"hash":756,"ext":731,"mime":734,"size":757,"url":758,"previewUrl":9,"provider":657,"provider_metadata":9,"createdAt":759,"updatedAt":759,"publishedAt":760},551,"jazu9oy1nlw9y4zb1uyffros","обложка-5.jpg",2160,{"large":730,"small":738,"medium":744,"thumbnail":750},{"ext":731,"url":732,"hash":733,"mime":734,"name":735,"path":9,"size":736,"width":633,"height":633,"sizeInBytes":737},".jpg","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_oblozhka_5_1d0beb7a15.jpg","large_oblozhka_5_1d0beb7a15","image\u002Fjpeg","large_обложка-5.jpg",95.66,95657,{"ext":731,"url":739,"hash":740,"mime":734,"name":741,"path":9,"size":742,"width":10,"height":10,"sizeInBytes":743},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_oblozhka_5_1d0beb7a15.jpg","small_oblozhka_5_1d0beb7a15","small_обложка-5.jpg",36.74,36740,{"ext":731,"url":745,"hash":746,"mime":734,"name":747,"path":9,"size":748,"width":646,"height":646,"sizeInBytes":749},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_oblozhka_5_1d0beb7a15.jpg","medium_oblozhka_5_1d0beb7a15","medium_обложка-5.jpg",64.32,64318,{"ext":731,"url":751,"hash":752,"mime":734,"name":753,"path":9,"size":754,"width":104,"height":104,"sizeInBytes":755},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_oblozhka_5_1d0beb7a15.jpg","thumbnail_oblozhka_5_1d0beb7a15","thumbnail_обложка-5.jpg",6.61,6607,"oblozhka_5_1d0beb7a15",268.58,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Foblozhka_5_1d0beb7a15.jpg","2026-07-23T14:24:36.092Z","2026-07-23T14:24:36.093Z",[762],{"__component":665,"id":763,"text":764},220,"\u003Cp>\u003Ci>18 ролей, около 460 кандидатов, фоновые очереди и видеосвязь до 100 человек - на примерах из портфолио Qtim.\u003C\u002Fi>\u003Cbr>\u003Cbr>В портфолио Qtim есть онлайн-школа с 18 ролями, платформа аттестации с видеофиксацией экзамена, Стадикэтс с домашними заданиями и пробниками и ВКС для уроков до 100 участников. В каждом проекте стек упирался в конкретные вещи: права доступа, статусы, очереди задач, файлы, отчеты и поведение системы в пик.\u003Cbr>\u003Cbr>До разработки мы разделяем этот контур на блоки: где настраиваются права, кто меняет статус, какие операции уходят в фон, какие данные нужны отчетам, где нельзя тормозить основной сценарий. После этого становится понятно, где хватает NestJS, а где нужен отдельный инструмент.\u003Cbr>\u003Cbr>NestJS чаще подходит для бизнес-логики с кабинетами, админками, ролями, документами и интеграциями. Go взяли точечно в ВКС: там нагрузка уходит в медиаконтур WebRTC и SFU, где важны обработка потоков, стабильная задержка и контроль соединений.\u003C\u002Fp>\u003Ch2>18 ролей, которые нельзя свести к одному \"администратору\"\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_3_4ec510e8ba.jpg\" alt=\"01-3.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_3_4ec510e8ba.jpg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_3_4ec510e8ba.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_3_4ec510e8ba.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_3_4ec510e8ba.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1\">Онлайн-школе №1\u003C\u002Fa> команда Qtim подключилась после неудачного опыта клиента с предыдущими подрядчиками. Нужно было привести проект в рабочее состояние, запустить первый релиз за 3 месяца и сохранить пространство для дальнейших изменений.\u003Cbr>\u003Cbr>Для ученика это уроки, домашние задания, материалы, чат с дежурными учителями, календарь и успеваемость. Для команды проекта - больше 10 подпроектов и доступы, которые нельзя собрать в одну роль администратора.\u003Cbr>\u003Cbr>Права держатся на guards и policy-модуле: guard проверяет доступ на входе в сценарий, policy описывает действие над конкретным объектом. Для сложных правил такую схему удобно расширять через CASL - например, когда куратор видит одну группу учеников, координатор управляет расписанием, а администратор меняет настройки проекта.\u003Cbr>\u003Cbr>Модульная структура NestJS помогла развивать обучение, проверки, календарь и права отдельно. Новый блок не приходилось протаскивать через все ядро: у него появлялись свой модуль, сервисы и правила доступа.\u003Cbr>\u003Cbr>В системе 18 типов пользователей: учителя, кураторы, координаторы, администраторы и другие специалисты. Новый доступ настраивается за 15-20 минут, поэтому команда может добавлять роли по мере роста продукта.\u003Cbr>\u003Cbr>Позже часть логики вынесли в микросервисы: задания, попытки, календарь и расписание стали самостоятельнее. Связь между сервисами развели через RabbitMQ, чтобы события уходили из основного кабинета и обрабатывались независимо от пользовательского сценария.\u003C\u002Fp>\u003Ch2>460 экзаменов под видеозапись: одна ошибка в статусе рушит всю цепочку\u003C\u002Fh2>\u003Cp>У Университета Льва Толстого аттестация иностранных граждан раньше держалась на звонках, таблицах, бумаге и отдельных файлах. В проекте собрали платформу \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fattestation-platform\">аттестации иностранных граждан\u003C\u002Fa>: запись на экзамен, документы, видеофиксация и отчетность в одном контуре.\u003Cbr>\u003Cbr>Регламент разложили на NestJS-модули и сервисы: заявка проходит запись, проверку документов, сдачу, оценку, протоколы, ведомости, PDF-ответы и выгрузки для федерального реестра. Ошибка в переходе статуса здесь сразу ломает цепочку.\u003Cbr>\u003Cbr>Сотрудники в админке создают сессии, назначают специалистов, сверяют документы и результаты. Кандидат в отдельном приложении тестирует камеру и микрофон, включает запись видео, звука и экрана, сдает письменную или устную часть.\u003Cbr>\u003Cbr>Переходы статусов вынесли из контроллеров в сервисный слой: контроллер принимает действие, сервис проверяет, можно ли перевести заявку дальше, а guards закрывают доступ к медиа еще до входа в обработчик. Так проще удержать регламент, когда в процессе участвуют кандидат, администратор, экзаменатор и супер-администратор.\u003Cbr>\u003Cbr>Доступ к медиафайлам ограничили по ролям. Супер-администратор может открыть видео, администратор работает с документами и результатами, медиа ему недоступны. Через платформу прошли около 460 кандидатов; главная ценность здесь в том, что статус, документ, запись экзамена и право доступа живут в одном проверяемом процессе.\u003C\u002Fp>\u003Ch2>Все сдают ДЗ в ночь перед дедлайном - почему кабинет не ложится\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-4.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_4_fc4318b3d0.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_4_fc4318b3d0.jpg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_4_fc4318b3d0.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_4_fc4318b3d0.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_4_fc4318b3d0.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">Стадикэтс\u003C\u002Fa> нужен был полноценный контур подготовки к ЕГЭ и ОГЭ: витрина курсов, расписание, домашние задания, пробники, карточки для повторения, статистика и геймификация. Проект сделали на NestJS и Nuxt.js за 5 месяцев.\u003Cbr>\u003Cbr>В EdTech пики часто приходят перед дедлайном. Ученики массово загружают решения, и проверка файлов может занять ресурсы именно тогда, когда кабинет нужен активнее всего.\u003Cbr>Тяжелые действия вынесли в фон через BullMQ и очереди на Redis. Ученик сдает задание и возвращается к урокам; отдельный воркер разбирает файлы, запускает проверку и обновляет статус результата.\u003Cbr>\u003Cbr>С голосовыми заданиями та же логика: сервер приводит записи к нужному формату в фоне, а плеер одинаково работает на разных устройствах. Куратор быстрее находит нужные фрагменты, ученик получает предсказуемое воспроизведение.\u003Cbr>\u003Cbr>Учебный сценарий при этом не ждет обработки файла. Пик уходит в очередь, кабинет принимает действие, а админка и проверка продолжают жить в своих контурах.\u003C\u002Fp>\u003Ch2>Видеосвязь на 100 человек: где NestJS перестал тянуть и мы взяли Go\u003C\u002Fh2>\u003Cp>С \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1-vks\">ВКС Онлайн-школы №1\u003C\u002Fa> задача была другой: собственная видеосвязь внутри образовательной платформы, где расписание, роли, авторизация, записи занятий, массовые уроки и инструменты учителей работают без внешней ссылки.\u003Cbr>\u003Cbr>Здесь стек смешанный: видеоконтур собрали на WebRTC и Go, а API и админку оставили на NestJS. Кабинет ученика и управление уроком живут по одним правилам, ВКС-сессия - по другим.\u003Cbr>\u003Cbr>Node отлично держит тысячи одновременных I\u002FO-операций, но у видеосвязи другой профиль нагрузки. Это CPU-bound участок: WebRTC, SFU, маршрутизация медиапотоков, обработка пакетов, fan-out на десятки участников и контроль задержки. В такой зоне event loop Node может стать горлышком, поэтому медиаконтур вынесли на Go.\u003Cbr>\u003Cbr>NestJS остался там, где он сильнее: роли, авторизация, расписание, записи занятий, админка и связи с основным продуктом. Для пользователя это один интерфейс, а внутри - два разных профиля нагрузки.\u003C\u002Fp>\u003Ch2>Обратная сторона: где стек стоил дороже, чем казалось\u003C\u002Fh2>\u003Cp>Если статья про уроки, честно назвать и те, что дались через боль. Модульность NestJS окупается на больших продуктах, но на маленьком сервисе тот же каркас - лишняя церемония: иногда одного хендлера хватило бы, а мы заводили модуль, провайдер и правила доступа.\u003Cbr>\u003Cbr>Вынос логики в микросервисы, как в Онлайн-школе, дает независимость, но добавляет распределенную отладку и согласованность, которую держишь руками. Это решение под нагрузку, а не по умолчанию.\u003Cbr>\u003Cbr>Go в ВКС тоже не бесплатная кнопка ускорения: появляется отдельный рантайм, сборка, деплой, мониторинг и граница ответственности между продуктовой логикой и медиаконтуром. Все три - осознанные размены, и мы идем на них, когда выгода понятна заранее.\u003C\u002Fp>\u003Ch2>Когда берём NestJS, а когда нет\u003C\u002Fh2>\u003Cp>Перед разработкой команда Qtim смотрит, что в продукте будет меняться после запуска: роли, регламенты, фоновые операции, пиковые нагрузки, мобильный контур и внешние интеграции.\u003Cbr>\u003Cbr>NestJS берем для сервисов, где много бизнес-правил: кабинеты, админки, документы, платежи, отчеты, клиентские приложения. Его удобно использовать там, где важны модули, guards, providers, очереди и понятные границы сценариев.\u003Cbr>\u003Cbr>Go, WebRTC или другой отдельный инструмент используем там, где профиль нагрузки отличается от основной логики: медиапотоки, CPU-bound обработка, отдельный рантайм или жесткие требования к задержке. Для каждого такого решения заранее определяем участок работы.\u003Cbr>\u003Cbr>После релиза продукт быстро меняется: добавляется тип пользователя, обновляется регламент, растет нагрузка, приходит мобильный клиент, нужен отчет или новая интеграция. Поэтому мы оцениваем стек по тому, как система переживет следующие изменения.\u003Cbr>\u003Cbr>Проект с личными кабинетами, ролями, документами, мобильным контуром или нагрузочными участками можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fsaas\">обсудить\u003C\u002Fa> с нашей командой в направлении разработки SaaS-сервисов и PaaS-платформ. Больше кейсов с похожими архитектурными задачами \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\">смотрите\u003C\u002Fa> в портфолио: EdTech, ВКС и внутренние продукты.\u003C\u002Fp>",[766,767],{"id":19,"documentId":20,"title":21,"slug":22,"order":10,"createdAt":23,"updatedAt":23,"publishedAt":24,"locale":16},{"id":768,"documentId":769,"title":770,"slug":771,"order":10,"createdAt":772,"updatedAt":772,"publishedAt":773,"locale":16},29,"yuxcudh09wo6lky0b7ikokmb","Управление проектами","upravlenie-proektami","2026-07-30T14:30:32.907Z","2026-07-30T14:30:32.928Z",[],{"createdAt":220,"id":215,"documentId":216,"title":217,"date":218,"description":9,"order":10,"slug":219,"showOnMainPage":12,"updatedAt":221,"publishedAt":222,"locale":16,"cover":776,"content":810,"media_event":9,"media_areas":814,"seo":9,"localizations":823},{"id":777,"documentId":778,"name":779,"alternativeText":9,"caption":9,"width":674,"height":675,"formats":780,"hash":805,"ext":627,"mime":630,"size":806,"url":807,"previewUrl":9,"provider":657,"provider_metadata":9,"createdAt":808,"updatedAt":808,"publishedAt":809},843,"x9bggc2o6loyx4h6gtmzpuyt","01-cover.png",{"large":781,"small":787,"medium":793,"thumbnail":799},{"ext":627,"url":782,"hash":783,"mime":630,"name":784,"path":9,"size":785,"width":633,"height":682,"sizeInBytes":786},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_d54f9f41c5.png","large_01_cover_d54f9f41c5","large_01-cover.png",714.63,714632,{"ext":627,"url":788,"hash":789,"mime":630,"name":790,"path":9,"size":791,"width":10,"height":689,"sizeInBytes":792},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_d54f9f41c5.png","small_01_cover_d54f9f41c5","small_01-cover.png",204.09,204090,{"ext":627,"url":794,"hash":795,"mime":630,"name":796,"path":9,"size":797,"width":646,"height":10,"sizeInBytes":798},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_d54f9f41c5.png","medium_01_cover_d54f9f41c5","medium_01-cover.png",430.28,430282,{"ext":627,"url":800,"hash":801,"mime":630,"name":802,"path":9,"size":803,"width":702,"height":104,"sizeInBytes":804},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_d54f9f41c5.png","thumbnail_01_cover_d54f9f41c5","thumbnail_01-cover.png",54.89,54887,"01_cover_d54f9f41c5",635.07,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_d54f9f41c5.png","2026-09-20T16:09:02.711Z","2026-09-20T16:09:02.712Z",[811],{"__component":665,"id":812,"text":813},316,"\u003Cp>Почти каждый разговор про EdTech-платформу начинается одинаково. «Мы хотим свою онлайн-школу. Сколько стоит и когда будет готово?» И вот тут я всегда беру паузу — не потому что не знаю, а потому что честный ответ звучит невежливо: «Зависит от того, что вы на самом деле собираетесь строить, а этого пока не знаете ни вы, ни я».\u003Cbr>\u003Cbr>Мы делаем образовательные платформы уже несколько лет — от школ на пару тысяч активных учеников до систем видеосвязи, которые заменили школе Zoom. И почти весь бюджет проекта решается не в момент, когда мы называем цифру, а раньше — на одной развилке, которую заказчики обычно проскакивают, не заметив. Про нее и расскажу. Заодно покажу, где смета в EdTech взрывается на пустом месте, а где, наоборот, можно не переплачивать.\u003C\u002Fp>\u003Ch2>Развилка, на которой решается всё\u003C\u002Fh2>\u003Cp>Представьте, что вы хотите открыть кафе. Можно купить франшизу, где всё придумано за вас. Можно взять помещение с готовой кухней и поставить своё меню. А можно запускать кафе с нуля: проектировать вентиляцию, закупать оборудование, выбирать посуду. Три разных бюджета, три разных срока, три разных уровня свободы. И ни один из вариантов не «правильный» — правильный тот, что подходит под вашу ситуацию.\u003C\u002Fp>\u003Cp>С EdTech-платформой ровно то же самое, только развилку эту почти никто не проговаривает вслух. А зря — потому что именно она, а не выбор фреймворка и не дизайн кнопок, определяет и деньги, и сроки. У нас в практике три сценария, и я разберу каждый на реальном проекте.\u003C\u002Fp>\u003Ch2>Сценарий первый: не строить то, что уже построено\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-scenariy-pervyy.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_scenariy_pervyy_77a41c1ac9.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_scenariy_pervyy_77a41c1ac9.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_scenariy_pervyy_77a41c1ac9.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_scenariy_pervyy_77a41c1ac9.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_scenariy_pervyy_77a41c1ac9.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Есть соблазн считать, что «своя платформа» обязательно значит «написанная с нуля». Это дорогая иллюзия. Если базовая механика вашей школы стандартна — расписание, вебинары, тесты, — то строить под неё инфраструктуру заново примерно так же разумно, как отливать собственные кирпичи перед постройкой дома.\u003C\u002Fp>\u003Cp>Для \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fmayak-study\">Mayak.study\u003C\u002Fa> мы взяли готовое LMS-решение как фундамент. Не потому что поленились, а потому что ценность проекта была не в базе, а в надстройке: отчетность, онлайн-трансляции, пробные экзамены, контроль посещаемости, аналитика. Именно эти модули отличали Mayak.study от типовой онлайн-школы. Команда не потратила ни месяца на изобретение расписания — и вложила это время туда, где оно давало отдачу.\u003C\u002Fp>\u003Cp>Плата за скорость — жесткость. Вы живёте в рамках чужой архитектуры, и когда захотите что-то, чего коробка не умеет, упритесь в стену. Но если ваши хотелки в эту стену пока не упираются — это самый быстрый и дешевый путь на рынок.\u003C\u002Fp>\u003Cblockquote>\u003Cp>Перед выбором коробки стоит описать будущие сценарии школы: роли через полгода, нужные отчеты, правила проверки и коммуникации, которые придется менять без вендора. Если уже на этом этапе видны исключения, завязанные на обходные настройки и переписку с поддержкой, готовая LMS быстро начнет тормозить развитие. При стандартном ближайшем росте решение с надстройкой обычно дешевле и быстрее.\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ch2>Сценарий второй: собрать разбросанное в одно\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-scenariy-vtoroy.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_scenariy_vtoroy_e085322786.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_scenariy_vtoroy_e085322786.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_scenariy_vtoroy_e085322786.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_scenariy_vtoroy_e085322786.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_scenariy_vtoroy_e085322786.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Другая частая история: у школы уже что-то работает, но живет по кусочкам. Один курс на одной платформе, второй — на другой, аналитика в третьем месте, а общей картины по ученику нет ни у кого.\u003C\u002Fp>\u003Cp>С этим мы столкнулись на \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">Studycats\u003C\u002Fa>. Было шесть отдельных курсов — история, русский, обществознание, английский, литература, математика, — и каждый жил своей жизнью: свои ученики, своя аналитика, своё расписание. Для школы это значит, что ни один вопрос вида «сколько у нас всего активных учеников» или «где проседает вовлеченность» не имеет быстрого ответа — данные приходится сшивать вручную.\u003C\u002Fp>\u003Cp>Мы собрали шесть курсов в одну платформу с общей базой пользователей и сквозной аналитикой. Сверху достроили то, что и делает её продуктом, а не просто складом уроков:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e37f00a3f4ea27919af2016d10660fb45\">Единый вход и витрина курсов — ученик видит всё в одном кабинете, а не логинится в шесть разных мест.\u003C\u002Fli>\u003Cli data-list-item-id=\"e2e548a51e95cd34f7fdf9d9c9d2be61d\">Учебный контур — расписание, домашки с проверкой (автоматической, ручной и даже аудио — под разные типы заданий), пробные экзамены.\u003C\u002Fli>\u003Cli data-list-item-id=\"e82717c7eefd25f9a9bf1089af487e68d\">Механики удержания, подсмотренные у игр. Стрики, уровни, питомец-маскот, который растёт вместе с прогрессом. Интервальное повторение через карточки — чтобы пройденное не выветривалось. И внутренняя валюта, котокоины, которую можно получать за занятия и тратить, — на ней же построена реферальная программа: ученики приводят учеников.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Смысл всей этой геймификации не в «сделать помилее». Онлайн-обучение проваливается не там, где плохой контент, а там, где человек перестаёт заходить. Стрики и маскот дают повод вернуться сегодня, а не «когда-нибудь домучаю курс». Запустили к 1 сентября — специально к началу учебного года, — и на старте платформа держала больше тысячи учеников. Вся сборка заняла пять месяцев.\u003C\u002Fp>\u003Cp>Это не стройка с нуля и не коробка, а промежуточный режим: вы связываете существующее в целое и достраиваете общий слой сверху. Дешевле полного цикла, гибче коробки — но требует, чтобы у вас уже было что связывать.\u003C\u002Fp>\u003Ch2>Сценарий третий: когда платформа и есть ваш продукт\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-scenariy-tretiy.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_scenariy_tretiy_278f9abc0c.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_scenariy_tretiy_278f9abc0c.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_scenariy_tretiy_278f9abc0c.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_scenariy_tretiy_278f9abc0c.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_scenariy_tretiy_278f9abc0c.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>И только теперь — тот самый полный цикл с нуля, ради которого обычно и приходят. Он оправдан, когда платформа не обслуживает бизнес, а сама им является: когда нагрузка, роли и логика уникальны, а конкурентное преимущество зашито именно в том, как всё устроено внутри.\u003C\u002Fp>\u003Cp>Так мы делали \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1\">Онлайн-Школу №1\u003C\u002Fa>. Масштаб, ради которого вообще стоило городить полный цикл: 2 840 активных учеников за 30 дней, 24 предмета, 11 факультативов, отдельный поток подготовки к ЕГЭ. На таком объёме коробка и конструктор уже трещат по швам — и вот почему.\u003C\u002Fp>\u003Cp>Учебное ядро мы собрали как веб-платформу на микросервисах: Node.js, NestJS, Nuxt.js, PostgreSQL, Redis, RabbitMQ. Сразу оговорюсь про частую путаницу — учебная часть живёт в вебе (расписание, ДЗ, материалы, мониторинг, коммуникация), а мобильные приложения закрывают узкие сценарии, а не дублируют платформу. Строить мобильную копию всего — это удвоить бюджет ради удобства, которое веб и так даёт.\u003C\u002Fp>\u003Cp>Что этот выбор дал на практике:\u003C\u002Fp>\u003Cp>Ролевая модель под рост. Восемнадцать ролей, и новая заводится за 15–20 минут. Звучит скучно, пока школа не начинает еженедельно придумывать новые типы сотрудников — кураторов, тьюторов, проверяющих. В коробке каждая такая роль превратилась бы в переписку с поддержкой вендора; у нас это движение на пару минут.\u003C\u002Fp>\u003Cp>Автоматизация рутины. Около 80% проверок домашних заданий ушло в автомат, тестирование держит 14 типов вопросов. В переводе на человеческий — примерно 25 часов в неделю, которые преподаватели больше не тратят на ручную проверку.\u003Cbr>\u003Cbr>И честно про обратную сторону, потому что микросервисы — это не бесплатный обед. Распределённая отладка, согласованность данных между сервисами, инфраструктура — всё это стоит времени команды. На маленьком проекте такая архитектура была бы дорогим украшением. Она отбивается там, где заложен рост. Онлайн-Школа №1 — ровно этот случай, и результат виден в цифрах: конверсия в оплату выросла с 12% до 27%, удержание — с 48% до 64%.\u003C\u002Fp>\u003Cblockquote>\u003Cp>Раньше система школы жила в головах сотрудников — кто где что смотрит и как свести отчет. У куратора это была ссылка на Zoom в одном месте, чат — в другом, расписание — в гугл-таблице, а отчет по классу собирался вручную из трех источников. Любая нестыковка становилась личной проблемой конкретного человека: потерялась ссылка, разъехались цифры, кто-то забыл обновить таблицу. Теперь система живет в платформе, а не в чьей-то голове или переписке в чате. Отчет по классу — это не ручное сведение, а один экран, которому можно доверять. Вот в этом и есть разница между набором сервисов и продуктом: сервисы работают каждый сам по себе, а продукт держит в себе весь процесс школы целиком\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ch2>Отдельная глава: когда дешевле построить свой Zoom, чем платить за чужой\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"05-sobstvennaya-vks.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F05_sobstvennaya_vks_fad85e0e7b.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_05_sobstvennaya_vks_fad85e0e7b.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_05_sobstvennaya_vks_fad85e0e7b.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_05_sobstvennaya_vks_fad85e0e7b.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_05_sobstvennaya_vks_fad85e0e7b.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Самое контринтуитивное решение на этом проекте — \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1-vks\">собственная видеосвязь\u003C\u002Fa> вместо Zoom или Teams. На первый взгляд чистое переусложнение: готовые сервисы же есть, бери и подключай. Но давайте посмотрим не на технологию, а на то, как выглядит обычный будний вечер в онлайн-школе на чужом видеосервисе.\u003C\u002Fp>\u003Cp>Ученик ищет ссылку на урок, потерявшуюся в чате две недели назад. Преподаватель отвечает на пятое сообщение «а урок сегодня здесь или где?». Куратор вручную сверяет, кто был на занятии, выгружая список из стороннего сервиса. Родитель просит запись, а её надо где-то отдельно найти и переслать. Ничего не сломалось — просто каждый вечер школа теряет по чуть-чуть времени и нервов на ровном месте.\u003C\u002Fp>\u003Cp>Своя видеосвязь убирает этот вечер целиком. Ученик заходит на урок одной кнопкой из личного кабинета — без ссылок, паролей и «точно здесь?». Отвалился Wi-Fi или закрылась вкладка — нажал ту же кнопку, вернулся в ту же комнату. Посещаемость считается сама и сразу лежит в системе. Записи автоматически появляются у тех, кому положено — ученикам, кураторам, родителям. И, что для образовательного бизнеса в России стало уже операционным риском, а не гипотетическим, — никакой зависимости от зарубежных вендоров, которые могут в любой момент передумать.\u003C\u002Fp>\u003Cp>Технически под капотом WebRTC и десктоп-приложение для учителя с демонстрацией экрана и управлением вниманием класса, но ученику всей этой кухни не видно — ему видна одна кнопка. Собрали за восемь месяцев, нагрузку массовых уроков держит стабильно, проект взял первое место в номинации «Цифровая трансформация». Готовый SDK был бы быстрее на старте — но тогда вход в урок принадлежал бы чужому продукту, с его экранами, лимитами и правилами, а не школе.\u003C\u002Fp>\u003Ch2>Так во что же это обходится\u003C\u002Fh2>\u003Cp>Теперь про деньги, ради которых вы, скорее всего, и открыли эту статью. Назвать цену EdTech-платформы «в среднем» так же осмысленно, как назвать среднюю стоимость дома: землянка и особняк формально оба дома. Но факторы, которые двигают смету, всегда одни и те же — и по ним вы сможете прикинуть свой случай ещё до разговора с любым подрядчиком.\u003C\u002Fp>\u003Cp>Первый и главный — тот самый сценарий: коробка, конструктор или стройка с нуля. Разница между ними не в процентах, а в разах: коробка с надстройкой (как Mayak.study) и полный цикл под масштаб (как Онлайн-Школа №1) — это два разных финансовых мира, а сборка из фрагментов (Studycats) лежит где-то между. Это решение стоит принять осознанно, а не по инерции «хотим всё своё».\u003C\u002Fp>\u003Cp>Дальше — число и сложность модулей. Расписание, домашки с автопроверкой, пробники, геймификация, аналитика, оплаты: каждый добавляет не только разработку, но и вечную поддержку. Сложность ролевой модели: чем тоньше права доступа, тем дороже логика — зато заложенная гибкость потом экономит. Собственная инфраструктура вроде видеосвязи или прокторинга — это отдельные подпроекты, оправданные, когда аренда упирается в риски, а не «чтобы было». И горизонт роста: платформа «на сейчас» и платформа «под трехкратный рост» — это два разных бюджета уже на старте, потому что закладываются в архитектуру с первого дня.\u003C\u002Fp>\u003Cp>Чтобы не оставлять вас совсем без ориентиров, вот как это ложится в порядки величин:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e4d4508767704c69e993e8a1654cf07d9\">Коробка с надстройкой — ориентировочно от 1,5 до 4 млн ₽. Самый предсказуемый бюджет: базу не пишем, платим за настройку и надстройку под вашу операционку.\u003C\u002Fli>\u003Cli data-list-item-id=\"e61b9b4b8df8897029474a81ecbb89939\">Сборка из фрагментов — примерно 4–8 млн ₽. Зависит от того, сколько всего сшиваем и в каком состоянии то, что уже есть.\u003C\u002Fli>\u003Cli data-list-item-id=\"e11ee4a4117048586dd7a4c328e00b987\">Полный цикл под масштаб — от 8–10 млн ₽ и вверх. Верхней границы, по сути, нет — она определяется тем, сколько модулей и какой рост вы закладываете; крупные платформы уходят и за 20 млн.\u003C\u002Fli>\u003C\u002Ful>\u003Cblockquote>\u003Cp>Сильнее всего смета растет на связности: ролях, интеграциях, правах доступа и данных. На встрече это звучит просто: подключим CRM, оплаты и аналитику. Потом выясняется, что у маркетинга одна логика сегментов, у методистов другая, у кураторов третья. Когда эти зависимости пропускают до старта, команда платит дважды: сначала за быстрый запуск, затем за миграцию, перенастройку ролей и пересборку связей между сервисами. Экономия на проектировании быстро превращается в отдельный бюджет на исправления\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ch2>И про сроки — та же история\u003C\u002Fh2>\u003Cp>«Когда будет готово» — вопрос-близнец вопроса про деньги, и ответ у него такой же честный и такой же неудобный: смотря что считать готовым. Первый работающий релиз и завершенная платформа — это разные горизонты, и путать их — верный способ разочароваться.\u003C\u002Fp>\u003Cp>Реальные ориентиры из наших проектов:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"ed8c6b376fff2a8442c9f6d5933f5c555\">Коробка с надстройкой — около полугода. Столько заняла Mayak.study: базовую инфраструктуру не строили, время ушло на отчётность, вебинары и пробники.\u003C\u002Fli>\u003Cli data-list-item-id=\"ea50ee00578e56a7a3191f49ec66aa25b\">Сборка из фрагментов — порядка пяти месяцев. Studycats собрали ровно к 1 сентября, с жёстким дедлайном под учебный год.\u003C\u002Fli>\u003Cli data-list-item-id=\"eb75107de1eb528d15ca594d4c728c2b0\">Полный цикл, первый релиз ядра — от трёх месяцев. Именно за три мы подняли работающее ядро Онлайн-Школы №1. Но важная оговорка: это MVP, а не «вся платформа». Сотрудничаем с 2021 года, и всё это время она растёт итерациями.\u003C\u002Fli>\u003Cli data-list-item-id=\"ee0884843b0ce9d23595e6bde3fa300c7\">Отдельная сложная подсистема (например, своя видеосвязь) — около восьми месяцев поверх основного проекта, потому что реальное время и нагрузка массовых уроков прощают меньше, чем обычный веб.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Отсюда простое правило планирования: закладывайтесь на то, что полный цикл стартует с MVP-ядра за несколько месяцев, а дальше живёт и достраивается. Образовательный продукт вообще редко бывает «доделан» — и это не баг, а нормальная его жизнь.\u003C\u002Fp>\u003Ch2>Что со всем этим делать\u003C\u002Fh2>\u003Cp>Если свести всё к одному совету, он будет не про технологии, а про порядок вопросов. Начинать не с «сколько стоит», а с двух других: насколько уникальна ваша учебная механика и на какой рост вы закладываетесь. Ответы на них определят сценарий, сценарий определит сроки и смету, а не наоборот. Заказчики, которые проходят эту развилку осознанно, почти никогда потом не переплачивают за переделки — а именно переделки, а не разработка, обычно и взрывают бюджет.\u003C\u002Fp>\u003Cp>Если вы как раз стоите перед этой развилкой и не уверены, что выбрать — коробку, конструктор или полный цикл, — расскажите о задаче нашей команде. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fedtech\">Разберём\u003C\u002Fa> ваш сценарий и честно скажем, где не надо строить с нуля. В том числе если выяснится, что вам и правда хватит коробки — такое тоже бывает, и говорить об этом мы не стесняемся.\u003C\u002Fp>",[815,816],{"id":19,"documentId":20,"title":21,"slug":22,"order":10,"createdAt":23,"updatedAt":23,"publishedAt":24,"locale":16},{"id":817,"documentId":818,"title":819,"slug":820,"order":10,"createdAt":821,"updatedAt":821,"publishedAt":822,"locale":16},33,"xhke7f1vzoqyx9nzqc1sukc6","e-commerce","ecommerce-blog","2026-08-31T12:06:40.235Z","2026-08-31T12:06:40.258Z",[]]