{"id":928,"date":"2026-03-09T14:46:58","date_gmt":"2026-03-09T14:46:58","guid":{"rendered":"https:\/\/ruby-doc.org\/blog\/?p=928"},"modified":"2026-03-09T14:47:00","modified_gmt":"2026-03-09T14:47:00","slug":"what-ruby-developers-can-learn-from-handmade-design","status":"publish","type":"post","link":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/","title":{"rendered":"What Ruby Developers Can Learn from Handmade Design"},"content":{"rendered":"\n<p>In a world dominated by automation and mass production, handmade jewellery continues to hold a special kind of value. Each piece is shaped carefully by a skilled artisan, with every curve, texture, and finish reflecting deliberate choices. Interestingly, the same philosophy that guides handmade jewellery can also be applied to writing software\u2014particularly when working with Ruby.<\/p>\n\n\n\n<p>Ruby has long been celebrated for its elegance and expressive syntax. Like <a href=\"https:\/\/aquilajewellery.com\/\">handmade rings<\/a> or necklace, well-written Ruby code reflects intention, clarity, and a deep understanding of the materials involved. By looking at the mindset behind handmade jewellery, developers can discover useful parallels that lead to better, more thoughtful software.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Craftsmanship Over Mass Production<\/h2>\n\n\n\n<p>Handmade jewellery is not produced on an assembly line. Artisans spend hours shaping metal, setting stones, and refining details. Every step is intentional.<\/p>\n\n\n\n<p>The same principle applies to high-quality Ruby development. While modern frameworks allow developers to generate large amounts of code quickly, the best Ruby programmers take the time to refine their work. They avoid unnecessary complexity and focus on clarity.<\/p>\n\n\n\n<p>Ruby encourages this kind of craftsmanship. Its syntax is designed to read almost like natural language, allowing developers to write code that feels intuitive and expressive.<\/p>\n\n\n\n<p>For example:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">orders.select(&amp;:paid?).map(&amp;:total)<\/pre>\n\n\n\n<p>This short line communicates exactly what it does\u2014select paid orders and extract their totals. Like a handcrafted object, the beauty lies in its simplicity.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Beauty of Small Details<\/h2>\n\n\n\n<p>In jewellery, subtle textures or slight variations in shape can give a piece character. These details make handcrafted items feel unique and authentic.<\/p>\n\n\n\n<p>In Ruby, small details matter as well. Thoughtful method names, well-organized classes, and clear abstractions transform ordinary code into something elegant.<\/p>\n\n\n\n<p>Compare these two examples:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">def calc(x)<br>  x * 1.2<br>end<\/pre>\n\n\n\n<p>Versus:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">def apply_tax(price)<br>  price * TAX_RATE<br>end<\/pre>\n\n\n\n<p>The second example tells a clear story. Just as jewellery artisans refine tiny details to improve the final piece, Ruby developers refine their code so that others can easily understand it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Choosing the Right Materials<\/h2>\n\n\n\n<p>Jewellery makers carefully select their materials. Sterling silver, recycled metals, and responsibly sourced gemstones all influence the durability and ethics of the finished piece.<\/p>\n\n\n\n<p>Software development has its own equivalent: choosing the right tools and libraries.<\/p>\n\n\n\n<p>Ruby developers often rely on gems to extend functionality. However, experienced programmers know that adding too many dependencies can weaken a project. Like selecting metals for jewellery, choosing the right components matters.<\/p>\n\n\n\n<p>Good developers ask questions such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Is this gem well maintained?<\/li>\n\n\n\n<li>Does it solve the problem cleanly?<\/li>\n\n\n\n<li>Will it make the codebase easier or harder to maintain?<\/li>\n<\/ul>\n\n\n\n<p>Thoughtful material selection leads to software that remains reliable for years.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sustainability in Software<\/h2>\n\n\n\n<p>Modern jewellery makers are increasingly focused on sustainability, using recycled materials and responsible sourcing. The goal is to create beautiful objects while reducing environmental impact.<\/p>\n\n\n\n<p>In software, sustainability takes the form of maintainable code.<\/p>\n\n\n\n<p>Projects that are rushed or poorly structured may work initially, but they become difficult to maintain over time. Sustainable Ruby development emphasizes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>clear architecture<\/li>\n\n\n\n<li>meaningful documentation<\/li>\n\n\n\n<li>modular design<\/li>\n\n\n\n<li>readable code<\/li>\n<\/ul>\n\n\n\n<p>These practices ensure that a project remains usable long after its first release.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Signature of the Maker<\/h2>\n\n\n\n<p>Every artisan leaves a subtle signature on their work. The techniques they use, the shapes they prefer, and the finishes they apply all reflect their personal style.<\/p>\n\n\n\n<p>Developers do the same.<\/p>\n\n\n\n<p>Experienced Ruby programmers develop recognizable patterns in how they structure applications. Their code often reflects a balance of readability, modularity, and Ruby idioms.<\/p>\n\n\n\n<p>Frameworks like Ruby on Rails encourage this philosophy by emphasizing convention over configuration. Instead of forcing developers to reinvent common patterns, Rails provides structure that still allows individual craftsmanship.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Building Code That Lasts<\/h2>\n\n\n\n<p>Handmade jewellery is often designed to last for generations. These pieces become heirlooms, valued not only for their materials but also for the stories they carry.<\/p>\n\n\n\n<p>Software should aim for similar longevity.<\/p>\n\n\n\n<p>Well-written Ruby code <a href=\"https:\/\/stackoverflow.com\/questions\/159797\/is-ruby-a-functional-language\">can remain<\/a> functional and understandable for many years. When developers prioritize clarity and thoughtful design, they create applications that can evolve without collapsing under their own complexity.<\/p>\n\n\n\n<p>This means writing code that future developers\u2014possibly even yourself\u2014can easily read and extend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lessons for Ruby Developers<\/h2>\n\n\n\n<p>The world of handmade jewellery reminds us that quality comes from intention. Whether shaping silver or writing software, craftsmanship requires patience, experience, and attention to detail.<\/p>\n\n\n\n<p>Ruby developers <a href=\"https:\/\/uk.indeed.com\/career-advice\/finding-a-job\/how-to-become-ruby-developer\">can take<\/a> inspiration from this approach by:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>writing expressive, readable code<\/li>\n\n\n\n<li>refining small details that improve clarity<\/li>\n\n\n\n<li>choosing tools carefully<\/li>\n\n\n\n<li>designing systems that remain maintainable over time<\/li>\n<\/ul>\n\n\n\n<p>In both jewellery and programming, the goal is not simply to produce something functional\u2014it is to create something thoughtfully made.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code as Craft<\/h2>\n\n\n\n<p>Handmade jewellery stands apart from mass-produced accessories because it reflects the care and creativity of the person who made it. Ruby programming shares the same spirit.<\/p>\n\n\n\n<p>When developers treat their code as a craft rather than a commodity, they produce software that is cleaner, more elegant, and more enduring.<\/p>\n\n\n\n<p>Just as a skilled jeweller transforms raw metal into something timeless, a skilled Ruby developer can transform simple logic into beautifully crafted code.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a world dominated by automation and mass production, handmade jewellery continues to hold a special kind of value. Each piece is shaped carefully by a skilled artisan, with every curve, texture, and finish reflecting deliberate choices. Interestingly, the same philosophy that guides handmade jewellery can also be applied to writing software\u2014particularly when working with [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":929,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-928","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ruby-tips"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What Ruby Developers Can Learn from Handmade Design - Ruby-Doc.org<\/title>\n<meta name=\"robots\" content=\"noindex, nofollow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Ruby Developers Can Learn from Handmade Design - Ruby-Doc.org\" \/>\n<meta property=\"og:description\" content=\"In a world dominated by automation and mass production, handmade jewellery continues to hold a special kind of value. Each piece is shaped carefully by a skilled artisan, with every curve, texture, and finish reflecting deliberate choices. Interestingly, the same philosophy that guides handmade jewellery can also be applied to writing software\u2014particularly when working with [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/\" \/>\n<meta property=\"og:site_name\" content=\"Ruby-Doc.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-09T14:46:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-09T14:47:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ruby-doc.org\/blog\/wp-content\/uploads\/2026\/03\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1438\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ryan McGregor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ryan McGregor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/\"},\"author\":{\"name\":\"Ryan McGregor\",\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/#\\\/schema\\\/person\\\/db7fcc3c518c40f29f8bf79ffa678dfc\"},\"headline\":\"What Ruby Developers Can Learn from Handmade Design\",\"datePublished\":\"2026-03-09T14:46:58+00:00\",\"dateModified\":\"2026-03-09T14:47:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/\"},\"wordCount\":833,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg\",\"articleSection\":[\"Ruby tips\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/\",\"url\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/\",\"name\":\"What Ruby Developers Can Learn from Handmade Design - Ruby-Doc.org\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg\",\"datePublished\":\"2026-03-09T14:46:58+00:00\",\"dateModified\":\"2026-03-09T14:47:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg\",\"width\":2560,\"height\":1438},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/what-ruby-developers-can-learn-from-handmade-design\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What Ruby Developers Can Learn from Handmade Design\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/\",\"name\":\"Ruby-Doc.org\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/#organization\",\"name\":\"Ruby-Doc.org\",\"url\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/Ruby-Doc.org_logo_cropped.png\",\"contentUrl\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/Ruby-Doc.org_logo_cropped.png\",\"width\":909,\"height\":833,\"caption\":\"Ruby-Doc.org\"},\"image\":{\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/#\\\/schema\\\/person\\\/db7fcc3c518c40f29f8bf79ffa678dfc\",\"name\":\"Ryan McGregor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f7b4d11da7f55d40163cd9431935ce1148d9bd69c95928064822f7757b6314dd?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f7b4d11da7f55d40163cd9431935ce1148d9bd69c95928064822f7757b6314dd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f7b4d11da7f55d40163cd9431935ce1148d9bd69c95928064822f7757b6314dd?s=96&d=mm&r=g\",\"caption\":\"Ryan McGregor\"},\"url\":\"https:\\\/\\\/ruby-doc.org\\\/blog\\\/author\\\/ryan\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What Ruby Developers Can Learn from Handmade Design - Ruby-Doc.org","robots":{"index":"noindex","follow":"nofollow"},"og_locale":"en_US","og_type":"article","og_title":"What Ruby Developers Can Learn from Handmade Design - Ruby-Doc.org","og_description":"In a world dominated by automation and mass production, handmade jewellery continues to hold a special kind of value. Each piece is shaped carefully by a skilled artisan, with every curve, texture, and finish reflecting deliberate choices. Interestingly, the same philosophy that guides handmade jewellery can also be applied to writing software\u2014particularly when working with [&hellip;]","og_url":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/","og_site_name":"Ruby-Doc.org","article_published_time":"2026-03-09T14:46:58+00:00","article_modified_time":"2026-03-09T14:47:00+00:00","og_image":[{"width":2560,"height":1438,"url":"https:\/\/ruby-doc.org\/blog\/wp-content\/uploads\/2026\/03\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg","type":"image\/jpeg"}],"author":"Ryan McGregor","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ryan McGregor","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/#article","isPartOf":{"@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/"},"author":{"name":"Ryan McGregor","@id":"https:\/\/ruby-doc.org\/blog\/#\/schema\/person\/db7fcc3c518c40f29f8bf79ffa678dfc"},"headline":"What Ruby Developers Can Learn from Handmade Design","datePublished":"2026-03-09T14:46:58+00:00","dateModified":"2026-03-09T14:47:00+00:00","mainEntityOfPage":{"@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/"},"wordCount":833,"commentCount":0,"publisher":{"@id":"https:\/\/ruby-doc.org\/blog\/#organization"},"image":{"@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/#primaryimage"},"thumbnailUrl":"https:\/\/ruby-doc.org\/blog\/wp-content\/uploads\/2026\/03\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg","articleSection":["Ruby tips"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/","url":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/","name":"What Ruby Developers Can Learn from Handmade Design - Ruby-Doc.org","isPartOf":{"@id":"https:\/\/ruby-doc.org\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/#primaryimage"},"image":{"@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/#primaryimage"},"thumbnailUrl":"https:\/\/ruby-doc.org\/blog\/wp-content\/uploads\/2026\/03\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg","datePublished":"2026-03-09T14:46:58+00:00","dateModified":"2026-03-09T14:47:00+00:00","breadcrumb":{"@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/#primaryimage","url":"https:\/\/ruby-doc.org\/blog\/wp-content\/uploads\/2026\/03\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg","contentUrl":"https:\/\/ruby-doc.org\/blog\/wp-content\/uploads\/2026\/03\/What-Ruby-Developers-Can-Learn-from-Handmade-Design-scaled.jpg","width":2560,"height":1438},{"@type":"BreadcrumbList","@id":"https:\/\/ruby-doc.org\/blog\/what-ruby-developers-can-learn-from-handmade-design\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ruby-doc.org\/blog\/"},{"@type":"ListItem","position":2,"name":"What Ruby Developers Can Learn from Handmade Design"}]},{"@type":"WebSite","@id":"https:\/\/ruby-doc.org\/blog\/#website","url":"https:\/\/ruby-doc.org\/blog\/","name":"Ruby-Doc.org","description":"","publisher":{"@id":"https:\/\/ruby-doc.org\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ruby-doc.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ruby-doc.org\/blog\/#organization","name":"Ruby-Doc.org","url":"https:\/\/ruby-doc.org\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ruby-doc.org\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ruby-doc.org\/blog\/wp-content\/uploads\/2025\/07\/Ruby-Doc.org_logo_cropped.png","contentUrl":"https:\/\/ruby-doc.org\/blog\/wp-content\/uploads\/2025\/07\/Ruby-Doc.org_logo_cropped.png","width":909,"height":833,"caption":"Ruby-Doc.org"},"image":{"@id":"https:\/\/ruby-doc.org\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/ruby-doc.org\/blog\/#\/schema\/person\/db7fcc3c518c40f29f8bf79ffa678dfc","name":"Ryan McGregor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f7b4d11da7f55d40163cd9431935ce1148d9bd69c95928064822f7757b6314dd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f7b4d11da7f55d40163cd9431935ce1148d9bd69c95928064822f7757b6314dd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f7b4d11da7f55d40163cd9431935ce1148d9bd69c95928064822f7757b6314dd?s=96&d=mm&r=g","caption":"Ryan McGregor"},"url":"https:\/\/ruby-doc.org\/blog\/author\/ryan\/"}]}},"_links":{"self":[{"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/posts\/928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/comments?post=928"}],"version-history":[{"count":1,"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/posts\/928\/revisions"}],"predecessor-version":[{"id":930,"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/posts\/928\/revisions\/930"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/media\/929"}],"wp:attachment":[{"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/media?parent=928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/categories?post=928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ruby-doc.org\/blog\/wp-json\/wp\/v2\/tags?post=928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}