[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-5-12-superdev%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520academy-all-all-createdAt:desc-default":3},{"data":4,"page":566,"perPage":567,"totalItems":568,"totalPages":569},[5,82,139,198,262,299,341,373,415,462,502,529],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":77,"published_at":78,"school_blog":73,"short_description":79,"title":80,"updated":81,"slug":74,"views":76},"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","76qprkevbgfdps8","ux2m77tsy8v19bg","Rust Programming","2026-06-07 06:45:07.353Z",{"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-06-07 06:45:07.039Z",{"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-06-07 06:48:56.460Z",{"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-06-07 06:46:19.341Z",{"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-06-07 06:48:56.604Z",{"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-06-07 06:46:28.624Z",{"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":58,"expand":59,"id":73,"slug":74,"updated":75,"views":76},"mfqe235iv6x1or8","pbc_2105096300","school_blogs","",{"category":60},{"blogIds":61,"collectionId":62,"collectionName":63,"created":64,"created_by":15,"id":55,"image":65,"image_alt":58,"image_path":66,"label":67,"name":68,"priority":69,"publish_at":70,"scheduled_at":58,"status":71,"updated":72,"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":68,"th":68},"Rust The Series",2,"2026-03-16 04:40:09.199Z","published","2026-06-07 06:45:03.994Z","qopjdv8pbq5vd5r","why-rust-programming-language-ep1","2026-07-03 06:32:40.419Z",257,"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-06-07 06:44:46.680Z",{"alt":83,"cover_image_path":84,"created":85,"expand":86,"id":134,"published_at":135,"school_blog":130,"short_description":136,"title":137,"updated":138,"slug":131,"views":133},"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":87,"locale":118,"school_blog":119},[88,93,98,103,108,113],{"collectionId":12,"collectionName":13,"created":89,"created_by":15,"id":90,"name":91,"updated":92,"updated_by":15},"2026-03-16 05:53:14.820Z","j85uu14nwfncx1a","Ruby History","2026-06-07 06:48:57.251Z",{"collectionId":12,"collectionName":13,"created":94,"created_by":15,"id":95,"name":96,"updated":97,"updated_by":15},"2026-03-04 08:34:47.544Z","3ky9n7b9hsgjf35","Ruby","2026-06-07 06:46:16.683Z",{"collectionId":12,"collectionName":13,"created":99,"created_by":15,"id":100,"name":101,"updated":102,"updated_by":15},"2026-03-16 05:53:24.913Z","3agesqkm8jsfhwm","What is Ruby","2026-06-07 06:48:57.454Z",{"collectionId":12,"collectionName":13,"created":104,"created_by":15,"id":105,"name":106,"updated":107,"updated_by":15},"2026-03-16 05:49:10.525Z","s0pqrcq7u7b17fv","Yukihiro Matsumoto","2026-06-07 06:48:56.899Z",{"collectionId":12,"collectionName":13,"created":109,"created_by":15,"id":110,"name":111,"updated":112,"updated_by":15},"2026-03-16 05:49:18.125Z","0runldorrswj5ds","MINASWAN","2026-06-07 06:48:57.120Z",{"collectionId":12,"collectionName":13,"created":114,"created_by":15,"id":115,"name":116,"updated":117,"updated_by":15},"2026-03-04 08:19:55.412Z","hz7yzm54i2o6cl7","web development","2026-06-07 06:45:06.116Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":120,"collectionId":56,"collectionName":57,"created":58,"expand":121,"id":130,"slug":131,"updated":132,"views":133},"isnp2fv80bn3yem",{"category":122},{"blogIds":123,"collectionId":62,"collectionName":63,"created":124,"created_by":15,"id":120,"image":58,"image_alt":58,"image_path":58,"label":125,"name":126,"priority":127,"publish_at":128,"scheduled_at":58,"status":71,"updated":129,"updated_by":15},[],"2026-03-04 08:19:47.590Z",{"en":126,"th":126},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","2026-06-07 06:45:01.789Z","g8t67hwsdyuoztk","evolution-of-ruby-for-developer-happiness","2026-06-29 13:12:36.798Z",152,"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-06-07 06:44:47.072Z",{"alt":140,"cover_image_path":141,"created":142,"expand":143,"id":193,"published_at":194,"school_blog":189,"short_description":195,"title":196,"updated":197,"slug":190,"views":192},"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":144,"locale":175,"school_blog":176},[145,150,155,160,165,170],{"collectionId":12,"collectionName":13,"created":146,"created_by":15,"id":147,"name":148,"updated":149,"updated_by":15},"2026-03-16 06:48:56.529Z","t89p5msf6snqcxd","MacBook external monitor","2026-06-07 06:48:58.197Z",{"collectionId":12,"collectionName":13,"created":151,"created_by":15,"id":152,"name":153,"updated":154,"updated_by":15},"2026-03-16 06:49:05.338Z","87md0kh84kqbx8c","best monitor for programming 2026","2026-06-07 06:48:58.337Z",{"collectionId":12,"collectionName":13,"created":156,"created_by":15,"id":157,"name":158,"updated":159,"updated_by":15},"2026-03-16 06:29:41.694Z","0jobzj69zmb9rsg","ARZOPA Z1RC","2026-06-07 06:48:57.855Z",{"collectionId":12,"collectionName":13,"created":161,"created_by":15,"id":162,"name":163,"updated":164,"updated_by":15},"2026-03-16 06:49:22.523Z","bszj87t9ek8zlas","BenQ RD280U","2026-06-07 06:48:58.480Z",{"collectionId":12,"collectionName":13,"created":166,"created_by":15,"id":167,"name":168,"updated":169,"updated_by":15},"2026-03-16 06:49:51.533Z","5eyvwytlle97npa","programmer setup","2026-06-07 06:48:58.677Z",{"collectionId":12,"collectionName":13,"created":171,"created_by":15,"id":172,"name":173,"updated":174,"updated_by":15},"2026-03-16 06:49:58.837Z","u1s8mqzkkosas82","developer gadgets","2026-06-07 06:48:58.816Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":177,"collectionId":56,"collectionName":57,"created":58,"expand":178,"id":189,"slug":190,"updated":191,"views":192},"spm4l1k5bgmhmmt",{"category":179},{"blogIds":180,"collectionId":62,"collectionName":63,"created":181,"created_by":15,"id":177,"image":182,"image_alt":58,"image_path":183,"label":184,"name":185,"priority":186,"publish_at":187,"scheduled_at":58,"status":71,"updated":188,"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":185,"th":185},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-06-07 06:45:02.533Z","s3vhc075erm9t15","best-macbook-monitors-for-programmers-2026","2026-07-03 07:51:55.863Z",217,"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-06-07 06:44:47.608Z",{"alt":199,"cover_image_path":200,"created":201,"expand":202,"id":257,"published_at":258,"school_blog":253,"short_description":259,"title":260,"updated":261,"slug":254,"views":256},"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":203,"locale":239,"school_blog":240},[204,209,214,219,224,229,234],{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-06-07 06:45:08.193Z",{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-06-07 06:45:55.734Z",{"collectionId":12,"collectionName":13,"created":215,"created_by":15,"id":216,"name":217,"updated":218,"updated_by":15},"2026-03-04 08:46:00.361Z","wq8gqpsnvd2bmma","Enterprise","2026-06-07 06:46:59.463Z",{"collectionId":12,"collectionName":13,"created":220,"created_by":15,"id":221,"name":222,"updated":223,"updated_by":15},"2026-03-04 08:44:21.262Z","f2p94t41e9t8hnv","system design","2026-06-07 06:46:31.636Z",{"collectionId":12,"collectionName":13,"created":225,"created_by":15,"id":226,"name":227,"updated":228,"updated_by":15},"2026-03-16 03:49:11.920Z","68w24pqpvxluy94","Roadmap","2026-06-07 06:48:55.437Z",{"collectionId":12,"collectionName":13,"created":230,"created_by":15,"id":231,"name":232,"updated":233,"updated_by":15},"2026-03-16 04:03:30.341Z","xbv6j7jyjlxdqqv","Software Engineering","2026-06-07 06:48:55.885Z",{"collectionId":12,"collectionName":13,"created":235,"created_by":15,"id":236,"name":237,"updated":238,"updated_by":15},"2026-03-04 08:44:53.062Z","puutdnxuitnxxgq","Backend","2026-06-07 06:46:40.599Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":242,"id":253,"slug":254,"updated":255,"views":256},"wqxt7ag2gn7xcmk",{"category":243},{"blogIds":244,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":248,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"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":249,"th":249},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-06-07 06:45:03.856Z","c2puowxb5818jta","go-enterprise-websocket-roadmap-series-finale","2026-07-02 11:23:45.870Z",169,"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-06-07 06:44:46.237Z",{"alt":263,"cover_image_path":264,"created":265,"expand":266,"id":295,"published_at":296,"school_blog":291,"short_description":297,"title":263,"updated":298,"slug":292,"views":294},"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":267,"locale":285,"school_blog":286},[268,269,270,275,280],{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"collectionId":12,"collectionName":13,"created":271,"created_by":15,"id":272,"name":273,"updated":274,"updated_by":15},"2026-03-04 08:40:54.386Z","hmclps1vkgyr7my","Mobile Development","2026-06-07 06:46:27.790Z",{"collectionId":12,"collectionName":13,"created":276,"created_by":15,"id":277,"name":278,"updated":279,"updated_by":15},"2026-03-04 08:40:54.493Z","te1uagqlfki2src","Bandwidth Optimization","2026-06-07 06:46:27.903Z",{"collectionId":12,"collectionName":13,"created":281,"created_by":15,"id":282,"name":283,"updated":284,"updated_by":15},"2026-03-04 08:40:54.606Z","s26m2zvbm8amosp","Real-time Systems","2026-06-07 06:46:28.003Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":287,"id":291,"slug":292,"updated":293,"views":294},{"category":288},{"blogIds":289,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":290,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"3kpsi6righezgrh","go-websocket-mobile-resilience-strategies","2026-06-09 17:41:41.698Z",212,"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-06-07 06:43:13.899Z",{"alt":300,"cover_image_path":301,"created":302,"expand":303,"id":337,"published_at":338,"school_blog":333,"short_description":339,"title":300,"updated":340,"slug":334,"views":336},"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":304,"locale":327,"school_blog":328},[305,310,315,320,325,326],{"collectionId":12,"collectionName":13,"created":306,"created_by":15,"id":307,"name":308,"updated":309,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"collectionId":12,"collectionName":13,"created":311,"created_by":15,"id":312,"name":313,"updated":314,"updated_by":15},"2026-03-04 08:44:10.705Z","xicaissou94ouj5","Protobuf","2026-06-07 06:46:28.338Z",{"collectionId":12,"collectionName":13,"created":316,"created_by":15,"id":317,"name":318,"updated":319,"updated_by":15},"2026-03-04 08:44:11.548Z","ezm3p0vsuowuadd","Latency","2026-06-07 06:46:28.821Z",{"collectionId":12,"collectionName":13,"created":321,"created_by":15,"id":322,"name":323,"updated":324,"updated_by":15},"2026-03-04 08:44:12.339Z","s0awvhr8cgjuosg","Performance Tuning","2026-06-07 06:46:29.100Z",{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":329,"id":333,"slug":334,"updated":335,"views":336},{"category":330},{"blogIds":331,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":332,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"fwr0pxtvmc42yqk","go-websocket-latency-monitoring-performance-tuning","2026-06-17 14:06:18.478Z",216,"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-06-07 06:43:14.548Z",{"alt":342,"cover_image_path":343,"created":344,"expand":345,"id":369,"published_at":370,"school_blog":366,"short_description":371,"title":342,"updated":372,"slug":367,"views":294},"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":346,"locale":360,"school_blog":361},[347,348,349,350,355],{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"collectionId":12,"collectionName":13,"created":306,"created_by":15,"id":307,"name":308,"updated":309,"updated_by":15},{"collectionId":12,"collectionName":13,"created":351,"created_by":15,"id":352,"name":353,"updated":354,"updated_by":15},"2026-03-04 08:34:45.957Z","gk56ug8j38rhci3","cybersecurity","2026-06-07 06:46:15.958Z",{"collectionId":12,"collectionName":13,"created":356,"created_by":15,"id":357,"name":358,"updated":359,"updated_by":15},"2026-03-04 08:44:13.045Z","g4w6cq87d9yzbaz","CSWSH","2026-06-07 06:46:29.315Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":362,"id":366,"slug":367,"updated":368,"views":294},{"category":363},{"blogIds":364,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":365,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"e48pslht6qcpb01","go-enterprise-websocket-security-guide-best-practices","2026-06-25 13:47:39.603Z","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-06-07 06:43:14.950Z",{"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":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"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-06-07 06:46:29.576Z",{"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-06-07 06:46:29.681Z",{"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-06-07 06:46:29.806Z",{"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-06-07 06:46:29.966Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":403,"id":407,"slug":408,"updated":409,"views":410},{"category":404},{"blogIds":405,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":406,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"s6w8li1iqpuuwka","go-websocket-versioning-strategies-guide","2026-06-30 19:02:59.771Z",254,"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-06-07 06:43:15.356Z",{"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-06-07 06:46:30.108Z",{"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-06-07 06:46:30.326Z",{"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-06-07 06:46:30.614Z",{"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-06-07 06:46:30.713Z",{"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":58,"expand":444,"id":454,"slug":455,"updated":456,"views":457},"rfxf19ot4iq992c",{"category":445},{"blogIds":446,"collectionId":62,"collectionName":63,"created":447,"created_by":15,"id":443,"image":448,"image_alt":58,"image_path":449,"label":450,"name":451,"priority":186,"publish_at":452,"scheduled_at":58,"status":71,"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-06-07 06:45:03.121Z","98jiz88lg5ihh7t","how-to-use-cloudflare-tunnel-localhost","2026-07-02 15:14:50.701Z",233,"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-06-07 06:43:15.840Z",{"alt":463,"cover_image_path":464,"created":465,"expand":466,"id":499,"published_at":493,"school_blog":495,"short_description":500,"title":463,"updated":501,"slug":496,"views":498},"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-06-07 06:45:05.466Z",{"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-06-07 06:45:05.748Z",{"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-06-07 06:45:05.933Z",{"collectionId":12,"collectionName":13,"created":114,"created_by":15,"id":115,"name":116,"updated":117,"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":58,"expand":487,"id":495,"slug":496,"updated":497,"views":498},"102u7miss0ec94h",{"category":488},{"blogIds":489,"collectionId":62,"collectionName":63,"created":490,"created_by":15,"id":486,"image":58,"image_alt":58,"image_path":58,"label":491,"name":492,"priority":127,"publish_at":493,"scheduled_at":58,"status":71,"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-06-07 06:45:02.012Z","mne53jn0lm6k2tx","evolution-of-php-from-personal-tool-to-web-giant","2026-06-27 20:24:35.443Z",211,"o7hs062vt49pkic","Discover the evolution of PHP—from Rasmus Lerdorf’s personal scripts to the most dominant server-side language in web history.","2026-06-07 06:42:42.945Z",{"alt":503,"cover_image_path":504,"created":505,"expand":506,"id":525,"published_at":128,"school_blog":521,"short_description":526,"title":527,"updated":528,"slug":522,"views":524},"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":507,"locale":515,"school_blog":516},[508,509,510],{"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":511,"created_by":15,"id":512,"name":513,"updated":514,"updated_by":15},"2026-05-25 05:21:48.990Z","ri85qu1k1oz6573","PHP","2026-06-07 06:49:20.547Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":120,"collectionId":56,"collectionName":57,"created":58,"expand":517,"id":521,"slug":522,"updated":523,"views":524},{"category":518},{"blogIds":519,"collectionId":62,"collectionName":63,"created":124,"created_by":15,"id":120,"image":58,"image_alt":58,"image_path":58,"label":520,"name":126,"priority":127,"publish_at":128,"scheduled_at":58,"status":71,"updated":129,"updated_by":15},[],{"en":126,"th":126},"38enfgkirmgpypq","history-of-php-from-resume-tool-to-web-king","2026-07-01 10:00:38.660Z",286,"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-06-07 06:45:00.368Z",{"alt":530,"cover_image_path":531,"created":532,"expand":533,"id":562,"published_at":563,"school_blog":558,"short_description":564,"title":530,"updated":565,"slug":559,"views":561},"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":534,"locale":552,"school_blog":553},[535,536,541,542,547],{"collectionId":12,"collectionName":13,"created":205,"created_by":15,"id":206,"name":207,"updated":208,"updated_by":15},{"collectionId":12,"collectionName":13,"created":537,"created_by":15,"id":538,"name":539,"updated":540,"updated_by":15},"2026-03-04 08:44:18.322Z","1n94l86nx7etuf9","CI\u002FCD","2026-06-07 06:46:30.916Z",{"collectionId":12,"collectionName":13,"created":210,"created_by":15,"id":211,"name":212,"updated":213,"updated_by":15},{"collectionId":12,"collectionName":13,"created":543,"created_by":15,"id":544,"name":545,"updated":546,"updated_by":15},"2026-03-04 08:44:18.652Z","jr5zczy6qrxmd88","Docker","2026-06-07 06:46:30.990Z",{"collectionId":12,"collectionName":13,"created":548,"created_by":15,"id":549,"name":550,"updated":551,"updated_by":15},"2026-03-04 08:44:18.923Z","jt1jqlzs29xu1i7","Deploy","2026-06-07 06:46:31.098Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":241,"collectionId":56,"collectionName":57,"created":58,"expand":554,"id":558,"slug":559,"updated":560,"views":561},{"category":555},{"blogIds":556,"collectionId":62,"collectionName":63,"created":245,"created_by":15,"id":241,"image":246,"image_alt":58,"image_path":247,"label":557,"name":249,"priority":250,"publish_at":251,"scheduled_at":58,"status":71,"updated":252,"updated_by":15},[],{"en":249,"th":249},"b5wbtaxm8jlj8ec","go-websocket-cicd-seamless-deployment-strategies","2026-06-12 19:11:12.501Z",213,"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-06-07 06:43:16.014Z",5,12,438,37]