{"id":80,"date":"2026-10-09T13:58:42","date_gmt":"2026-10-09T13:58:42","guid":{"rendered":"https:\/\/www.glencoulson.com\/?p=80"},"modified":"2026-10-09T18:56:38","modified_gmt":"2026-10-09T18:56:38","slug":"squish-see-a-bug-squish-a-bug","status":"publish","type":"post","link":"https:\/\/www.glencoulson.com\/index.php\/2026\/10\/09\/squish-see-a-bug-squish-a-bug\/","title":{"rendered":"Squish \u2014 See a Bug, Squish a Bug!"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ve been building quite a few applications lately, and one thing I&#8217;ve learned is that finding bugs is easy. Keeping track of them all is another story.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;ll be testing something, notice a button doesn&#8217;t work, a page looks terrible on mobile, or something that worked yesterday suddenly doesn&#8217;t work today. Sound familiar?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sure, there are plenty of bug-tracking systems out there, but most of them seem to require a degree in project management just to report a broken button.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I wanted something simpler. So I built <strong>Squish<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"1024\" src=\"https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022867-473x1024.jpg\" alt=\"\" class=\"wp-image-83\" style=\"width:306px;height:auto\" srcset=\"https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022867-473x1024.jpg 473w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022867-138x300.jpg 138w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022867-768x1664.jpg 768w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022867-709x1536.jpg 709w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022867-945x2048.jpg 945w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022867.jpg 1080w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Squish is a lightweight, web-based bug reporter built with PHP and MySQL. The idea is pretty straightforward: <strong>See a bug, capture it, mark it, describe it, and Squish it.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When I find something wrong, I can take a screenshot, upload it or paste it directly from my clipboard. Squish lets me mark up the image right in my browser, highlighting exactly what&#8217;s broken. No need to open another graphics program just to draw a circle around a problem.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"1024\" src=\"https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022871-473x1024.jpg\" alt=\"\" class=\"wp-image-85\" style=\"aspect-ratio:0.4619185920499371;width:310px;height:auto\" srcset=\"https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022871-473x1024.jpg 473w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022871-138x300.jpg 138w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022871-709x1536.jpg 709w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022871-768x1664.jpg 768w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022871-945x2048.jpg 945w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022871.jpg 1080w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I can attach up to three screenshots, give the bug a short description, and assign it to the application I&#8217;m working on. Squish automatically gives it a bug number so I can keep track of things without inventing my own filing system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It even keeps the original screenshot along with my marked-up version, just in case I need to go back and see what things looked like before I started drawing all over them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Everything goes onto a simple bug board. A problem is either <strong>OPEN<\/strong> or <strong>SQUISHED<\/strong>. That&#8217;s it. When the bug is fixed, I mark it SQUISHED, and the report stays around in case I need to reference it later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m also using AI coding agents to help develop my applications, and screenshots make it a whole lot easier to show an agent exactly what&#8217;s wrong instead of trying to explain that the third button from the left is overlapping the thingamajig underneath it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"473\" height=\"1024\" src=\"https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022869-473x1024.jpg\" alt=\"\" class=\"wp-image-86\" style=\"aspect-ratio:0.46191537731476373;width:314px;height:auto\" srcset=\"https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022869-473x1024.jpg 473w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022869-138x300.jpg 138w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022869-945x2048.jpg 945w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022869-768x1664.jpg 768w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022869-709x1536.jpg 709w, https:\/\/www.glencoulson.com\/wp-content\/uploads\/2026\/10\/1000022869.jpg 1080w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Eventually, I may tie Squish into FortiDude, my project development and planning system, so bug reports can become punchlist items. But I deliberately kept the two independent. Squish doesn&#8217;t need FortiDude, and it doesn&#8217;t need to grow into another complicated project-management application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s really the whole point.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I didn&#8217;t want another system to manage. I wanted a quick way to point at something broken, explain what&#8217;s wrong, get it fixed, and move on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Find it. Mark it. Fix it. SQUISH IT!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been building quite a few applications lately, and one thing I&#8217;ve learned is that finding bugs is easy. Keeping track of them all is another story. I&#8217;ll be testing something, notice a button doesn&#8217;t work, a page looks terrible on mobile, or something that worked yesterday suddenly doesn&#8217;t work today. Sound familiar? Sure, there [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":81,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-80","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/posts\/80","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/comments?post=80"}],"version-history":[{"count":3,"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/posts\/80\/revisions"}],"predecessor-version":[{"id":87,"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/posts\/80\/revisions\/87"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/media\/81"}],"wp:attachment":[{"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/media?parent=80"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/categories?post=80"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glencoulson.com\/index.php\/wp-json\/wp\/v2\/tags?post=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}