<?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: Hamza Miloud Amar</title>
    <description>The latest articles on Forem by Hamza Miloud Amar (@hamzamiloudama1).</description>
    <link>https://forem.com/hamzamiloudama1</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%2F310152%2F851673a7-1205-4c5c-bb71-be9f0759713e.jpg</url>
      <title>Forem: Hamza Miloud Amar</title>
      <link>https://forem.com/hamzamiloudama1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hamzamiloudama1"/>
    <language>en</language>
    <item>
      <title>Excited to introduce Pillar-UI, a lightweight React design system focused on accessibility and developer experience (DX)! Explore it and share your feedback! If you like it, please consider adding a star, thanks</title>
      <dc:creator>Hamza Miloud Amar</dc:creator>
      <pubDate>Tue, 28 Jan 2025 16:12:37 +0000</pubDate>
      <link>https://forem.com/hamzamiloudama1/excited-to-introduce-pillar-ui-a-lightweight-react-design-system-focused-on-accessibility-and-1ab8</link>
      <guid>https://forem.com/hamzamiloudama1/excited-to-introduce-pillar-ui-a-lightweight-react-design-system-focused-on-accessibility-and-1ab8</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/hamzamiloudama1" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F310152%2F851673a7-1205-4c5c-bb71-be9f0759713e.jpg" alt="hamzamiloudama1"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/hamzamiloudama1/introducing-pillar-ui-a-new-react-design-system-2990" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Introducing Pillar-UI: A New React Design System&lt;/h2&gt;
      &lt;h3&gt;Hamza Miloud Amar ・ Jan 23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#typescript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>react</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Introducing Pillar-UI: A New React Design System</title>
      <dc:creator>Hamza Miloud Amar</dc:creator>
      <pubDate>Thu, 23 Jan 2025 15:29:21 +0000</pubDate>
      <link>https://forem.com/hamzamiloudama1/introducing-pillar-ui-a-new-react-design-system-2990</link>
      <guid>https://forem.com/hamzamiloudama1/introducing-pillar-ui-a-new-react-design-system-2990</guid>
      <description>&lt;p&gt;Hey friends! I've got some exciting news to share with you all. After 2 years of work, we're finally launching Pillar-UI a brand new design system that's all about making your React apps faster, more accessible, and a whole lot easier to build. I know how frustrating it can be to deal with slow load times. That's why we've built Pillar-UI from the ground up with performance, accessibility, and developer experience in mind. I'm excited to share it with you, and I think you're going to love it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Performance Deep Dive
&lt;/h2&gt;

&lt;p&gt;So, what makes Pillar-UI's bundle size so remarkably tiny? We're talking about a library that's an impressive 9 times smaller than some of the other popular React design systems out there!&lt;/p&gt;

&lt;p&gt;The answer lies in our thoughtful approach to theming and styling. By leveraging the power of CSS, we've avoided relying on CSS-in-JS libraries or large theming providers. This approach has allowed us to keep our JavaScript bundle size to a minimum.&lt;/p&gt;

&lt;p&gt;But that's not all. We've also use used power of CSS variables to streamline our design and reduce the bundle size even further. Gone are the days of cumbersome JavaScript conditions and workarounds!&lt;/p&gt;

&lt;p&gt;Under the hood, we've implemented a state machine-like structure that eliminates a ton of unnecessary code and conditions. This means our library is not only smaller but also more efficient.&lt;/p&gt;

&lt;p&gt;We've also developed a clever naming convention for our class names, making them shorter and more unique to minimize conflicts with your custom class names.&lt;/p&gt;

&lt;p&gt;Finally, we've employed techniques like tree shaking to eliminate unnecessary code and optimize our library for faster load times. The result? A design system that's remarkably small, blazingly fast, and optimized for performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessibility Focus
&lt;/h2&gt;

&lt;p&gt;At Pillar-UI, our focus is not only about performance, but we try our best to make our design system accessible to everyone. That's why we've integrated a range of accessibility features into our design system, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Follow WCAG guidelines out of the box.&lt;/li&gt;
&lt;li&gt;Support RTL languages.&lt;/li&gt;
&lt;li&gt;Support Windows High Contrast Mode.&lt;/li&gt;
&lt;li&gt;We Do our best to make the color contrast ratios of our components accessible.&lt;/li&gt;
&lt;li&gt;Use Reduce Motion to avoid janky animations for users with motion sensitivity issues.&lt;/li&gt;
&lt;li&gt;Support font size adjustment in zoom mode.&lt;/li&gt;
&lt;li&gt;Use Semantic Markup when possible to make the library accessible and lightweight.&lt;/li&gt;
&lt;li&gt;Make it Color-blind Friendly Design&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Developer Experience (DX) and Getting Started
&lt;/h2&gt;

