<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: qingwancong</title>
    <description>The latest articles on DEV Community by qingwancong (@congcong).</description>
    <link>https://dev.to/congcong</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4023087%2Ff00d80b4-f79b-4e77-a3cd-e1979ea635a2.png</url>
      <title>DEV Community: qingwancong</title>
      <link>https://dev.to/congcong</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/congcong"/>
    <language>en</language>
    <item>
      <title>87 87 月牙抱橡果龙猫：九板分区拼豆接缝检查法</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Sun, 02 Aug 2026 13:27:24 +0000</pubDate>
      <link>https://dev.to/congcong/87x87-yue-ya-bao-xiang-guo-long-mao-jiu-ban-fen-qu-pin-dou-jie-feng-jian-cha-fa-4lga</link>
      <guid>https://dev.to/congcong/87x87-yue-ya-bao-xiang-guo-long-mao-jiu-ban-fen-qu-pin-dou-jie-feng-jian-cha-fa-4lga</guid>
      <description>&lt;p&gt;把一只蜷在月牙里、双手抱橡果的龙猫做成 87×87 拼豆图纸，最大的难点不是配色，而是把整张图拆成可铺、可校对的小块，并在熨烫前发现接缝错位。这篇按九板分区的思路，讲清楚备料、铺板顺序和边界校对三个环节。&lt;/p&gt;

&lt;h2&gt;
  
  
  先看清参考原画
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F555gl06gzeg9e9zlt5wn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F555gl06gzeg9e9zlt5wn.png" alt="月牙抱橡果龙猫参考原画，PDF 标注为 AI artwork reference，87×87、9块板、16色、3360颗，非实体成品" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;这张是配色与造型参考原画，PDF 里标注为 AI artwork reference，对应 87×87、9 块 29×29 板、16 色、3,360 颗的图纸。需要说明：它只是配色和造型的参考，不是已经制作完成的实体拼豆作品，准确的颗粒摆放以下方编号图为准。&lt;/p&gt;

&lt;h2&gt;
  
  
  九块板的命名与铺板顺序
&lt;/h2&gt;

&lt;p&gt;87×87 的画布切成三行三列，每块 29×29，按 A1–C3 命名：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;第一行：A1（左上）、B1（中上）、C1（右上）&lt;/li&gt;
&lt;li&gt;第二行：A2（左中）、B2（正中）、C2（右中）&lt;/li&gt;
&lt;li&gt;第三行：A3（左下）、B3（中下）、C3（右下）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;铺板顺序建议从左上往右上逐行推进：A1 → B1 → C1 → A2 → B2 → C2 → A3 → B3 → C3。这样每铺完一块，右手边的相邻列永远是下一块要对接的边界，方便即时比对。&lt;/p&gt;

&lt;h2&gt;
  
  
  备料与分装
&lt;/h2&gt;

&lt;p&gt;16 色里有两色用量很大，务必提前分装，避免铺到一半才发现不够：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;色号&lt;/th&gt;
&lt;th&gt;颜色&lt;/th&gt;
&lt;th&gt;颗数&lt;/th&gt;
&lt;th&gt;含余量袋数&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;80-19057&lt;/td&gt;
&lt;td&gt;Cheddar&lt;/td&gt;
&lt;td&gt;1,306&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-19092&lt;/td&gt;
&lt;td&gt;Dark Grey&lt;/td&gt;
&lt;td&gt;1,048&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-15249&lt;/td&gt;
&lt;td&gt;Honey&lt;/td&gt;
&lt;td&gt;265&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-19056&lt;/td&gt;
&lt;td&gt;Pastel Yellow&lt;/td&gt;
&lt;td&gt;179&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-19021&lt;/td&gt;
&lt;td&gt;Light Brown&lt;/td&gt;
&lt;td&gt;163&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-19012&lt;/td&gt;
&lt;td&gt;Brown&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-15239&lt;/td&gt;
&lt;td&gt;Mocha&lt;/td&gt;
&lt;td&gt;65&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-19018&lt;/td&gt;
&lt;td&gt;Black&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-15274&lt;/td&gt;
&lt;td&gt;Rich Butter&lt;/td&gt;
&lt;td&gt;47&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-15207&lt;/td&gt;
&lt;td&gt;Charcoal&lt;/td&gt;
&lt;td&gt;46&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-19035&lt;/td&gt;
&lt;td&gt;Tan&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-19004&lt;/td&gt;
&lt;td&gt;Orange&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-15250&lt;/td&gt;
&lt;td&gt;Gingerbread&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-15260&lt;/td&gt;
&lt;td&gt;Stone&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-15220&lt;/td&gt;
&lt;td&gt;Olive&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80-15268&lt;/td&gt;
&lt;td&gt;Sunflower&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Cheddar 1,306 颗和深灰 1,048 颗各备两袋，先按每块板的用量预估分到小盒里，铺板时就不必反复回到大袋数数，也降低溢洒风险。&lt;/p&gt;

&lt;h2&gt;
  
  
  编号图怎么读
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faeo3uvbaq6yu77a0mi33.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faeo3uvbaq6yu77a0mi33.png" alt="月牙抱橡果龙猫完整编号摆放图，格子数字对应16色色表，橙色粗线划分九块29×29板，页脚保留toonbead.com" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;这张是同一图案的完整编号摆放图。格子里的小数字对应上方 16 色色表，橙色粗线划分九块 29×29 板的边界。铺每一块时，先定位三个锚点：龙猫的耳尖、月牙的内缘弧线、橡果帽的轮廓——这三个位置一旦坐准，周围的填色就有了参照。&lt;/p&gt;

&lt;h2&gt;
  
  
  三个接缝校对技巧
&lt;/h2&gt;

