[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"game-2048":3,"verticals":62,"comments-game-2048":100,"search-suggestions":102},{"id":4,"slug":5,"title":5,"tagline":6,"description":7,"genre":8,"surface":9,"coverUrl":10,"accentFrom":11,"accentTo":12,"motif":13,"status":14,"weekKey":15,"featured":16,"sessionSeconds":17,"freeLevels":18,"maxScoreRate":19,"maxScore":20,"config":21,"faq":33,"controls":43,"seo":56,"playCount":57,"playerCount":57,"createdAt":58,"updatedAt":59,"releaseAt":60,"publishedAt":61,"you":56},"01a09b23-9f6f-74a5-a27a-21414662f65c","2048","Slide, merge, and try to stop at exactly the wrong moment.","2048 is the sliding-tile puzzle that ate 2014 and never quite let go. Swipe in any direction and every tile on the board slides that way; two tiles showing the same number collide into one showing double. Start at 2, and keep going until a single tile reads 2048. The rule takes five seconds to learn and the game takes weeks to actually beat, because the difficulty is not arithmetic — it is space. Every move spawns a new tile, so a board that looks comfortable is two careless swipes from having nowhere left to go. The winning habit is to pick one corner, keep your largest tile in it, and never, ever make the move that lets it out. This version keeps the original rules exactly, adds a proper undo, animates at your screen's refresh rate, and saves the board as you go — close the tab mid-game and it is still there tomorrow.","PUZZLE","DOM","\u002Fcovers\u002Fgames\u002F2048.png","amber-400","orange-500","tiles","PUBLISHED","2026-W37",false,300,1,50,643000,{"levels":22,"target":32},[23,26,29],{"name":24,"size":25},"4×4 Classic",4,{"name":27,"size":28},"5×5",5,{"name":30,"size":31},"6×6",6,2048,[34,37,40],{"answer":35,"question":36},"Pick a corner and never move your biggest tile out of it. In practice that means using only three of the four directions — if your anchor is bottom-left, you swipe down and left freely, right occasionally, and up almost never. Keep the bottom row filled in descending order and merges start happening on their own.","What is the best strategy for 2048?",{"answer":38,"question":39},"Yes, reliably, once the corner discipline becomes a habit. The 2048 tile needs 1024 spawned twos merged perfectly, which sounds impossible and is mostly patience. Players who get there usually keep going: 4096 is hard, 8192 is a project.","Is 2048 actually winnable?",{"answer":41,"question":42},"Here, yes — press U or tap the undo button to take back the last move. The original had no undo, so if you want the purist experience, simply never press it.","Can I undo a move in 2048?",[44,47,50,53],{"keys":45,"action":46},"↑ ↓ ← →","Slide every tile",{"keys":48,"action":49},"W A S D","Slide (left hand)",{"keys":51,"action":52},"Swipe","Slide on a phone",{"keys":54,"action":55},"U","Undo the last move",null,0,"2026-09-13T14:19:58.191Z","2026-09-13T15:02:51.915Z","2026-09-08T09:00:00.000Z","2026-09-13T14:21:47.710Z",[63,77,88],{"id":64,"slug":65,"name":66,"tagline":67,"description":68,"accentFrom":69,"accentTo":70,"icon":71,"defaultLocale":72,"locales":73,"features":75,"position":57},"019fe637-3d33-714b-b57f-23e163ffca0c","dev","Web Development","Read it. Run it. Prove it.","A post a day on modern web development — most with an editable playground and a quiz that explains every answer. Free, no account needed.","violet-500","cyan-400","◇","en",[72,74],"fa",{"courses":76,"paths":76,"articles":76,"exams":16,"flashcards":16,"packages":76,"community":76,"certificates":76,"teams":76,"commerce":76},true,{"id":78,"slug":79,"name":80,"tagline":81,"description":82,"accentFrom":11,"accentTo":69,"icon":83,"defaultLocale":72,"locales":84,"features":86,"position":87},"019fe637-3dc2-754c-8657-0f175bfee7c6","lang","Languages","Learn a language the way you learn a codebase.","Grammar explained the way good documentation explains an API — one idea at a time, each with a quiz.","⌘",[72,74,85],"es",{"courses":16,"paths":16,"articles":76,"exams":16,"flashcards":76,"packages":16,"community":76,"certificates":76,"teams":16,"commerce":16},2,{"id":89,"slug":90,"name":91,"tagline":92,"description":93,"accentFrom":94,"accentTo":95,"icon":96,"defaultLocale":72,"locales":97,"features":98,"position":99},"7b3c16f2-931d-410e-802e-e1fa4edab7de","soft","Soft Skills","The half of the job nobody wrote documentation for.","Weekly, on the parts of working life that decide more than your code does — first weeks, meetings, interviews, promotions, and the people around you. Written from what actually happens, and recorded as a podcast you can listen to on the walk.","emerald-400","teal-300","◉",[72],{"courses":16,"paths":16,"articles":76,"exams":16,"flashcards":16,"packages":16,"community":76,"certificates":16,"teams":16,"commerce":16},3,{"locked":16,"total":57,"comments":101},[],[103,107,111,115,119,123,127,131,135,139,142,145],{"slug":104,"name":105,"articles":106},"webdev","Webdev",93,{"slug":108,"name":109,"articles":110},"javascript","Javascript",78,{"slug":112,"name":113,"articles":114},"frontend","Frontend",70,{"slug":116,"name":117,"articles":118},"css","Css",32,{"slug":120,"name":121,"articles":122},"tutorial","Tutorial",24,{"slug":124,"name":125,"articles":126},"typescript","Typescript",14,{"slug":128,"name":129,"articles":130},"performance","Performance",12,{"slug":132,"name":133,"articles":134},"react","React",11,{"slug":136,"name":137,"articles":138},"browser","Browser",8,{"slug":140,"name":141,"articles":138},"node","Node",{"slug":143,"name":144,"articles":31},"grammar","Grammar",{"slug":146,"name":147,"articles":31},"programming","Programming"]