&lt;p&gt;Beyond performance and accessibility, we've poured our hearts into making Pillar-UI as simple and enjoyable to use as possible. Let me share a little story with you: I've been there, wrestling with some React design systems, where simple things like styling hundreds of buttons became a nightmare. Imagine every button in your project is sharp, with no border radius and the library default is radius.&lt;/p&gt;

&lt;p&gt;You've got two common solutions when you want to make the corner of  those button sharp: either you tweak each button individually or create a new component just for that. But honestly, this is time-consuming? That's where our design system shines. We leverage CSS variables to set default styles, making customization a breeze. Here's how you can do it&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--button-rad&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--button-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;--avatar-transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;uppercase&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.footer&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--button-rad&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means you can easily customize the look across your entire project or just a part of it. Want rounded buttons in your footer? Just tweak --button-rad there, and voila, all buttons in the footer get that rounded love without you having to change each one. And remember, this isn't just about buttons; every component in Pillar-UI has a set of default values you can change once per project. To see these, go to any component documents section, scroll down to the bottom, and you'll find them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting started
&lt;/h3&gt;

&lt;p&gt;Ready to dive in? We've prepared a set of examples to help you get started with Pillar-UI in React, as well as popular frameworks like Next.js and Remix. &lt;a href="https://www.pillar-ui.com/docs/getting-started/next" rel="noopener noreferrer"&gt;For more information and to explore these examples, head over to our documentation site&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pillar-UI: More Than Just a Design System
&lt;/h2&gt;

&lt;p&gt;While Pillar-UI is primarily a design system, it's also a collection of useful packages that can enhance your React development workflow. Here's a brief overview:&lt;/p&gt;

&lt;h3&gt;
  
  
  Hooks
&lt;/h3&gt;

&lt;p&gt;Pillar-UI includes a set of reusable hooks that can help simplify your code and improve performance. From state management to side effects, our hooks are designed to make your life easier.&lt;/p&gt;

&lt;h3&gt;
  
  
  Icons
&lt;/h3&gt;

&lt;p&gt;We've curated a collection of high-quality icons that you can use in your Pillar-UI applications. Our icons are carefully crafted to ensure consistency and visual appeal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Utils
&lt;/h3&gt;

&lt;p&gt;Our utility package includes a range of helpful functions and tools that can aid in tasks such as data formatting, validation, and more. These utilities are designed to save you time and reduce boilerplate code.&lt;/p&gt;

&lt;p&gt;By providing these additional packages, we aim to make Pillar-UI a one-stop-shop for your React development needs. Whether you're building a complex enterprise application or a simple web app, Pillar-UI has got you covered.&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap and Future Plans
&lt;/h2&gt;

&lt;p&gt;Pillar-UI isn't just a project; it's a community-driven adventure. We've got exciting plans on the horizon, including:&lt;/p&gt;

&lt;p&gt;We're open-source, which means this design system is ours. We hope to work together to improve it. If anyone finds any issues or needs a new feature, please let's discuss it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Call to Collaboration
&lt;/h2&gt;

&lt;p&gt;I'm inviting you to join us on this exciting journey! Whether you're passionate about fixing bugs, suggesting features, or discussing UI design, your input is invaluable. Let's build something amazing together.&lt;/p&gt;

&lt;p&gt;This design system belongs to all of us. We hope to collaborate and improve it together. If you find any issues or need a new feature, let's discuss it!&lt;/p&gt;

&lt;h3&gt;
  
  
  Join the Pillar Community
&lt;/h3&gt;

&lt;p&gt;Here's how you can get involved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/HamzaAmar/pillar-ui/discussions" rel="noopener noreferrer"&gt;GitHub Discussions&lt;/a&gt;: Share ideas, ask questions, and get feedback.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/HamzaAmar/pillar-ui/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;: Report bugs, suggest features, and track progress.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://discord.gg/KawwtFJG" rel="noopener noreferrer"&gt;Discord Community&lt;/a&gt;: Connect with fellow developers, share your wins, and get help when you're stuck.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/HamzaAmar/pillar-ui" rel="noopener noreferrer"&gt;Star the Repo&lt;/a&gt;: Help others discover Pillar UI and join our community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember, this project is about more than just code – it's about building a supportive, inclusive, and fun community. Happy coding!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Web Rendering Patterns Made Simple: A Beginner's Guide</title>
      <dc:creator>Hamza Miloud Amar</dc:creator>
      <pubDate>Sat, 17 Aug 2024 11:38:29 +0000</pubDate>
      <link>https://forem.com/hamzamiloudama1/web-rendering-patterns-made-simple-a-beginners-guide-37d0</link>
      <guid>https://forem.com/hamzamiloudama1/web-rendering-patterns-made-simple-a-beginners-guide-37d0</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3xud39v1zgdejxm00rf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3xud39v1zgdejxm00rf.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey there, fellow web enthusiasts! 👋&lt;/p&gt;