&lt;p&gt;每完成一块板，沿橙色粗线把相邻的两列或两行再数一次，确认边缘色块对齐；熨烫前用主色（Cheddar 或深灰）在废板上做一小块小样，试好温度和时长再正式熨；如果发现接缝处颜色对不上，回到编号图核对该坐标，多数情况是相邻板之间错了一格而非颜色选错。&lt;/p&gt;

&lt;p&gt;按这个流程，一只月牙抱橡果的龙猫就能分九块稳定地拼出来。更多图纸和材料清单可以在 &lt;a href="https://toonbead.com/patterns" rel="noopener noreferrer"&gt;Toonbead 图纸库&lt;/a&gt; 查看。&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Plan an 87x87 Umbrella Totoro Fuse Bead Pattern Across Nine Boards</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Thu, 30 Jul 2026 10:12:36 +0000</pubDate>
      <link>https://dev.to/congcong/how-to-plan-an-87x87-umbrella-totoro-fuse-bead-pattern-across-nine-boards-3l9l</link>
      <guid>https://dev.to/congcong/how-to-plan-an-87x87-umbrella-totoro-fuse-bead-pattern-across-nine-boards-3l9l</guid>
      <description>&lt;p&gt;Large fuse-bead patterns usually fail quietly. A single misplaced bead near the middle of one board may look harmless, but the error can shift a face, break an umbrella rib, or leave two finished boards one cell out of alignment.&lt;/p&gt;

&lt;p&gt;This 87×87 umbrella Totoro pattern is a useful example because it combines three very different structures: a wide geometric canopy, a mostly solid dark body, and small rain details separated by empty space. The right workflow is not simply “start at the top and keep going.” It is to prepare the materials, name the boards, establish anchors, and protect every seam before any heat is applied.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the PDF contains
&lt;/h2&gt;

&lt;p&gt;The printable file has three A4 pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a complete numbered placement map;&lt;/li&gt;
&lt;li&gt;the artwork used as a shape and color reference;&lt;/li&gt;
&lt;li&gt;a counted material list with Perler color codes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pattern is 87×87 cells, divided into nine 29×29 board regions. It uses 16 colors and 2,766 beads.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkz9ar8mxbw89pzhsscfn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkz9ar8mxbw89pzhsscfn.png" alt="AI-styled artwork reference of an umbrella Totoro-style forest character. The PDF labels it as a reference rather than a finished physical bead piece and lists an 87 by 87 grid, nine boards, 16 colors, and 2,766 beads." width="800" height="1131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Artwork reference for the umbrella character and color relationships. This is not a photograph or simulation of a finished physical bead piece; use the numbered map below for exact placement.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3250f2rcu73cnl6usi71.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3250f2rcu73cnl6usi71.png" alt="Complete numbered 87 by 87 placement map for the same umbrella character. Thick amber lines divide the map into nine 29 by 29 board regions, and each occupied cell contains a number matching the 16-color key." width="800" height="1131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Complete numbered placement map. Each cell number points to the color key, while the thicker amber lines mark the 29×29 board boundaries.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sort by job, not only by color
&lt;/h2&gt;

&lt;p&gt;The shopping list immediately shows which colors deserve their own large trays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dark Grey: 1,053 beads, so the 8% spare estimate requires two 1,000-bead bags;&lt;/li&gt;
&lt;li&gt;Honey: 435;&lt;/li&gt;
&lt;li&gt;Creme: 432;&lt;/li&gt;
&lt;li&gt;Cheddar: 253;&lt;/li&gt;
&lt;li&gt;Mist: 136;&lt;/li&gt;
&lt;li&gt;Light Brown: 120.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The remaining ten colors total only 337 beads, but several of them carry important information. Black and Charcoal define facial and outline details. Robin’s Egg and Mist separate the rain and puddle from the warmer umbrella. Olive, Slate Blue, and Stone appear only in small quantities, so losing one symbol in a large grey field is easy.&lt;/p&gt;

&lt;p&gt;I would therefore use two material groups:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;large open trays for colors 1–6;&lt;/li&gt;
&lt;li&gt;small labelled cups for colors 7–16.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Keep the printed color key beside the small cups. Similar dark neutrals are much easier to confuse when their names are remembered but their numbers are not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give every board a permanent address
&lt;/h2&gt;

&lt;p&gt;Name the boards before placing the first bead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A1  A2  A3
B1  B2  B3
C1  C2  C3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Write the same address on a removable note under each physical board. The complete map retains the original 87×87 coordinates, with thicker lines after columns 29 and 58 and rows 29 and 58. Those lines are not decorative; they are the hand-off points between boards.&lt;/p&gt;

&lt;p&gt;For each shared edge, copy a four-cell-wide inspection strip onto scrap paper. For example, the A2/B2 seam check should include the final two rows of A2 and the first two rows of B2. A four-row strip catches more mistakes than comparing only the two touching rows because it preserves the direction of diagonals and umbrella ribs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build anchors before filling large areas
&lt;/h2&gt;

&lt;p&gt;This design has broad regions of Dark Grey, Honey, and Creme. Filling those blocks first feels efficient, but it removes the landmarks that make counting reliable.&lt;/p&gt;

&lt;p&gt;Use this order instead:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;place the umbrella’s outer curve and the main rib intersections;&lt;/li&gt;
&lt;li&gt;mark the eyes, nose, belly symbols, feet, and umbrella handle;&lt;/li&gt;
&lt;li&gt;place the isolated raindrops and the ends of the puddle;&lt;/li&gt;
&lt;li&gt;complete the character’s outer contour;&lt;/li&gt;
&lt;li&gt;fill the large Dark Grey, Honey, and Creme regions last.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The isolated rain marks are especially useful anchors. Because they sit in empty cells, a one-column error is obvious there but can disappear inside the body.&lt;/p&gt;

&lt;p&gt;Work in short runs of five or ten cells and stop at a symbol change. Do not count a continuous row of grey as one long task. Resetting the count at each contour change prevents an early mistake from moving the rest of the row.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat each seam as a small independent pattern
&lt;/h2&gt;

