<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>mutii.me — writing</title><description>Digital home and portfolio of Abdlmu&apos;tii, a developer who letters. @ mutii.me</description><link>https://mutii.me/</link><language>en</language><item><title>Uh a blog</title><link>https://mutii.me/blog/uh-a-blog/</link><guid isPermaLink="true">https://mutii.me/blog/uh-a-blog/</guid><description>Stuff</description><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;LMAO&lt;/strong&gt;&lt;/p&gt;
</content:encoded><category>engineering</category></item><item><title>Kashida as a layout primitive</title><link>https://mutii.me/blog/kashida-layout/</link><guid isPermaLink="true">https://mutii.me/blog/kashida-layout/</guid><description>What stretching letters taught me about flexible UI.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;the-stretch&quot;&gt;The stretch&lt;/h2&gt;
&lt;p&gt;Arabic scribes justify a line by lengthening the connecting stroke between letters — the kashida — instead of widening the gaps between words. The text stays whole; one stroke absorbs the slack.&lt;/p&gt;
&lt;aside class=&quot;hashiya&quot;&gt;Browsers can do this too: `text-justify: inter-character` gets close for Arabic.&lt;/aside&gt;
&lt;h2 id=&quot;in-css&quot;&gt;In CSS&lt;/h2&gt;
&lt;p&gt;A flex row with one &lt;code&gt;flex: 1&lt;/code&gt; child behaves the same way: everything keeps its size and a single element soaks up the space.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;css&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;.row&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;display&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;flex&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;.row&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; .kashida&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;flex&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Write the rest of the post here.&lt;/p&gt;
</content:encoded><category>design</category><category>branding</category><category>business</category></item><item><title>Realtime without a websocket server</title><link>https://mutii.me/blog/realtime-rooms/</link><guid isPermaLink="true">https://mutii.me/blog/realtime-rooms/</guid><description>Notes from building rooms on Supabase.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;why-not-run-my-own&quot;&gt;Why not run my own&lt;/h2&gt;
&lt;p&gt;Write about the trade-off here.&lt;/p&gt;
&lt;aside class=&quot;hashiya&quot;&gt;Presence and broadcast cover most &quot;rooms&quot; use cases.&lt;/aside&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;ts&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; room&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; supabase.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;channel&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;room-42&apos;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;room.&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;broadcast&apos;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, { event: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;move&apos;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; }, apply).&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;subscribe&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Write the rest of the post here.&lt;/p&gt;
</content:encoded><category>backend</category><category>engineering</category><category>code</category></item><item><title>Bidi is a design problem</title><link>https://mutii.me/blog/bidi-design/</link><guid isPermaLink="true">https://mutii.me/blog/bidi-design/</guid><description>Mixing Arabic and English without breaking anything.</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;two-directions-one-page&quot;&gt;Two directions, one page&lt;/h2&gt;
&lt;p&gt;Write about mixing scripts here.&lt;/p&gt;
&lt;aside class=&quot;hashiya&quot;&gt;`dir=&quot;auto&quot;` on user-generated text saves a lot of pain.&lt;/aside&gt;
&lt;p&gt;Write the rest of the post here.&lt;/p&gt;
</content:encoded><category>opinions</category><category>persona</category></item></channel></rss>