[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-pt-how-fretscape-thinks":3,"i-fas:globe":254,"i-far:chevron-down":258,"i-far:bars":261,"i-far:gear":263,"i-far:comment":265,"blog-related-pt-how-fretscape-thinks":267,"i-far:arrow-left":311,"i-far:globe":313,"i-far:circle-question":315},{"id":4,"slug":4,"title":5,"description":6,"date":7,"lastUpdated":7,"lastUpdatedKey":8,"lastUpdatedValue":9,"author":10,"tags":11,"coverImage":17,"coverImageAlt":18,"ogImage":19,"series":4,"seriesOrder":20,"readMinutes":21,"path":22,"href":23,"__fallback":24,"body":25,"tocLinks":248},"how-fretscape-thinks","How Fretscape Thinks","A short intro to a five-part series about the small decisions that built Fretscape. The easy answer and the right answer aren't always the same.","2026-06-04","knowledgeBase.relativeTime.monthsAgo",2,"Kyle",[12,13,14,15,16,4],"fretscape","guitar","product-building","product-philosophy","series-introduction","\u002Fimages\u002Fblog\u002Fhow-fretscape-thinks-hero.webp","Vintage brass balance scales on warm wood, one pan holding a bright coin and the other a small guitar-shaped token that tips the balance lower, golden light","\u002Fimages\u002Fblog\u002Fhow-fretscape-thinks-hero.jpg",0,3,"\u002Fhow-fretscape-thinks","\u002Fblog\u002Fhow-fretscape-thinks",true,{"type":26,"value":27,"toc":246},"minimark",[28,39,51,60,65,68,71,78,86,90,93,96,107,114,117,120,123,126,130,142,145,152,155,159,169,178,187,196,205,208,212,215,228,231],[29,30,31,38],"p",{},[32,33,37],"a",{"href":34,"rel":35},"https:\u002F\u002Ffretscape.com\u002Fabout",[36],"nofollow","Fretscape"," started because my daughter Isla, nine years old, got frustrated trying to play on my old full-size PRS.",[29,40,41,42,46,47,50],{},"The obvious answer was ",[43,44,45],"em",{},"practice more."," The honest answer was ",[43,48,49],{},"the tool's wrong, not you."," So I started building a different one.",[29,52,53,54,59],{},"That's the ",[32,55,58],{"href":56,"rel":57},"https:\u002F\u002Ffretscape.com\u002Fabout\u002Forigin",[36],"origin story"," in three sentences. This series is about what happened next.",[61,62,64],"h2",{"id":63},"what-this-is","What this is",[29,66,67],{},"Five short stories. Each one is about a specific decision I made while building Fretscape - usually a moment where the easy answer and the right answer pulled in different directions and I had to pick.",[29,69,70],{},"Some of them touch on chord theory. Some touch on how the optimiser ranks voicings. All of them are written for guitarists, not engineers. You won't need to know how anything is implemented to follow along.",[29,72,73,74,77],{},"If you build products, you'll recognise the decisions even if you don't play guitar. The shape of ",[43,75,76],{},"\"the cheap answer is right there, take it\""," doesn't really care what industry you're in.",[79,80,81],"blockquote",{},[29,82,83],{},[43,84,85],{},"Technical doesn't have to mean inaccessible. I promise.",[61,87,89],{"id":88},"the-thing-they-all-have-in-common","The thing they all have in common",[29,91,92],{},"Every story in the series starts the same way.",[29,94,95],{},"The system did something technically correct. And it felt wrong.",[29,97,98,99,102,103,106],{},"The easy thing to do is shrug. ",[43,100,101],{},"Well, it's valid. Move on."," The harder thing is to stop, figure out ",[43,104,105],{},"why"," it feels wrong, and encode the missing rule. I've gone with the harder one every time. The whole product is shaped by that choice.",[79,108,109],{},[29,110,111],{},[43,112,113],{},"Technically correct isn't the same as helpful.",[29,115,116],{},"That sentence is the whole product compressed. Everything in the series is a different version of working out what it means in practice.",[29,118,119],{},"Looking back, that might be the real theme of this series. Not cleverness. Restraint.",[29,121,122],{},"It is easy to build a tool that always gives an answer. It is harder to build one that knows when the answer is incomplete, or context-dependent, or only technically correct. Harder still to show that uncertainty to the user instead of smoothing it over with a confident-looking label.",[29,124,125],{},"But that is where the useful bit lives.",[61,127,129],{"id":128},"why-every-hand","Why \"every hand\"",[29,131,132,133],{},"Fretscape's pitch is ",[43,134,135,136,141],{},"guitar for ",[32,137,140],{"href":138,"rel":139},"https:\u002F\u002Ffretscape.com\u002Fabout\u002Fevery-hand",[36],"every hand",".",[29,143,144],{},"That's not abstract. It means the tool rebuilds itself around whoever's playing - beginner hands, missing-finger hands, small hands, tired hands, hands recovering from an injury, hands with arthritis. A tool that treats every hand the same is serving none of them.",[29,146,147,148,151],{},"The ethos of ",[43,149,150],{},"\"the right answer for this person\""," isn't a value statement. It's the whole design.",[29,153,154],{},"That's also the reason \"technically correct\" isn't enough. A correct answer that doesn't fit your hand isn't the right answer for you. It's the right answer for someone you don't happen to be.",[61,156,158],{"id":157},"the-series","The series",[29,160,161,168],{},[162,163,164],"strong",{},[32,165,167],{"href":166},"\u002Fblog\u002Fi-built-a-chord-optimiser-that-proved-me-wrong","I Built a Chord Optimiser That Proved Me Wrong"," - A fingering I was sure Fretscape had got wrong. It hadn't.",[29,170,171,177],{},[162,172,173],{},[32,174,176],{"href":175},"\u002Fblog\u002Fthe-optimiser-that-was-quietly-ignoring-me","The Optimiser That Was Quietly Ignoring Me"," - Three bugs in the progression optimiser, found while taking a screenshot. Features a car salesman.",[29,179,180,186],{},[162,181,182],{},[32,183,185],{"href":184},"\u002Fblog\u002Ftechnically-correct-vs-expected","Technically Correct Isn't The Same As Expected"," - Two voicings that were theoretically right but not what a guitarist expects to see first.",[29,188,189,195],{},[162,190,191],{},[32,192,194],{"href":193},"\u002Fblog\u002Fthe-wrong-name-ranked-first","The Wrong Name, Ranked First"," - Why a reverse chord lookup can rank a valid-but-wrong name above the obvious one, and how Fretscape orders it differently.",[29,197,198,204],{},[162,199,200],{},[32,201,203],{"href":202},"\u002Fblog\u002Fwhat-key-is-this-progression-actually-in","What Key Is This Progression Actually In?"," - Why Fretscape returns calibrated confidence rather than confident-looking match scores, and why ambiguity is sometimes the honest answer.",[29,206,207],{},"Five different surfaces of the product. Same decision, made five times.",[61,209,211],{"id":210},"how-to-read-it","How to read it",[29,213,214],{},"If you want to know how Fretscape thinks, the five posts above will show you.",[29,216,217,218,221,222,227],{},"If you want to ",[43,219,220],{},"feel"," how Fretscape thinks, ",[32,223,226],{"href":224,"rel":225},"https:\u002F\u002Ffretscape.com\u002Fapp",[36],"use the app",". Both are free to start.",[229,230],"hr",{},[79,232,233,241],{},[29,234,235,238],{},[43,236,237],{},"These are small stories about small decisions.",[43,239,240],{},"But small decisions are the product.",[29,242,243],{},[43,244,245],{},"Thanks for reading.",{"title":247,"searchDepth":9,"depth":9,"links":248},"",[249,250,251,252,253],{"id":63,"depth":9,"text":64},{"id":88,"depth":9,"text":89},{"id":128,"depth":9,"text":129},{"id":157,"depth":9,"text":158},{"id":210,"depth":9,"text":211},{"left":20,"top":20,"width":255,"height":255,"rotate":20,"vFlip":256,"hFlip":256,"body":257},512,false,"\u003Cpath fill=\"currentColor\" d=\"M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z\"\u002F>",{"left":20,"top":20,"width":259,"height":255,"rotate":20,"vFlip":256,"hFlip":256,"body":260},448,"\u003Cpath fill=\"currentColor\" d=\"M207.5 409c9.4 9.4 24.6 9.4 33.9 0l200-200c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-183 183-183-183c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l200 200z\"\u002F>",{"left":20,"top":20,"width":259,"height":255,"rotate":20,"vFlip":256,"hFlip":256,"body":262},"\u003Cpath fill=\"currentColor\" d=\"M0 88C0 74.7 10.7 64 24 64l400 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 112C10.7 112 0 101.3 0 88zM0 256c0-13.3 10.7-24 24-24l400 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 280c-13.3 0-24-10.7-24-24zM448 424c0 13.3-10.7 24-24 24L24 448c-13.3 0-24-10.7-24-24s10.7-24 24-24l400 0c13.3 0 24 10.7 24 24z\"\u002F>",{"left":20,"top":20,"width":255,"height":255,"rotate":20,"vFlip":256,"hFlip":256,"body":264},"\u003Cpath fill=\"currentColor\" d=\"M205.5 92.7l13.7-60.7 73.6 0 13.7 60.7c1.7 7.4 6.8 13.6 13.8 16.7 10.8 4.8 21 10.7 30.4 17.6 6.1 4.5 14.1 5.9 21.4 3.6l59.5-18.5 36.8 63.8-45.8 42.3c-5.6 5.2-8.4 12.7-7.6 20.2 1.3 11.5 1.3 23.7 0 35.2-.8 7.6 2 15.1 7.6 20.2l45.8 42.3-36.8 63.8-59.5-18.5c-7.3-2.3-15.2-.9-21.4 3.6-9.4 6.9-19.6 12.9-30.4 17.6-7 3.1-12.1 9.3-13.8 16.7l-13.7 60.7-73.6 0-13.7-60.7c-1.7-7.4-6.8-13.6-13.8-16.7-10.8-4.8-21-10.7-30.4-17.6-6.1-4.5-14.1-5.9-21.4-3.6l-59.5 18.5-36.8-63.8 45.8-42.3c5.6-5.2 8.4-12.7 7.6-20.2-1.3-11.5-1.3-23.7 0-35.2 .8-7.6-2-15.1-7.6-20.2l-45.8-42.3 36.8-63.8 59.5 18.5c7.3 2.3 15.2 .9 21.4-3.6 9.4-6.9 19.6-12.9 30.4-17.6 7-3.1 12.1-9.3 13.8-16.7zM212.8-16c-18.7 0-34.9 13-39 31.2L161.2 70.8c-6.3 3.2-12.3 6.7-18.2 10.5L88.6 64.4c-17.9-5.6-37.2 2-46.5 18.2L-1.1 157.4c-9.3 16.2-6.2 36.7 7.5 49.4l41.9 38.7c-.3 6.9-.3 14 0 21L6.4 305.2c-13.7 12.7-16.9 33.2-7.5 49.4l43.2 74.8c9.3 16.2 28.7 23.7 46.5 18.2l54.5-16.9c5.9 3.8 11.9 7.3 18.2 10.5l12.6 55.6c4.1 18.2 20.3 31.2 39 31.2l86.4 0c18.7 0 34.9-13 39-31.2l12.6-55.6c6.3-3.2 12.3-6.7 18.2-10.5l54.5 16.9c17.9 5.6 37.2-2 46.5-18.2l43.2-74.8c9.3-16.2 6.2-36.7-7.5-49.4l-41.9-38.7c.3-6.9 .3-14 0-21l41.9-38.7c13.7-12.7 16.8-33.2 7.5-49.4L470 82.6c-9.4-16.2-28.7-23.7-46.5-18.2L369 81.3c-5.9-3.8-11.9-7.3-18.2-10.5L338.3 15.2C334.1-3 317.9-16 299.2-16l-86.4 0zM304 256a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-96a96 96 0 1 0 0 192 96 96 0 1 0 0-192z\"\u002F>",{"left":20,"top":20,"width":255,"height":255,"rotate":20,"vFlip":256,"hFlip":256,"body":266},"\u003Cpath fill=\"currentColor\" d=\"M51.9 384.9C19.3 344.6 0 294.4 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240 397.4 480 256 480c-36.5 0-71.2-7.2-102.6-20L37 509.9c-3.7 1.6-7.5 2.1-11.5 2.1-14.1 0-25.5-11.4-25.5-25.5 0-4.3 1.1-8.5 3.1-12.2l48.8-89.4zm37.3-30.2c12.2 15.1 14.1 36.1 4.8 53.2l-18 33.1 58.5-25.1c11.8-5.1 25.2-5.2 37.1-.3 25.7 10.5 54.2 16.4 84.3 16.4 117.8 0 208-88.8 208-192S373.8 48 256 48 48 136.8 48 240c0 42.8 15.1 82.4 41.2 114.7z\"\u002F>",[268,287,299],{"id":269,"slug":269,"title":270,"description":271,"date":272,"lastUpdated":272,"lastUpdatedKey":273,"lastUpdatedValue":274,"author":10,"tags":275,"coverImage":280,"coverImageAlt":281,"ogImage":282,"series":283,"seriesOrder":283,"readMinutes":284,"path":285,"href":286,"__fallback":24},"where-even-a-good-chord-finder-breaks","Where Even a Good Chord Finder Breaks","Every chord finder nails an open C. Push past beginner shapes into altered dominants and slash chords and some return \"no chord found.\" Here is where they break.","2026-06-30","knowledgeBase.relativeTime.weeksAgo",7,[12,13,276,277,278,279,14],"reverse-chord-lookup","chord-identifier","chord-naming","music-theory","\u002Fimages\u002Fblog\u002Fwhere-even-a-good-chord-finder-breaks-hero.webp","A single taut length of old natural rope straining over the edge of a worn wooden block, its fibres fraying and starting to part at the point of greatest tension, a small brass guitar tag tied to it, warm golden light","\u002Fimages\u002Fblog\u002Fwhere-even-a-good-chord-finder-breaks-hero.jpg",null,6,"\u002Fwhere-even-a-good-chord-finder-breaks","\u002Fblog\u002Fwhere-even-a-good-chord-finder-breaks",{"id":288,"slug":288,"title":289,"description":290,"date":291,"lastUpdated":291,"lastUpdatedKey":273,"lastUpdatedValue":274,"author":10,"tags":292,"coverImage":293,"coverImageAlt":294,"ogImage":295,"series":283,"seriesOrder":283,"readMinutes":296,"path":297,"href":298,"__fallback":24},"what-makes-a-good-chord-identifier","What Makes a Good Chord Identifier?","A rubric for judging any reverse chord lookup - check it yourself in 30 seconds. Plus a blind test where two independent AIs scored seven tools against theory.","2026-06-29",[12,13,276,277,278,279,14],"\u002Fimages\u002Fblog\u002Fwhat-makes-a-good-chord-identifier-hero.webp","A brass wax seal resting beside a single blob of warm red sealing wax freshly stamped with a small guitar emblem on aged paper, several blank unsealed sheets nearby, golden light","\u002Fimages\u002Fblog\u002Fwhat-makes-a-good-chord-identifier-hero.jpg",8,"\u002Fwhat-makes-a-good-chord-identifier","\u002Fblog\u002Fwhat-makes-a-good-chord-identifier",{"id":300,"slug":300,"title":203,"description":301,"date":302,"lastUpdated":302,"lastUpdatedKey":8,"lastUpdatedValue":9,"author":10,"tags":303,"coverImage":305,"coverImageAlt":306,"ogImage":307,"series":4,"seriesOrder":308,"readMinutes":309,"path":310,"href":202,"__fallback":24},"what-key-is-this-progression-actually-in","Most key finders match scales and give you a confident-looking answer. Fretscape asks what the progression actually suggests - and tells you how sure it is.","2026-06-09",[12,13,304,279,14,4],"key-detection","\u002Fimages\u002Fblog\u002Fwhat-key-is-this-progression-actually-in-hero.webp","A vintage brass compass resting on aged sheet music, its needle settling toward a marked point, with a faint pencilled question mark nearby","\u002Fimages\u002Fblog\u002Fwhat-key-is-this-progression-actually-in-hero.jpg",5,4,"\u002Fwhat-key-is-this-progression-actually-in",{"left":20,"top":20,"width":255,"height":255,"rotate":20,"vFlip":256,"hFlip":256,"body":312},"\u003Cpath fill=\"currentColor\" d=\"M7 239c-9.4 9.4-9.4 24.6 0 33.9L175 441c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L81.9 280 488 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L81.9 232 209 105c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239z\"\u002F>",{"left":20,"top":20,"width":255,"height":255,"rotate":20,"vFlip":256,"hFlip":256,"body":314},"\u003Cpath fill=\"currentColor\" d=\"M303.2 413c-21.5 43.7-41.4 51-47.2 51s-25.7-7.3-47.2-51c-17-34.5-29.2-81.6-32.1-133l158.6 0c-3 51.5-15.2 98.6-32.1 133zm32.1-181l-158.6 0c3-51.5 15.2-98.6 32.1-133 21.5-43.7 41.4-51 47.2-51s25.7 7.3 47.2 51c17 34.5 29.2 81.6 32.1 133zm48.1 48l79.2 0c-8.6 74.6-56.7 137.3-122.8 166.4 24-42.8 40.3-102.4 43.6-166.4zm79.2-48l-79.2 0c-3.3-64-19.6-123.6-43.6-166.4 66.1 29.2 114.2 91.8 122.8 166.4zm-334 0l-79.2 0c8.6-74.6 56.7-137.3 122.8-166.4-24 42.8-40.3 102.4-43.6 166.4zM49.4 280l79.2 0c3.3 64 19.6 123.6 43.6 166.4-66.1-29.2-114.2-91.8-122.8-166.4zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512z\"\u002F>",{"left":20,"top":20,"width":255,"height":255,"rotate":20,"vFlip":256,"hFlip":256,"body":316},"\u003Cpath fill=\"currentColor\" d=\"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"\u002F>"]