&lt;p&gt;Before moving from one board to the next, perform three checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;compare the last two rows or columns with the numbered map;&lt;/li&gt;
&lt;li&gt;verify that every contour crossing reaches the same coordinate on both boards;&lt;/li&gt;
&lt;li&gt;check that empty cells remain empty, particularly around the umbrella and raindrops.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The wide canopy crosses both vertical board boundaries, so its curved edge is the best seam indicator in the top row of boards. The character body and belly cross the lower boundaries. If those outlines meet correctly, the large interior fills are unlikely to drift.&lt;/p&gt;

&lt;p&gt;Photograph each finished, unheated board from directly above. The photo is not proof that the full assembly is correct, but it gives you a stable reference if a bead is knocked loose while another board is being checked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test heat before committing nine boards
&lt;/h2&gt;

&lt;p&gt;Dark and pale beads can appear equally placed but react differently under the same heat and pressure. Make a small test swatch containing Dark Grey, Honey, Creme, Cheddar, Mist, and Light Brown. Use the same iron, paper, surface, temperature, and pressing time intended for the final piece.&lt;/p&gt;

&lt;p&gt;Look for three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hole closure is similar across light and dark colors;&lt;/li&gt;
&lt;li&gt;the swatch stays flat after cooling under weight;&lt;/li&gt;
&lt;li&gt;edge beads remain joined without spreading so far that board alignment becomes difficult.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not heat a board just because it is complete. First dry-align all nine unheated boards, inspect every shared edge, and confirm the outer silhouette from a few steps away. If the final method involves heating separate sections, test that exact seam method on spare beads before applying it to the pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  A compact build checklist
&lt;/h2&gt;

&lt;p&gt;Before placement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;print the PDF at 100% scale;&lt;/li&gt;
&lt;li&gt;label all nine boards;&lt;/li&gt;
&lt;li&gt;sort colors by number;&lt;/li&gt;
&lt;li&gt;reserve two bags of Dark Grey;&lt;/li&gt;
&lt;li&gt;prepare seam strips and a row counter.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before heating:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;verify the facial anchors and umbrella ribs;&lt;/li&gt;
&lt;li&gt;compare all twelve shared board edges;&lt;/li&gt;
&lt;li&gt;confirm isolated raindrops against their coordinates;&lt;/li&gt;
&lt;li&gt;dry-align the full 3×3 layout;&lt;/li&gt;
&lt;li&gt;complete a heat swatch with both dark and pale colors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The same board-first method works for any large printable fuse-bead pattern. The important idea is to move uncertainty forward: materials, coordinates, seams, and heat behavior should all be settled before the piece becomes difficult to correct.&lt;/p&gt;

&lt;p&gt;The matching PDF workflow and other printable designs are collected in the &lt;a href="https://toonbead.com/patterns" rel="noopener noreferrer"&gt;Toonbead printable pattern library&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>design</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>A board-by-board method for building an 87 87 white cat bead pattern</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Tue, 28 Jul 2026 15:56:33 +0000</pubDate>
      <link>https://dev.to/congcong/a-board-by-board-method-for-building-an-87x87-white-cat-bead-pattern-1fo3</link>
      <guid>https://dev.to/congcong/a-board-by-board-method-for-building-an-87x87-white-cat-bead-pattern-1fo3</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuhrltwmq369xoeoacpvw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuhrltwmq369xoeoacpvw.png" alt="White cat and red camellia - PDF page 2 artwork reference, not a finished bead piece" width="800" height="1131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;PDF page 2: the artwork reference for the subject and color balance. It is not a photograph of a finished fuse bead piece.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsp1hvpmlmk6w2twdjfcw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsp1hvpmlmk6w2twdjfcw.png" alt="Complete numbered 87 by 87 white cat and camellia bead map from PDF page 1" width="800" height="1131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;PDF page 1: the complete numbered placement map. Use this page for exact bead positions and 29 × 29 board boundaries.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A mostly white bead pattern looks forgiving until you start placing it. The silhouette is easy to recognize, but three pale colors can collapse into one under warm room light. The mistakes are rarely dramatic; they are usually a row of White placed where Toasted Marshmallow should have carried the shadow.&lt;/p&gt;

&lt;p&gt;This white cat and camellia pattern is 87×87 cells. It spans nine 29×29 square boards, uses 16 colors, and contains 3,155 beads. The printable pack is three pages: a full view, a numbered placement map, and a material key. Here is the workflow I would use before touching the first peg.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sort by code, not by color name
&lt;/h2&gt;

&lt;p&gt;The four largest groups are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;White: 1,782 beads&lt;/li&gt;
&lt;li&gt;Toasted Marshmallow: 735&lt;/li&gt;
&lt;li&gt;Tomato: 152&lt;/li&gt;
&lt;li&gt;Tan: 115&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;White and Toasted Marshmallow account for almost four fifths of the project. Put them in separate opaque trays and label each tray with both the symbol from the PDF and the color code. Do not rely on visual memory after sunset; pale beads change surprisingly much under yellow light.&lt;/p&gt;

&lt;p&gt;The material list includes an 8% allowance. White needs two bags at that margin, while each of the other major colors fits into one. I still keep a small “unknown” cup beside the board. If a bead rolls away and I cannot identify it immediately, it goes there instead of being guessed back into the pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Place the anchors before the white field
&lt;/h2&gt;

&lt;p&gt;Do not begin by filling the largest empty-looking area. Start with the eyes, nose, ear edges, the red camellia, and the dark outline around the flower. These high-contrast landmarks make it obvious if the design has shifted by one column.&lt;/p&gt;

&lt;p&gt;Once the anchors line up with the numbered map, fill the pale regions outward from them. A wrong white bead inside a large white area is hard to notice. A wrong bead beside a black eye or red petal is obvious immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give the nine boards names
&lt;/h2&gt;

