[{"data":1,"prerenderedAt":1835},["ShallowReactive",2],{"instruo-catalogue":3,"i-tabler:layout-sidebar":1683,"i-tabler:search":1688,"i-tabler:brand-github":1690,"i-tabler:tools":1692,"i-tabler:device-gamepad-2":1694,"i-tabler:ball-basketball":1696,"i-tabler:coins":1698,"i-tabler:feather":1700,"i-tabler:ghost":1702,"i-tabler:list-numbers":1704,"i-tabler:bolt":1706,"i-tabler:hand-click":1708,"i-tabler:brain":1710,"i-tabler:vector-spline":1712,"i-tabler:blocks":1714,"i-tabler:bulb":1716,"i-tabler:lock":1718,"i-tabler:bomb":1720,"i-tabler:stack-2":1722,"i-tabler:box":1724,"i-tabler:grid-4x4":1726,"i-tabler:chart-line":1728,"i-tabler:grid-3x3":1730,"i-tabler:target":1732,"i-tabler:world":1734,"i-tabler:help-circle":1736,"i-tabler:circle-dot":1738,"i-tabler:cards":1740,"i-tabler:layout-grid":1742,"i-tabler:puzzle-2":1744,"i-tabler:cursor-text":1746,"i-tabler:keyboard":1748,"i-tabler:letter-case":1750,"i-tabler:text-spellcheck":1752,"i-tabler:arrow-up-left":1754,"resource-help:game:fifteen-puzzle":1756,"i-tabler:arrow-left":1831,"i-tabler:maximize":1833},[4,21,39,51,67,82,98,113,126,143,159,174,186,198,214,229,244,260,277,287,300,313,324,338,350,362,375,386,400,414,424,437,447,461,475,488,502,514,526,540,554,567,580,594,605,616,629,642,653,664,676,688,699,710,721,735,745,758,768,783,796,809,821,833,846,858,869,883,896,908,920,932,944,956,967,981,991,1001,1012,1024,1036,1047,1061,1075,1087,1102,1115,1127,1140,1154,1167,1181,1192,1205,1216,1229,1240,1252,1266,1278,1288,1299,1311,1323,1335,1345,1355,1367,1376,1388,1400,1411,1425,1439,1451,1464,1476,1487,1500,1513,1527,1544,1556,1568,1579,1590,1603,1617,1630,1640,1651,1662,1672],{"id":5,"kind":6,"slug":7,"title":8,"description":9,"category":10,"icon":11,"route":12,"sourcePath":13,"processing":14,"tags":15,"aliases":20},"tool:env-formatter","tool","env-formatter",".env Formatter","Normalize environment-file spacing while preserving comments and values.","Developer","tabler:file-settings","\u002Ftools\u002Fenv-formatter","\u002Ftools\u002Fdeveloper\u002Fenv-formatter","local",[16,17,18,19],"env","formatter","configuration","developer",[],{"id":22,"kind":23,"slug":24,"title":25,"description":26,"category":27,"icon":28,"route":29,"sourcePath":30,"artwork":31,"processing":14,"tags":32,"aliases":38},"game:fifteen-puzzle","game","fifteen-puzzle","15 Puzzle","Slide numbered tiles into order with one empty square and a running timer.","Number","tabler:grid-4x4","\u002Fgames\u002Ffifteen-puzzle","\u002Fgames\u002Fnumber\u002Ffifteen-puzzle","\u002Fgame-arts\u002Ffifteen-puzzle.jpg",[33,34,35,36,37],"15-puzzle","sliding-puzzle","number-game","browser-game","puzzle",[],{"id":40,"kind":23,"slug":41,"title":41,"description":42,"category":27,"icon":43,"route":44,"sourcePath":45,"artwork":46,"processing":14,"tags":47,"aliases":50},"game:2048","2048","Slide and merge matching number tiles until you create 2048.","tabler:layout-grid","\u002Fgames\u002F2048","\u002Fgames\u002Fnumber\u002F2048","\u002Fgame-arts\u002F2048.jpg",[48,35,37,49,36],2048,"merge",[],{"id":52,"kind":6,"slug":53,"title":54,"description":55,"category":56,"icon":57,"route":58,"sourcePath":59,"processing":14,"tags":60,"aliases":66},"tool:aes-encryptor","aes-encryptor","AES Text Encryptor","Encrypt or decrypt text with AES-GCM and a password using Web Crypto.","Security","tabler:lock","\u002Ftools\u002Faes-encryptor","\u002Ftools\u002Fsecurity\u002Faes-encryptor",[61,62,63,64,65],"aes","encrypt","decrypt","cryptography","security",[],{"id":68,"kind":6,"slug":69,"title":70,"description":71,"category":72,"icon":73,"route":74,"sourcePath":75,"processing":14,"tags":76,"aliases":81},"tool:age-calculator","age-calculator","Age Calculator","Calculate current age and the next birthday from a birth date.","Everyday","tabler:cake","\u002Ftools\u002Fage-calculator","\u002Ftools\u002Feveryday\u002Fage-calculator",[77,78,79,80],"age","birthday","date","calculator",[],{"id":83,"kind":6,"slug":84,"title":85,"description":86,"category":10,"icon":87,"route":88,"sourcePath":89,"processing":14,"tags":90,"aliases":97},"tool:api-request-builder","api-request-builder","API Request Builder","Compose browser-local HTTP requests and export them as cURL, Fetch, Axios, or HTTPie.","tabler:api","\u002Ftools\u002Fapi-request-builder","\u002Ftools\u002Fdeveloper\u002Fapi-request-builder",[91,92,93,94,95,96],"api","http","curl","fetch","axios","request",[],{"id":99,"kind":6,"slug":100,"title":101,"description":102,"category":103,"icon":104,"route":105,"sourcePath":106,"processing":14,"tags":107,"aliases":112},"tool:base64","base64","Base64","Encode text to Base64 or decode Base64 to plain text.","Encoder Decoder","tabler:file-certificate","\u002Ftools\u002Fbase64","\u002Ftools\u002Fencoder-decoder\u002Fbase64",[108,109,110,111,100],"encoder","decoder","base64-to-text","text-to-base64",[],{"id":114,"kind":6,"slug":115,"title":116,"description":117,"category":103,"icon":118,"route":119,"sourcePath":120,"processing":14,"tags":121,"aliases":125},"tool:binary-text","binary-text","Binary","Convert text to binary or binary to text with ease.","tabler:binary","\u002Ftools\u002Fbinary-text","\u002Ftools\u002Fencoder-decoder\u002Fbinary-text",[108,109,122,123,124],"binary-to-text","text-to-binary","binary",[],{"id":127,"kind":23,"slug":128,"title":129,"description":130,"category":131,"icon":132,"route":133,"sourcePath":134,"artwork":135,"processing":14,"tags":136,"aliases":142},"game:blackjack-lite","blackjack-lite","Blackjack","Play a tactile local hand against a dealer and get closest to 21.","Strategy","tabler:cards","\u002Fgames\u002Fblackjack-lite","\u002Fgames\u002Fstrategy\u002Fblackjack-lite","\u002Fgame-arts\u002Fblackjack-lite.jpg",[137,138,139,140,141],"blackjack","cards","twenty-one","strategy","card-game",[],{"id":144,"kind":23,"slug":145,"title":146,"description":147,"category":148,"icon":149,"route":150,"sourcePath":151,"artwork":152,"processing":14,"tags":153,"aliases":158},"game:breakout","breakout","Breakout","Clear continuously generated brick patterns, survive the speed ramp, and chase a clean local high score.","Arcade","tabler:ball-basketball","\u002Fgames\u002Fbreakout","\u002Fgames\u002Farcade\u002Fbreakout","\u002Fgame-arts\u002Fbreakout.jpg",[145,154,155,156,157,36],"paddle","bricks","physics","arcade",[],{"id":160,"kind":6,"slug":161,"title":162,"description":163,"category":72,"icon":164,"route":165,"sourcePath":166,"processing":14,"tags":167,"aliases":173},"tool:slug-bulk","slug-bulk","Bulk Slug Generator","Turn one title per line into clean URL-safe slugs.","tabler:link","\u002Ftools\u002Fslug-bulk","\u002Ftools\u002Feveryday\u002Fslug-bulk",[168,169,170,171,172],"slug","url","text","seo","bulk",[],{"id":175,"kind":6,"slug":176,"title":177,"description":178,"category":72,"icon":179,"route":180,"sourcePath":181,"processing":14,"tags":182,"aliases":185},"tool:business-days","business-days","Business Days Calculator","Count working days with custom weekends, holidays, and inclusive date controls.","tabler:calendar-check","\u002Ftools\u002Fbusiness-days","\u002Ftools\u002Feveryday\u002Fbusiness-days",[183,184,79,80],"business days","calendar",[],{"id":187,"kind":6,"slug":188,"title":189,"description":190,"category":72,"icon":191,"route":192,"sourcePath":193,"processing":14,"tags":194,"aliases":197},"tool:calendar-duration","calendar-duration","Calendar Duration Calculator","Calculate elapsed hours and minutes between two date-times.","tabler:calendar-time","\u002Ftools\u002Fcalendar-duration","\u002Ftools\u002Feveryday\u002Fcalendar-duration",[184,195,196,80],"duration","time",[],{"id":199,"kind":23,"slug":200,"title":201,"description":202,"category":203,"icon":204,"route":205,"sourcePath":206,"artwork":207,"processing":14,"tags":208,"aliases":213},"game:capital-quiz","capital-quiz","Capital Quiz","Play rotating ten-question geography rounds from a larger local bank of world capitals.","Quiz","tabler:world","\u002Fgames\u002Fcapital-quiz","\u002Fgames\u002Fquiz\u002Fcapital-quiz","\u002Fgame-arts\u002Fcapital-quiz.jpg",[200,209,210,211,212],"geography","trivia","capitals","quiz",[],{"id":215,"kind":6,"slug":216,"title":217,"description":218,"category":219,"icon":220,"route":221,"sourcePath":222,"processing":14,"tags":223,"aliases":228},"tool:case-changer","case-changer","Case Changer","Change the case of the entered text.","Text","tabler:letter-case","\u002Ftools\u002Fcase-changer","\u002Ftools\u002Ftext\u002Fcase-changer",[170,216,224,225,226,227],"lowercase","uppercase","sentence-case","capitalize",[],{"id":230,"kind":23,"slug":231,"title":232,"description":233,"category":148,"icon":234,"route":235,"sourcePath":236,"artwork":237,"processing":14,"tags":238,"aliases":243},"game:coin-flip","coin-flip","Coin Flip","Flip a local virtual coin whenever you need a quick random choice.","tabler:coins","\u002Fgames\u002Fcoin-flip","\u002Fgames\u002Farcade\u002Fcoin-flip","\u002Fgame-arts\u002Fcoin-flip.jpg",[231,239,240,241,242],"random","choice","heads","tails",[],{"id":245,"kind":6,"slug":246,"title":247,"description":248,"category":249,"icon":250,"route":251,"sourcePath":252,"processing":14,"tags":253,"aliases":259},"tool:color-contrast","color-contrast","Color Contrast Checker","Check foreground and background contrast against WCAG text guidance.","Image","tabler:contrast-2","\u002Ftools\u002Fcolor-contrast","\u002Ftools\u002Fimage\u002Fcolor-contrast",[254,255,256,257,258],"color","contrast","wcag","accessibility","design",[],{"id":261,"kind":6,"slug":262,"title":263,"description":264,"category":10,"icon":265,"route":266,"sourcePath":267,"processing":14,"tags":268,"aliases":276},"tool:color-converter","color-converter","Color Converter","Preview and convert CSS colors across HEX, RGB, HSL, OKLCH, LCH, Lab, and Display P3.","tabler:palette","\u002Ftools\u002Fcolor-converter","\u002Ftools\u002Fdeveloper\u002Fcolor-converter",[254,269,270,271,272,273,274,275,19],"hex","rgb","hsl","oklch","lch","lab","css",[],{"id":278,"kind":6,"slug":279,"title":280,"description":281,"category":249,"icon":265,"route":282,"sourcePath":283,"processing":14,"tags":284,"aliases":286},"tool:palette-generator","palette-generator","Color Palette Generator","Create a five-step light-to-dark palette from one hex color.","\u002Ftools\u002Fpalette-generator","\u002Ftools\u002Fimage\u002Fpalette-generator",[254,285,258,269],"palette",[],{"id":288,"kind":6,"slug":289,"title":290,"description":291,"category":72,"icon":292,"route":293,"sourcePath":294,"processing":14,"tags":295,"aliases":299},"tool:compound-interest","compound-interest","Compound Interest Calculator","Estimate long-term growth with recurring contributions and selectable compounding.","tabler:chart-line","\u002Ftools\u002Fcompound-interest","\u002Ftools\u002Feveryday\u002Fcompound-interest",[296,297,298,80],"money","savings","interest",[],{"id":301,"kind":23,"slug":302,"title":303,"description":304,"category":131,"icon":305,"route":306,"sourcePath":307,"artwork":308,"processing":14,"tags":309,"aliases":312},"game:connect-four","connect-four","Connect Four","Drop discs into a classic seven-column board and make four in a row.","tabler:circle-dot","\u002Fgames\u002Fconnect-four","\u002Fgames\u002Fstrategy\u002Fconnect-four","\u002Fgame-arts\u002Fconnect-four.jpg",[302,310,140,311,36],"four-in-a-row","two-player",[],{"id":314,"kind":6,"slug":315,"title":316,"description":317,"category":56,"icon":204,"route":318,"sourcePath":319,"processing":14,"tags":320,"aliases":323},"tool:cors-builder","cors-builder","CORS Header Builder","Compose explicit CORS response headers for browser APIs and preflight requests.","\u002Ftools\u002Fcors-builder","\u002Ftools\u002Fsecurity\u002Fcors-builder",[321,322,92,91,65],"cors","headers",[],{"id":325,"kind":6,"slug":326,"title":327,"description":328,"category":10,"icon":329,"route":330,"sourcePath":331,"processing":14,"tags":332,"aliases":337},"tool:cron-builder","cron-builder","Cron Expression Builder","Build a five-field cron schedule from familiar minute, hour, day, month, and weekday fields.","tabler:clock-cog","\u002Ftools\u002Fcron-builder","\u002Ftools\u002Fdeveloper\u002Fcron-builder",[333,334,335,336,19],"cron","schedule","linux","automation",[],{"id":339,"kind":6,"slug":340,"title":341,"description":342,"category":56,"icon":343,"route":344,"sourcePath":345,"processing":14,"tags":346,"aliases":349},"tool:csp-builder","csp-builder","CSP Header Builder","Build a readable Content-Security-Policy header from directive fields.","tabler:shield-check","\u002Ftools\u002Fcsp-builder","\u002Ftools\u002Fsecurity\u002Fcsp-builder",[347,322,348,65],"csp","web-security",[],{"id":351,"kind":6,"slug":352,"title":353,"description":354,"category":249,"icon":355,"route":356,"sourcePath":357,"processing":14,"tags":358,"aliases":361},"tool:css-gradient","css-gradient","CSS Gradient Generator","Build a copy-ready linear-gradient declaration with a live preview.","tabler:gradienter","\u002Ftools\u002Fcss-gradient","\u002Ftools\u002Fimage\u002Fcss-gradient",[275,359,258,360],"gradient","generator",[],{"id":363,"kind":6,"slug":364,"title":365,"description":366,"category":10,"icon":367,"route":368,"sourcePath":369,"processing":14,"tags":370,"aliases":374},"tool:css-minifier","css-minifier","CSS Minifier","Remove comments and unnecessary whitespace from CSS in your browser.","tabler:brackets","\u002Ftools\u002Fcss-minifier","\u002Ftools\u002Fdeveloper\u002Fcss-minifier",[275,371,372,373,19],"minifier","stylesheet","frontend",[],{"id":376,"kind":6,"slug":377,"title":378,"description":379,"category":249,"icon":380,"route":381,"sourcePath":382,"processing":14,"tags":383,"aliases":385},"tool:css-shadow","css-shadow","CSS Shadow Generator","Build a copy-ready box-shadow declaration with a live preview.","tabler:shadow","\u002Ftools\u002Fcss-shadow","\u002Ftools\u002Fimage\u002Fcss-shadow",[275,384,258,360],"shadow",[],{"id":387,"kind":6,"slug":388,"title":389,"description":390,"category":10,"icon":391,"route":392,"sourcePath":393,"processing":14,"tags":394,"aliases":399},"tool:csv-json","csv-json","CSV to JSON","Convert CSV, TSV, or delimited rows into JSON with header and value-type controls.","tabler:file-spreadsheet","\u002Ftools\u002Fcsv-json","\u002Ftools\u002Fdeveloper\u002Fcsv-json",[395,396,397,398,19],"csv","json","converter","data",[],{"id":401,"kind":23,"slug":402,"title":403,"description":404,"category":405,"icon":406,"route":407,"sourcePath":408,"artwork":409,"processing":14,"tags":410,"aliases":413},"game:crossword","crossword","Daily Crossword","Solve a traditional 15×15 blocked crossword with numbered clues, keyboard controls, and dictionary-backed definitions.","Word","tabler:puzzle-2","\u002Fgames\u002Fcrossword","\u002Fgames\u002Fword\u002Fcrossword","\u002Fgame-arts\u002Fcrossword.jpg",[402,37,411,412,36],"clues","vocabulary",[],{"id":415,"kind":6,"slug":416,"title":417,"description":418,"category":72,"icon":204,"route":419,"sourcePath":420,"processing":14,"tags":421,"aliases":423},"tool:date-timezone","date-timezone","Date and Timezone Converter","Convert a local date-time into a readable time in another timezone.","\u002Ftools\u002Fdate-timezone","\u002Ftools\u002Feveryday\u002Fdate-timezone",[79,196,422,397],"timezone",[],{"id":425,"kind":6,"slug":426,"title":427,"description":428,"category":10,"icon":429,"route":430,"sourcePath":431,"processing":14,"tags":432,"aliases":436},"tool:dockerfile-formatter","dockerfile-formatter","Dockerfile Formatter","Normalize Dockerfile instruction casing without changing shell content.","tabler:brand-docker","\u002Ftools\u002Fdockerfile-formatter","\u002Ftools\u002Fdeveloper\u002Fdockerfile-formatter",[433,434,17,435,19],"docker","dockerfile","containers",[],{"id":438,"kind":6,"slug":439,"title":440,"description":441,"category":219,"icon":442,"route":443,"sourcePath":444,"processing":14,"tags":445,"aliases":446},"tool:duplicate-line-remover","duplicate-line-remover","Duplicate Line Remover","Remove duplicate lines from your text quickly and efficiently.","tabler:playlist-x","\u002Ftools\u002Fduplicate-line-remover","\u002Ftools\u002Ftext\u002Fduplicate-line-remover",[170,439],[],{"id":448,"kind":6,"slug":449,"title":450,"description":451,"category":249,"icon":452,"route":453,"sourcePath":454,"processing":14,"tags":455,"aliases":460},"tool:exif-viewer","exif-viewer","EXIF Viewer","Inspect common image metadata and download a cleaned copy in your browser.","tabler:photo-scan","\u002Ftools\u002Fexif-viewer","\u002Ftools\u002Fimage\u002Fexif-viewer",[456,457,458,459],"exif","metadata","image","privacy",[],{"id":462,"kind":6,"slug":463,"title":464,"description":465,"category":249,"icon":466,"route":467,"sourcePath":468,"processing":14,"tags":469,"aliases":474},"tool:favicon-generator","favicon-generator","Favicon Generator","Create a 64-pixel favicon PNG from any image locally.","tabler:brand-html5","\u002Ftools\u002Ffavicon-generator","\u002Ftools\u002Fimage\u002Ffavicon-generator",[470,471,472,458,473],"favicon","icon","png","web",[],{"id":476,"kind":23,"slug":477,"title":478,"description":479,"category":148,"icon":480,"route":481,"sourcePath":482,"artwork":483,"processing":14,"tags":484,"aliases":487},"game:flappy-bird","flappy-bird","Flappy Bird","A one-button arcade run where timing matters more than speed.","tabler:feather","\u002Fgames\u002Fflappy-bird","\u002Fgames\u002Farcade\u002Fflappy-bird","\u002Fgame-arts\u002Fflappy-bird.jpg",[477,157,485,486,36],"reflex","phaser",[],{"id":489,"kind":6,"slug":490,"title":491,"description":492,"category":10,"icon":493,"route":494,"sourcePath":495,"processing":14,"tags":496,"aliases":501},"tool:git-command","git-command","Git Command Builder","Build common commit, branch, push, and log commands without remembering every flag.","tabler:brand-git","\u002Ftools\u002Fgit-command","\u002Ftools\u002Fdeveloper\u002Fgit-command",[497,498,499,500,19],"git","command","commit","branch",[],{"id":503,"kind":6,"slug":504,"title":505,"description":506,"category":10,"icon":493,"route":507,"sourcePath":508,"processing":14,"tags":509,"aliases":513},"tool:gitignore-generator","gitignore-generator","Gitignore Generator","Compose a practical .gitignore from common project templates.","\u002Ftools\u002Fgitignore-generator","\u002Ftools\u002Fdeveloper\u002Fgitignore-generator",[497,510,511,512,19],"gitignore","node","nuxt",[],{"id":515,"kind":6,"slug":516,"title":517,"description":518,"category":10,"icon":519,"route":520,"sourcePath":521,"processing":14,"tags":522,"aliases":525},"tool:graphql-formatter","graphql-formatter","GraphQL Formatter","Format GraphQL queries, mutations and schema documents with syntax-aware indentation.","tabler:graph","\u002Ftools\u002Fgraphql-formatter","\u002Ftools\u002Fdeveloper\u002Fgraphql-formatter",[523,17,524,19],"graphql","query",[],{"id":527,"kind":23,"slug":528,"title":529,"description":530,"category":405,"icon":531,"route":532,"sourcePath":533,"artwork":534,"processing":14,"tags":535,"aliases":539},"game:hangman","hangman","Hangman","Guess letters, reveal a hidden word, and avoid six misses.","tabler:cursor-text","\u002Fgames\u002Fhangman","\u002Fgames\u002Fword\u002Fhangman","\u002Fgame-arts\u002Fhangman.jpg",[528,536,537,36,538],"word-game","spelling","classic-game",[],{"id":541,"kind":6,"slug":542,"title":543,"description":544,"category":56,"icon":545,"route":546,"sourcePath":547,"processing":14,"tags":548,"aliases":553},"tool:hash-compare","hash-compare","Hash Comparison Tool","Compare two strings with a browser cryptographic digest.","tabler:git-compare","\u002Ftools\u002Fhash-compare","\u002Ftools\u002Fsecurity\u002Fhash-compare",[549,550,551,552,65],"hash","compare","sha","integrity",[],{"id":555,"kind":23,"slug":556,"title":557,"description":558,"category":27,"icon":292,"route":559,"sourcePath":560,"artwork":561,"processing":14,"tags":562,"aliases":566},"game:higher-lower","higher-lower","Higher or Lower","Predict whether each new number will be higher or lower than the last.","\u002Fgames\u002Fhigher-lower","\u002Fgames\u002Fnumber\u002Fhigher-lower","\u002Fgame-arts\u002Fhigher-lower.jpg",[556,563,564,565,35],"number","prediction","score",[],{"id":568,"kind":6,"slug":569,"title":570,"description":571,"category":56,"icon":572,"route":573,"sourcePath":574,"processing":14,"tags":575,"aliases":579},"tool:hmac-generator","hmac-generator","HMAC Generator","Create or verify HMAC signatures with SHA-256, SHA-384, or SHA-512 locally.","tabler:key","\u002Ftools\u002Fhmac-generator","\u002Ftools\u002Fsecurity\u002Fhmac-generator",[576,549,577,578,65],"hmac","signature","web-crypto",[],{"id":581,"kind":6,"slug":582,"title":583,"description":584,"category":10,"icon":585,"route":586,"sourcePath":587,"processing":14,"tags":588,"aliases":593},"tool:html-a11y-checker","html-a11y-checker","HTML Accessibility Checker","Catch common HTML accessibility issues before running deeper automated and manual tests.","tabler:accessible","\u002Ftools\u002Fhtml-a11y-checker","\u002Ftools\u002Fdeveloper\u002Fhtml-a11y-checker",[589,257,590,591,592],"html","aria","audit","a11y",[],{"id":595,"kind":6,"slug":596,"title":597,"description":598,"category":10,"icon":599,"route":600,"sourcePath":601,"processing":14,"tags":602,"aliases":604},"tool:html-formatter","html-formatter","HTML Formatter and Minifier","Format readable HTML or remove unnecessary whitespace before shipping it.","tabler:code","\u002Ftools\u002Fhtml-formatter","\u002Ftools\u002Fdeveloper\u002Fhtml-formatter",[589,17,371,603,19],"markup",[],{"id":606,"kind":6,"slug":607,"title":608,"description":609,"category":10,"icon":610,"route":611,"sourcePath":612,"processing":14,"tags":613,"aliases":615},"tool:http-status","http-status","HTTP Status Code Lookup","Search common HTTP response codes by number or meaning.","tabler:status-change","\u002Ftools\u002Fhttp-status","\u002Ftools\u002Fdeveloper\u002Fhttp-status",[92,614,91,473,19],"status",[],{"id":617,"kind":6,"slug":618,"title":619,"description":620,"category":249,"icon":621,"route":622,"sourcePath":623,"processing":14,"tags":624,"aliases":628},"tool:image-compressor","image-compressor","Image Compressor","Compress JPEG, PNG, or WebP images locally with Canvas.","tabler:photo-down","\u002Ftools\u002Fimage-compressor","\u002Ftools\u002Fimage\u002Fimage-compressor",[458,625,626,627,458],"compressor","optimize","webp",[],{"id":630,"kind":6,"slug":631,"title":632,"description":633,"category":249,"icon":634,"route":635,"sourcePath":636,"processing":14,"tags":637,"aliases":641},"tool:image-cropper","image-cropper","Image Cropper","Crop an image by pixel coordinates in your browser.","tabler:crop","\u002Ftools\u002Fimage-cropper","\u002Ftools\u002Fimage\u002Fimage-cropper",[458,638,639,640],"crop","resize","canvas",[],{"id":643,"kind":6,"slug":644,"title":645,"description":646,"category":249,"icon":647,"route":648,"sourcePath":649,"processing":14,"tags":650,"aliases":652},"tool:image-format-converter","image-format-converter","Image Format Converter","Convert images between PNG, JPEG, and WebP without uploading them.","tabler:photo-cog","\u002Ftools\u002Fimage-format-converter","\u002Ftools\u002Fimage\u002Fimage-format-converter",[458,397,472,651,627],"jpeg",[],{"id":654,"kind":6,"slug":655,"title":656,"description":657,"category":249,"icon":621,"route":658,"sourcePath":659,"processing":14,"tags":660,"aliases":663},"tool:image-resizer","image-resizer","Image Resizer & Compressor","Resize JPEG, PNG, or WebP images and adjust their output format and quality.","\u002Ftools\u002Fimage-resizer","\u002Ftools\u002Fimage\u002Fimage-resizer",[458,639,661,651,472,627,662],"compress","photo",[],{"id":665,"kind":6,"slug":666,"title":667,"description":668,"category":10,"icon":669,"route":670,"sourcePath":671,"processing":14,"tags":672,"aliases":675},"tool:javascript-formatter","javascript-formatter","JavaScript Formatter and Minifier","Quickly format or compact small JavaScript snippets without uploading source code.","tabler:brand-javascript","\u002Ftools\u002Fjavascript-formatter","\u002Ftools\u002Fdeveloper\u002Fjavascript-formatter",[673,17,371,674,19],"javascript","js",[],{"id":677,"kind":6,"slug":678,"title":679,"description":680,"category":10,"icon":681,"route":682,"sourcePath":683,"processing":14,"tags":684,"aliases":687},"tool:json-formatter","json-formatter","JSON Formatter","Format, validate, and indent JSON directly in your browser.","tabler:braces","\u002Ftools\u002Fjson-formatter","\u002Ftools\u002Fdeveloper\u002Fjson-formatter",[396,17,685,686,19],"validator","pretty-print",[],{"id":689,"kind":6,"slug":690,"title":691,"description":692,"category":10,"icon":693,"route":694,"sourcePath":695,"processing":14,"tags":696,"aliases":698},"tool:json-minifier","json-minifier","JSON Minifier","Remove unnecessary whitespace from valid JSON.","tabler:arrows-diagonal-minimize","\u002Ftools\u002Fjson-minifier","\u002Ftools\u002Fdeveloper\u002Fjson-minifier",[396,371,697,685,19],"compact-json",[],{"id":700,"kind":6,"slug":701,"title":702,"description":703,"category":10,"icon":681,"route":704,"sourcePath":705,"processing":14,"tags":706,"aliases":709},"tool:json-schema-studio","json-schema-studio","JSON Schema Studio","Generate and validate JSON Schema locally with readable path-specific feedback.","\u002Ftools\u002Fjson-schema-studio","\u002Ftools\u002Fdeveloper\u002Fjson-schema-studio",[396,707,708,91,19],"schema","validation",[],{"id":711,"kind":6,"slug":712,"title":713,"description":714,"category":10,"icon":681,"route":715,"sourcePath":716,"processing":14,"tags":717,"aliases":720},"tool:json-yaml","json-yaml","JSON to YAML Converter","Convert JSON and YAML locally, with clear errors and copyable or downloadable output.","\u002Ftools\u002Fjson-yaml","\u002Ftools\u002Fdeveloper\u002Fjson-yaml",[396,718,397,719,19],"yaml","config",[],{"id":722,"kind":6,"slug":723,"title":724,"description":725,"category":10,"icon":726,"route":727,"sourcePath":728,"processing":14,"tags":729,"aliases":734},"tool:type-generator","type-generator","JSON Type Generator","Turn sample JSON into TypeScript, Zod, Valibot, or TypeBox definitions.","tabler:brand-typescript","\u002Ftools\u002Ftype-generator","\u002Ftools\u002Fdeveloper\u002Ftype-generator",[396,730,731,732,733],"typescript","zod","valibot","typebox",[],{"id":736,"kind":6,"slug":737,"title":738,"description":739,"category":10,"icon":367,"route":740,"sourcePath":741,"processing":14,"tags":742,"aliases":744},"tool:jsonpath-tester","jsonpath-tester","JSONPath Tester","Query JSON using properties, recursive descent, slices, wildcards and filters.","\u002Ftools\u002Fjsonpath-tester","\u002Ftools\u002Fdeveloper\u002Fjsonpath-tester",[743,396,524,19],"jsonpath",[],{"id":746,"kind":6,"slug":747,"title":748,"description":749,"category":10,"icon":572,"route":750,"sourcePath":751,"processing":14,"tags":752,"aliases":757},"tool:jwt-decoder","jwt-decoder","JWT Decoder","Decode a JSON Web Token header and payload without verifying or uploading it.","\u002Ftools\u002Fjwt-decoder","\u002Ftools\u002Fdeveloper\u002Fjwt-decoder",[753,754,755,756,19],"jwt","token","json-web-token","decode",[],{"id":759,"kind":6,"slug":760,"title":761,"description":762,"category":10,"icon":572,"route":763,"sourcePath":764,"processing":14,"tags":765,"aliases":767},"tool:jwt-lab","jwt-lab","JWT Encoder and Inspector","Inspect JWT header and payload claims or create an unsigned token-shaped value locally.","\u002Ftools\u002Fjwt-lab","\u002Ftools\u002Fdeveloper\u002Fjwt-lab",[753,754,396,766,19],"auth",[],{"id":769,"kind":23,"slug":770,"title":771,"description":772,"category":773,"icon":774,"route":775,"sourcePath":776,"artwork":777,"processing":14,"tags":778,"aliases":782},"game:lights-out","lights-out","Lights Out","Solve a seeded daily light circuit, or practise on classic five-by-five and larger boards.","Logic","tabler:bulb","\u002Fgames\u002Flights-out","\u002Fgames\u002Flogic\u002Flights-out","\u002Fgame-arts\u002Flights-out.jpg",[770,779,37,780,781],"logic","toggle","brain-teaser",[],{"id":784,"kind":6,"slug":785,"title":786,"description":787,"category":72,"icon":788,"route":789,"sourcePath":790,"processing":14,"tags":791,"aliases":795},"tool:loan-calculator","loan-calculator","Loan and EMI Calculator","Estimate monthly payment, total repayment, and interest for a fixed-rate loan.","tabler:calculator","\u002Ftools\u002Floan-calculator","\u002Ftools\u002Feveryday\u002Floan-calculator",[792,793,298,80,794],"loan","emi","finance",[],{"id":797,"kind":6,"slug":798,"title":799,"description":800,"category":10,"icon":801,"route":802,"sourcePath":803,"processing":14,"tags":804,"aliases":808},"tool:markdown-preview","markdown-preview","Markdown Preview","Preview GitHub-flavored Markdown locally and export sanitized HTML.","tabler:file-text","\u002Ftools\u002Fmarkdown-preview","\u002Ftools\u002Fdeveloper\u002Fmarkdown-preview",[805,806,807,19],"markdown","preview","writing",[],{"id":810,"kind":6,"slug":811,"title":812,"description":813,"category":10,"icon":814,"route":815,"sourcePath":816,"processing":14,"tags":817,"aliases":820},"tool:markdown-table","markdown-table","Markdown Table Generator","Turn tab-separated rows into a clean Markdown table.","tabler:table","\u002Ftools\u002Fmarkdown-table","\u002Ftools\u002Fdeveloper\u002Fmarkdown-table",[805,818,819,19],"table","documentation",[],{"id":822,"kind":23,"slug":823,"title":824,"description":825,"category":773,"icon":57,"route":826,"sourcePath":827,"artwork":828,"processing":14,"tags":829,"aliases":832},"game:mastermind","mastermind","Mastermind","Crack a four-color code using exact and close-match clues.","\u002Fgames\u002Fmastermind","\u002Fgames\u002Flogic\u002Fmastermind","\u002Fgame-arts\u002Fmastermind.jpg",[823,830,831,37,779],"code","deduction",[],{"id":834,"kind":23,"slug":835,"title":836,"description":837,"category":148,"icon":838,"route":839,"sourcePath":840,"artwork":841,"processing":14,"tags":842,"aliases":845},"game:maze-chase","maze-chase","Maze Chase","Clear ten seeded neon mazes, eat power pellets, and outrun the ghosts.","tabler:ghost","\u002Fgames\u002Fmaze-chase","\u002Fgames\u002Farcade\u002Fmaze-chase","\u002Fgame-arts\u002Fmaze-chase.jpg",[835,843,844,157,486,36],"pac-man","ghosts",[],{"id":847,"kind":6,"slug":848,"title":849,"description":850,"category":72,"icon":204,"route":851,"sourcePath":852,"processing":14,"tags":853,"aliases":857},"tool:meeting-planner","meeting-planner","Meeting Planner","Compare one reference time across four time zones and spot working-hour overlaps.","\u002Ftools\u002Fmeeting-planner","\u002Ftools\u002Feveryday\u002Fmeeting-planner",[854,422,855,856],"meeting","world clock","planning",[],{"id":859,"kind":23,"slug":860,"title":861,"description":862,"category":148,"icon":132,"route":863,"sourcePath":864,"artwork":865,"processing":14,"tags":866,"aliases":868},"game:memory-match","memory-match","Memory Match","Turn over cards, remember their positions, and clear every matching pair.","\u002Fgames\u002Fmemory-match","\u002Fgames\u002Farcade\u002Fmemory-match","\u002Fgame-arts\u002Fmemory-match.jpg",[860,867,141,36,37],"concentration",[],{"id":870,"kind":6,"slug":871,"title":872,"description":873,"category":10,"icon":874,"route":875,"sourcePath":876,"processing":14,"tags":877,"aliases":882},"tool:mermaid-editor","mermaid-editor","Mermaid Diagram Editor","Render Mermaid diagrams locally and export a clean SVG.","tabler:chart-dots-3","\u002Ftools\u002Fmermaid-editor","\u002Ftools\u002Fdeveloper\u002Fmermaid-editor",[878,879,880,881],"mermaid","diagram","flowchart","editor",[],{"id":884,"kind":23,"slug":885,"title":886,"description":887,"category":773,"icon":888,"route":889,"sourcePath":890,"artwork":891,"processing":14,"tags":892,"aliases":895},"game:minesweeper","minesweeper","Minesweeper","Clear a classic minefield with first-click safety, three levels, flags, and a timer.","tabler:bomb","\u002Fgames\u002Fminesweeper","\u002Fgames\u002Flogic\u002Fminesweeper","\u002Fgame-arts\u002Fminesweeper.jpg",[885,893,37,894,538],"logic-game","timer",[],{"id":897,"kind":6,"slug":898,"title":899,"description":900,"category":103,"icon":901,"route":902,"sourcePath":903,"processing":14,"tags":904,"aliases":907},"tool:morse-code","morse-code","Morse Code","Encode text to Morse Code or decode Morse Code to plain text.","tabler:radio","\u002Ftools\u002Fmorse-code","\u002Ftools\u002Fencoder-decoder\u002Fmorse-code",[108,109,905,906,898],"morse-code-to-text","text-to-morse-code",[],{"id":909,"kind":6,"slug":910,"title":911,"description":912,"category":10,"icon":913,"route":914,"sourcePath":915,"processing":14,"tags":916,"aliases":919},"tool:nginx-formatter","nginx-formatter","Nginx Configuration Formatter","Format Nginx server blocks for easier review, copying, and version control.","tabler:server","\u002Ftools\u002Fnginx-formatter","\u002Ftools\u002Fdeveloper\u002Fnginx-formatter",[917,719,17,918],"nginx","server",[],{"id":921,"kind":23,"slug":922,"title":923,"description":924,"category":773,"icon":925,"route":926,"sourcePath":927,"artwork":928,"processing":14,"tags":929,"aliases":931},"game:nim","nim","Nim","Take stones from one pile and force the last move in this classic strategy game.","tabler:stack-2","\u002Fgames\u002Fnim","\u002Fgames\u002Flogic\u002Fnim","\u002Fgame-arts\u002Fnim.jpg",[922,140,930,311,779],"stones",[],{"id":933,"kind":23,"slug":934,"title":935,"description":936,"category":148,"icon":937,"route":938,"sourcePath":939,"artwork":940,"processing":14,"tags":941,"aliases":943},"game:number-guess","number-guess","Number Guess","Find the hidden number from 1 to 100 in seven guesses.","tabler:list-numbers","\u002Fgames\u002Fnumber-guess","\u002Fgames\u002Farcade\u002Fnumber-guess","\u002Fgame-arts\u002Fnumber-guess.jpg",[934,556,942,157],"guessing",[],{"id":945,"kind":6,"slug":946,"title":947,"description":948,"category":249,"icon":949,"route":950,"sourcePath":951,"processing":14,"tags":952,"aliases":955},"tool:open-graph-preview","open-graph-preview","Open Graph Preview","Preview a social sharing card title, description, and color before publishing.","tabler:brand-openai","\u002Ftools\u002Fopen-graph-preview","\u002Ftools\u002Fimage\u002Fopen-graph-preview",[953,954,806,171,258],"open-graph","social",[],{"id":957,"kind":6,"slug":958,"title":959,"description":960,"category":10,"icon":87,"route":961,"sourcePath":962,"processing":14,"tags":963,"aliases":966},"tool:openapi-viewer","openapi-viewer","OpenAPI Viewer","Explore complete OpenAPI JSON or YAML documents, including operations, schemas, and responses.","\u002Ftools\u002Fopenapi-viewer","\u002Ftools\u002Fdeveloper\u002Fopenapi-viewer",[964,965,91,19],"openapi","swagger",[],{"id":968,"kind":6,"slug":969,"title":970,"description":971,"category":10,"icon":972,"route":973,"sourcePath":974,"processing":14,"tags":975,"aliases":980},"tool:package-json-scripts","package-json-scripts","Package.json Script Builder","Build a clean package.json scripts block from editable commands.","tabler:package","\u002Ftools\u002Fpackage-json-scripts","\u002Ftools\u002Fdeveloper\u002Fpackage-json-scripts",[976,977,978,979,19],"package-json","npm","pnpm","scripts",[],{"id":982,"kind":6,"slug":983,"title":984,"description":985,"category":56,"icon":572,"route":986,"sourcePath":987,"processing":14,"tags":988,"aliases":990},"tool:password-generator","password-generator","Password Generator","Create strong, customizable passwords with secure randomness from your browser.","\u002Ftools\u002Fpassword-generator","\u002Ftools\u002Fsecurity\u002Fpassword-generator",[989,983,65,239,459],"password",[],{"id":992,"kind":6,"slug":993,"title":994,"description":995,"category":56,"icon":343,"route":996,"sourcePath":997,"processing":14,"tags":998,"aliases":1000},"tool:password-strength","password-strength","Password Strength Checker","Check password length and character variety locally without storing the value.","\u002Ftools\u002Fpassword-strength","\u002Ftools\u002Fsecurity\u002Fpassword-strength",[989,999,65,459],"strength",[],{"id":1002,"kind":6,"slug":1003,"title":1004,"description":1005,"category":56,"icon":57,"route":1006,"sourcePath":1007,"processing":14,"tags":1008,"aliases":1011},"tool:pbkdf2-derivation","pbkdf2-derivation","PBKDF2 Password Derivation","Derive a 256-bit key from a password and salt using browser Web Crypto.","\u002Ftools\u002Fpbkdf2-derivation","\u002Ftools\u002Fsecurity\u002Fpbkdf2-derivation",[1009,989,1010,65],"pbkdf2","key derivation",[],{"id":1013,"kind":6,"slug":1014,"title":1015,"description":1016,"category":56,"icon":104,"route":1017,"sourcePath":1018,"processing":14,"tags":1019,"aliases":1023},"tool:pem-inspector","pem-inspector","PEM Certificate Inspector","Inspect PEM block type, decoded size, and a local SHA-256 fingerprint.","\u002Ftools\u002Fpem-inspector","\u002Ftools\u002Fsecurity\u002Fpem-inspector",[1020,1021,1022,65],"pem","certificate","fingerprint",[],{"id":1025,"kind":6,"slug":1026,"title":1027,"description":1028,"category":72,"icon":1029,"route":1030,"sourcePath":1031,"processing":14,"tags":1032,"aliases":1035},"tool:percentage-calculator","percentage-calculator","Percentage Calculator","Calculate a percentage of any base value in your browser.","tabler:percentage","\u002Ftools\u002Fpercentage-calculator","\u002Ftools\u002Feveryday\u002Fpercentage-calculator",[1033,80,1034],"percentage","math",[],{"id":1037,"kind":6,"slug":1038,"title":1039,"description":1040,"category":249,"icon":1041,"route":1042,"sourcePath":1043,"processing":14,"tags":1044,"aliases":1046},"tool:pixel-art","pixel-art","Pixel Art Converter","Convert images into crisp pixel art with adjustable block size and local canvas rendering.","tabler:grid-dots","\u002Ftools\u002Fpixel-art","\u002Ftools\u002Fimage\u002Fpixel-art",[1045,458,397,258],"pixel art",[],{"id":1048,"kind":6,"slug":1049,"title":1050,"description":1051,"category":56,"icon":1052,"route":1053,"sourcePath":1054,"processing":14,"tags":1055,"aliases":1060},"tool:pkce-generator","pkce-generator","PKCE Generator","Generate an OAuth PKCE verifier and S256 challenge locally.","tabler:shield-lock","\u002Ftools\u002Fpkce-generator","\u002Ftools\u002Fsecurity\u002Fpkce-generator",[1056,1057,1058,1059,65],"pkce","oauth","verifier","challenge",[],{"id":1062,"kind":6,"slug":1063,"title":1064,"description":1065,"category":10,"icon":1066,"route":1067,"sourcePath":1068,"processing":14,"tags":1069,"aliases":1074},"tool:lorem-generator","lorem-generator","Placeholder Copy Generator","Generate short, neutral placeholder sentences for prototypes and drafts.","tabler:text-plus","\u002Ftools\u002Florem-generator","\u002Ftools\u002Fdeveloper\u002Florem-generator",[1070,1071,1072,1073,807],"lorem","placeholder","copy","prototype",[],{"id":1076,"kind":6,"slug":1077,"title":1078,"description":1079,"category":72,"icon":1080,"route":1081,"sourcePath":1082,"processing":14,"tags":1083,"aliases":1086},"tool:pomodoro","pomodoro","Pomodoro Timer","A focused work timer with short and long break presets.","tabler:stopwatch","\u002Ftools\u002Fpomodoro","\u002Ftools\u002Feveryday\u002Fpomodoro",[1077,894,1084,1085],"focus","productivity",[],{"id":1088,"kind":6,"slug":1089,"title":1090,"description":1091,"category":56,"icon":1092,"route":1093,"sourcePath":1094,"processing":14,"tags":1095,"aliases":1101},"tool:qr-generator","qr-generator","QR Code Generator","Customize QR codes for links, text, Wi-Fi, or email, then export PNG or SVG locally.","tabler:qrcode","\u002Ftools\u002Fqr-generator","\u002Ftools\u002Fsecurity\u002Fqr-generator",[1096,1097,360,1098,1099,1100,459,65],"qr","qrcode","wifi","email","svg",[],{"id":1103,"kind":6,"slug":1104,"title":1105,"description":1106,"category":72,"icon":1107,"route":1108,"sourcePath":1109,"processing":14,"tags":1110,"aliases":1114},"tool:qr-scanner","qr-scanner","QR Scanner","Decode QR images or scan with your camera, then inspect and copy the content locally.","tabler:scan","\u002Ftools\u002Fqr-scanner","\u002Ftools\u002Feveryday\u002Fqr-scanner",[1096,1111,1112,1113],"scanner","barcode","camera",[],{"id":1116,"kind":6,"slug":1117,"title":1118,"description":1119,"category":10,"icon":164,"route":1120,"sourcePath":1121,"processing":14,"tags":1122,"aliases":1126},"tool:query-builder","query-builder","Query String Builder","Build URL-encoded query parameters from editable key and value rows.","\u002Ftools\u002Fquery-builder","\u002Ftools\u002Fdeveloper\u002Fquery-builder",[1123,169,1124,1125,19],"query-string","parameters","encode",[],{"id":1128,"kind":23,"slug":1129,"title":1130,"description":1131,"category":203,"icon":1132,"route":1133,"sourcePath":1134,"artwork":1135,"processing":14,"tags":1136,"aliases":1139},"game:quick-trivia","quick-trivia","Quick Trivia","Play a rotating ten-question round from the Open Trivia DB question library.","tabler:help-circle","\u002Fgames\u002Fquick-trivia","\u002Fgames\u002Fquiz\u002Fquick-trivia","\u002Fgame-arts\u002Fquick-trivia.jpg",[210,212,1137,36,1138],"general-knowledge","learning",[],{"id":1141,"kind":6,"slug":1142,"title":1143,"description":1144,"category":1145,"icon":1146,"route":1147,"sourcePath":1148,"processing":14,"tags":1149,"aliases":1153},"tool:random-picker","random-picker","Random Picker","Pick a fair name, task, or decision locally with optional no-repeat history.","Productivity","tabler:dice-5","\u002Ftools\u002Frandom-picker","\u002Ftools\u002Fproductivity\u002Frandom-picker",[1150,1151,1152,1085],"random picker","decision wheel","choices",[],{"id":1155,"kind":23,"slug":1156,"title":1157,"description":1158,"category":148,"icon":1159,"route":1160,"sourcePath":1161,"artwork":1162,"processing":14,"tags":1163,"aliases":1166},"game:reaction-timer","reaction-timer","Reaction Timer","Test your reflexes by clicking the instant the panel turns green.","tabler:bolt","\u002Fgames\u002Freaction-timer","\u002Fgames\u002Farcade\u002Freaction-timer","\u002Fgame-arts\u002Freaction-timer.jpg",[1164,485,894,1165,157],"reaction","speed",[],{"id":1168,"kind":6,"slug":1169,"title":1170,"description":1171,"category":10,"icon":1172,"route":1173,"sourcePath":1174,"processing":14,"tags":1175,"aliases":1180},"tool:regex-lab","regex-lab","Regex Escape and Pattern Lab","Escape literal text or copy useful starter patterns for email and URL matching.","tabler:regex","\u002Ftools\u002Fregex-lab","\u002Ftools\u002Fdeveloper\u002Fregex-lab",[1176,1177,1178,1179,19],"regex","regular-expression","escape","tester",[],{"id":1182,"kind":6,"slug":1183,"title":1184,"description":1185,"category":10,"icon":599,"route":1186,"sourcePath":1187,"processing":14,"tags":1188,"aliases":1191},"tool:regex-tester","regex-tester","Regex Tester","Check JavaScript regular expressions against sample text with instant local feedback.","\u002Ftools\u002Fregex-tester","\u002Ftools\u002Fdeveloper\u002Fregex-tester",[1176,1177,673,1189,1190,19],"pattern","testing",[],{"id":1193,"kind":23,"slug":1194,"title":1195,"description":1196,"category":148,"icon":1197,"route":1198,"sourcePath":1199,"artwork":1200,"processing":14,"tags":1201,"aliases":1204},"game:rock-paper-scissors","rock-paper-scissors","Rock Paper Scissors","Make a hand, beat the computer, and take a first-to-five match.","tabler:hand-click","\u002Fgames\u002Frock-paper-scissors","\u002Fgames\u002Farcade\u002Frock-paper-scissors","\u002Fgame-arts\u002Frock-paper-scissors.jpg",[1194,1202,1203,36,157],"roshambo","hand-game",[],{"id":1206,"kind":6,"slug":1207,"title":1208,"description":1209,"category":56,"icon":572,"route":1210,"sourcePath":1211,"processing":14,"tags":1212,"aliases":1215},"tool:rsa-key-generator","rsa-key-generator","RSA Key Pair Generator","Generate an RSA-OAEP 2048-bit public and private key pair locally.","\u002Ftools\u002Frsa-key-generator","\u002Ftools\u002Fsecurity\u002Frsa-key-generator",[1213,1214,64,1020,65],"rsa","keys",[],{"id":1217,"kind":6,"slug":1218,"title":1219,"description":1220,"category":249,"icon":1221,"route":1222,"sourcePath":1223,"processing":14,"tags":1224,"aliases":1228},"tool:screenshot-redactor","screenshot-redactor","Screenshot Redactor","Blur, pixelate, highlight, or redact sensitive screenshot areas locally.","tabler:photo-edit","\u002Ftools\u002Fscreenshot-redactor","\u002Ftools\u002Fimage\u002Fscreenshot-redactor",[1225,1226,1227,459,458],"screenshot","redaction","blur",[],{"id":1230,"kind":6,"slug":1231,"title":1232,"description":1233,"category":56,"icon":1107,"route":1234,"sourcePath":1235,"processing":14,"tags":1236,"aliases":1239},"tool:secret-scanner","secret-scanner","Secret Scanner","Find likely credentials and private keys in pasted code before sharing or committing it.","\u002Ftools\u002Fsecret-scanner","\u002Ftools\u002Fsecurity\u002Fsecret-scanner",[1237,1111,1238,65,830],"secrets","api keys",[],{"id":1241,"kind":6,"slug":1242,"title":1243,"description":1244,"category":56,"icon":1245,"route":1246,"sourcePath":1247,"processing":14,"tags":1248,"aliases":1251},"tool:secure-random","secure-random","Secure Random String Generator","Generate random strings using the browser Web Crypto API.","tabler:dice","\u002Ftools\u002Fsecure-random","\u002Ftools\u002Fsecurity\u002Fsecure-random",[239,754,1249,1250,65],"secret","crypto",[],{"id":1253,"kind":6,"slug":1254,"title":1255,"description":1256,"category":10,"icon":1257,"route":1258,"sourcePath":1259,"processing":14,"tags":1260,"aliases":1265},"tool:hash-generator","hash-generator","SHA Hash Generator","Create SHA-256, SHA-384, SHA-512, or legacy SHA-1 digests from text.","tabler:hash","\u002Ftools\u002Fhash-generator","\u002Ftools\u002Fdeveloper\u002Fhash-generator",[551,1261,1262,549,1263,1264,19],"sha-256","sha-512","digest","checksum",[],{"id":1267,"kind":23,"slug":1268,"title":1269,"description":1270,"category":148,"icon":1271,"route":1272,"sourcePath":1273,"artwork":1274,"processing":14,"tags":1275,"aliases":1277},"game:simon-says","simon-says","Simon Says","Watch the color pattern, then repeat it from memory as it grows.","tabler:brain","\u002Fgames\u002Fsimon-says","\u002Fgames\u002Farcade\u002Fsimon-says","\u002Fgame-arts\u002Fsimon-says.jpg",[1268,1276,1189,485,157],"memory",[],{"id":1279,"kind":6,"slug":1280,"title":1281,"description":1282,"category":219,"icon":164,"route":1283,"sourcePath":1284,"processing":14,"tags":1285,"aliases":1287},"tool:slug-generator","slug-generator","Slug Generator","Convert a title or phrase into a clean URL slug.","\u002Ftools\u002Fslug-generator","\u002Ftools\u002Ftext\u002Fslug-generator",[168,1286,171,170,224],"url-slug",[],{"id":1289,"kind":23,"slug":1290,"title":1291,"description":1292,"category":148,"icon":1293,"route":1294,"sourcePath":1295,"artwork":1296,"processing":14,"tags":1297,"aliases":1298},"game:snake","snake","Snake","Guide a growing snake to its food without hitting a wall or its own tail.","tabler:vector-spline","\u002Fgames\u002Fsnake","\u002Fgames\u002Farcade\u002Fsnake","\u002Fgame-arts\u002Fsnake.jpg",[1290,157,538,36,485],[],{"id":1300,"kind":23,"slug":1301,"title":1302,"description":1303,"category":773,"icon":1304,"route":1305,"sourcePath":1306,"artwork":1307,"processing":14,"tags":1308,"aliases":1310},"game:sokoban","sokoban","Sokoban","Push every crate onto a goal across fifty seeded warehouse puzzles.","tabler:box","\u002Fgames\u002Fsokoban","\u002Fgames\u002Flogic\u002Fsokoban","\u002Fgame-arts\u002Fsokoban.jpg",[1301,1309,779,37,36],"box-pushing",[],{"id":1312,"kind":23,"slug":1313,"title":1314,"description":1315,"category":131,"icon":132,"route":1316,"sourcePath":1317,"artwork":1318,"processing":14,"tags":1319,"aliases":1322},"game:solitaire","solitaire","Solitaire","Build four suit stacks from ace to king in a tactile local Klondike game with hints, undo, and two deal styles.","\u002Fgames\u002Fsolitaire","\u002Fgames\u002Fstrategy\u002Fsolitaire","\u002Fgame-arts\u002Fsolitaire.jpg",[1313,1320,138,1321,140,36],"klondike","patience",[],{"id":1324,"kind":6,"slug":1325,"title":1326,"description":1327,"category":10,"icon":1328,"route":1329,"sourcePath":1330,"processing":14,"tags":1331,"aliases":1334},"tool:sql-formatter","sql-formatter","SQL Formatter","Turn a compact SQL query into a readable layout with local, predictable formatting.","tabler:database","\u002Ftools\u002Fsql-formatter","\u002Ftools\u002Fdeveloper\u002Fsql-formatter",[1332,17,524,1333,19],"sql","database",[],{"id":1336,"kind":6,"slug":1337,"title":1338,"description":1339,"category":10,"icon":1328,"route":1340,"sourcePath":1341,"processing":14,"tags":1342,"aliases":1344},"tool:sql-builder","sql-builder","SQL Query Builder","Compose a readable SELECT query with columns, filters, ordering, and a limit.","\u002Ftools\u002Fsql-builder","\u002Ftools\u002Fdeveloper\u002Fsql-builder",[1332,524,1343,1333,19],"select",[],{"id":1346,"kind":6,"slug":1347,"title":1348,"description":1349,"category":56,"icon":343,"route":1350,"sourcePath":1351,"processing":14,"tags":1352,"aliases":1354},"tool:sri-generator","sri-generator","SRI Hash Generator","Hash pasted content or exact local-file bytes and generate integrity markup.","\u002Ftools\u002Fsri-generator","\u002Ftools\u002Fsecurity\u002Fsri-generator",[1353,552,65,549,473],"sri",[],{"id":1356,"kind":6,"slug":1357,"title":1358,"description":1359,"category":56,"icon":1360,"route":1361,"sourcePath":1362,"processing":14,"tags":1363,"aliases":1366},"tool:ssh-fingerprint","ssh-fingerprint","SSH Key Fingerprint Calculator","Calculate an OpenSSH public-key SHA-256 fingerprint locally.","tabler:fingerprint","\u002Ftools\u002Fssh-fingerprint","\u002Ftools\u002Fsecurity\u002Fssh-fingerprint",[1364,1022,1365,65],"ssh","public key",[],{"id":1368,"kind":6,"slug":1369,"title":1370,"description":1371,"category":72,"icon":1080,"route":1372,"sourcePath":1373,"processing":14,"tags":1374,"aliases":1375},"tool:stopwatch","stopwatch","Stopwatch","Time a session, compare lap splits, pause and resume, and export your laps as CSV.","\u002Ftools\u002Fstopwatch","\u002Ftools\u002Feveryday\u002Fstopwatch",[1369,894,196],[],{"id":1377,"kind":23,"slug":1378,"title":1379,"description":1380,"category":27,"icon":1381,"route":1382,"sourcePath":1383,"artwork":1384,"processing":14,"tags":1385,"aliases":1387},"game:sudoku","sudoku","Sudoku","Complete a classic 9×9 number puzzle directly in your browser.","tabler:grid-3x3","\u002Fgames\u002Fsudoku","\u002Fgames\u002Fnumber\u002Fsudoku","\u002Fgame-arts\u002Fsudoku.jpg",[1378,35,779,1386,37],"daily-game",[],{"id":1389,"kind":6,"slug":1390,"title":1391,"description":1392,"category":249,"icon":1393,"route":1394,"sourcePath":1395,"processing":14,"tags":1396,"aliases":1399},"tool:svg-optimizer","svg-optimizer","SVG Optimizer","Optimize SVG markup locally with SVGO while preserving viewBox, IDs, and descriptions.","tabler:vector","\u002Ftools\u002Fsvg-optimizer","\u002Ftools\u002Fimage\u002Fsvg-optimizer",[1100,626,1397,1398],"minify","vector",[],{"id":1401,"kind":6,"slug":1402,"title":1403,"description":1404,"category":249,"icon":1393,"route":1405,"sourcePath":1406,"processing":14,"tags":1407,"aliases":1410},"tool:svg-sprite","svg-sprite","SVG Sprite Generator","Combine standalone SVG elements into a reusable symbol sprite locally.","\u002Ftools\u002Fsvg-sprite","\u002Ftools\u002Fimage\u002Fsvg-sprite",[1100,1408,1409,373],"sprite","icons",[],{"id":1412,"kind":23,"slug":1413,"title":1414,"description":1415,"category":27,"icon":1416,"route":1417,"sourcePath":1418,"artwork":1419,"processing":14,"tags":1420,"aliases":1424},"game:target-sum","target-sum","Target Sum","Select two number tiles that add up to the target.","tabler:target","\u002Fgames\u002Ftarget-sum","\u002Fgames\u002Fnumber\u002Ftarget-sum","\u002Fgame-arts\u002Ftarget-sum.jpg",[1413,1421,1422,37,1423],"arithmetic","numbers","mental-math",[],{"id":1426,"kind":23,"slug":1427,"title":1428,"description":1429,"category":148,"icon":1430,"route":1431,"sourcePath":1432,"artwork":1433,"processing":14,"tags":1434,"aliases":1438},"game:tetris","tetris","Tetris","Stack falling pieces, clear lines, and chase a higher level.","tabler:blocks","\u002Fgames\u002Ftetris","\u002Fgames\u002Farcade\u002Ftetris","\u002Fgame-arts\u002Ftetris.jpg",[1427,1435,37,1436,1437,36],"falling-block","keyboard","touch",[],{"id":1440,"kind":6,"slug":1441,"title":1442,"description":1443,"category":10,"icon":1444,"route":1445,"sourcePath":1446,"processing":14,"tags":1447,"aliases":1450},"tool:text-diff","text-diff","Text Diff","Compare two short text blocks line by line with clear local change states.","tabler:arrows-diff","\u002Ftools\u002Ftext-diff","\u002Ftools\u002Fdeveloper\u002Ftext-diff",[1448,550,170,1449,19],"diff","changes",[],{"id":1452,"kind":6,"slug":1453,"title":1454,"description":1455,"category":219,"icon":1456,"route":1457,"sourcePath":1458,"processing":14,"tags":1459,"aliases":1463},"tool:text-reverser","text-reverser","Text Reverser","Reverse characters in any text while preserving Unicode characters.","tabler:arrow-iteration","\u002Ftools\u002Ftext-reverser","\u002Ftools\u002Ftext\u002Ftext-reverser",[1460,1461,170,1462],"reverse-text","backwards-text","unicode",[],{"id":1465,"kind":6,"slug":1466,"title":1467,"description":1468,"category":219,"icon":1469,"route":1470,"sourcePath":1471,"processing":14,"tags":1472,"aliases":1475},"tool:text-sorter","text-sorter","Text Sorter","Sort your text alphabetically, by length, or numerically.","tabler:sort-ascending-letters","\u002Ftools\u002Ftext-sorter","\u002Ftools\u002Ftext\u002Ftext-sorter",[170,1473,1474],"sorter","text-sort",[],{"id":1477,"kind":23,"slug":1478,"title":1479,"description":1480,"category":131,"icon":43,"route":1481,"sourcePath":1482,"artwork":1483,"processing":14,"tags":1484,"aliases":1486},"game:tic-tac-toe","tic-tac-toe","Tic Tac Toe","Make three in a row against a friend or an unbeatable computer opponent.","\u002Fgames\u002Ftic-tac-toe","\u002Fgames\u002Fstrategy\u002Ftic-tac-toe","\u002Fgame-arts\u002Ftic-tac-toe.jpg",[1478,1485,140,311,37],"noughts-and-crosses",[],{"id":1488,"kind":6,"slug":1489,"title":1490,"description":1491,"category":72,"icon":1492,"route":1493,"sourcePath":1494,"processing":14,"tags":1495,"aliases":1499},"tool:tip-splitter","tip-splitter","Tip Splitter","Split a bill with tip presets, currency formatting, a clear breakdown, and exact rounding allocation.","tabler:receipt","\u002Ftools\u002Ftip-splitter","\u002Ftools\u002Feveryday\u002Ftip-splitter",[1496,1497,1498,80],"tip","bill","split",[],{"id":1501,"kind":6,"slug":1502,"title":1503,"description":1504,"category":56,"icon":1505,"route":1506,"sourcePath":1507,"processing":14,"tags":1508,"aliases":1512},"tool:totp-generator","totp-generator","TOTP Generator","Generate six-digit authenticator codes from a Base32 secret or otpauth URI.","tabler:device-mobile-star","\u002Ftools\u002Ftotp-generator","\u002Ftools\u002Fsecurity\u002Ftotp-generator",[1509,1510,1511,65],"totp","otp","authenticator",[],{"id":1514,"kind":23,"slug":1515,"title":1516,"description":1517,"category":405,"icon":1518,"route":1519,"sourcePath":1520,"artwork":1521,"processing":14,"tags":1522,"aliases":1526},"game:typing-test","typing-test","Typing Test","Type a short sentence for thirty seconds and track your words.","tabler:keyboard","\u002Fgames\u002Ftyping-test","\u002Fgames\u002Fword\u002Ftyping-test","\u002Fgame-arts\u002Ftyping-test.jpg",[1523,1165,1524,1436,1525],"typing","words","test",[],{"id":1528,"kind":6,"slug":1529,"title":1530,"description":1531,"category":72,"icon":1532,"route":1533,"sourcePath":1534,"processing":14,"tags":1535,"aliases":1543},"tool:unit-converter","unit-converter","Unit Converter","Convert measurements across eight categories, swap units, and compare equivalent values instantly.","tabler:arrows-exchange","\u002Ftools\u002Funit-converter","\u002Ftools\u002Feveryday\u002Funit-converter",[1536,1537,1538,1539,1540,1541,1165,196,1542,397],"units","length","weight","temperature","area","volume","storage",[],{"id":1545,"kind":6,"slug":1546,"title":1547,"description":1548,"category":10,"icon":57,"route":1549,"sourcePath":1550,"processing":14,"tags":1551,"aliases":1555},"tool:unix-permissions","unix-permissions","Unix Permissions","Translate three-digit octal file permissions into symbolic notation and chmod syntax.","\u002Ftools\u002Funix-permissions","\u002Ftools\u002Fdeveloper\u002Funix-permissions",[1552,1553,1554,335,19],"unix","chmod","permissions",[],{"id":1557,"kind":6,"slug":1558,"title":1559,"description":1560,"category":10,"icon":1561,"route":1562,"sourcePath":1563,"processing":14,"tags":1564,"aliases":1567},"tool:timestamp-converter","timestamp-converter","Unix Timestamp Converter","Convert Unix timestamps to readable dates and local dates back to timestamps.","tabler:clock","\u002Ftools\u002Ftimestamp-converter","\u002Ftools\u002Fdeveloper\u002Ftimestamp-converter",[1552,1565,1566,79,196,19],"timestamp","epoch",[],{"id":1569,"kind":6,"slug":1570,"title":1571,"description":1572,"category":103,"icon":164,"route":1573,"sourcePath":1574,"processing":14,"tags":1575,"aliases":1578},"tool:url-encode-decode","url-encode-decode","URL","Encode or decode URL.","\u002Ftools\u002Furl-encode-decode","\u002Ftools\u002Fencoder-decoder\u002Furl-encode-decode",[108,109,1576,1577,169],"url-encode","url-decode",[],{"id":1580,"kind":6,"slug":1581,"title":1582,"description":1583,"category":10,"icon":164,"route":1584,"sourcePath":1585,"processing":14,"tags":1586,"aliases":1589},"tool:url-parser","url-parser","URL Parser","Break a URL into protocol, origin, host, path, query, and hash without leaving your browser.","\u002Ftools\u002Furl-parser","\u002Ftools\u002Fdeveloper\u002Furl-parser",[169,1587,524,1588,19],"parser","hostname",[],{"id":1591,"kind":6,"slug":1592,"title":1593,"description":1594,"category":10,"icon":1360,"route":1595,"sourcePath":1596,"processing":14,"tags":1597,"aliases":1602},"tool:uuid-generator","uuid-generator","UUID Generator","Generate one or more random UUID v4 identifiers.","\u002Ftools\u002Fuuid-generator","\u002Ftools\u002Fdeveloper\u002Fuuid-generator",[1598,1599,1600,1601,19],"uuid","guid","uuid-v4","random-id",[],{"id":1604,"kind":6,"slug":1605,"title":1606,"description":1607,"category":219,"icon":1608,"route":1609,"sourcePath":1610,"processing":14,"tags":1611,"aliases":1616},"tool:whitespace-cleaner","whitespace-cleaner","Whitespace Cleaner","Remove repeated spaces and excessive blank lines from text.","tabler:arrows-join","\u002Ftools\u002Fwhitespace-cleaner","\u002Ftools\u002Ftext\u002Fwhitespace-cleaner",[1612,1613,1614,1615,170],"whitespace","remove-spaces","blank-lines","clean-text",[],{"id":1618,"kind":6,"slug":1619,"title":1620,"description":1621,"category":219,"icon":531,"route":1622,"sourcePath":1623,"processing":14,"tags":1624,"aliases":1629},"tool:word-char-counter","word-char-counter","Word Character Counter","Count the number of words and characters (with or without spaces) in your text.","\u002Ftools\u002Fword-char-counter","\u002Ftools\u002Ftext\u002Fword-char-counter",[170,1625,1626,1627,1628],"word-frequency","word-character-counter","character-counter","text-length",[],{"id":1631,"kind":6,"slug":1632,"title":1633,"description":1634,"category":219,"icon":937,"route":1635,"sourcePath":1636,"processing":14,"tags":1637,"aliases":1639},"tool:word-frequency-finder","word-frequency-finder","Word Frequency Finder","Analyze the frequency of specified words in your input text.","\u002Ftools\u002Fword-frequency-finder","\u002Ftools\u002Ftext\u002Fword-frequency-finder",[170,1625,1638],"word-counter",[],{"id":1641,"kind":23,"slug":1642,"title":1643,"description":1644,"category":405,"icon":220,"route":1645,"sourcePath":1646,"artwork":1647,"processing":14,"tags":1648,"aliases":1650},"game:word-scramble","word-scramble","Word Scramble","Rearrange a shuffled word in four tries with a little help from your vocabulary.","\u002Fgames\u002Fword-scramble","\u002Fgames\u002Fword\u002Fword-scramble","\u002Fgame-arts\u002Fword-scramble.jpg",[1642,1649,412,537,536],"anagram",[],{"id":1652,"kind":23,"slug":1653,"title":1654,"description":1655,"category":405,"icon":1656,"route":1657,"sourcePath":1658,"artwork":1659,"processing":14,"tags":1660,"aliases":1661},"game:wordle","wordle","Wordle","Guess a five-letter word in six tries with a fresh daily starting word.","tabler:text-spellcheck","\u002Fgames\u002Fwordle","\u002Fgames\u002Fword\u002Fwordle","\u002Fgame-arts\u002Fwordle.jpg",[1653,536,1386,37],[],{"id":1663,"kind":6,"slug":1664,"title":1665,"description":1666,"category":72,"icon":204,"route":1667,"sourcePath":1668,"processing":14,"tags":1669,"aliases":1671},"tool:world-clock","world-clock","World Clock","Compare the current time in four important time zones at a glance.","\u002Ftools\u002Fworld-clock","\u002Ftools\u002Feveryday\u002Fworld-clock",[1670,422,196,1085],"clock",[],{"id":1673,"kind":6,"slug":1674,"title":1675,"description":1676,"category":10,"icon":1677,"route":1678,"sourcePath":1679,"processing":14,"tags":1680,"aliases":1682},"tool:xml-formatter","xml-formatter","XML Formatter","Add indentation and line breaks to compact XML locally.","tabler:file-code","\u002Ftools\u002Fxml-formatter","\u002Ftools\u002Fdeveloper\u002Fxml-formatter",[1681,17,603,19],"xml",[],{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1687},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm5-2v16\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1689},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m18 11l-6-6\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1691},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1693},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 21h4L20 8a1.5 1.5 0 0 0-4-4L3 17zM14.5 5.5l4 4\"\u002F>\u003Cpath d=\"M12 8L7 3L3 7l5 5M7 8L5.5 9.5M16 12l5 5l-4 4l-5-5m4 1l-1.5 1.5\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1695},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 5h3.5a5 5 0 0 1 0 10H10l-4.015 4.227a2.3 2.3 0 0 1-3.923-2.035l1.634-8.173A5 5 0 0 1 8.6 5z\"\u002F>\u003Cpath d=\"m14 15l4.07 4.284a2.3 2.3 0 0 0 3.925-2.023l-1.6-8.232M8 9v2m-1-1h2m5 0h2\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1697},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m2.65-6.35l12.7 12.7m-12.7 0l12.7-12.7\"\u002F>\u003Cpath d=\"M12 3a9 9 0 0 0 9 9M3 12a9 9 0 0 1 9 9\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1699},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M9 14c0 1.657 2.686 3 6 3s6-1.343 6-3s-2.686-3-6-3s-6 1.343-6 3\"\u002F>\u003Cpath d=\"M9 14v4c0 1.656 2.686 3 6 3s6-1.344 6-3v-4M3 6c0 1.072 1.144 2.062 3 2.598s4.144.536 6 0S15 7.072 15 6s-1.144-2.062-3-2.598s-4.144-.536-6 0S3 4.928 3 6\"\u002F>\u003Cpath d=\"M3 6v10c0 .888.772 1.45 2 2\"\u002F>\u003Cpath d=\"M3 11c0 .888.772 1.45 2 2\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1701},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m4 20l10-10m0-5v5h5m-9-1v5h5m-9-1v5h5m-5-5l4-4l4-4\"\u002F>\u003Cpath d=\"M19 10c.638-.636 1-1.515 1-2.486A3.515 3.515 0 0 0 16.483 4c-.97 0-1.847.367-2.483 1m-3 13l4-4l4-4\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1703},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M5 11a7 7 0 0 1 14 0v7a1.78 1.78 0 0 1-3.1 1.4a1.65 1.65 0 0 0-2.6 0a1.65 1.65 0 0 1-2.6 0a1.65 1.65 0 0 0-2.6 0A1.78 1.78 0 0 1 5 18zm5-1h.01M14 10h.01\"\u002F>\u003Cpath d=\"M10 14a3.5 3.5 0 0 0 4 0\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1705},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M11 6h9m-9 6h9m-8 6h8M4 16a2 2 0 1 1 4 0c0 .591-.5 1-1 1.5L4 20h4M6 10V4L4 6\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1707},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 3v7h6l-8 11v-7H5z\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1709},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M8 13V4.5a1.5 1.5 0 0 1 3 0V12m0-.5v-2a1.5 1.5 0 0 1 3 0V12m0-1.5a1.5 1.5 0 0 1 3 0V12\"\u002F>\u003Cpath d=\"M17 11.5a1.5 1.5 0 0 1 3 0V16a6 6 0 0 1-6 6h-2h.208a6 6 0 0 1-5.012-2.7L7 19q-.468-.718-3.286-5.728a1.5 1.5 0 0 1 .536-2.022a1.87 1.87 0 0 1 2.28.28L8 13M5 3L4 2m0 5H3m11-4l1-1m0 4h1\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1711},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15.5 13a3.5 3.5 0 0 0-3.5 3.5v1a3.5 3.5 0 0 0 7 0v-1.8M8.5 13a3.5 3.5 0 0 1 3.5 3.5v1a3.5 3.5 0 0 1-7 0v-1.8\"\u002F>\u003Cpath d=\"M17.5 16a3.5 3.5 0 0 0 0-7H17\"\u002F>\u003Cpath d=\"M19 9.3V6.5a3.5 3.5 0 0 0-7 0M6.5 16a3.5 3.5 0 0 1 0-7H7\"\u002F>\u003Cpath d=\"M5 9.3V6.5a3.5 3.5 0 0 1 7 0v10\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1713},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M17 4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1zM3 18a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1zM17 5C10.373 5 5 10.373 5 17\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1715},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14 4a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1zM3 14h12a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v12\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1717},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 12h1m8-9v1m8 8h1M5.6 5.6l.7.7m12.1-.7l-.7.7M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0-1 3a2 2 0 0 1-4 0a3.5 3.5 0 0 0-1-3m.7 1h4.6\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1719},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M5 13a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2z\"\u002F>\u003Cpath d=\"M11 16a1 1 0 1 0 2 0a1 1 0 0 0-2 0m-3-5V7a4 4 0 1 1 8 0v4\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1721},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15.349 5.349L18.65 8.65a1.2 1.2 0 0 1 0 1.698l-.972.972a7.5 7.5 0 1 1-5-5l.972-.972a1.2 1.2 0 0 1 1.698 0z\"\u002F>\u003Cpath d=\"m17 7l1.293-1.293A2.4 2.4 0 0 0 19 4a1 1 0 0 1 1-1h1M7 13a3 3 0 0 1 3-3\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1723},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 4L4 8l8 4l8-4zm-8 8l8 4l8-4M4 16l8 4l8-4\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1725},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 3l8 4.5v9L12 21l-8-4.5v-9zm0 9l8-4.5M12 12v9m0-9L4 7.5\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1727},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 6h18M3 12h18M3 18h18M6 3v18m6-18v18m6-18v18\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1729},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 19h16M4 15l4-6l4 2l4-5l4 4\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1731},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 8h18M3 16h18M8 3v18m8-18v18\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1733},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0\"\u002F>\u003Cpath d=\"M7 12a5 5 0 1 0 10 0a5 5 0 1 0-10 0\"\u002F>\u003Cpath d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1735},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0m.6-3h16.8M3.6 15h16.8\"\u002F>\u003Cpath d=\"M11.5 3a17 17 0 0 0 0 18m1-18a17 17 0 0 1 0 18\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1737},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0m9 4v.01\"\u002F>\u003Cpath d=\"M12 13a2 2 0 0 0 .914-3.782a1.98 1.98 0 0 0-2.414.483\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1739},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0\"\u002F>\u003Cpath d=\"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1741},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m3.604 7.197l7.138-3.109a.96.96 0 0 1 1.27.527l4.924 11.902a1 1 0 0 1-.514 1.304L9.285 20.93a.96.96 0 0 1-1.271-.527L3.09 8.5a1 1 0 0 1 .514-1.304zM15 4h1a1 1 0 0 1 1 1v3.5M20 6q.396.168.768.315a1 1 0 0 1 .53 1.311L19 13\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1743},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm10 0a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1zM4 15a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm10 0a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1745},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z\"\u002F>\u003Cpath d=\"M12 4v2.5a.5.5 0 0 1-.5.5a1.5 1.5 0 0 0 0 3a.5.5 0 0 1 .5.5V12m0 0v1.5a.5.5 0 0 0 .5.5a1.5 1.5 0 0 1 0 3a.5.5 0 0 0-.5.5V20m8-8h-2.5a.5.5 0 0 1-.5-.5a1.5 1.5 0 0 0-3 0a.5.5 0 0 1-.5.5H12m0 0h-1.5a.5.5 0 0 0-.5.5a1.5 1.5 0 0 1-3 0a.5.5 0 0 0-.5-.5H4\"\u002F>\u003C\u002Fg>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1747},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 12h4M9 4a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3m6-16a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1749},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M2 8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2zm4 2v.01m4-.01v.01m4-.01v.01m4-.01v.01M6 14v.01M18 14v.01M10 14l4 .01\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1751},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14 15.5a3.5 3.5 0 1 0 7 0a3.5 3.5 0 1 0-7 0M3 19V8.5a3.5 3.5 0 0 1 7 0V19m-7-6h7m11-1v7\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1753},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 15V7.5a3.5 3.5 0 0 1 7 0V15m-7-5h7m-2 8l3 3l7-7\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1755},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m7 7l10 10M16 7H7v9\"\u002F>",{"id":1757,"title":25,"aliases":1758,"archetype":1758,"body":1759,"capabilityStatus":1758,"category":27,"description":26,"extension":1823,"featuredRank":1758,"icon":1824,"meta":1825,"navigation":1826,"path":30,"processing":1758,"resourceId":22,"seo":1827,"stem":1828,"tags":1829,"__hash__":1830},"games\u002Fgames\u002Fnumber\u002Ffifteen-puzzle.md",null,{"type":1760,"value":1761,"toc":1815},"minimark",[1762,1767,1783,1787,1791,1795,1798,1809,1812],[1763,1764,1766],"h2",{"id":1765},"rules","Rules",[1768,1769,1770,1774,1777,1780],"ol",{},[1771,1772,1773],"li",{},"Arrange tiles 1 through 15 from left to right, top to bottom.",[1771,1775,1776],{},"Only a tile next to the empty square may move.",[1771,1778,1779],{},"The empty square belongs after tile 15.",[1771,1781,1782],{},"Use fewer moves and less time to improve your result.",[1763,1784,1786],{"id":1785},"controls","Controls",[1788,1789,1790],"p",{},"Select any highlighted tile beside the empty square. The timer starts on your first move. Every new board is generated by legal moves from the solved layout, so it is always solvable.",[1763,1792,1794],{"id":1793},"a-brief-history","A brief history",[1788,1796,1797],{},"Sliding block puzzles became a late-19th-century craze. The 15 Puzzle was popularized in the 1880s by a widely publicized challenge involving its last two tiles; the swapped version cannot be solved, a fact that added to its notoriety. This version avoids that trap by shuffling through legal moves only.",[1788,1799,1800,1801,1808],{},"Source: ",[1802,1803,1807],"a",{"href":1804,"rel":1805},"https:\u002F\u002Fwww.puzzlemuseum.com\u002Fpuzzles\u002Fhistory-of-puzzles\u002Fbrief-history.html",[1806],"nofollow","Puzzle Museum",".",[1763,1810,1811],{"id":459},"Privacy",[1788,1813,1814],{},"The board, timer, and move count stay in this browser tab. No account or network request is required.",{"title":1816,"searchDepth":1817,"depth":1817,"links":1818},"",2,[1819,1820,1821,1822],{"id":1765,"depth":1817,"text":1766},{"id":1785,"depth":1817,"text":1786},{"id":1793,"depth":1817,"text":1794},{"id":459,"depth":1817,"text":1811},"md","i-tabler-grid-4x4",{},true,{"title":25,"description":26},"games\u002Fnumber\u002Ffifteen-puzzle",[33,34,35,36,37],"m9CJ6l-pR1r1PvgVbw2LAWD1FMk1Ji8DZCys6gQm_ZM",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1832},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14M5 12l6 6m-6-6l6-6\"\u002F>",{"left":1684,"top":1684,"width":1685,"height":1685,"rotate":1684,"vFlip":1686,"hFlip":1686,"body":1834},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2m8-16h2a2 2 0 0 1 2 2v2m-4 12h2a2 2 0 0 0 2-2v-2\"\u002F>",1793429983892]