{"id":7,"date":"2026-09-02T13:08:31","date_gmt":"2026-09-02T13:08:31","guid":{"rendered":"https:\/\/demo.gatilab.com\/osmium\/2026\/09\/02\/write-the-limits-section-first\/"},"modified":"2026-09-02T13:08:31","modified_gmt":"2026-09-02T13:08:31","slug":"write-the-limits-section-first","status":"publish","type":"post","link":"https:\/\/demo.gatilab.com\/osmium\/write-the-limits-section-first\/","title":{"rendered":"Write the limits section first"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The measure is 65 characters. That is the one number in this theme I will not let a user change without a warning, because it is the number that makes a 3,000 word review feel like a conversation instead of a wall.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Start with the limits<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every review here has a section called <strong>what does not work<\/strong>. It is the section people quote. It is also the section that keeps the rest of the piece honest.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p class=\"wp-block-paragraph\">The honest paragraph is the one readers screenshot.<\/p><\/blockquote>\n\n\n\n<div class=\"wp-block-group is-style-tinted has-global-padding is-layout-constrained wp-container-core-group-is-layout-68b344da wp-block-group-is-layout-constrained is-style-tinted--1\">\n<h2 class=\"wp-block-heading has-contrast-2-color has-text-color has-small-font-size\" style=\"font-family:var(--wp--preset--font-family--valley-sans);font-weight:600;letter-spacing:0\">Verdict<\/h2>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\" style=\"font-family:var(--wp--preset--font-family--hedvig-letters-serif);line-height:1.4\">Buy it if you draft for hours and share a room. Skip it if you want a numpad.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8b30a644 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"wp-block-heading has-small-font-size\" style=\"font-family:var(--wp--preset--font-family--valley-sans);font-weight:600;letter-spacing:0\">What works<\/h3>\n\n\n\n<ul class=\"wp-block-list has-contrast-2-color has-text-color has-small-font-size\">\n<li>The quietest switches I have typed on<\/li>\n\n\n\n<li>Eleven days of battery in daily use<\/li>\n\n\n\n<li>Mac and Windows layouts on one switch<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"wp-block-heading has-small-font-size\" style=\"font-family:var(--wp--preset--font-family--valley-sans);font-weight:600;letter-spacing:0\">What does not<\/h3>\n\n\n\n<ul class=\"wp-block-list has-contrast-2-color has-text-color has-small-font-size\">\n<li>No numpad, and no plan for one<\/li>\n\n\n\n<li>The companion app needs an account<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"#\">Check the current price<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n\n<h3 class=\"wp-block-heading\">The one thing to copy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Set your content width in <code>theme.json<\/code> once and stop fighting it in CSS. Here is a <a href=\"#\">link<\/a> so the link colour shows up.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"layout\": {\n  \"contentSize\": \"42rem\",\n  \"wideSize\": \"72rem\"\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Spacing comes from the theme&#8217;s spacing scale<\/li><li>Colors are palette slugs, so a variation restyles every review at once<\/li><li>Nothing here needs JavaScript<\/li><\/ul>\n\n\n\n<figure tabindex=\"0\" class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Board<\/th><th>Battery<\/th><th>Noise<\/th><\/tr><\/thead><tbody><tr><td>Fieldnote 3<\/td><td>11 days<\/td><td>38 dB<\/td><\/tr><tr><td>Loom 75<\/td><td>6 days<\/td><td>46 dB<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>What I learned building a theme for people who write for a living: patterns beat CSS, the editor is the design tool, and every script you skip is a reader you keep.<\/p>\n","protected":false},"author":1,"featured_media":56,"comment_status":"open","ping_status":"open","sticky":false,"template":"single-with-sidebar","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-7","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-writing"],"_links":{"self":[{"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/posts\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":0,"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/posts\/7\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/media\/56"}],"wp:attachment":[{"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/media?parent=7"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/categories?post=7"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demo.gatilab.com\/osmium\/wp-json\/wp\/v2\/tags?post=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}