&lt;p&gt;Label the 3×3 board layout A1–A3, B1–B3, and C1–C3. Add the same labels to a printed copy of the map. When one board is finished, check only two things before moving on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Compare the final two rows on every shared edge.&lt;/li&gt;
&lt;li&gt;Take one overhead photo in the same orientation as the PDF.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That photo is not for social media. It is a cheap checkpoint. If the next session begins two days later, it tells you which board was finished and whether it was accidentally rotated.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat the PDF pages as different tools
&lt;/h2&gt;

&lt;p&gt;The full image is for checking the cat’s pose and balance. The numbered map is for placement. The material table is for shopping and refilling trays. Trying to use the attractive preview as the placement guide is what makes a large project feel harder than it is.&lt;/p&gt;

&lt;p&gt;Small isolated cells deserve a manual check, especially around eyes, whisker roots, and flower edges. In a face, a cluster of three dark beads may carry more identity than a patch of fifty white beads.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test the iron before the cat
&lt;/h2&gt;

&lt;p&gt;Make a tiny test patch from spare beads. Start with a dry iron at medium heat, always use ironing paper, and move the heat evenly without pressing hard. If the center holes close immediately, reduce the temperature. For a nine-board piece, uneven heat at the outer edges is more dangerous than taking an extra minute.&lt;/p&gt;

&lt;p&gt;Let the piece cool before lifting the paper slowly. If children are involved, the ironing step belongs to an adult.&lt;/p&gt;

&lt;p&gt;The useful part of a large pattern is not the thumbnail. It is the combination of a readable map, board boundaries, exact counts, and a material key. The cat pattern library and its printable workflow are available in the &lt;a href="https://toonbead.com/patterns" rel="noopener noreferrer"&gt;Toonbead printable pattern library&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>diy</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Designing a Roblox Player Companion Around Verifiable Information</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Fri, 24 Jul 2026 16:12:59 +0000</pubDate>
      <link>https://dev.to/congcong/designing-a-roblox-player-companion-around-verifiable-information-46il</link>
      <guid>https://dev.to/congcong/designing-a-roblox-player-companion-around-verifiable-information-46il</guid>
      <description>&lt;p&gt;Player guides for a fast-moving Roblox game have a reliability problem: a useful page can become wrong as soon as an update lands.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;Merge a Black Hole Companion&lt;/strong&gt;, an independent, unofficial resource for players of XAF Games’ Merge a Black Hole. The project is deliberately scoped around information a guide can stand behind: current game status, codes with a source/verification label, beginner and raid routes, update notes, and small planning tools.&lt;/p&gt;

&lt;p&gt;The central product decision was to separate &lt;em&gt;facts&lt;/em&gt; from &lt;em&gt;assumptions&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A live status surface uses the Roblox Games and Votes APIs rather than copying a number into a page.&lt;/li&gt;
&lt;li&gt;Codes and update notes are labelled by source and verification state instead of being presented as permanent truth.&lt;/li&gt;
&lt;li&gt;The upgrade tools run privately in the browser. They help a player reason about ROI or compare two upgrade paths without requiring an account.&lt;/li&gt;
&lt;li&gt;Pages avoid publishing unverified progression tables, exploits, or fake “community” activity.&lt;/li&gt;
&lt;li&gt;Every important route keeps the unofficial fan-site disclaimer close to the relevant player action and points people back to official links.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That sounds conservative, but it is a better fit for a game whose meta changes often. A companion does not need to pretend it knows every number; it needs to make its evidence clear and help players make a decision with the information currently available.&lt;/p&gt;

&lt;p&gt;The implementation is a small Cloudflare Worker app with server-rendered, indexable guides, JSON-LD, a sitemap, and an Open Graph asset. The hard part is not the framework. It is maintaining the boundary between a useful player tool and an authoritative-looking page with no evidence behind it.&lt;/p&gt;

&lt;p&gt;The project is available at &lt;a href="https://mergeablackhole.net/" rel="noopener noreferrer"&gt;https://mergeablackhole.net/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>Why I Built a Free Printable Bead Pattern Library Instead of a Gallery</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Tue, 21 Jul 2026 16:58:23 +0000</pubDate>
      <link>https://dev.to/congcong/why-i-built-a-free-printable-bead-pattern-library-instead-of-a-gallery-4pe8</link>
      <guid>https://dev.to/congcong/why-i-built-a-free-printable-bead-pattern-library-instead-of-a-gallery-4pe8</guid>
      <description>&lt;h2&gt;
  
  
  A usable craft template needs more than a pretty preview
&lt;/h2&gt;

&lt;p&gt;A lot of digital craft resources stop at the image. They give you a small preview, perhaps a color approximation, and then leave the difficult translation to the person at the pegboard.&lt;/p&gt;

&lt;p&gt;That is fine for inspiration. It is not enough for a pattern someone can actually start, pause, and finish.&lt;/p&gt;

&lt;p&gt;The update I have been working on is a free printable pattern library for Toonbead. Each entry begins as original Toonbead Studio artwork and becomes a deliberately constrained 29 × 29 fuse-bead project. The point is not to generate a large collection of decorative thumbnails. The point is to publish templates with the missing handoff details included.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat the placement map as the source of truth
&lt;/h2&gt;

&lt;p&gt;A finished-looking pattern image is helpful for seeing the result, but it is a weak build instruction. Small colors merge, visual counting is error-prone, and two similar shades can become indistinguishable once the image is printed.&lt;/p&gt;

&lt;p&gt;Each library pattern therefore has a complete numbered placement map. Every colored cell uses the same symbol that appears in the printable PDF and in the material key. That lets the builder work from an unambiguous grid rather than trying to reverse-engineer a scaled-down preview.&lt;/p&gt;

