[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-3-12-superdev%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520academy-all-all-createdAt:desc-default":3},{"data":4,"page":564,"perPage":565,"totalItems":566,"totalPages":567},[5,81,138,197,261,298,340,373,415,462,501,527],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":76,"published_at":77,"school_blog":72,"short_description":78,"title":79,"updated":80,"slug":73,"views":75},"Rust programming language logo and Rust The Series featured image by Superdev Academy","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fra8my54ngib50ra\u002F2zjiecmhony_i5ddukfc7q.png","2026-03-16 05:19:27.487Z",{"keywords":10,"locale":44,"school_blog":54},[11,19,24,29,34,39],{"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:08.348Z","","ux2m77tsy8v19bg","Rust Programming","2026-04-10 16:07:25.602Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:20:06.235Z","254619mvnk1hr7y","Rust","2026-04-10 16:07:25.292Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-16 05:18:56.520Z","imb6broxcylj4d0","Why Rust","2026-04-10 16:14:42.312Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:34:53.925Z","49lu29jndnk3lah","memory safety","2026-04-10 16:12:32.534Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-16 05:19:11.843Z","62q2nsrftel85x3","Ownership and Borrowing","2026-04-10 16:14:42.379Z",{"collectionId":12,"collectionName":13,"created":40,"created_by":15,"id":41,"name":42,"updated":43,"updated_by":15},"2026-03-04 08:44:11.146Z","gms2qr4xg6qv65e","Superdev Academy","2026-04-10 16:12:41.207Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},"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":55,"collectionId":56,"collectionName":57,"created":15,"expand":58,"id":72,"slug":73,"updated":74,"views":75},"mfqe235iv6x1or8","pbc_2105096300","school_blogs",{"category":59},{"blogIds":60,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":66,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-16 04:40:07.104Z","47vt5s1gglj_tz0b90vnge.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fmfqe235iv6x1or8\u002F47vt5s1gglj_tz0b90vnge.png",{"en":67,"th":67},"Rust The Series",2,"2026-03-16 04:40:09.199Z","published","2026-04-25 02:32:15.619Z","qopjdv8pbq5vd5r","why-rust-programming-language-ep1","2026-05-25 07:44:06.197Z",218,"ra8my54ngib50ra","2026-03-23 03:07:44.530Z","Why is Rust the most loved language for 10 years? Learn about its origin from a broken elevator and the 3 pillars: Speed, Safety, and Fearless Concurrency.","Why Rust? Meet the World's Most Loved Programming Language | Rust The Series EP.1","2026-05-08 06:52:16.186Z",{"alt":82,"cover_image_path":83,"created":84,"expand":85,"id":133,"published_at":134,"school_blog":129,"short_description":135,"title":136,"updated":137,"slug":130,"views":132},"The bright red Ruby programming language logo with a creative and happy developer workspace background.","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ferby2ett3ey5sod\u002F2q5mgphj7g2_48s1iwjgkx.png","2026-03-16 05:54:04.252Z",{"keywords":86,"locale":117,"school_blog":118},[87,92,97,102,107,112],{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},"2026-03-16 05:53:14.820Z","j85uu14nwfncx1a","Ruby History","2026-04-10 16:14:42.926Z",{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},"2026-03-04 08:34:47.544Z","3ky9n7b9hsgjf35","Ruby","2026-04-10 16:08:22.609Z",{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},"2026-03-16 05:53:24.913Z","3agesqkm8jsfhwm","What is Ruby","2026-04-10 16:14:43.069Z",{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"updated_by":15},"2026-03-16 05:49:10.525Z","s0pqrcq7u7b17fv","Yukihiro Matsumoto","2026-04-10 16:14:42.645Z",{"collectionId":12,"collectionName":13,"created":108,"created_by":15,"id":109,"name":110,"updated":111,"updated_by":15},"2026-03-16 05:49:18.125Z","0runldorrswj5ds","MINASWAN","2026-04-10 16:14:42.787Z",{"collectionId":12,"collectionName":13,"created":113,"created_by":15,"id":114,"name":115,"updated":116,"updated_by":15},"2026-03-04 08:19:55.412Z","hz7yzm54i2o6cl7","web development","2026-04-10 16:07:24.402Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":119,"collectionId":56,"collectionName":57,"created":15,"expand":120,"id":129,"slug":130,"updated":131,"views":132},"isnp2fv80bn3yem",{"category":121},{"blogIds":122,"collectionId":61,"collectionName":62,"created":123,"created_by":15,"id":119,"image":15,"image_alt":15,"image_path":15,"label":124,"name":125,"priority":126,"publish_at":127,"scheduled_at":15,"status":70,"updated":128,"updated_by":15},[],"2026-03-04 08:19:47.590Z",{"en":125,"th":125},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","2026-04-25 02:32:14.031Z","g8t67hwsdyuoztk","evolution-of-ruby-for-developer-happiness","2026-05-12 21:26:36.714Z",145,"erby2ett3ey5sod","2026-03-18 04:46:34.062Z","Discover why Ruby is the most beloved language for developers. Explore the MINASWAN philosophy and the power of Ruby on Rails in the startup world.","The History of Ruby: A Language Designed for Developer Happiness and Humanity","2026-05-08 06:52:16.842Z",{"alt":139,"cover_image_path":140,"created":141,"expand":142,"id":192,"published_at":193,"school_blog":188,"short_description":194,"title":195,"updated":196,"slug":189,"views":191},"5 Best MacBook External Monitors for Programmers 2026 featuring ARZOPA Z1RC and BenQ RD280U","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ffcbqg0wgyzvpf4g\u002F22lezkx5a7a_9qza66zcpf.png","2026-03-16 06:50:00.366Z",{"keywords":143,"locale":174,"school_blog":175},[144,149,154,159,164,169],{"collectionId":12,"collectionName":13,"created":145,"created_by":15,"id":146,"name":147,"updated":148,"updated_by":15},"2026-03-16 06:48:56.529Z","t89p5msf6snqcxd","MacBook external monitor","2026-04-10 16:14:43.633Z",{"collectionId":12,"collectionName":13,"created":150,"created_by":15,"id":151,"name":152,"updated":153,"updated_by":15},"2026-03-16 06:49:05.338Z","87md0kh84kqbx8c","best monitor for programming 2026","2026-04-10 16:14:43.721Z",{"collectionId":12,"collectionName":13,"created":155,"created_by":15,"id":156,"name":157,"updated":158,"updated_by":15},"2026-03-16 06:29:41.694Z","0jobzj69zmb9rsg","ARZOPA Z1RC","2026-04-10 16:14:43.460Z",{"collectionId":12,"collectionName":13,"created":160,"created_by":15,"id":161,"name":162,"updated":163,"updated_by":15},"2026-03-16 06:49:22.523Z","bszj87t9ek8zlas","BenQ RD280U","2026-04-10 16:14:43.914Z",{"collectionId":12,"collectionName":13,"created":165,"created_by":15,"id":166,"name":167,"updated":168,"updated_by":15},"2026-03-16 06:49:51.533Z","5eyvwytlle97npa","programmer setup","2026-04-10 16:14:44.071Z",{"collectionId":12,"collectionName":13,"created":170,"created_by":15,"id":171,"name":172,"updated":173,"updated_by":15},"2026-03-16 06:49:58.837Z","u1s8mqzkkosas82","developer gadgets","2026-04-10 16:14:44.221Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":176,"collectionId":56,"collectionName":57,"created":15,"expand":177,"id":188,"slug":189,"updated":190,"views":191},"spm4l1k5bgmhmmt",{"category":178},{"blogIds":179,"collectionId":61,"collectionName":62,"created":180,"created_by":15,"id":176,"image":181,"image_alt":15,"image_path":182,"label":183,"name":184,"priority":185,"publish_at":186,"scheduled_at":15,"status":70,"updated":187,"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":184,"th":184},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","s3vhc075erm9t15","best-macbook-monitors-for-programmers-2026","2026-05-27 19:18:46.085Z",150,"fcbqg0wgyzvpf4g","2026-03-17 03:05:00.000Z","Stop wasting money on the wrong screen! Discover the top 5 monitors for MacBook tailored for developers, from portable ARZOPA Z1RC to pro-coding BenQ RD280U.","5 Best MacBook External Monitors for Programmers (2026 Update)","2026-05-12 18:52:45.105Z",{"alt":198,"cover_image_path":199,"created":200,"expand":201,"id":256,"published_at":257,"school_blog":252,"short_description":258,"title":259,"updated":260,"slug":253,"views":255},"Article cover for Golang The Series EP.140 Finale, featuring production-grade Go code snippets for an Enterprise WebSocket server.","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fo74ygkohmq4k9nf\u002Farticle_cover_for_golang_the_series_ep_874pa0lrr4.eWebSocketserver.png","2026-03-16 04:03:45.337Z",{"keywords":202,"locale":238,"school_blog":239},[203,208,213,218,223,228,233],{"collectionId":12,"collectionName":13,"created":204,"created_by":15,"id":205,"name":206,"updated":207,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":209,"created_by":15,"id":210,"name":211,"updated":212,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"collectionId":12,"collectionName":13,"created":214,"created_by":15,"id":215,"name":216,"updated":217,"updated_by":15},"2026-03-04 08:46:00.361Z","wq8gqpsnvd2bmma","Enterprise","2026-04-10 16:13:07.055Z",{"collectionId":12,"collectionName":13,"created":219,"created_by":15,"id":220,"name":221,"updated":222,"updated_by":15},"2026-03-04 08:44:21.262Z","f2p94t41e9t8hnv","system design","2026-04-10 16:12:43.659Z",{"collectionId":12,"collectionName":13,"created":224,"created_by":15,"id":225,"name":226,"updated":227,"updated_by":15},"2026-03-16 03:49:11.920Z","68w24pqpvxluy94","Roadmap","2026-04-10 16:14:41.404Z",{"collectionId":12,"collectionName":13,"created":229,"created_by":15,"id":230,"name":231,"updated":232,"updated_by":15},"2026-03-16 04:03:30.341Z","xbv6j7jyjlxdqqv","Software Engineering","2026-04-10 16:14:41.803Z",{"collectionId":12,"collectionName":13,"created":234,"created_by":15,"id":235,"name":236,"updated":237,"updated_by":15},"2026-03-04 08:44:53.062Z","puutdnxuitnxxgq","Backend","2026-04-10 16:12:51.264Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":240,"collectionId":56,"collectionName":57,"created":15,"expand":241,"id":252,"slug":253,"updated":254,"views":255},"wqxt7ag2gn7xcmk",{"category":242},{"blogIds":243,"collectionId":61,"collectionName":62,"created":244,"created_by":15,"id":240,"image":245,"image_alt":15,"image_path":246,"label":247,"name":248,"priority":249,"publish_at":250,"scheduled_at":15,"status":70,"updated":251,"updated_by":15},[],"2026-03-04 08:33:53.210Z","59ty92ns80w_15oc1implw.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fwqxt7ag2gn7xcmk\u002F59ty92ns80w_15oc1implw.png",{"en":248,"th":248},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-04-25 02:32:15.470Z","c2puowxb5818jta","go-enterprise-websocket-roadmap-series-finale","2026-05-27 06:53:44.212Z",159,"o74ygkohmq4k9nf","2026-03-17 02:55:25.743Z","The epic conclusion to our 140-episode journey. Master the 4 pillars of enterprise WebSockets, access our production-ready code template, and discover what to study next to become a top-tier Real-time Architect.","Golang The Series EP.140: Enterprise WebSocket Roadmap & The Grand Finale","2026-05-12 18:52:44.726Z",{"alt":262,"cover_image_path":263,"created":264,"expand":265,"id":294,"published_at":295,"school_blog":290,"short_description":296,"title":262,"updated":297,"slug":291,"views":293},"Golang The Series EP.139: Mobile & Low-bandwidth – Optimizing WebSockets for Unstable Networks","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvtglxlbfpe6ol4j\u002Fcover_image_golang_the_series_ep_xh66sejcok.nstableNetworks.webp","2026-03-04 08:43:14.983Z",{"keywords":266,"locale":284,"school_blog":285},[267,268,269,274,279],{"collectionId":12,"collectionName":13,"created":204,"created_by":15,"id":205,"name":206,"updated":207,"updated_by":15},{"collectionId":12,"collectionName":13,"created":209,"created_by":15,"id":210,"name":211,"updated":212,"updated_by":15},{"collectionId":12,"collectionName":13,"created":270,"created_by":15,"id":271,"name":272,"updated":273,"updated_by":15},"2026-03-04 08:40:54.386Z","hmclps1vkgyr7my","Mobile Development","2026-04-10 16:12:40.470Z",{"collectionId":12,"collectionName":13,"created":275,"created_by":15,"id":276,"name":277,"updated":278,"updated_by":15},"2026-03-04 08:40:54.493Z","te1uagqlfki2src","Bandwidth Optimization","2026-04-10 16:12:40.617Z",{"collectionId":12,"collectionName":13,"created":280,"created_by":15,"id":281,"name":282,"updated":283,"updated_by":15},"2026-03-04 08:40:54.606Z","s26m2zvbm8amosp","Real-time Systems","2026-04-10 16:12:40.769Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":240,"collectionId":56,"collectionName":57,"created":15,"expand":286,"id":290,"slug":291,"updated":292,"views":293},{"category":287},{"blogIds":288,"collectionId":61,"collectionName":62,"created":244,"created_by":15,"id":240,"image":245,"image_alt":15,"image_path":246,"label":289,"name":248,"priority":249,"publish_at":250,"scheduled_at":15,"status":70,"updated":251,"updated_by":15},[],{"en":248,"th":248},"3kpsi6righezgrh","go-websocket-mobile-resilience-strategies","2026-05-26 09:40:52.847Z",209,"vtglxlbfpe6ol4j","2026-03-02 08:50:25.730Z","Master WebSocket resilience for mobile users. Learn expert strategies for battery efficiency, adaptive heartbeats, and message recovery to keep your real-time app running smoothly on 3G or jittery connections.","2026-05-08 06:51:44.151Z",{"alt":299,"cover_image_path":300,"created":301,"expand":302,"id":336,"published_at":337,"school_blog":332,"short_description":338,"title":299,"updated":339,"slug":333,"views":335},"Golang The Series EP.138: Mastering WebSocket Latency & Performance Optimization","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fimmh876ctlnb2zk\u002Fcover_image_golang_the_series_ep_9ceb66i80j.nceOptimization.webp","2026-03-04 08:44:12.640Z",{"keywords":303,"locale":326,"school_blog":327},[304,309,314,319,324,325],{"collectionId":12,"collectionName":13,"created":305,"created_by":15,"id":306,"name":307,"updated":308,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":12,"collectionName":13,"created":310,"created_by":15,"id":311,"name":312,"updated":313,"updated_by":15},"2026-03-04 08:44:10.705Z","xicaissou94ouj5","Protobuf","2026-04-10 16:12:40.965Z",{"collectionId":12,"collectionName":13,"created":315,"created_by":15,"id":316,"name":317,"updated":318,"updated_by":15},"2026-03-04 08:44:11.548Z","ezm3p0vsuowuadd","Latency","2026-04-10 16:12:41.299Z",{"collectionId":12,"collectionName":13,"created":320,"created_by":15,"id":321,"name":322,"updated":323,"updated_by":15},"2026-03-04 08:44:12.339Z","s0awvhr8cgjuosg","Performance Tuning","2026-04-10 16:12:41.567Z",{"collectionId":12,"collectionName":13,"created":209,"created_by":15,"id":210,"name":211,"updated":212,"updated_by":15},{"collectionId":12,"collectionName":13,"created":204,"created_by":15,"id":205,"name":206,"updated":207,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":240,"collectionId":56,"collectionName":57,"created":15,"expand":328,"id":332,"slug":333,"updated":334,"views":335},{"category":329},{"blogIds":330,"collectionId":61,"collectionName":62,"created":244,"created_by":15,"id":240,"image":245,"image_alt":15,"image_path":246,"label":331,"name":248,"priority":249,"publish_at":250,"scheduled_at":15,"status":70,"updated":251,"updated_by":15},[],{"en":248,"th":248},"fwr0pxtvmc42yqk","go-websocket-latency-monitoring-performance-tuning","2026-05-15 13:27:05.017Z",211,"immh876ctlnb2zk","2026-03-02 04:30:24.037Z","Stop relying on averages! Dive into P95\u002FP99 latency metrics and expert Go optimization techniques like sync.Pool, Protobuf, and TCP tuning to build lightning-fast, real-time systems.","2026-05-08 06:51:45.601Z",{"alt":341,"cover_image_path":342,"created":343,"expand":344,"id":369,"published_at":370,"school_blog":365,"short_description":371,"title":341,"updated":372,"slug":366,"views":368},"Golang The Series EP.137: Enterprise WebSocket Security – Building an Unbreakable Fortress","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F45evsjmefj3c18r\u002Fgolang_the_series_ep_9gpmj14jad.eakableFortress.webp","2026-03-04 08:44:14.305Z",{"keywords":345,"locale":359,"school_blog":360},[346,347,348,349,354],{"collectionId":12,"collectionName":13,"created":204,"created_by":15,"id":205,"name":206,"updated":207,"updated_by":15},{"collectionId":12,"collectionName":13,"created":209,"created_by":15,"id":210,"name":211,"updated":212,"updated_by":15},{"collectionId":12,"collectionName":13,"created":305,"created_by":15,"id":306,"name":307,"updated":308,"updated_by":15},{"collectionId":12,"collectionName":13,"created":350,"created_by":15,"id":351,"name":352,"updated":353,"updated_by":15},"2026-03-04 08:34:45.957Z","gk56ug8j38rhci3","cybersecurity","2026-04-10 16:08:22.035Z",{"collectionId":12,"collectionName":13,"created":355,"created_by":15,"id":356,"name":357,"updated":358,"updated_by":15},"2026-03-04 08:44:13.045Z","g4w6cq87d9yzbaz","CSWSH","2026-04-10 16:12:41.704Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":240,"collectionId":56,"collectionName":57,"created":15,"expand":361,"id":365,"slug":366,"updated":367,"views":368},{"category":362},{"blogIds":363,"collectionId":61,"collectionName":62,"created":244,"created_by":15,"id":240,"image":245,"image_alt":15,"image_path":246,"label":364,"name":248,"priority":249,"publish_at":250,"scheduled_at":15,"status":70,"updated":251,"updated_by":15},[],{"en":248,"th":248},"e48pslht6qcpb01","go-enterprise-websocket-security-guide-best-practices","2026-05-21 18:12:29.084Z",207,"45evsjmefj3c18r","2026-02-24 02:34:28.466Z","Beyond WSS: Master the 5 pillars of Enterprise WebSocket security. Learn how to prevent CSWSH hijacking, implement ticket-based authentication, and mitigate DoS attacks in your high-scale Go applications.","2026-05-08 06:51:46.077Z",{"alt":374,"cover_image_path":375,"created":376,"expand":377,"id":411,"published_at":412,"school_blog":407,"short_description":413,"title":374,"updated":414,"slug":408,"views":410},"Golang The Series EP.136: WebSocket Versioning & Backward Compatibility – Seamless Upgrades","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fmlecj7zimfn4ncf\u002Fcover_image_for_golang_the_series_ep_8hjmrmne9l.eamlessUpgrades.webp","2026-03-04 08:44:15.459Z",{"keywords":378,"locale":401,"school_blog":402},[379,380,381,386,391,396],{"collectionId":12,"collectionName":13,"created":204,"created_by":15,"id":205,"name":206,"updated":207,"updated_by":15},{"collectionId":12,"collectionName":13,"created":209,"created_by":15,"id":210,"name":211,"updated":212,"updated_by":15},{"collectionId":12,"collectionName":13,"created":382,"created_by":15,"id":383,"name":384,"updated":385,"updated_by":15},"2026-03-04 08:44:14.062Z","z1020rjuhndf8m9","Versioning","2026-04-10 16:12:41.929Z",{"collectionId":12,"collectionName":13,"created":387,"created_by":15,"id":388,"name":389,"updated":390,"updated_by":15},"2026-03-04 08:44:14.480Z","d23neji0er26rrf","Backward Compatibility","2026-04-10 16:12:42.065Z",{"collectionId":12,"collectionName":13,"created":392,"created_by":15,"id":393,"name":394,"updated":395,"updated_by":15},"2026-03-04 08:44:14.705Z","7qpvbtbl99sazyl","API Design","2026-04-10 16:12:42.202Z",{"collectionId":12,"collectionName":13,"created":397,"created_by":15,"id":398,"name":399,"updated":400,"updated_by":15},"2026-03-04 08:44:15.009Z","kjorqkld4c8r3lc","Subprotocol","2026-04-10 16:12:42.341Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":240,"collectionId":56,"collectionName":57,"created":15,"expand":403,"id":407,"slug":408,"updated":409,"views":410},{"category":404},{"blogIds":405,"collectionId":61,"collectionName":62,"created":244,"created_by":15,"id":240,"image":245,"image_alt":15,"image_path":246,"label":406,"name":248,"priority":249,"publish_at":250,"scheduled_at":15,"status":70,"updated":251,"updated_by":15},[],{"en":248,"th":248},"s6w8li1iqpuuwka","go-websocket-versioning-strategies-guide","2026-05-27 00:23:42.753Z",240,"mlecj7zimfn4ncf","2026-02-23 03:15:08.855Z","Don't break your real-time app! Master professional WebSocket versioning strategies in Go. Learn Path-based, Subprotocol, and Payload versioning to ensure a seamless experience for users on older app versions.","2026-05-08 06:51:46.437Z",{"alt":416,"cover_image_path":417,"created":418,"expand":419,"id":458,"published_at":459,"school_blog":454,"short_description":460,"title":416,"updated":461,"slug":455,"views":457},"How to Use Cloudflare Tunnel to Expose Localhost Without Port Forwarding","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fbm8dllzwthuvdi5\u002Fcover_image_how_to_use_cloudflare_tunnel_to_expose_localhost_without_port_forwarding_3ltp5dhqn6.webp","2026-03-04 08:44:18.025Z",{"keywords":420,"locale":441,"school_blog":442},[421,426,431,436],{"collectionId":12,"collectionName":13,"created":422,"created_by":15,"id":423,"name":424,"updated":425,"updated_by":15},"2026-03-04 08:44:16.622Z","7k1sal58dnj3ycv","Cloudflare Zero Trust","2026-04-10 16:12:42.473Z",{"collectionId":12,"collectionName":13,"created":427,"created_by":15,"id":428,"name":429,"updated":430,"updated_by":15},"2026-03-04 08:44:16.902Z","1pf59ie7wale4so","Localhost","2026-04-10 16:12:42.539Z",{"collectionId":12,"collectionName":13,"created":432,"created_by":15,"id":433,"name":434,"updated":435,"updated_by":15},"2026-03-04 08:44:17.506Z","2hw2c6o2elosloo","Cloudflare Tunnel","2026-04-10 16:12:42.786Z",{"collectionId":12,"collectionName":13,"created":437,"created_by":15,"id":438,"name":439,"updated":440,"updated_by":15},"2026-03-04 08:44:17.746Z","il984gdus3ha65e","how to use cloudflare tunnel","2026-04-10 16:12:42.923Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":443,"collectionId":56,"collectionName":57,"created":15,"expand":444,"id":454,"slug":455,"updated":456,"views":457},"rfxf19ot4iq992c",{"category":445},{"blogIds":446,"collectionId":61,"collectionName":62,"created":447,"created_by":15,"id":443,"image":448,"image_alt":15,"image_path":449,"label":450,"name":451,"priority":185,"publish_at":452,"scheduled_at":15,"status":70,"updated":453,"updated_by":15},[],"2026-03-04 08:32:03.969Z","7acfigk1qkd_lv1k6bkji3.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Frfxf19ot4iq992c\u002F7acfigk1qkd_lv1k6bkji3.png",{"en":451,"th":451},"Web Development","2025-01-21 03:43:00.282Z","2026-04-25 02:32:14.918Z","98jiz88lg5ihh7t","how-to-use-cloudflare-tunnel-localhost","2026-05-28 05:45:43.488Z",217,"bm8dllzwthuvdi5","2026-02-19 02:03:40.665Z","Learn how to use Cloudflare Tunnel to expose your localhost project to the internet securely. No port forwarding or public IP required. The ultimate guide for developers.","2026-05-08 06:51:47.112Z",{"alt":463,"cover_image_path":464,"created":465,"expand":466,"id":498,"published_at":493,"school_blog":495,"short_description":499,"title":463,"updated":500,"slug":496,"views":293},"The History of PHP: From a Simple Resume Tool to Powering 70% of the Web","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fo7hs062vt49pkic\u002Fcover_image_for_the_history_of_php_from_a_simple_resume_tool_to_powering_70_of_the_web_x7joyixjaq.webp","2026-03-04 08:19:55.978Z",{"keywords":467,"locale":484,"school_blog":485},[468,473,478,483],{"collectionId":12,"collectionName":13,"created":469,"created_by":15,"id":470,"name":471,"updated":472,"updated_by":15},"2026-03-04 08:19:51.822Z","53qj3tq2f8ryvz4","PHP History","2026-04-10 16:07:23.916Z",{"collectionId":12,"collectionName":13,"created":474,"created_by":15,"id":475,"name":476,"updated":477,"updated_by":15},"2026-03-04 08:19:53.527Z","kxb5av8exza7ssd","Laravel","2026-04-10 16:07:24.148Z",{"collectionId":12,"collectionName":13,"created":479,"created_by":15,"id":480,"name":481,"updated":482,"updated_by":15},"2026-03-04 08:19:53.961Z","2irxiuyeoskuui2","WordPress","2026-04-10 16:07:24.242Z",{"collectionId":12,"collectionName":13,"created":113,"created_by":15,"id":114,"name":115,"updated":116,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":486,"collectionId":56,"collectionName":57,"created":15,"expand":487,"id":495,"slug":496,"updated":497,"views":293},"102u7miss0ec94h",{"category":488},{"blogIds":489,"collectionId":61,"collectionName":62,"created":490,"created_by":15,"id":486,"image":15,"image_alt":15,"image_path":15,"label":491,"name":492,"priority":126,"publish_at":493,"scheduled_at":15,"status":70,"updated":494,"updated_by":15},[],"2026-03-04 08:19:48.998Z",{"en":492,"th":492},"The Origin of Code","2026-02-18 01:59:52.528Z","2026-04-25 02:32:14.183Z","mne53jn0lm6k2tx","evolution-of-php-from-personal-tool-to-web-giant","2026-05-12 07:30:32.748Z","o7hs062vt49pkic","Discover the evolution of PHP—from Rasmus Lerdorf’s personal scripts to the most dominant server-side language in web history.","2026-05-11 21:24:14.643Z",{"alt":502,"cover_image_path":503,"created":504,"expand":505,"id":523,"published_at":127,"school_blog":519,"short_description":524,"title":525,"updated":526,"slug":520,"views":522},"History of PHP from a resume tracking script to a global web standard","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F674ffks78w25zf4\u002F2k36ktce3wm_xovvij6qyy.png","2026-05-25 05:41:16.526Z",{"keywords":506,"locale":513,"school_blog":514},[507,508,509],{"collectionId":12,"collectionName":13,"created":474,"created_by":15,"id":475,"name":476,"updated":477,"updated_by":15},{"collectionId":12,"collectionName":13,"created":479,"created_by":15,"id":480,"name":481,"updated":482,"updated_by":15},{"collectionId":12,"collectionName":13,"created":510,"created_by":15,"id":511,"name":512,"updated":510,"updated_by":15},"2026-05-25 05:21:48.990Z","ri85qu1k1oz6573","PHP",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":119,"collectionId":56,"collectionName":57,"created":15,"expand":515,"id":519,"slug":520,"updated":521,"views":522},{"category":516},{"blogIds":517,"collectionId":61,"collectionName":62,"created":123,"created_by":15,"id":119,"image":15,"image_alt":15,"image_path":15,"label":518,"name":125,"priority":126,"publish_at":127,"scheduled_at":15,"status":70,"updated":128,"updated_by":15},[],{"en":125,"th":125},"38enfgkirmgpypq","history-of-php-from-resume-tool-to-web-king","2026-05-28 10:41:42.053Z",265,"674ffks78w25zf4","A summary of the history of PHP, from its origin as Rasmus Lerdorf's personal tool to its development into the backend language powering over 70% of websites today.","History of PHP: From a Resume Tool to the Backend of 70% of Websites","2026-05-25 06:11:35.945Z",{"alt":528,"cover_image_path":529,"created":530,"expand":531,"id":560,"published_at":561,"school_blog":556,"short_description":562,"title":528,"updated":563,"slug":557,"views":559},"Golang The Series EP 135: CI\u002FCD for WebSocket Servers – Seamless Deployment Guide","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fuciara056gpthn7\u002Fcover_image_golang_the_series_ep_jygzx7lhwz.DeploymentGuide.webp","2026-03-04 08:44:19.424Z",{"keywords":532,"locale":550,"school_blog":551},[533,534,539,540,545],{"collectionId":12,"collectionName":13,"created":204,"created_by":15,"id":205,"name":206,"updated":207,"updated_by":15},{"collectionId":12,"collectionName":13,"created":535,"created_by":15,"id":536,"name":537,"updated":538,"updated_by":15},"2026-03-04 08:44:18.322Z","1n94l86nx7etuf9","CI\u002FCD","2026-04-10 16:12:43.067Z",{"collectionId":12,"collectionName":13,"created":209,"created_by":15,"id":210,"name":211,"updated":212,"updated_by":15},{"collectionId":12,"collectionName":13,"created":541,"created_by":15,"id":542,"name":543,"updated":544,"updated_by":15},"2026-03-04 08:44:18.652Z","jr5zczy6qrxmd88","Docker","2026-04-10 16:12:43.264Z",{"collectionId":12,"collectionName":13,"created":546,"created_by":15,"id":547,"name":548,"updated":549,"updated_by":15},"2026-03-04 08:44:18.923Z","jt1jqlzs29xu1i7","Deploy","2026-04-10 16:12:43.373Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":240,"collectionId":56,"collectionName":57,"created":15,"expand":552,"id":556,"slug":557,"updated":558,"views":559},{"category":553},{"blogIds":554,"collectionId":61,"collectionName":62,"created":244,"created_by":15,"id":240,"image":245,"image_alt":15,"image_path":246,"label":555,"name":248,"priority":249,"publish_at":250,"scheduled_at":15,"status":70,"updated":251,"updated_by":15},[],{"en":248,"th":248},"b5wbtaxm8jlj8ec","go-websocket-cicd-seamless-deployment-strategies","2026-05-23 20:23:29.582Z",210,"uciara056gpthn7","2026-02-17 01:37:55.380Z","Master CI\u002FCD for stateful systems. Learn how to deploy Go WebSocket servers seamlessly without dropping connections using GitHub Actions, Docker, and Graceful Shutdown patterns.","2026-05-08 06:51:47.260Z",3,12,414,35]