<?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>Forem: Basel Askar</title>
    <description>The latest articles on Forem by Basel Askar (@baselashraf81).</description>
    <link>https://forem.com/baselashraf81</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3848404%2F5c97f81f-4680-43b5-a5b3-5b329ad342e5.jpg</url>
      <title>Forem: Basel Askar</title>
      <link>https://forem.com/baselashraf81</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/baselashraf81"/>
    <language>en</language>
    <item>
      <title>LayoutSans: Full 2D layout engine built on top of Pretext (flex, grid, magazine — zero DOM)</title>
      <dc:creator>Basel Askar</dc:creator>
      <pubDate>Mon, 30 Mar 2026 14:35:57 +0000</pubDate>
      <link>https://forem.com/baselashraf81/layoutsans-full-2d-layout-engine-built-on-top-of-pretext-flex-grid-magazine-zero-dom-842</link>
      <guid>https://forem.com/baselashraf81/layoutsans-full-2d-layout-engine-built-on-top-of-pretext-flex-grid-magazine-zero-dom-842</guid>
      <description>&lt;p&gt;Pretext solves text measurement without touching the DOM. &lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;LayoutSans&lt;/strong&gt; as the next layer: it consumes Pretext's measurements and gives you complete flex, grid, magazine-style multi-column, and absolute layouts — all while keeping text nodes in the real DOM.&lt;/p&gt;

&lt;p&gt;This means you get accurate variable-height virtualization, dynamic layouts, and complex flows without layout thrashing, and without sacrificing accessibility, text selection, or find-in-page.&lt;/p&gt;

&lt;p&gt;Key points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pure TypeScript, ~3.7 kB gzipped&lt;/li&gt;
&lt;li&gt;Works in browser, Node, Bun, Deno, Cloudflare Workers&lt;/li&gt;
&lt;li&gt;Flat output perfect for virtual lists and canvas-backed UIs&lt;/li&gt;
&lt;li&gt;Pretext is a peer dependency for text nodes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;5-line example and benchmarks are in the README.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/BaselAshraf81/layout-sans" rel="noopener noreferrer"&gt;https://github.com/BaselAshraf81/layout-sans&lt;/a&gt;&lt;br&gt;&lt;br&gt;
npm: &lt;code&gt;npm install layout-sans&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Would love feedback from anyone building virtualized UIs, chat interfaces, or editorial tools.&lt;/p&gt;

</description>
      <category>performance</category>
      <category>showdev</category>
      <category>typescript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Google Stitch designs are now production-ready Next.js in seconds.</title>
      <dc:creator>Basel Askar</dc:creator>
      <pubDate>Sun, 29 Mar 2026 00:00:47 +0000</pubDate>
      <link>https://forem.com/baselashraf81/google-stitch-designs-are-now-production-ready-nextjs-in-seconds-3nh4</link>
      <guid>https://forem.com/baselashraf81/google-stitch-designs-are-now-production-ready-nextjs-in-seconds-3nh4</guid>
      <description>&lt;p&gt;HolyStitch compiles it into a full Next.js app in under 5 seconds.&lt;/p&gt;

&lt;p&gt;No AI in the loop. No tokens. Pure compiler.&lt;/p&gt;

&lt;p&gt;Stitch → React components → Tailwind theme → production ready.&lt;/p&gt;

&lt;p&gt;What it handles:&lt;/p&gt;

&lt;p&gt;→ Splits screens into named React components&lt;br&gt;
→ Extracts your exact Tailwind theme&lt;br&gt;
→ Deduplicates shared components across pages&lt;br&gt;
→ Valid JSX — className, styles, icon fonts, 'use client' all handled&lt;/p&gt;

&lt;p&gt;Runs as an MCP tool in Claude Desktop, Cursor, Windsurf&lt;/p&gt;

&lt;p&gt;GitHub: github.com/BaselAshraf81/holystitch&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>showdev</category>
      <category>tailwindcss</category>
    </item>
  </channel>
</rss>