&lt;p&gt;The initial collection deliberately stays at one 29 × 29 board. That constraint is part of the product design: it keeps the project approachable, makes the page honest about the required footprint, and avoids presenting a multi-board undertaking as a quick afternoon craft.&lt;/p&gt;

&lt;h2&gt;
  
  
  Material counts should be measured, not guessed
&lt;/h2&gt;

&lt;p&gt;The next gap in many free patterns is materials. “Use some blue and brown beads” is enough for an illustration, but not enough for someone preparing a project.&lt;/p&gt;

&lt;p&gt;A pattern page should tell the person how many beads it contains, which real palette it maps to, and how to retrieve an exact color-by-color list. In the library, each template includes counted materials and a downloadable CSV with a small spare-bead allowance. The printable PDF is a four-page build document rather than a single poster: overview, board map, symbol key, and material information have different jobs.&lt;/p&gt;

&lt;p&gt;This also creates a useful standard for future templates. A visual has not earned the label “free pattern” merely because it exists as a picture. It should be possible to check the grid, gather materials, and begin without inventing missing instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep the origin of the artwork clear
&lt;/h2&gt;

&lt;p&gt;The library templates are original Toonbead Studio digital artwork. They are not user submissions, and they are not photographs of completed physical pieces. That disclosure matters because a source artwork and a real-world build are different kinds of evidence.&lt;/p&gt;

&lt;p&gt;Showing the source alongside the bead pattern makes the transformation understandable without pretending that the physical craft has already been completed. It also protects the library from drifting into an opaque feed of generated images with no clue how they became buildable.&lt;/p&gt;

&lt;h2&gt;
  
  
  A template should be a starting point, not a dead end
&lt;/h2&gt;

&lt;p&gt;A useful free template does not need an account, an AI generation, or a credit balance to load. But a builder may still want to change the colors, alter the size, inspect another bead brand, or export the result again.&lt;/p&gt;

&lt;p&gt;That is why the final link in the workflow matters: opening a library template in the Maker transfers a real pattern into a local editing context. Loading, recoloring, resizing, and exporting the public template remain local operations. Optional AI remains separate and requires an explicit choice later; it is not silently attached to a free pattern.&lt;/p&gt;

&lt;p&gt;The result is a smaller promise than “unlimited AI art,” but it is more useful to a maker. A person can select a recognisable project, see the exact work involved, print it, and still adapt it for their own materials.&lt;/p&gt;

&lt;p&gt;The first free library templates, including owl, butterfly, dinosaur, hedgehog, watermelon, cupcake, ghost, flower, star, heart, crown, and alphabet patterns, are available in Toonbead’s Pattern Library: &lt;a href="https://toonbead.com/patterns" rel="noopener noreferrer"&gt;https://toonbead.com/patterns&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>Designing an Own-Voice Consent Flow for an API-First TTS Product</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Sat, 18 Jul 2026 16:03:26 +0000</pubDate>
      <link>https://dev.to/congcong/designing-an-own-voice-consent-flow-for-an-api-first-tts-product-207c</link>
      <guid>https://dev.to/congcong/designing-an-own-voice-consent-flow-for-an-api-first-tts-product-207c</guid>
      <description>&lt;h2&gt;
  
  
  Voice cloning is a product-design problem before it is a model problem
&lt;/h2&gt;

&lt;p&gt;It is tempting to describe voice cloning as a simple pipeline: collect a sample, create a voice, synthesize some text. That description is technically tidy, but it skips the part that determines whether the workflow deserves trust.&lt;/p&gt;

&lt;p&gt;A voice is not merely another media asset. It is recognisable, personal, and easy to mistake for identity. So the interface has to make the boundaries of the system legible before anyone reaches the satisfying moment of pressing “generate.”&lt;/p&gt;

&lt;p&gt;This is the set of constraints I use when designing an own-voice text-to-speech workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Put consent inside the action, not after it
&lt;/h2&gt;

&lt;p&gt;A generic terms checkbox at account creation is weak context. The meaningful decision happens when a person uploads or records the sample that will become a reusable voice.&lt;/p&gt;

&lt;p&gt;The flow should therefore make three things concrete at that point:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The user is supplying their own voice, or has the authority to use it.&lt;/li&gt;
&lt;li&gt;The sample is being used to create a synthetic voice for the requested purpose.&lt;/li&gt;
&lt;li&gt;The user understands that generated speech is a new output, not a recording of something they said.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A short spoken verification phrase is useful here. It makes the experience more intentional than a silent upload, and it gives the product a natural place to explain the boundary. The goal is not to pretend that one phrase solves every identity question. It is to avoid an interface that treats the source voice as an anonymous file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate the clone from the script
&lt;/h2&gt;

&lt;p&gt;There are two different decisions in this category of tool. The first is whether a voice should be created. The second is what text that voice should say.&lt;/p&gt;

&lt;p&gt;Keeping those stages separate improves both the user experience and the auditability of the product. A creation step can focus on sample quality, consent, and what is retained. A synthesis step can focus on pronunciation, pacing, language, and the actual script. Combining them in one opaque button makes it harder for a user to understand what happened and harder for the product team to set responsible defaults.&lt;/p&gt;

&lt;p&gt;This distinction also makes errors easier to communicate. “We could not create the voice from this sample” and “we could not synthesize this script” are different failures. They should not collapse into a vague loading state or, worse, a plausible-looking fake result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make failure honest
&lt;/h2&gt;

&lt;p&gt;Generative products are often judged by their happy path, but trust is built in the unhappy path. If the voice provider is unavailable, the product should return a clear temporary error. If a sample is too short or unusable, explain the next useful action. If the request cannot meet the product's consent rules, stop before generation.&lt;/p&gt;

&lt;p&gt;That may feel less magical than silently substituting a generic voice, but it respects the user. A workflow that creates media should always make the origin of its output clear.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy is part of the interface
&lt;/h2&gt;

