[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-5-12-Superdev%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Academy-all-all-createdAt:desc-default":3},{"data":4,"page":508,"perPage":509,"totalItems":510,"totalPages":511},[5,70,106,152,200,245,288,319,356,392,423,465],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":66,"published_at":67,"school_blog":62,"short_description":68,"title":6,"updated":69,"slug":63,"views":65},"EP.125 TLS \u002F WSS and Certificate Management for WebSocket (Production & Enterprise Guide)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F9sdqrl1k8ipvypn\u002Fcover_image_ep_92jge6fnte.entforWebSocket.webp","2026-03-04 08:44:41.968Z",{"keywords":10,"locale":34,"school_blog":44},[11,19,24,29],{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},"sclkey987654321","school_keywords","2026-03-04 08:20:11.547Z","","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:44:41.420Z","xjki2vhsm3f0jb4","WSS WebSocket","2026-04-10 16:12:48.600Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:44:41.631Z","sipxojme8z97ei7","WebSocket TLS","2026-04-10 16:12:48.685Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},"en","pbc_1989393366","locales","2026-01-22 11:00:02.726Z","twemoji:flag-united-states","qv9c1llfov2d88z",false,"English","2026-04-10 15:42:46.825Z",{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":48,"id":62,"slug":63,"updated":64,"views":65},"wqxt7ag2gn7xcmk","pbc_2105096300","school_blogs",{"category":49},{"blogIds":50,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":56,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:33:53.210Z","59ty92ns80w_15oc1implw.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fwqxt7ag2gn7xcmk\u002F59ty92ns80w_15oc1implw.png",{"en":57,"th":57},"Golang The Series",1,"2026-03-16 04:39:38.440Z","published","2026-04-25 02:32:15.470Z","igzaha7bksnu7v1","ep-125-tls-wss-and-certificate-management-for-websocket","2026-05-08 18:50:07.526Z",208,"9sdqrl1k8ipvypn","2026-01-12 03:50:25.292Z","An in-depth guide to securing WebSocket connections with TLS and WSS. Learn HTTPS vs WSS, TLS handshake flow, certificate management, Let’s Encrypt integration, and zero-downtime certificate renewal for production and enterprise-grade systems.","2026-05-08 06:51:55.535Z",{"alt":71,"cover_image_path":72,"created":73,"expand":74,"id":102,"published_at":103,"school_blog":99,"short_description":104,"title":71,"updated":105,"slug":100,"views":101},"EP.124 Advanced Security & Authentication for WebSocket (JWT, Token Strategy & Secure Handshake)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fk7qdpibak9otau6\u002Fcover_image_ep_2a3e4no299.ionforWebSocket.webp","2026-03-04 08:44:42.720Z",{"keywords":75,"locale":93,"school_blog":94},[76,81,82,83,88],{"collectionId":12,"collectionName":13,"created":77,"created_by":15,"id":78,"name":79,"updated":80,"updated_by":15},"2026-03-04 08:44:42.096Z","kr1dmn7sxgv9vxg","JWT WebSocket","2026-04-10 16:12:48.849Z",{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":84,"created_by":15,"id":85,"name":86,"updated":87,"updated_by":15},"2026-03-04 08:44:42.406Z","julxx94rca568ku","WebSocket Authentication","2026-04-10 16:12:48.917Z",{"collectionId":12,"collectionName":13,"created":89,"created_by":15,"id":90,"name":91,"updated":92,"updated_by":15},"2026-03-04 08:44:13.770Z","ij1u9pugpnctjvk","WebSocket Security","2026-04-10 16:12:41.774Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":95,"id":99,"slug":100,"updated":15,"views":101},{"category":96},{"blogIds":97,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":98,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"hsw1xbcvic3ba41","advanced-websocket-security-authentication-jwt-secure-handshake",226,"k7qdpibak9otau6","2026-01-12 03:40:09.510Z","A deep dive into production-ready and enterprise-grade WebSocket security. Learn how to implement proper authentication, JWT token strategies, prevent WebSocket hijacking, and design a secure handshake for real-world, high-traffic systems.","2026-05-08 06:51:55.808Z",{"alt":107,"cover_image_path":108,"created":109,"expand":110,"id":148,"published_at":149,"school_blog":144,"short_description":150,"title":107,"updated":151,"slug":145,"views":147},"The Origin of JavaScript: Created in 10 Days, Rules the World","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fk5ktr6fo351rni0\u002Fbrendan_eich_the_creator_of_java_script_at_netscape_featuring_the_js_logo_and_code_snippets_8tm80mpmin.webp","2026-03-04 08:20:43.066Z",{"keywords":111,"locale":132,"school_blog":133},[112,117,122,127],{"collectionId":12,"collectionName":13,"created":113,"created_by":15,"id":114,"name":115,"updated":116,"updated_by":15},"2026-03-04 08:20:36.060Z","xcq4mt3coqo1odt","V8 Engine","2026-04-10 16:07:27.526Z",{"collectionId":12,"collectionName":13,"created":118,"created_by":15,"id":119,"name":120,"updated":121,"updated_by":15},"2026-03-04 08:20:38.187Z","b4o3toqgoc84295","Brendan Eich","2026-04-10 16:07:27.995Z",{"collectionId":12,"collectionName":13,"created":123,"created_by":15,"id":124,"name":125,"updated":126,"updated_by":15},"2026-03-04 08:20:41.018Z","xzz8g6s99hkw93f","JavaScript History","2026-04-10 16:07:28.276Z",{"collectionId":12,"collectionName":13,"created":128,"created_by":15,"id":129,"name":130,"updated":131,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":134,"collectionId":46,"collectionName":47,"created":15,"expand":135,"id":144,"slug":145,"updated":146,"views":147},"isnp2fv80bn3yem",{"category":136},{"blogIds":137,"collectionId":51,"collectionName":52,"created":138,"created_by":15,"id":134,"image":15,"image_alt":15,"image_path":15,"label":139,"name":140,"priority":141,"publish_at":142,"scheduled_at":15,"status":60,"updated":143,"updated_by":15},[],"2026-03-04 08:19:47.590Z",{"en":140,"th":140},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","2026-04-25 02:32:14.031Z","n4c7o0yqlwcv639","history-of-javascript-from-10-days-to-global-standard","2026-05-15 21:00:26.315Z",240,"k5ktr6fo351rni0","2026-01-08 05:35:48.725Z","Explore the history of JavaScript. From its 10-day creation at Netscape to winning the browser wars and becoming the king of web development.","2026-05-11 21:45:19.000Z",{"alt":153,"cover_image_path":154,"created":155,"expand":156,"id":196,"published_at":197,"school_blog":192,"short_description":198,"title":153,"updated":199,"slug":193,"views":195},"Git for Team: The Professional Workflow Guide to Collaborative Coding","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F5jblmfazpjbqx96\u002Finfographic_showing_team_collaboration_using_git_and_git_hub_illustrating_branching_merging_and_pull_xj4jg51gl0.webp","2026-03-04 08:44:44.506Z",{"keywords":157,"locale":178,"school_blog":179},[158,163,168,173],{"collectionId":12,"collectionName":13,"created":159,"created_by":15,"id":160,"name":161,"updated":162,"updated_by":15},"2026-03-04 08:44:43.803Z","tsn8jg792h1wac5","Code Review","2026-04-10 16:12:49.012Z",{"collectionId":12,"collectionName":13,"created":164,"created_by":15,"id":165,"name":166,"updated":167,"updated_by":15},"2026-03-04 08:44:35.823Z","andd8rbw15sng17","GitHub","2026-04-10 16:12:47.387Z",{"collectionId":12,"collectionName":13,"created":169,"created_by":15,"id":170,"name":171,"updated":172,"updated_by":15},"2026-03-04 08:44:36.134Z","pg679bitpkii9vv","Git","2026-04-10 16:12:47.459Z",{"collectionId":12,"collectionName":13,"created":174,"created_by":15,"id":175,"name":176,"updated":177,"updated_by":15},"2026-03-04 08:44:35.619Z","9z8e1xfjt07e7n9","Git Workflow","2026-04-10 16:12:47.226Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":180,"collectionId":46,"collectionName":47,"created":15,"expand":181,"id":192,"slug":193,"updated":194,"views":195},"spm4l1k5bgmhmmt",{"category":182},{"blogIds":183,"collectionId":51,"collectionName":52,"created":184,"created_by":15,"id":180,"image":185,"image_alt":15,"image_path":186,"label":187,"name":188,"priority":189,"publish_at":190,"scheduled_at":15,"status":60,"updated":191,"updated_by":15},[],"2026-03-04 08:31:18.590Z","50hyjr6os45_ayazwr5gq7.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002F50hyjr6os45_ayazwr5gq7.png",{"en":188,"th":188},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","p8mussz4d3imv1c","git-for-team-professional-workflow-guide","2026-05-15 04:01:08.033Z",420,"5jblmfazpjbqx96","2026-01-07 04:24:37.284Z","Master professional Git workflows for team collaboration. Learn how to manage branches, conduct Code Reviews, and use Pull Requests effectively to ensure a stable and scalable codebase.","2026-05-08 06:51:56.702Z",{"alt":201,"cover_image_path":202,"created":203,"expand":204,"id":241,"published_at":242,"school_blog":237,"short_description":243,"title":201,"updated":244,"slug":238,"views":240},"The Origin of C: The Foundation of Modern Programming","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F204ju6yjjphhocj\u002Fcover_image_blog_the_origin_of_c_the_foundation_of_modern_programming_ucgo56tgfo.webp","2026-03-04 08:20:49.329Z",{"keywords":205,"locale":226,"school_blog":227},[206,211,216,221],{"collectionId":12,"collectionName":13,"created":207,"created_by":15,"id":208,"name":209,"updated":210,"updated_by":15},"2026-03-04 08:20:46.902Z","p2fa536x3fkbftv","C Language","2026-04-10 16:07:28.789Z",{"collectionId":12,"collectionName":13,"created":212,"created_by":15,"id":213,"name":214,"updated":215,"updated_by":15},"2026-03-04 08:20:42.894Z","q8fw2bf4sm83pak","Bell Labs","2026-04-10 16:07:28.504Z",{"collectionId":12,"collectionName":13,"created":217,"created_by":15,"id":218,"name":219,"updated":220,"updated_by":15},"2026-03-04 08:20:45.500Z","9f8c26oyzxwvs13","Dennis Ritchie","2026-04-10 16:07:28.644Z",{"collectionId":12,"collectionName":13,"created":222,"created_by":15,"id":223,"name":224,"updated":225,"updated_by":15},"2026-03-04 08:20:48.783Z","zs2uskcp8hs1e8k","C Programming History","2026-04-10 16:07:29.017Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":228,"collectionId":46,"collectionName":47,"created":15,"expand":229,"id":237,"slug":238,"updated":239,"views":240},"102u7miss0ec94h",{"category":230},{"blogIds":231,"collectionId":51,"collectionName":52,"created":232,"created_by":15,"id":228,"image":15,"image_alt":15,"image_path":15,"label":233,"name":234,"priority":141,"publish_at":235,"scheduled_at":15,"status":60,"updated":236,"updated_by":15},[],"2026-03-04 08:19:48.998Z",{"en":234,"th":234},"The Origin of Code","2026-02-18 01:59:52.528Z","2026-04-25 02:32:14.183Z","pua7xa2ecuhvbcu","origin-of-c-programming-language","2026-05-06 13:31:29.261Z",209,"204ju6yjjphhocj","2026-01-01 04:09:24.532Z","Explore the deep history of the C language. From its birth at Bell Labs to becoming the bedrock of modern operating systems and programming languages. Learn the genius behind Dennis Ritchie's creation.","2026-05-11 21:45:19.256Z",{"alt":246,"cover_image_path":247,"created":248,"expand":249,"id":284,"published_at":285,"school_blog":281,"short_description":286,"title":246,"updated":287,"slug":282,"views":240},"JS2GO EP.50 Deploying Applications: Go vs Node.js for Production Systems","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F2720p0diuraw0wo\u002Fcover_image_ep_50_deploying_applications_go_vs_node_fecycri5ek.oductionSystems.webp","2026-03-04 08:44:47.848Z",{"keywords":250,"locale":267,"school_blog":268},[251,256,257,262],{"collectionId":12,"collectionName":13,"created":252,"created_by":15,"id":253,"name":254,"updated":255,"updated_by":15},"2026-03-04 08:44:47.024Z","p4tvi007knx0nib","Deploy Application","2026-04-10 16:12:49.798Z",{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":258,"created_by":15,"id":259,"name":260,"updated":261,"updated_by":15},"2026-03-04 08:24:40.405Z","05u3tysava2z6ga","Node.js","2026-04-10 16:07:29.504Z",{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},"2026-03-04 08:44:47.385Z","li4cs2v3atd0wds","Production","2026-04-10 16:12:49.890Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":269,"collectionId":46,"collectionName":47,"created":15,"expand":270,"id":281,"slug":282,"updated":283,"views":240},"hsa1afr8fcnd6qb",{"category":271},{"blogIds":272,"collectionId":51,"collectionName":52,"created":273,"created_by":15,"id":269,"image":274,"image_alt":15,"image_path":275,"label":276,"name":277,"priority":278,"publish_at":279,"scheduled_at":15,"status":60,"updated":280,"updated_by":15},[],"2026-03-04 08:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":277,"th":277},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-04-25 02:32:14.339Z","v7nigitalddgztd","deploying-applications-go-vs-nodejs-production","2026-05-14 13:42:37.298Z","2720p0diuraw0wo","2025-12-30 10:59:37.237Z","An end-to-end production deployment guide comparing Go and Node.js, covering build strategies, Docker multi-stage builds, secrets management, CI\u002FCD pipelines, and zero-downtime deployment based on real-world usage.","2026-05-08 06:51:57.845Z",{"alt":289,"cover_image_path":290,"created":291,"expand":292,"id":315,"published_at":316,"school_blog":312,"short_description":317,"title":289,"updated":318,"slug":313,"views":240},"Git for Beginners: Visual Guide to Add, Commit, and Push (No Memorizing Needed)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fznbpmjusku9bqjn\u002Finfographic_showing_git_workflow_93apmqhvpj.webp","2026-03-04 08:44:46.224Z",{"keywords":293,"locale":306,"school_blog":307},[294,295,296,301],{"collectionId":12,"collectionName":13,"created":169,"created_by":15,"id":170,"name":171,"updated":172,"updated_by":15},{"collectionId":12,"collectionName":13,"created":174,"created_by":15,"id":175,"name":176,"updated":177,"updated_by":15},{"collectionId":12,"collectionName":13,"created":297,"created_by":15,"id":298,"name":299,"updated":300,"updated_by":15},"2026-03-04 08:44:44.589Z","0rhtp9q4g9epxjv","Git tutorial","2026-04-10 16:12:49.241Z",{"collectionId":12,"collectionName":13,"created":302,"created_by":15,"id":303,"name":304,"updated":305,"updated_by":15},"2026-03-04 08:44:44.958Z","hl4mu6quhfjhdlw","Git for beginners","2026-04-10 16:12:49.337Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":180,"collectionId":46,"collectionName":47,"created":15,"expand":308,"id":312,"slug":313,"updated":314,"views":240},{"category":309},{"blogIds":310,"collectionId":51,"collectionName":52,"created":184,"created_by":15,"id":180,"image":185,"image_alt":15,"image_path":186,"label":311,"name":188,"priority":189,"publish_at":190,"scheduled_at":15,"status":60,"updated":191,"updated_by":15},[],{"en":188,"th":188},"g4okogcok21khr0","git-beginner-add-commit-push-visual","2026-05-13 17:42:03.984Z","znbpmjusku9bqjn","2025-12-30 10:31:34.048Z","Stop naming files \"Project_Final\"! Master Git basics through a visual mental model. Learn how Add, Commit, and Push work in the professional software development workflow.","2026-05-08 06:51:57.192Z",{"alt":320,"cover_image_path":321,"created":322,"expand":323,"id":352,"published_at":353,"school_blog":348,"short_description":354,"title":320,"updated":355,"slug":349,"views":351},"EP.123 Load Balancing & Sticky Sessions for WebSocket (Production-Ready Guide)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fek7zzajyalhrlh3\u002Fcover_image_ep_2pqo0kl48b.tion-ReadyGuide.webp","2026-03-04 08:44:49.230Z",{"keywords":324,"locale":342,"school_blog":343},[325,326,331,336,341],{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":327,"created_by":15,"id":328,"name":329,"updated":330,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":332,"created_by":15,"id":333,"name":334,"updated":335,"updated_by":15},"2026-03-04 08:44:47.893Z","1r53azecnj44o3t","Real-time","2026-04-10 16:12:50.006Z",{"collectionId":12,"collectionName":13,"created":337,"created_by":15,"id":338,"name":339,"updated":340,"updated_by":15},"2026-03-04 08:34:10.799Z","m3qoswhgnc4c38n","Kubernetes","2026-04-10 16:08:08.875Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":344,"id":348,"slug":349,"updated":350,"views":351},{"category":345},{"blogIds":346,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":347,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"rr43ycru4104v7f","ep-123-load-balancing-sticky-sessions-websocket","2026-05-08 21:11:54.216Z",261,"ek7zzajyalhrlh3","2025-12-30 09:45:58.631Z","A practical guide to designing WebSocket load balancing with sticky sessions, covering real-world scaling strategies on Kubernetes to prevent dropped connections and ensure production-grade reliability.","2026-05-08 06:51:57.974Z",{"alt":357,"cover_image_path":358,"created":359,"expand":360,"id":388,"published_at":389,"school_blog":385,"short_description":390,"title":357,"updated":391,"slug":386,"views":387},"EP.122 Horizontal & Geo‑distributed Scaling Strategies for WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Frbp4h275asugxet\u002Fcover_image_ep_xg7ebflqf4.iesforWebSocket.webp","2026-03-04 08:44:50.633Z",{"keywords":361,"locale":379,"school_blog":380},[362,363,368,373,378],{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":364,"created_by":15,"id":365,"name":366,"updated":367,"updated_by":15},"2026-03-04 08:44:32.154Z","u0s66bjop3dljau","Horizontal Scaling","2026-04-10 16:12:46.399Z",{"collectionId":12,"collectionName":13,"created":369,"created_by":15,"id":370,"name":371,"updated":372,"updated_by":15},"2026-03-04 08:44:49.944Z","5sx3ab5gv2n24mh","Geo Distributed Architecture","2026-04-10 16:12:50.651Z",{"collectionId":12,"collectionName":13,"created":374,"created_by":15,"id":375,"name":376,"updated":377,"updated_by":15},"2026-03-04 08:44:50.258Z","nrtw5001po78dez","WebSocket Scaling","2026-04-10 16:12:50.756Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":381,"id":385,"slug":386,"updated":15,"views":387},{"category":382},{"blogIds":383,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":384,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"xrv5n3fjd3aocjj","ep122-horizontal-geo-distributed-websocket-scaling",202,"rbp4h275asugxet","2025-12-30 09:45:49.195Z","Learn how to design a geo‑distributed WebSocket system that reduces global latency and supports cross‑region real‑time communication.","2026-05-08 06:51:58.683Z",{"alt":393,"cover_image_path":394,"created":395,"expand":396,"id":419,"published_at":420,"school_blog":416,"short_description":421,"title":393,"updated":422,"slug":417,"views":418},"EP.120 Whiteboard & Real-time Drawing Synchronization with WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fahq5ev6lnmk68vh\u002Fcover_image_ep_tlqmwo22d8.onwithWebSocket.webp","2026-03-04 08:44:52.189Z",{"keywords":397,"locale":410,"school_blog":411},[398,402,403,404,405],{"collectionId":12,"collectionName":13,"created":399,"created_by":15,"id":400,"name":57,"updated":401,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-04-10 16:12:50.850Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":327,"created_by":15,"id":328,"name":329,"updated":330,"updated_by":15},{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":406,"created_by":15,"id":407,"name":408,"updated":409,"updated_by":15},"2026-03-04 08:44:51.688Z","ztv5f26qud778za","whiteboard","2026-04-10 16:12:50.940Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":412,"id":416,"slug":417,"updated":15,"views":418},{"category":413},{"blogIds":414,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":415,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"1h3hjyb5awyprlq","ep-120-whiteboard-realtime-drawing-websocket",217,"ahq5ev6lnmk68vh","2025-12-29 04:41:05.049Z","Learn how to build a real-time whiteboard system that supports multi-user drawing, cursor sync, and undo\u002Fredo using Go and WebSocket","2026-05-08 06:51:59.302Z",{"alt":424,"cover_image_path":425,"created":426,"expand":427,"id":461,"published_at":462,"school_blog":457,"short_description":463,"title":424,"updated":464,"slug":458,"views":460},"JS2GO EP.49 Backend Security with Go and Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fje5avechsgnsfjr\u002Fcover_js2_go_ep_49_backend_security_with_go_and_node_a53bkt8g8u.js.webp","2026-03-04 08:44:53.258Z",{"keywords":428,"locale":451,"school_blog":452},[429,434,439,444,449,450],{"collectionId":12,"collectionName":13,"created":430,"created_by":15,"id":431,"name":432,"updated":433,"updated_by":15},"2026-03-04 08:34:18.714Z","7cb29z95923lmhe","authentication","2026-04-10 16:08:11.822Z",{"collectionId":12,"collectionName":13,"created":435,"created_by":15,"id":436,"name":437,"updated":438,"updated_by":15},"2026-03-04 08:44:52.376Z","7kgkxt1b9xd0cca","Authorization","2026-04-10 16:12:51.107Z",{"collectionId":12,"collectionName":13,"created":440,"created_by":15,"id":441,"name":442,"updated":443,"updated_by":15},"2026-03-04 08:44:52.790Z","tkf1l5rauw0t7m0","Secure API Design","2026-04-10 16:12:51.172Z",{"collectionId":12,"collectionName":13,"created":445,"created_by":15,"id":446,"name":447,"updated":448,"updated_by":15},"2026-03-04 08:44:53.062Z","puutdnxuitnxxgq","Backend","2026-04-10 16:12:51.264Z",{"collectionId":12,"collectionName":13,"created":258,"created_by":15,"id":259,"name":260,"updated":261,"updated_by":15},{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":269,"collectionId":46,"collectionName":47,"created":15,"expand":453,"id":457,"slug":458,"updated":459,"views":460},{"category":454},{"blogIds":455,"collectionId":51,"collectionName":52,"created":273,"created_by":15,"id":269,"image":274,"image_alt":15,"image_path":275,"label":456,"name":277,"priority":278,"publish_at":279,"scheduled_at":15,"status":60,"updated":280,"updated_by":15},[],{"en":277,"th":277},"q6au12trb7ipmxx","js2go-ep49-backend-security-authentication-authorization-validation","2026-05-15 22:21:45.292Z",254,"je5avechsgnsfjr","2025-12-24 10:19:37.092Z","A practical guide to backend security covering authentication authorization and data validation with real production examples in Go and Node.js.","2026-05-08 06:51:59.632Z",{"alt":466,"cover_image_path":467,"created":468,"expand":469,"id":504,"published_at":505,"school_blog":500,"short_description":506,"title":466,"updated":507,"slug":501,"views":503},"JS2GO EP.48 Logging & Monitoring for Production (Go & Node.js)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fjim444bkspf39pv\u002Fcover_image_js2_go_ep_48_logging_monitoring_for_production_go_node_3wt2yddnc6.js.webp","2026-03-04 08:44:55.136Z",{"keywords":470,"locale":494,"school_blog":495},[471,476,481,486,491,492,493],{"collectionId":12,"collectionName":13,"created":472,"created_by":15,"id":473,"name":474,"updated":475,"updated_by":15},"2026-03-04 08:44:53.651Z","tuo9u1ayxlr8xvm","Monitoring System","2026-04-10 16:12:51.456Z",{"collectionId":12,"collectionName":13,"created":477,"created_by":15,"id":478,"name":479,"updated":480,"updated_by":15},"2026-03-04 08:44:34.571Z","fiybaq65m7oymtd","Monitoring","2026-04-10 16:12:46.904Z",{"collectionId":12,"collectionName":13,"created":482,"created_by":15,"id":483,"name":484,"updated":485,"updated_by":15},"2026-03-04 08:44:54.012Z","e283qzmjw1vq2l4","Logging Production","2026-04-10 16:12:51.523Z",{"collectionId":12,"collectionName":13,"created":487,"created_by":15,"id":488,"name":489,"updated":490,"updated_by":15},"2026-03-04 08:33:55.302Z","0mue4zt83jcdtq9","Logging","2026-04-10 16:08:03.396Z",{"collectionId":12,"collectionName":13,"created":258,"created_by":15,"id":259,"name":260,"updated":261,"updated_by":15},{"collectionId":12,"collectionName":13,"created":128,"created_by":15,"id":129,"name":130,"updated":131,"updated_by":15},{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":269,"collectionId":46,"collectionName":47,"created":15,"expand":496,"id":500,"slug":501,"updated":502,"views":503},{"category":497},{"blogIds":498,"collectionId":51,"collectionName":52,"created":273,"created_by":15,"id":269,"image":274,"image_alt":15,"image_path":275,"label":499,"name":277,"priority":278,"publish_at":279,"scheduled_at":15,"status":60,"updated":280,"updated_by":15},[],{"en":277,"th":277},"d8jrjoxb8k7la64","js2go-ep48-logging-monitoring-production-go-nodejs","2026-05-13 08:17:22.259Z",233,"jim444bkspf39pv","2025-12-23 04:57:41.053Z","Move from basic logging to full system observability. Learn structured logging, correlation IDs, metrics, distributed tracing, and error monitoring to build production-ready Go and Node.js systems.","2026-05-08 06:52:00.229Z",5,12,407,34]