&lt;p&gt;Before we dive in, I wanted to let you know that this article is an introduction article series about rendering patterns on my portfolio. If you're curious, you can check out the full, chatty version &lt;a href="https://www.miloudamar.com/blogs/rendering-pattern-introduction" rel="noopener noreferrer"&gt;on my website&lt;/a&gt;. It's written like a fun conversation, making it super easy to follow along. But for now, let's keep it simple and straightforward here on dev.to!&lt;/p&gt;

&lt;p&gt;Now, let's talk about web rendering patterns!&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Web Rendering Patterns?
&lt;/h2&gt;

&lt;p&gt;Imagine you're building a house. You have different ways to construct it, right? Some methods are quick, others are fancy, and some are a mix of both. Web rendering patterns are kind of like that, but for websites.&lt;/p&gt;

&lt;p&gt;They're different ways to build and show web pages. Each way has its own good points and not-so-good points. Knowing these patterns helps you pick the best way to build your website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Should You Care?
&lt;/h2&gt;

&lt;p&gt;Understanding these patterns is important because they affect:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How fast your website loads&lt;/li&gt;
&lt;li&gt;How smooth it feels to use&lt;/li&gt;
&lt;li&gt;How well search engines can find your site&lt;/li&gt;
&lt;li&gt;How easy it is to update your site&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Main Rendering Patterns
&lt;/h2&gt;

&lt;p&gt;Here are the main patterns we'll be looking at:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/static-website" rel="noopener noreferrer"&gt;Static Sites&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/multi-page-application" rel="noopener noreferrer"&gt;Multi-Page Applications (MPA)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/multi-page-application" rel="noopener noreferrer"&gt;Client-Side Rendering (CSR)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/server-side-rendering" rel="noopener noreferrer"&gt;Server-Side Rendering (SSR)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/static-site-generation" rel="noopener noreferrer"&gt;Static Site Generation (SSG)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/increment-site-generation" rel="noopener noreferrer"&gt;Incremental Static Regeneration (ISR)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/hydration" rel="noopener noreferrer"&gt;Hydration&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/progressive-hydration" rel="noopener noreferrer"&gt;Progressive Hydration&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/streaming-server-side-rendering" rel="noopener noreferrer"&gt;Streaming Server-Side Rendering&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/island-architecture" rel="noopener noreferrer"&gt;Island Architecture&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.miloudamar.com/blogs/server-component" rel="noopener noreferrer"&gt;Server Components&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Some Important Terms
&lt;/h2&gt;

&lt;p&gt;Before we go further, let's learn some key words:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Time To First Byte (TTFB)&lt;/strong&gt;: How quickly the server starts sending data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time to Interactive (TTI)&lt;/strong&gt;: When you can start using the website&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;First Contentful Paint (FCP)&lt;/strong&gt;: When you first see something on the page&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Largest Contentful Paint (LCP)&lt;/strong&gt;: When the biggest part of the page shows up&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre-rendering&lt;/strong&gt;: Making web pages ahead of time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meta Frameworks&lt;/strong&gt;: Special tools that make building websites easier&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Isomorphic Rendering&lt;/strong&gt;: A way to make websites fast and interactive at the same time&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;Understanding these patterns is super helpful if you want to make great websites. Each pattern has its own use, and knowing when to use them can make your websites much better.&lt;/p&gt;

&lt;p&gt;This is just the start of our journey into rendering patterns. If you want to learn more about each pattern, with examples and how to use them, check out my full guide on &lt;a href="https://www.miloudamar.com/" rel="noopener noreferrer"&gt;my portfolio site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Remember, the key is not just knowing these patterns, but understanding when to use them. Happy website building! 🚀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you find any errors or have suggestions for improvement, please let me know! Your feedback is valuable in making this content even better.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>frontend</category>
      <category>react</category>
    </item>
  </channel>
</rss>