&lt;p&gt;People reasonably want to know what happens to a sample after upload. The answer cannot live only in a policy page. The UI should say, in plain language, what the current action sends, what is processed remotely, and what the user can expect to keep locally.&lt;/p&gt;

&lt;p&gt;For small creator tools, clarity has another benefit: it prevents product scope from drifting toward “clone any voice” as a growth shortcut. A focused own-voice workflow is not just a safer message; it gives the interface a coherent job to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  The best use case is often continuity
&lt;/h2&gt;

&lt;p&gt;The most grounded use cases are practical: recording accessible narration in a familiar voice, drafting a corrected pickup after a recording session, or turning a prepared script into an audio version without losing the creator's identity.&lt;/p&gt;

&lt;p&gt;Those are not reasons to remove safeguards. They are reasons to build safeguards into the workflow people actually use. When a tool asks for explicit intent, separates creation from synthesis, and reports failure honestly, it feels less like a trick and more like a piece of creator infrastructure.&lt;/p&gt;

&lt;p&gt;I am applying these constraints in ClonaTuVoz, a Spanish-first own-voice cloning workspace: &lt;a href="https://clonatuvoz.com/" rel="noopener noreferrer"&gt;https://clonatuvoz.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>ChatWorkSkin: a free Codex skin builder with automatic macOS and Windows installers</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Fri, 17 Jul 2026 18:29:34 +0000</pubDate>
      <link>https://dev.to/congcong/chatworkskin-a-free-codex-skin-builder-with-automatic-macos-and-windows-installers-47dn</link>
      <guid>https://dev.to/congcong/chatworkskin-a-free-codex-skin-builder-with-automatic-macos-and-windows-installers-47dn</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhcjyjed46lc4ehcay55m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhcjyjed46lc4ehcay55m.png" alt="ChatWorkSkin current homepage" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ChatWorkSkin is now focused on one simple workflow: build a free Codex skin in the browser, download a layered .dreamskin package, and install it with a guided macOS or Windows path.&lt;/p&gt;

&lt;p&gt;The current homepage positions it around these keywords: free Codex skin, ChatGPT skin for coding, Codex desktop theme, AI coding workspace theme, and automatic Codex skin installer.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the page offers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A local visual builder for layered .dreamskin themes&lt;/li&gt;
&lt;li&gt;Built-in original artwork presets for Codex desktop customization&lt;/li&gt;
&lt;li&gt;A live Codex-style preview before installing&lt;/li&gt;
&lt;li&gt;Automatic installer guidance for macOS and Windows&lt;/li&gt;
&lt;li&gt;A restore path that keeps native Codex controls and app files intact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key point is that the skin is not a fake screenshot overlay. It is built for a coding workspace where the sidebar, project picker, tasks, menus, and composer still need to work normally.&lt;/p&gt;

&lt;p&gt;Try it here: &lt;a href="https://chatworkskin.com/" rel="noopener noreferrer"&gt;https://chatworkskin.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>Correction: ChatWorkSkin 1.2.2 latest UI uses the new fine-tune panel</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Fri, 17 Jul 2026 07:23:07 +0000</pubDate>
      <link>https://dev.to/congcong/correction-chatworkskin-122-latest-ui-uses-the-new-fine-tune-panel-2ba2</link>
      <guid>https://dev.to/congcong/correction-chatworkskin-122-latest-ui-uses-the-new-fine-tune-panel-2ba2</guid>
      <description>&lt;p&gt;I reposted ChatWorkSkin with the correct latest UI screenshot.&lt;/p&gt;

&lt;p&gt;The current 1.2.2 build is about layered .dreamskin themes and native Codex controls, but the visual detail that matters is the new fine-tune panel. It shows optional foreground layers, theme name, theme copy, colors, and focal point controls in the current studio UI.&lt;/p&gt;

&lt;p&gt;This replaces the older workbench screenshot I shared earlier.&lt;/p&gt;

&lt;p&gt;Current product page: &lt;a href="https://chatworkskin.com/" rel="noopener noreferrer"&gt;https://chatworkskin.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Search-intent mirror: &lt;a href="https://chatgptskin.org/" rel="noopener noreferrer"&gt;https://chatgptskin.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keywords: Codex skin, Codex theme, Codex desktop customization, AI coding workspace theme, dreamskin theme package.&lt;/p&gt;

</description>
      <category>showdev</category>
    </item>
    <item>
      <title>ChatWorkSkin update: a visual Codex skin studio with layered .dreamskin packages</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Fri, 17 Jul 2026 06:45:38 +0000</pubDate>
      <link>https://dev.to/congcong/chatworkskin-update-a-visual-codex-skin-studio-with-layered-dreamskin-packages-2b80</link>
      <guid>https://dev.to/congcong/chatworkskin-update-a-visual-codex-skin-studio-with-layered-dreamskin-packages-2b80</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxngxtidcfhjk3pc10qcv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxngxtidcfhjk3pc10qcv.jpg" alt="ChatWorkSkin Codex theme preview" width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I pushed a new visual update for ChatWorkSkin / Codex Dream Skin. The project is still focused on one narrow job: make a Codex desktop workspace feel personal without breaking native controls.&lt;/p&gt;

&lt;p&gt;The latest version is no longer just a background swap. It is a small local studio for Codex skins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;choose original artwork&lt;/li&gt;
&lt;li&gt;preview the Codex desktop theme before installing&lt;/li&gt;
&lt;li&gt;export a verifiable layered .dreamskin package&lt;/li&gt;
&lt;li&gt;install on macOS or Windows with a prefilled Codex task&lt;/li&gt;
&lt;li&gt;keep the native sidebar, task list, input box, and restore path intact&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The product angle is for people searching for a Codex skin, Codex theme, Codex desktop customization, or an AI coding workspace theme.&lt;/p&gt;

&lt;p&gt;Try it here: &lt;a href="https://chatworkskin.com/" rel="noopener noreferrer"&gt;https://chatworkskin.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Search-intent mirror: &lt;a href="https://chatgptskin.org/" rel="noopener noreferrer"&gt;https://chatgptskin.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The implementation deliberately avoids modifying the official app package. The skin package and install flow stay reversible so the desktop workspace can be customized without turning the app into a fragile fork.&lt;/p&gt;

</description>
      <category>opensource</category>
    </item>
    <item>
      <title>Building a free Codex skin installer without touching the official app package</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Thu, 16 Jul 2026 16:12:58 +0000</pubDate>
      <link>https://dev.to/congcong/building-a-free-codex-skin-installer-without-touching-the-official-app-package-49lm</link>
      <guid>https://dev.to/congcong/building-a-free-codex-skin-installer-without-touching-the-official-app-package-49lm</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F72v74vtn2pfoygc3edui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F72v74vtn2pfoygc3edui.png" alt="Codex Dream Skin preview" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I shipped a small tool for a very specific search intent: people looking for a &lt;strong&gt;ChatGPT skin&lt;/strong&gt; or a &lt;strong&gt;free Codex skin&lt;/strong&gt; for their coding workspace.&lt;/p&gt;

&lt;p&gt;The result is &lt;a href="https://chatgptskin.org/" rel="noopener noreferrer"&gt;Codex Dream Skin&lt;/a&gt;: a free Codex desktop theme with original artwork, a local preview, and an automatic installer for macOS and Windows.&lt;/p&gt;

&lt;p&gt;The important constraint was not visual. It was safety.&lt;/p&gt;

&lt;p&gt;A theme tool for a coding assistant should not ask users to replace the official app, patch an app bundle, edit &lt;code&gt;app.asar&lt;/code&gt;, or take ownership of protected Windows app files. That kind of shortcut may work once, but it is brittle across updates and hard to restore.&lt;/p&gt;

&lt;p&gt;So I built the workflow around a different rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Change the mood around Codex, but keep Codex itself intact.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What the site does
&lt;/h2&gt;

&lt;p&gt;The public page is built around the keywords already used on the website: &lt;strong&gt;Codex skin&lt;/strong&gt;, &lt;strong&gt;Codex theme&lt;/strong&gt;, &lt;strong&gt;free Codex skin&lt;/strong&gt;, &lt;strong&gt;automatic Codex skin installer&lt;/strong&gt;, &lt;strong&gt;Codex desktop customization&lt;/strong&gt;, &lt;strong&gt;ChatGPT coding theme&lt;/strong&gt;, &lt;strong&gt;Codex macOS&lt;/strong&gt;, and &lt;strong&gt;Codex Windows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The flow is deliberately simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose one of the bundled original themes.&lt;/li&gt;
&lt;li&gt;Preview the Codex skin in the browser.&lt;/li&gt;
&lt;li&gt;Prepare the one-command installer.&lt;/li&gt;
&lt;li&gt;Paste it into Terminal or PowerShell.&lt;/li&gt;
&lt;li&gt;Restore the original Codex appearance whenever needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The tool also supports a custom-image path on macOS, so users can turn their own artwork into a Codex desktop theme.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why native controls matter
&lt;/h2&gt;

&lt;p&gt;A lot of visual demos can fake a full app with a screenshot. That is not useful for daily work.&lt;/p&gt;

&lt;p&gt;Codex Dream Skin keeps the real Codex controls in place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sidebar&lt;/li&gt;
&lt;li&gt;task list&lt;/li&gt;
&lt;li&gt;project picker&lt;/li&gt;
&lt;li&gt;menus&lt;/li&gt;
&lt;li&gt;composer&lt;/li&gt;
&lt;li&gt;restore path&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The theme changes the surrounding visual layer and background treatment. It does not replace the workflow with a static mockup.&lt;/p&gt;

&lt;h2&gt;
  
  
  The safety boundary
&lt;/h2&gt;

&lt;p&gt;The installer is designed around a local loopback session and a reversible restore step.&lt;/p&gt;

&lt;p&gt;It does not modify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the official Codex app package&lt;/li&gt;
&lt;li&gt;&lt;code&gt;app.asar&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;WindowsApps files&lt;/li&gt;
&lt;li&gt;code signatures&lt;/li&gt;
&lt;li&gt;conversation data&lt;/li&gt;
&lt;li&gt;login state&lt;/li&gt;
&lt;li&gt;API keys or model-provider configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point matters. A skin should stay separate from credentials and model routing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I also use ChatWorkSkin
&lt;/h2&gt;

&lt;p&gt;The search-domain angle is &lt;a href="https://chatgptskin.org/" rel="noopener noreferrer"&gt;chatgptskin.org&lt;/a&gt;: it is for people typing things like “ChatGPT skin”, “free ChatGPT skin”, or “free Codex skin”.&lt;/p&gt;

&lt;p&gt;The brand/workspace angle is &lt;a href="https://chatworkskin.com/" rel="noopener noreferrer"&gt;chatworkskin.com&lt;/a&gt;: it frames the same project as &lt;strong&gt;AI coding workspace theme&lt;/strong&gt; and &lt;strong&gt;Codex desktop customization&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Same product, two discovery angles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current state
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Free to use&lt;/li&gt;
&lt;li&gt;No account required&lt;/li&gt;
&lt;li&gt;macOS and Windows installers&lt;/li&gt;
&lt;li&gt;Built-in original themes&lt;/li&gt;
&lt;li&gt;Custom image workflow on macOS&lt;/li&gt;
&lt;li&gt;One-command install&lt;/li&gt;
&lt;li&gt;One-click restore&lt;/li&gt;
&lt;li&gt;Unofficial, not affiliated with OpenAI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use Codex Desktop and want the workspace to feel less default, the early version is here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://chatgptskin.org/" rel="noopener noreferrer"&gt;https://chatgptskin.org/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
    </item>
    <item>
      <title>Why Automatic Cleanup Made This Cat Bead Pattern Worse</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Wed, 15 Jul 2026 18:12:42 +0000</pubDate>
      <link>https://dev.to/congcong/why-automatic-cleanup-made-this-cat-bead-pattern-worse-3bjd</link>
      <guid>https://dev.to/congcong/why-automatic-cleanup-made-this-cat-bead-pattern-worse-3bjd</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; This is a digital prototype. The physical bead piece has not been built yet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m building &lt;a href="https://toonbead.com" rel="noopener noreferrer"&gt;Toonbead&lt;/a&gt;, a browser-based tool that turns photos into fuse-bead patterns. I wanted the first documented pet case to show the whole pipeline—including the part that failed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test setup
&lt;/h2&gt;

&lt;p&gt;The source was a real gray-and-white cat photo. The workflow was:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;One protected &lt;strong&gt;Pet Icon&lt;/strong&gt; AI restyle to simplify the fur and isolate the subject.&lt;/li&gt;
&lt;li&gt;Browser-local mapping to a &lt;strong&gt;58 × 58&lt;/strong&gt; grid with up to &lt;strong&gt;16 Perler Standard colors&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Local counting and export: &lt;strong&gt;803 beads&lt;/strong&gt;, four 29 × 29 boards, a six-page PDF, PNG, and materials CSV.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The AI step prepared the image. Grid size, palette matching, cleanup, counts, and exports stayed local and did not use another generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The useful failure
&lt;/h2&gt;

&lt;p&gt;I tested the one-click stray-bead cleanup. It removed several small white regions around the face. To the algorithm they looked isolated; to a human they were part of the cat’s muzzle and identity.&lt;/p&gt;

&lt;p&gt;So I reverted the cleanup and kept the pre-cleanup mapping as the downloadable result.&lt;/p&gt;

&lt;p&gt;That changed the product rule: cleanup should be reversible and visually reviewed, especially around eyes, muzzle, and markings. A lower bead count is not automatically a better pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the case includes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;original cat photo&lt;/li&gt;
&lt;li&gt;AI-assisted Pet Icon artwork&lt;/li&gt;
&lt;li&gt;transparent 58 × 58 bead-pattern PNG&lt;/li&gt;
&lt;li&gt;counted materials CSV&lt;/li&gt;
&lt;li&gt;six-page printable PDF with four board maps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every asset is labeled as a &lt;strong&gt;digital prototype&lt;/strong&gt;. There is no claim that a finished physical craft exists yet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://toonbead.com/cases/gray-white-cat" rel="noopener noreferrer"&gt;Inspect the full case and download the exact assets →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you build creative tools, how would you handle this: keep cleanup off by default, or protect likely face regions before simplifying?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>productivity</category>
      <category>product</category>
    </item>
    <item>
      <title>Today I added five AI styles and a printable PDF to Toonbead</title>
      <dc:creator>qingwancong</dc:creator>
      <pubDate>Wed, 15 Jul 2026 12:27:33 +0000</pubDate>
      <link>https://dev.to/congcong/today-i-added-five-ai-styles-and-a-printable-pdf-to-toonbead-jjc</link>
      <guid>https://dev.to/congcong/today-i-added-five-ai-styles-and-a-printable-pdf-to-toonbead-jjc</guid>
      <description>&lt;p&gt;Today I shipped a few updates to Toonbead, a small browser-based tool for turning photos into fuse bead patterns.&lt;/p&gt;

&lt;p&gt;The first update is a real style library instead of one generic AI look:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pet Icon for dogs and cats&lt;/li&gt;
&lt;li&gt;Cute Portrait for selfies and gifts&lt;/li&gt;
&lt;li&gt;Clean Cartoon for people and couples&lt;/li&gt;
&lt;li&gt;Retro Pixel for icons and simple objects&lt;/li&gt;
&lt;li&gt;Pop Poster for bold portraits&lt;/li&gt;
&lt;li&gt;Custom, where you can write your own visual direction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The style choice is explicit. It guides the optional AI restyle, but it does not try to draw the final bead grid. After the AI step, the browser still handles the craft-specific work: mapping to real bead colors, changing the grid and palette, cleaning up small regions, and showing board and bead counts.&lt;/p&gt;

&lt;p&gt;I also shipped a browser-local printable PDF export. It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a project overview&lt;/li&gt;
&lt;li&gt;numbered board-by-board pages&lt;/li&gt;
&lt;li&gt;a color key&lt;/li&gt;
&lt;li&gt;a counted materials list&lt;/li&gt;
&lt;li&gt;concise making notes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That distinction matters to me. A nice image is not automatically a useful craft pattern. The export needs to help someone move from a screen to a bead table.&lt;/p&gt;

&lt;p&gt;Uploading a photo still does not call the AI route. The user has to press Generate with AI. Verified accounts get three free AI generations, while local pattern edits and exports stay free and do not use credits. Toonbead does not persist the original or generated image.&lt;/p&gt;

&lt;p&gt;I am building this for pet portraits, personal gifts, and beginner-friendly weekend projects. I am still learning how many colors and boards feel manageable for a first-time maker.&lt;/p&gt;

&lt;p&gt;Try the updated Maker: &lt;a href="https://toonbead.com/maker" rel="noopener noreferrer"&gt;https://toonbead.com/maker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See the style library: &lt;a href="https://toonbead.com/styles" rel="noopener noreferrer"&gt;https://toonbead.com/styles&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you make fuse bead art or build creative tools, I would love to hear what makes a printable pattern genuinely useful.&lt;/p&gt;

</description>
      <category>showdev</category>
    </item>
  </channel>
</rss>
