<?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: Adam Greenough</title>
    <description>The latest articles on DEV Community by Adam Greenough (@adamgreenough).</description>
    <link>https://dev.to/adamgreenough</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%2F393873%2Fedaa9fe7-db2c-495b-9029-8162fbcc4701.png</url>
      <title>DEV Community: Adam Greenough</title>
      <link>https://dev.to/adamgreenough</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adamgreenough"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Fri, 10 Apr 2026 22:50:50 +0000</pubDate>
      <link>https://dev.to/adamgreenough/-5cnf</link>
      <guid>https://dev.to/adamgreenough/-5cnf</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/adamgreenough/the-xy-problem-how-to-spot-it-stop-it-and-ask-better-questions-4ied" class="crayons-story__hidden-navigation-link"&gt;The XY Problem: How to spot it, stop it, and ask better questions&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/adamgreenough" class="crayons-avatar  crayons-avatar--l  "&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%2F393873%2Fedaa9fe7-db2c-495b-9029-8162fbcc4701.png" alt="adamgreenough profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/adamgreenough" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Adam Greenough
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Adam Greenough
                
              
              &lt;div id="story-author-preview-content-3484059" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/adamgreenough" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2F393873%2Fedaa9fe7-db2c-495b-9029-8162fbcc4701.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Adam Greenough&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/adamgreenough/the-xy-problem-how-to-spot-it-stop-it-and-ask-better-questions-4ied" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/adamgreenough/the-xy-problem-how-to-spot-it-stop-it-and-ask-better-questions-4ied" id="article-link-3484059"&gt;
          The XY Problem: How to spot it, stop it, and ask better questions
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/discuss"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;discuss&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/career"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;career&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/adamgreenough/the-xy-problem-how-to-spot-it-stop-it-and-ask-better-questions-4ied" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/adamgreenough/the-xy-problem-how-to-spot-it-stop-it-and-ask-better-questions-4ied#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>The XY Problem: How to spot it, stop it, and ask better questions</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Fri, 10 Apr 2026 22:49:50 +0000</pubDate>
      <link>https://dev.to/adamgreenough/the-xy-problem-how-to-spot-it-stop-it-and-ask-better-questions-4ied</link>
      <guid>https://dev.to/adamgreenough/the-xy-problem-how-to-spot-it-stop-it-and-ask-better-questions-4ied</guid>
      <description>&lt;p&gt;A client emails you on a Friday afternoon. "Quick one. How do I change the font size on just one word in the footer?"&lt;/p&gt;

&lt;p&gt;Simple enough. You point them to the editor, explain inline styling, and move on. Half an hour later, another email: "Great, and how do I make it bold and red?" Then another: "Can I add a link to just that word?"&lt;/p&gt;

&lt;p&gt;So you get on a call. Turns out they're trying to add a legal disclaimer to the footer. They didn't ask about that because they'd already decided the best approach was to manually style individual words inside the existing footer text. They were asking for help with step four of a plan you never saw steps one through three of.&lt;/p&gt;

&lt;p&gt;This is the XY problem. It's one of the most common communication patterns in technical work, and once you notice it, you'll see it everywhere.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://adamgreenough.net/blog/the-xy-problem/" rel="noopener noreferrer"&gt;Keep reading&lt;/a&gt;...&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Fri, 10 Apr 2026 22:37:01 +0000</pubDate>
      <link>https://dev.to/adamgreenough/-4fhm</link>
      <guid>https://dev.to/adamgreenough/-4fhm</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/adamgreenough/wordpress-70-the-good-the-ai-and-the-still-missing-4oa8" class="crayons-story__hidden-navigation-link"&gt;WordPress 7.0: What's Good, the AI, and What's Missing&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/adamgreenough" class="crayons-avatar  crayons-avatar--l  "&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%2F393873%2Fedaa9fe7-db2c-495b-9029-8162fbcc4701.png" alt="adamgreenough profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/adamgreenough" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Adam Greenough
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Adam Greenough
                
              
              &lt;div id="story-author-preview-content-3483980" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/adamgreenough" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2F393873%2Fedaa9fe7-db2c-495b-9029-8162fbcc4701.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Adam Greenough&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/adamgreenough/wordpress-70-the-good-the-ai-and-the-still-missing-4oa8" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 10&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/adamgreenough/wordpress-70-the-good-the-ai-and-the-still-missing-4oa8" id="article-link-3483980"&gt;
          WordPress 7.0: What's Good, the AI, and What's Missing
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/wordpress"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;wordpress&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/adamgreenough/wordpress-70-the-good-the-ai-and-the-still-missing-4oa8" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/adamgreenough/wordpress-70-the-good-the-ai-and-the-still-missing-4oa8#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>WordPress 7.0: What's Good, the AI, and What's Missing</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Fri, 10 Apr 2026 22:20:26 +0000</pubDate>
      <link>https://dev.to/adamgreenough/wordpress-70-the-good-the-ai-and-the-still-missing-4oa8</link>
      <guid>https://dev.to/adamgreenough/wordpress-70-the-good-the-ai-and-the-still-missing-4oa8</guid>
      <description>&lt;p&gt;WordPress 7.0 was supposed to launch yesterday at WordCamp Asia. It didn't. On March 31st, the core team announced a delay to sort out the data storage behind real-time collaboration. A new schedule should land by April 22nd.&lt;/p&gt;

&lt;p&gt;If you've been following the coverage, you'd think this release is primarily about AI. Every WordPress agency with a blog has published their version of "WordPress 7.0: The AI Era Begins." Having spent time with the betas and the developer notes, the AI stuff is comfortably the least interesting thing in this release, and the engineering effort going into it raises some questions about where the project's priorities are heading.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://adamgreenough.net/blog/wordpress-7-the-good-the-ai-the-missing/" rel="noopener noreferrer"&gt;Keep reading...&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>ai</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I built a curated toolkit of 700+ web dev &amp; design resources (and it’s finally ready to share)</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Tue, 27 Jan 2026 13:46:00 +0000</pubDate>
      <link>https://dev.to/adamgreenough/i-built-a-curated-toolkit-of-700-web-dev-design-resources-and-its-finally-ready-to-share-ga9</link>
      <guid>https://dev.to/adamgreenough/i-built-a-curated-toolkit-of-700-web-dev-design-resources-and-its-finally-ready-to-share-ga9</guid>
      <description>&lt;p&gt;I’ve been collecting web dev and design resources for years, and this has been an on-and-off side project for a long time.&lt;/p&gt;

&lt;p&gt;After a fairly big revamp, I’m finally ready to share it:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://toolkit.addy.codes/" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(In a bit of side-project-inception, it's also built with &lt;a href="https://dev.to/adamgreenough/i-built-the-cms-i-always-wanted-for-my-personal-sites-2ek8"&gt;my very own CMS!&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Toolkit is a curated directory of &lt;strong&gt;700+ hand-picked tools and resources&lt;/strong&gt; for developers and designers. The goal isn’t to be a “mega list of everything” — it’s to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Curated&lt;/strong&gt; (no fluff, no SEO-farm filler)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clearly labelled&lt;/strong&gt; (free/freemium/premium/open source where relevant)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy to browse&lt;/strong&gt; (by category/tags, not a massive scrolling link dump)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below is a "guided tour" using the same sidebar categories you'll see on Toolkit, plus some highlights from each.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧊 3D
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/3d" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/3d&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Discover powerful libraries, frameworks, and tutorials for creating stunning 3D experiences on the web.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/ztext-js" rel="noopener noreferrer"&gt;ztext.js&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/gumroad-discover" rel="noopener noreferrer"&gt;Gumroad Discover&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/p5-js" rel="noopener noreferrer"&gt;p5.js&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/characterz-2" rel="noopener noreferrer"&gt;Characterz 2&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/3d-icons" rel="noopener noreferrer"&gt;3D Icons&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/three-js" rel="noopener noreferrer"&gt;Three.js&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/vanta-js" rel="noopener noreferrer"&gt;Vanta.js&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/zdog" rel="noopener noreferrer"&gt;Zdog&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/spline-3d-designer" rel="noopener noreferrer"&gt;Spline 3D Designer&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ♿️ Accessibility
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/accessibility" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/accessibility&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Build websites that work for everyone with our curated collection of accessibility testing tools, WCAG compliance checkers, and inclusive design resources.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/driver-js" rel="noopener noreferrer"&gt;Driver.js&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/van11y" rel="noopener noreferrer"&gt;Van11y&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/inclusive-components" rel="noopener noreferrer"&gt;Inclusive Components&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/pa11y" rel="noopener noreferrer"&gt;Pa11y&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/randoma11y" rel="noopener noreferrer"&gt;Randoma11y&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/staybl" rel="noopener noreferrer"&gt;Staybl&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/button-buddy" rel="noopener noreferrer"&gt;Button Buddy&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/accessibility-myths" rel="noopener noreferrer"&gt;Accessibility Myths&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/megapedia-a-table-of-universal-shortcuts" rel="noopener noreferrer"&gt;Megapedia: A Table of Universal Shortcuts&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 AI/ML
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/ai-ml" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/ai-ml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Integrate artificial intelligence into your projects with cutting-edge APIs, pre-trained models, and developer-friendly ML tools.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/beatoven" rel="noopener noreferrer"&gt;Beatoven&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/freepik" rel="noopener noreferrer"&gt;Freepik&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/what-can-ai-do-today" rel="noopener noreferrer"&gt;What Can AI Do Today?&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cleanvoice" rel="noopener noreferrer"&gt;Cleanvoice&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/wasitai" rel="noopener noreferrer"&gt;WasItAI&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/flair" rel="noopener noreferrer"&gt;Flair&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/illustroke" rel="noopener noreferrer"&gt;Illustroke&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/shape-of-ai" rel="noopener noreferrer"&gt;Shape of AI&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/udio" rel="noopener noreferrer"&gt;Udio&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/mochi-diffusion" rel="noopener noreferrer"&gt;Mochi Diffusion&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎞️ Animation
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/animation" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/animation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create smooth, performant animations that delight users with our hand-picked collection of CSS and JavaScript animation libraries.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/neat" rel="noopener noreferrer"&gt;NEAT&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/svg-loaders" rel="noopener noreferrer"&gt;SVG Loaders&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/ambient-canvas-backgrounds" rel="noopener noreferrer"&gt;Ambient Canvas Backgrounds&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/animated-backgrounds" rel="noopener noreferrer"&gt;Animated Backgrounds&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/animated-icons" rel="noopener noreferrer"&gt;Animated Icons&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/envato-elements" rel="noopener noreferrer"&gt;Envato Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/barba-js" rel="noopener noreferrer"&gt;Barba.js&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/animated-gif-maker" rel="noopener noreferrer"&gt;Animated GIF/WebP Maker&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/two-js" rel="noopener noreferrer"&gt;Two.js&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/p5-js" rel="noopener noreferrer"&gt;p5.js&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎧 Audio
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/audio" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/audio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything you need for working with audio on the web, from browser-based editors and sound effect libraries to Web Audio API resources and AI-powered music generation tools for your creative projects.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/beatoven" rel="noopener noreferrer"&gt;Beatoven&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/freepik" rel="noopener noreferrer"&gt;Freepik&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/boring-sound-kit" rel="noopener noreferrer"&gt;Boring Sound Kit&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cleanvoice" rel="noopener noreferrer"&gt;Cleanvoice&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/udio" rel="noopener noreferrer"&gt;Udio&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/lud-and-schlatts-musical-emporium" rel="noopener noreferrer"&gt;Lud and Schlatts Musical Emporium&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/envato-elements" rel="noopener noreferrer"&gt;Envato Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/lickd" rel="noopener noreferrer"&gt;Lickd&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/audiomass" rel="noopener noreferrer"&gt;Audiomass&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/adobe-podcast" rel="noopener noreferrer"&gt;Adobe Podcast&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🖼️ Backgrounds
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/backgrounds" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/backgrounds&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Generate beautiful backgrounds in seconds with our collection of gradient makers, pattern generators, SVG backgrounds, and texture creators.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/neat" rel="noopener noreferrer"&gt;NEAT&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/image-to-mesh-gradient" rel="noopener noreferrer"&gt;Image to Mesh Gradient&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/creatica" rel="noopener noreferrer"&gt;Creatica&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/superdesigner-patterns" rel="noopener noreferrer"&gt;SuperDesigner Patterns&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/repper-patterns" rel="noopener noreferrer"&gt;Repper Patterns&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/ambient-canvas-backgrounds" rel="noopener noreferrer"&gt;Ambient Canvas Backgrounds&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/animated-backgrounds" rel="noopener noreferrer"&gt;Animated Backgrounds&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/envato-elements" rel="noopener noreferrer"&gt;Envato Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/fffuel" rel="noopener noreferrer"&gt;fffuel&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/ui-gradients" rel="noopener noreferrer"&gt;UI Gradients&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📝 Blogs
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/blogs" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/blogs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stay current with the latest in web development by following these essential engineering blogs and publications.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/go-make-things" rel="noopener noreferrer"&gt;Go Make Things&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/handheld-design" rel="noopener noreferrer"&gt;Handheld Design&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/developer-blog-list" rel="noopener noreferrer"&gt;Developer Blog List&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/inclusive-components" rel="noopener noreferrer"&gt;Inclusive Components&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/build-your-own-react" rel="noopener noreferrer"&gt;Build your own React&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/web3-is-going-just-great" rel="noopener noreferrer"&gt;Web3 is going just great&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/the-yesterweb" rel="noopener noreferrer"&gt;The Yesterweb&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/dense-discover" rel="noopener noreferrer"&gt;Dense Discover&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/email-is-good" rel="noopener noreferrer"&gt;Email is Good&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/smashing-magazine" rel="noopener noreferrer"&gt;Smashing Magazine&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Books
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/books" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/books&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Expand your knowledge with our carefully curated reading list covering frontend development, software architecture, design principles, and career growth.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/flavio-copes-handbooks" rel="noopener noreferrer"&gt;Flavio Copes Handbooks&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/free-books-for-designers" rel="noopener noreferrer"&gt;Free Books for Designers&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/web-browser-engineering" rel="noopener noreferrer"&gt;Web Browser Engineering&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/career-guide-for-software-developers" rel="noopener noreferrer"&gt;Career Guide For Software Developers&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/ethical-design-handbook" rel="noopener noreferrer"&gt;Ethical Design Handbook&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/design-animation-handbook" rel="noopener noreferrer"&gt;Design Animation Handbook&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/the-design-of-forms-in-government-departments" rel="noopener noreferrer"&gt;The Design of Forms in Government Departments&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/front-line-php" rel="noopener noreferrer"&gt;Front-line PHP&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/ibis-php-ebook-generator" rel="noopener noreferrer"&gt;Ibis PHP eBook Generator&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/mindful-design" rel="noopener noreferrer"&gt;Mindful Design&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🏷️ Branding
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/branding" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/branding&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create professional brand identities with logo generators, brand guideline templates, and identity design tools.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/logofav" rel="noopener noreferrer"&gt;Logofav&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/envato-elements" rel="noopener noreferrer"&gt;Envato Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/worldvectorlogo" rel="noopener noreferrer"&gt;WorldVectorLogo&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/marketing-examples" rel="noopener noreferrer"&gt;Marketing Examples&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/landing-page-checklist" rel="noopener noreferrer"&gt;Landing Page Checklist&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/share-link-generator" rel="noopener noreferrer"&gt;Share Link Generator&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/superposition" rel="noopener noreferrer"&gt;Superposition&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/simple-icons" rel="noopener noreferrer"&gt;Simple Icons&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/namechk" rel="noopener noreferrer"&gt;Namechk&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/logo-taco" rel="noopener noreferrer"&gt;Logo Taco&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💼 Business
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/business" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/business&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run your freelance business or startup more efficiently with tools for invoicing, contracts, time tracking, and client management.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/krystal-hosting" rel="noopener noreferrer"&gt;Krystal Hosting &amp;amp; VPS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/posthog" rel="noopener noreferrer"&gt;PostHog&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/fiverr-business" rel="noopener noreferrer"&gt;Fiverr Business&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/gumroad-discover" rel="noopener noreferrer"&gt;Gumroad Discover&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/just-use-email" rel="noopener noreferrer"&gt;Just Use Email&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/email-is-good" rel="noopener noreferrer"&gt;Email is Good&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/buy-me-a-coffee" rel="noopener noreferrer"&gt;Buy Me a Coffee&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/bookstack-app" rel="noopener noreferrer"&gt;BookStack App&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/fiverr" rel="noopener noreferrer"&gt;Fiverr&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/plausible-analytics" rel="noopener noreferrer"&gt;Plausible Analytics&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧭 Career
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/career" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/career&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Level up your development career with job boards, salary guides, interview preparation resources, and professional development tools.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/if-you-could-jobs" rel="noopener noreferrer"&gt;If You Could Jobs&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/himalayas-remote-jobs" rel="noopener noreferrer"&gt;Himalayas Remote Jobs&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/soft-skills-engineering-podcast" rel="noopener noreferrer"&gt;Soft Skills Engineering Podcast&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/fiverr-business" rel="noopener noreferrer"&gt;Fiverr Business&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/usertesting" rel="noopener noreferrer"&gt;UserTesting&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/codingame" rel="noopener noreferrer"&gt;CodinGame&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/you-got-this" rel="noopener noreferrer"&gt;You Got This!&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/50-ways-to-get-a-job" rel="noopener noreferrer"&gt;50 Ways to Get a Job&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/career-guide-for-software-developers" rel="noopener noreferrer"&gt;Career Guide For Software Developers&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/30-seconds-of-interviews" rel="noopener noreferrer"&gt;30 Seconds of Interviews&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🗂️ CMS
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/cms" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/cms&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find the perfect CMS for your project, from modern headless platforms and developer-friendly flat-file systems to powerful traditional content management solutions.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/ava-cms" rel="noopener noreferrer"&gt;Ava CMS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/carrd" rel="noopener noreferrer"&gt;Carrd&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/bcms" rel="noopener noreferrer"&gt;BCMS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/grav-cms" rel="noopener noreferrer"&gt;Grav CMS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/contentful-cms" rel="noopener noreferrer"&gt;Contentful CMS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/craft-cms" rel="noopener noreferrer"&gt;Craft CMS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/kirby-cms" rel="noopener noreferrer"&gt;Kirby CMS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/learn-eleventy-from-scratch" rel="noopener noreferrer"&gt;Learn Eleventy From Scratch&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/october-cms" rel="noopener noreferrer"&gt;October CMS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/eleventy" rel="noopener noreferrer"&gt;Eleventy&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💻 Code
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/code" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Speed up your workflow with code snippet libraries, online playgrounds, formatters, validators, and everyday utilities that make development faster and more enjoyable.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/what-pwa-can-do-today" rel="noopener noreferrer"&gt;What PWA Can Do Today&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/floating-ui" rel="noopener noreferrer"&gt;Floating UI&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/publint" rel="noopener noreferrer"&gt;Publint&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/layoutit" rel="noopener noreferrer"&gt;Layoutit&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/flight-php" rel="noopener noreferrer"&gt;Flight PHP&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/milkdown" rel="noopener noreferrer"&gt;Milkdown&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/concrete-css" rel="noopener noreferrer"&gt;Concrete.css&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cally" rel="noopener noreferrer"&gt;Cally&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/react-native-directory" rel="noopener noreferrer"&gt;React Native Directory&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/open-saas" rel="noopener noreferrer"&gt;Open SaaS&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎨 Colour
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/colour" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/colour&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Master colour in your designs with palette generators, contrast accessibility checkers, colour extraction tools, and resources for understanding colour theory.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/neat" rel="noopener noreferrer"&gt;NEAT&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/image-to-mesh-gradient" rel="noopener noreferrer"&gt;Image to Mesh Gradient&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/colors-visualizer" rel="noopener noreferrer"&gt;Colors Visualizer&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/pokemon-palettes" rel="noopener noreferrer"&gt;Pokemon Palettes&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/reasonable-colors" rel="noopener noreferrer"&gt;Reasonable Colors&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/fffuel" rel="noopener noreferrer"&gt;fffuel&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/ui-gradients" rel="noopener noreferrer"&gt;UI Gradients&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/poline" rel="noopener noreferrer"&gt;Poline&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/randoma11y" rel="noopener noreferrer"&gt;Randoma11y&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/hue-tools" rel="noopener noreferrer"&gt;hue.tools&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧑‍🤝‍🧑 Community
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/community" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/community&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Connect with fellow developers in thriving communities where you can ask questions, share knowledge, and grow together.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/nekoweb" rel="noopener noreferrer"&gt;Nekoweb&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/neocities" rel="noopener noreferrer"&gt;Neocities&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/omg-lol" rel="noopener noreferrer"&gt;omg.lol&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/the-yesterweb" rel="noopener noreferrer"&gt;The Yesterweb&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/dev-community" rel="noopener noreferrer"&gt;DEV Community&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/awwwards" rel="noopener noreferrer"&gt;Awwwards&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/product-hunt" rel="noopener noreferrer"&gt;Product Hunt&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/codepen" rel="noopener noreferrer"&gt;CodePen&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/personal-sites" rel="noopener noreferrer"&gt;Personal Sites&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✍️ Copywriting
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/copywriting" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/copywriting&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Write better copy for buttons, error messages, onboarding flows, and marketing pages with our collection of UX writing guides, copywriting formulas, and real-world microcopy examples that convert.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/pushkeen" rel="noopener noreferrer"&gt;Pushkeen&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/answerthepublic" rel="noopener noreferrer"&gt;AnswerThePublic&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/really-good-emails" rel="noopener noreferrer"&gt;Really Good Emails&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/swiped" rel="noopener noreferrer"&gt;Swiped&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/not-by-ai" rel="noopener noreferrer"&gt;Not by AI&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/twine" rel="noopener noreferrer"&gt;Twine&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/tango" rel="noopener noreferrer"&gt;Tango&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/marketing-examples" rel="noopener noreferrer"&gt;Marketing Examples&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/grammarly" rel="noopener noreferrer"&gt;Grammarly&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/readme-so" rel="noopener noreferrer"&gt;readme.so&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧰 CSS Generators
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/css-generators" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/css-generators&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Generate production-ready CSS code with visual tools for gradients, box shadows, grid layouts, animations, and more.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/kelp" rel="noopener noreferrer"&gt;Kelp&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/layoutit" rel="noopener noreferrer"&gt;Layoutit&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/css-shapes" rel="noopener noreferrer"&gt;CSS Shapes&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/glassmorphism" rel="noopener noreferrer"&gt;Glassmorphism&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/accordion-slider" rel="noopener noreferrer"&gt;Accordion Slider&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/tailspark-tailwind-component-library" rel="noopener noreferrer"&gt;Tailspark Tailwind Component Library&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/css-accordion-slider-generator" rel="noopener noreferrer"&gt;CSS Accordion Slider Generator&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/css-loader-generator" rel="noopener noreferrer"&gt;CSS Loader Generator&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/css-pattern-generator" rel="noopener noreferrer"&gt;CSS Pattern Generator&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/golden-ratio-typography-calculator" rel="noopener noreferrer"&gt;Golden Ratio Typography Calculator&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎛️ Design
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/design" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/design&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything you need to design beautiful user interfaces, from professional design applications and UI kits to component libraries and design system documentation.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/device-shots" rel="noopener noreferrer"&gt;Device Shots&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/curated-design" rel="noopener noreferrer"&gt;Curated Design&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/handheld-design" rel="noopener noreferrer"&gt;Handheld Design&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/site-of-sites" rel="noopener noreferrer"&gt;Site of Sites&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/deck-gallery" rel="noopener noreferrer"&gt;Deck Gallery&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/dark-patterns" rel="noopener noreferrer"&gt;Dark Patterns&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/brutalist-shape-elements-mega-pack" rel="noopener noreferrer"&gt;Brutalist Shape Elements Mega Pack&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/softr" rel="noopener noreferrer"&gt;Softr&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/macos-cursors" rel="noopener noreferrer"&gt;macOS Cursors&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/spectrum" rel="noopener noreferrer"&gt;Spectrum&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Dev Tools
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/developer-tools" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/developer-tools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Supercharge your development workflow with essential browser extensions, command-line tools, and utilities that every developer should have in their toolkit.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/hoppscotch" rel="noopener noreferrer"&gt;Hoppscotch&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/ava-cms" rel="noopener noreferrer"&gt;Ava CMS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/kelp" rel="noopener noreferrer"&gt;Kelp&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cally" rel="noopener noreferrer"&gt;Cally&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/insomnia" rel="noopener noreferrer"&gt;Insomnia&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/caesium-image-compressor" rel="noopener noreferrer"&gt;Caesium Image Compressor&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/getscreenshot" rel="noopener noreferrer"&gt;GetScreenshot&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/bruno-api-client" rel="noopener noreferrer"&gt;Bruno API Client&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/svg-path-editor" rel="noopener noreferrer"&gt;SVG Path Editor&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/react-native-directory" rel="noopener noreferrer"&gt;React Native Directory&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Domains &amp;amp; Hosting
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/domains-hosting" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/domains-hosting&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Launch your projects with confidence using our curated list of reliable hosting providers, domain registrars, and modern deployment platforms.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/how-dns-works" rel="noopener noreferrer"&gt;How DNS Works&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/carrd" rel="noopener noreferrer"&gt;Carrd&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/slash-pages" rel="noopener noreferrer"&gt;Slash Pages&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/server-hunter" rel="noopener noreferrer"&gt;Server Hunter&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/getdeploying" rel="noopener noreferrer"&gt;GetDeploying&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/expose" rel="noopener noreferrer"&gt;Expose&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/krystal-hosting" rel="noopener noreferrer"&gt;Krystal Hosting &amp;amp; VPS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/statuscake" rel="noopener noreferrer"&gt;StatusCake&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/new-registry" rel="noopener noreferrer"&gt;.new Registry&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/domainr" rel="noopener noreferrer"&gt;Domainr&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛒 eCommerce
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/ecommerce" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/ecommerce&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Build online stores with the best eCommerce platforms, payment processors, and shopping cart solutions.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/commerce-cream" rel="noopener noreferrer"&gt;Commerce Cream&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/easy-digital-downloads" rel="noopener noreferrer"&gt;Easy Digital Downloads&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/stripe-checkout" rel="noopener noreferrer"&gt;Stripe Checkout&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/shopify" rel="noopener noreferrer"&gt;Shopify&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/braintree-payments" rel="noopener noreferrer"&gt;Braintree Payments&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/woocommerce" rel="noopener noreferrer"&gt;WooCommerce&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✉️ Email
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/email" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/email&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Master email development with template builders, testing tools, and delivery services that ensure your emails look great everywhere.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/really-good-emails" rel="noopener noreferrer"&gt;Really Good Emails&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/sendstack" rel="noopener noreferrer"&gt;SendStack&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/free-email-builder" rel="noopener noreferrer"&gt;Free Email Builder&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/temp-mail" rel="noopener noreferrer"&gt;Temp Mail&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/just-use-email" rel="noopener noreferrer"&gt;Just Use Email&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/email-is-good" rel="noopener noreferrer"&gt;Email is Good&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cerberus" rel="noopener noreferrer"&gt;Cerberus&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/mailto-link" rel="noopener noreferrer"&gt;Mailto Link&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/maizzle-tailwind-email-framework" rel="noopener noreferrer"&gt;Maizzle Tailwind Email Framework&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/foundation-for-emails" rel="noopener noreferrer"&gt;Foundation for Emails&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚖️ Ethics
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/ethics" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/ethics&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Build the web responsibly with tools and resources focused on privacy, sustainability, and ethical design practices.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/sendstack" rel="noopener noreferrer"&gt;SendStack&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/website-carbon-calculator" rel="noopener noreferrer"&gt;Website Carbon Calculator&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/switching-software" rel="noopener noreferrer"&gt;Switching Software&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/fathom-analytics" rel="noopener noreferrer"&gt;Fathom Analytics&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/humane-by-design" rel="noopener noreferrer"&gt;Humane by Design&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/mindful-design" rel="noopener noreferrer"&gt;Mindful Design&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎉 Fun
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/fun" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/fun&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explore the playful side of web development with creative coding experiments, generative art tools, and delightful web curiosities.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/geomini-remixable-font" rel="noopener noreferrer"&gt;Geomini Remixable Font&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/404s" rel="noopener noreferrer"&gt;404s&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/design-playlists" rel="noopener noreferrer"&gt;Design Playlists&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/slash-pages" rel="noopener noreferrer"&gt;Slash Pages&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/nekoweb" rel="noopener noreferrer"&gt;Nekoweb&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/chalk-ist" rel="noopener noreferrer"&gt;Chalk.ist&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/web-neko" rel="noopener noreferrer"&gt;Web Neko&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cbox-live-chat" rel="noopener noreferrer"&gt;Cbox Live Chat&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/avatartion" rel="noopener noreferrer"&gt;Avatartion&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/neocities" rel="noopener noreferrer"&gt;Neocities&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Icons
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/icons" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/icons&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find the perfect icons for your project with our comprehensive collection of free and premium icon libraries, icon fonts, and SVG icon sets.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/freepik" rel="noopener noreferrer"&gt;Freepik&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/11000-doodle-icons" rel="noopener noreferrer"&gt;11,000+ Doodle Icons&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/svg-flag-icons" rel="noopener noreferrer"&gt;SVG Flag Icons&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/pixel-emojis" rel="noopener noreferrer"&gt;Pixel Emojis&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/material-icons" rel="noopener noreferrer"&gt;Material Icons&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/svg-loaders" rel="noopener noreferrer"&gt;SVG Loaders&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/game-icons" rel="noopener noreferrer"&gt;Game Icons&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/animated-icons" rel="noopener noreferrer"&gt;Animated Icons&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/envato-elements" rel="noopener noreferrer"&gt;Envato Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/stream-deck-button-designer" rel="noopener noreferrer"&gt;Stream Deck Button Designer&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🖍️ Illustrations
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/illustrations" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/illustrations&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Add personality to your projects with beautiful illustration libraries, customisable SVG packs, and character generators.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/freepik" rel="noopener noreferrer"&gt;Freepik&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/handy-arrows" rel="noopener noreferrer"&gt;Handy Arrows&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/wired-elements" rel="noopener noreferrer"&gt;Wired Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/11000-doodle-icons" rel="noopener noreferrer"&gt;11,000+ Doodle Icons&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/react-kawaii" rel="noopener noreferrer"&gt;React Kawaii&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/spectrum" rel="noopener noreferrer"&gt;Spectrum&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cool-shapes" rel="noopener noreferrer"&gt;Cool Shapes&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/svg-geometric-doodles" rel="noopener noreferrer"&gt;SVG Geometric Doodles&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/illustroke" rel="noopener noreferrer"&gt;Illustroke&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/world-in-dots" rel="noopener noreferrer"&gt;World in Dots&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Inspiration
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/inspiration" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/inspiration&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get inspired by the best of web design through curated galleries, award-winning sites, and creative showcases.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/curated-design" rel="noopener noreferrer"&gt;Curated Design&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/handheld-design" rel="noopener noreferrer"&gt;Handheld Design&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/design-systems-database" rel="noopener noreferrer"&gt;Design Systems Database&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/dead-simple-sites" rel="noopener noreferrer"&gt;Dead Simple Sites&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/site-of-sites" rel="noopener noreferrer"&gt;Site of Sites&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/deck-gallery" rel="noopener noreferrer"&gt;Deck Gallery&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/404s" rel="noopener noreferrer"&gt;404s&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/onemillionscreenshots" rel="noopener noreferrer"&gt;OneMillionScreenshots&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/logofav" rel="noopener noreferrer"&gt;Logofav&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/shape-of-ai" rel="noopener noreferrer"&gt;Shape of AI&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎓 Learning
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/learning" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/learning&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Expand your skills with high-quality courses, in-depth tutorials, and comprehensive documentation.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/how-dns-works" rel="noopener noreferrer"&gt;How DNS Works&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/go-make-things" rel="noopener noreferrer"&gt;Go Make Things&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/what-pwa-can-do-today" rel="noopener noreferrer"&gt;What PWA Can Do Today&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/dark-patterns" rel="noopener noreferrer"&gt;Dark Patterns&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/figma-101" rel="noopener noreferrer"&gt;Figma 101&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/inside-modern-browsers" rel="noopener noreferrer"&gt;Inside Modern Browsers&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/sqlbolt" rel="noopener noreferrer"&gt;SQLBolt&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/laracasts" rel="noopener noreferrer"&gt;Laracasts&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/php-for-beginners" rel="noopener noreferrer"&gt;PHP for Beginners&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📣 Marketing
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/marketing" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/marketing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Grow your audience and understand your users with marketing tools, analytics platforms, and growth hacking resources.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/device-shots" rel="noopener noreferrer"&gt;Device Shots&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/microsoft-clarity" rel="noopener noreferrer"&gt;Microsoft Clarity&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/pushkeen" rel="noopener noreferrer"&gt;Pushkeen&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/dark-patterns" rel="noopener noreferrer"&gt;Dark Patterns&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/flair" rel="noopener noreferrer"&gt;Flair&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/answerthepublic" rel="noopener noreferrer"&gt;AnswerThePublic&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/really-good-emails" rel="noopener noreferrer"&gt;Really Good Emails&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/meta-ad-library" rel="noopener noreferrer"&gt;Meta Ad Library&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/social-images-for-open-source" rel="noopener noreferrer"&gt;Social Images for Open Source&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/sendstack" rel="noopener noreferrer"&gt;SendStack&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📷 Photography
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/photography" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/photography&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source stunning visuals for your projects with free stock photography, image optimisation tools, and photo editing resources.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/freepik" rel="noopener noreferrer"&gt;Freepik&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/foodiesfeed" rel="noopener noreferrer"&gt;Foodiesfeed&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/picography" rel="noopener noreferrer"&gt;Picography&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/public-domain-archive" rel="noopener noreferrer"&gt;Public Domain Archive&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/jay-mantri" rel="noopener noreferrer"&gt;Jay Mantri&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/flair" rel="noopener noreferrer"&gt;Flair&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/iso-republic" rel="noopener noreferrer"&gt;ISO Republic&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/pixabay" rel="noopener noreferrer"&gt;Pixabay&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/envato-elements" rel="noopener noreferrer"&gt;Envato Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/artvee" rel="noopener noreferrer"&gt;Artvee&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧱 Placeholders
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/placeholders" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/placeholders&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prototype faster with placeholder image services, lorem ipsum alternatives, and realistic mock data generators.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/wired-elements" rel="noopener noreferrer"&gt;Wired Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/logo-ipsum" rel="noopener noreferrer"&gt;Logo Ipsum&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/social-images-for-open-source" rel="noopener noreferrer"&gt;Social Images for Open Source&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/boring-avatars" rel="noopener noreferrer"&gt;Boring Avatars&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/notfound-org" rel="noopener noreferrer"&gt;NotFound.org&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/worldvectorlogo" rel="noopener noreferrer"&gt;WorldVectorLogo&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/http-cats" rel="noopener noreferrer"&gt;HTTP Cats&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/lorem-space" rel="noopener noreferrer"&gt;Lorem Space&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/doodle-ipsum" rel="noopener noreferrer"&gt;Doodle Ipsum&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/acme-logos" rel="noopener noreferrer"&gt;Acme Logos&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎙️ Podcasts
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/podcasts" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/podcasts&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learn on the go with podcasts covering web development, design, career advice, and the tech industry.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/go-make-things" rel="noopener noreferrer"&gt;Go Make Things&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/design-playlists" rel="noopener noreferrer"&gt;Design Playlists&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/laracasts" rel="noopener noreferrer"&gt;Laracasts&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/front-end-happy-hour-podcast" rel="noopener noreferrer"&gt;Front End Happy Hour Podcast&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/the-readme-podcast" rel="noopener noreferrer"&gt;The ReadME Podcast&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/podrocket-podcast" rel="noopener noreferrer"&gt;PodRocket Podcast&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/changelog-podcast" rel="noopener noreferrer"&gt;Changelog Podcast&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/soft-skills-engineering-podcast" rel="noopener noreferrer"&gt;Soft Skills Engineering Podcast&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/maintainable-podcast" rel="noopener noreferrer"&gt;Maintainable Podcast&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/the-bike-shed-podcast" rel="noopener noreferrer"&gt;The Bike Shed Podcast&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Productivity
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/productivity" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/productivity&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Work smarter with productivity tools designed for developers.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/automatisch" rel="noopener noreferrer"&gt;Automatisch&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/design-playlists" rel="noopener noreferrer"&gt;Design Playlists&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/lookaway-app" rel="noopener noreferrer"&gt;Lookaway App&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/personal-security-checklist" rel="noopener noreferrer"&gt;Personal Security Checklist&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/releases" rel="noopener noreferrer"&gt;Releases&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/tally-form-builder" rel="noopener noreferrer"&gt;Tally Form Builder&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/laravel-herd" rel="noopener noreferrer"&gt;Laravel Herd&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/new-registry" rel="noopener noreferrer"&gt;.new Registry&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/presentator" rel="noopener noreferrer"&gt;Presentator&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/desk-setups" rel="noopener noreferrer"&gt;Desk Setups&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔒 Security
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/security" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/security&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Protect your applications and users with security testing tools, SSL certificate resources, and best practice guides.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/privacy-tools" rel="noopener noreferrer"&gt;Privacy Tools&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/personal-security-checklist" rel="noopener noreferrer"&gt;Personal Security Checklist&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/open-source-insights" rel="noopener noreferrer"&gt;Open Source Insights&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cloudflare-turnstile" rel="noopener noreferrer"&gt;Cloudflare Turnstile&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/statuscake" rel="noopener noreferrer"&gt;StatusCake&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/device-info" rel="noopener noreferrer"&gt;Device Info&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/objective-see" rel="noopener noreferrer"&gt;Objective-See&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/web3-is-going-just-great" rel="noopener noreferrer"&gt;Web3 is going just great&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/1-1-1-1" rel="noopener noreferrer"&gt;1.1.1.1&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/the-cursed-computer-iceberg" rel="noopener noreferrer"&gt;The Cursed Computer Iceberg&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🏠 Self-Hosted
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/self-hosted" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/self-hosted&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Take control of your data with self-hosted alternatives to popular SaaS products.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/ava-cms" rel="noopener noreferrer"&gt;Ava CMS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/automatisch" rel="noopener noreferrer"&gt;Automatisch&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/openalternative" rel="noopener noreferrer"&gt;OpenAlternative&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/slash-pages" rel="noopener noreferrer"&gt;Slash Pages&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/server-hunter" rel="noopener noreferrer"&gt;Server Hunter&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/presentator" rel="noopener noreferrer"&gt;Presentator&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/goatcounter" rel="noopener noreferrer"&gt;GoatCounter&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/dub-link-shortener" rel="noopener noreferrer"&gt;Dub Link Shortener&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/the-yesterweb" rel="noopener noreferrer"&gt;The Yesterweb&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/umami" rel="noopener noreferrer"&gt;Umami&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔎 SEO
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/seo" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/seo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Improve your search visibility with SEO analysis tools, site auditors, keyword research resources, and technical SEO guides.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/answerthepublic" rel="noopener noreferrer"&gt;AnswerThePublic&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/online-backlink-checker" rel="noopener noreferrer"&gt;Online Backlink Checker&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/seo-best-practices" rel="noopener noreferrer"&gt;SEO Best Practices&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/moz" rel="noopener noreferrer"&gt;Moz&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/the-seo-framework" rel="noopener noreferrer"&gt;The SEO Framework&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/seo-analyzer" rel="noopener noreferrer"&gt;SEO Analyzer&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ☁️ Services
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/services" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/services&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Build faster by leveraging powerful APIs and cloud services.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/microsoft-clarity" rel="noopener noreferrer"&gt;Microsoft Clarity&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/openalternative" rel="noopener noreferrer"&gt;OpenAlternative&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/rewardful" rel="noopener noreferrer"&gt;Rewardful&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/getscreenshot" rel="noopener noreferrer"&gt;GetScreenshot&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/releases" rel="noopener noreferrer"&gt;Releases&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/tally-form-builder" rel="noopener noreferrer"&gt;Tally Form Builder&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cbox-live-chat" rel="noopener noreferrer"&gt;Cbox Live Chat&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/krystal-hosting" rel="noopener noreferrer"&gt;Krystal Hosting &amp;amp; VPS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/statuscake" rel="noopener noreferrer"&gt;StatusCake&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/posthog" rel="noopener noreferrer"&gt;PostHog&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Software
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/software" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/software&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Discover desktop applications that enhance your development and design workflow.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/lookaway-app" rel="noopener noreferrer"&gt;Lookaway App&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/figma-plugins" rel="noopener noreferrer"&gt;Figma Plugins&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/pay-once-apps" rel="noopener noreferrer"&gt;Pay Once Apps&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/openalternative" rel="noopener noreferrer"&gt;OpenAlternative&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/caesium-image-compressor" rel="noopener noreferrer"&gt;Caesium Image Compressor&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/mochi-diffusion" rel="noopener noreferrer"&gt;Mochi Diffusion&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/singlefile" rel="noopener noreferrer"&gt;SingleFile&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/nativephp" rel="noopener noreferrer"&gt;NativePHP&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/expose" rel="noopener noreferrer"&gt;Expose&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/laravel-herd" rel="noopener noreferrer"&gt;Laravel Herd&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📄 Templates
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/templates" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/templates&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Launch projects faster with professionally designed templates, framework starter kits, and production-ready boilerplates.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/kelp" rel="noopener noreferrer"&gt;Kelp&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/open-saas" rel="noopener noreferrer"&gt;Open SaaS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/envato-elements" rel="noopener noreferrer"&gt;Envato Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/adobe-express-ai" rel="noopener noreferrer"&gt;Adobe Express&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/shadcdn-ui" rel="noopener noreferrer"&gt;shadcdn/ui&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/inclusive-components" rel="noopener noreferrer"&gt;Inclusive Components&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/htmlrev" rel="noopener noreferrer"&gt;HTMLrev&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/gumroad-discover" rel="noopener noreferrer"&gt;Gumroad Discover&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/geo-for-bootstrap" rel="noopener noreferrer"&gt;Geo for Bootstrap&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/templatemonster" rel="noopener noreferrer"&gt;TemplateMonster&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Testing
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/testing" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/testing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Testing frameworks, end-to-end testing tools, and quality assurance resources.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/hoppscotch" rel="noopener noreferrer"&gt;Hoppscotch&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/publint" rel="noopener noreferrer"&gt;Publint&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/bruno-api-client" rel="noopener noreferrer"&gt;Bruno API Client&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/green-web-foundation" rel="noopener noreferrer"&gt;Green Web Foundation&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/open-source-insights" rel="noopener noreferrer"&gt;Open Source Insights&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cron-debugger" rel="noopener noreferrer"&gt;Cron Debugger&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/firecamp" rel="noopener noreferrer"&gt;Firecamp&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/cloudflare-internet-speed-test" rel="noopener noreferrer"&gt;Cloudflare Internet Speed Test&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/laravel-playground-2" rel="noopener noreferrer"&gt;Laravel Playground&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔤 Typography
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/typography" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/typography&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Master typography on the web with font libraries, pairing tools, and typographic best practices.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/geomini-remixable-font" rel="noopener noreferrer"&gt;Geomini Remixable Font&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/server-mono" rel="noopener noreferrer"&gt;Server Mono&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/modern-font-stacks" rel="noopener noreferrer"&gt;Modern Font Stacks&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/google-web-fonts-typographic-project" rel="noopener noreferrer"&gt;Google Web Fonts Typographic Project&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/the-league-of-moveable-type" rel="noopener noreferrer"&gt;The League of Moveable Type&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/uncut-wtf" rel="noopener noreferrer"&gt;Uncut.wtf&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/hanken-design-co" rel="noopener noreferrer"&gt;Hanken Design Co.&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/collletttivo" rel="noopener noreferrer"&gt;Collletttivo&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/tiny-bitmap-fonts" rel="noopener noreferrer"&gt;Tiny Bitmap Fonts&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/dafont" rel="noopener noreferrer"&gt;DaFont&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎥 Video
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/video" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/video&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create professional video content with browser-based editors, screen recording tools, and reliable hosting platforms.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/freepik" rel="noopener noreferrer"&gt;Freepik&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/iso-republic" rel="noopener noreferrer"&gt;ISO Republic&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/envato-elements" rel="noopener noreferrer"&gt;Envato Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/adobe-express-ai" rel="noopener noreferrer"&gt;Adobe Express&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/lickd" rel="noopener noreferrer"&gt;Lickd&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/synthesia" rel="noopener noreferrer"&gt;Synthesia&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/astrofox" rel="noopener noreferrer"&gt;Astrofox&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/coverr" rel="noopener noreferrer"&gt;Coverr&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/kapwing" rel="noopener noreferrer"&gt;Kapwing&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/handbrake" rel="noopener noreferrer"&gt;Handbrake&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 WordPress
&lt;/h2&gt;

&lt;p&gt;Category: &lt;a href="https://toolkit.addy.codes/tag/wordpress" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/tag/wordpress&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Build better WordPress sites with curated themes, essential plugins, and development resources.&lt;/p&gt;

&lt;p&gt;Top picks: &lt;a href="https://toolkit.addy.codes/link/emergency-wordpress-support" rel="noopener noreferrer"&gt;Emergency WordPress Support&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/envato-elements" rel="noopener noreferrer"&gt;Envato Elements&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/krystal-hosting" rel="noopener noreferrer"&gt;Krystal Hosting &amp;amp; VPS&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/local-wp" rel="noopener noreferrer"&gt;Local WP&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/easy-digital-downloads" rel="noopener noreferrer"&gt;Easy Digital Downloads&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/templatemonster" rel="noopener noreferrer"&gt;TemplateMonster&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/turbo-admin" rel="noopener noreferrer"&gt;Turbo Admin&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/mailpoet" rel="noopener noreferrer"&gt;MailPoet&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/advanced-custom-fields" rel="noopener noreferrer"&gt;Advanced Custom Fields&lt;/a&gt;, &lt;a href="https://toolkit.addy.codes/link/woocommerce" rel="noopener noreferrer"&gt;WooCommerce&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;If you end up clicking around, I’d love to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What’s your favourite tool/site from the list?&lt;/li&gt;
&lt;li&gt;What’s one resource you &lt;em&gt;swear by&lt;/em&gt; that I’ve missed?&lt;/li&gt;
&lt;li&gt;If you’ve built your own resource or tool, drop it in the comments, I’d genuinely love to see it!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if you want to suggest something for Toolkit itself, there’s a page for that too:&lt;br&gt;
&lt;a href="https://toolkit.addy.codes/suggest" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/suggest&lt;/a&gt;&lt;/p&gt;

</description>
      <category>resources</category>
      <category>showdev</category>
      <category>webdev</category>
      <category>discuss</category>
    </item>
    <item>
      <title>If you build personal sites, what's your current setup? Static generator, database CMS, something else? I'd love to hear what you like about it, and what you wish was simpler! :)</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Mon, 26 Jan 2026 18:44:00 +0000</pubDate>
      <link>https://dev.to/adamgreenough/if-you-build-personal-sites-whats-your-current-setup-static-generator-database-cms-something-3je4</link>
      <guid>https://dev.to/adamgreenough/if-you-build-personal-sites-whats-your-current-setup-static-generator-database-cms-something-3je4</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/adamgreenough/i-built-the-cms-i-always-wanted-for-my-personal-sites-2ek8" class="crayons-story__hidden-navigation-link"&gt;I built the CMS I always wanted for my personal sites&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/adamgreenough" class="crayons-avatar  crayons-avatar--l  "&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%2F393873%2Fedaa9fe7-db2c-495b-9029-8162fbcc4701.png" alt="adamgreenough profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/adamgreenough" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Adam Greenough
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Adam Greenough
                
              
              &lt;div id="story-author-preview-content-3199829" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/adamgreenough" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2F393873%2Fedaa9fe7-db2c-495b-9029-8162fbcc4701.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Adam Greenough&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/adamgreenough/i-built-the-cms-i-always-wanted-for-my-personal-sites-2ek8" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 26&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/adamgreenough/i-built-the-cms-i-always-wanted-for-my-personal-sites-2ek8" id="article-link-3199829"&gt;
          I built the CMS I always wanted for my personal sites
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/php"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;php&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/adamgreenough/i-built-the-cms-i-always-wanted-for-my-personal-sites-2ek8" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/adamgreenough/i-built-the-cms-i-always-wanted-for-my-personal-sites-2ek8#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            10 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>webdev</category>
      <category>php</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I built the CMS I always wanted for my personal sites</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Mon, 26 Jan 2026 18:18:21 +0000</pubDate>
      <link>https://dev.to/adamgreenough/i-built-the-cms-i-always-wanted-for-my-personal-sites-2ek8</link>
      <guid>https://dev.to/adamgreenough/i-built-the-cms-i-always-wanted-for-my-personal-sites-2ek8</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.amazonaws.com%2Fuploads%2Farticles%2F44sghs2sa48aj8unxo39.webp" 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.amazonaws.com%2Fuploads%2Farticles%2F44sghs2sa48aj8unxo39.webp" alt=" " width="800" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I recently built my own CMS, &lt;strong&gt;Ava CMS&lt;/strong&gt;, because no existing tool quite fit how I like to build personal sites.&lt;/p&gt;

&lt;p&gt;Ava is a file-based CMS written in PHP. Content lives as Markdown files with YAML front matter, themes are plain PHP/HTML, and it's designed to keep hosting and workflow simple.&lt;/p&gt;

&lt;p&gt;Docs: &lt;a href="https://ava.addy.zone/docs" rel="noopener noreferrer"&gt;https://ava.addy.zone/docs&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I was tired of
&lt;/h2&gt;

&lt;p&gt;Over the years I kept bumping into the same stuff when building personal sites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Templating engines that add a new language for no real gain&lt;/li&gt;
&lt;li&gt;Build steps and deploy pipelines for simple content edits&lt;/li&gt;
&lt;li&gt;"Just use a third-party service" for basic things like search&lt;/li&gt;
&lt;li&gt;Heavy admin UIs that try to do everything&lt;/li&gt;
&lt;li&gt;A lot of moving parts for what should be a small, maintainable site&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted something &lt;strong&gt;file-first&lt;/strong&gt;, stays out of my way, and still lets me build dynamic features when I need them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The middle ground nobody talks about
&lt;/h2&gt;

&lt;p&gt;When you want to build a website, you usually hear about two paths:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Static site generators&lt;/strong&gt; (Hugo, Jekyll, Eleventy). You write Markdown, run a build command, and get HTML files. They are fast to serve and easy to host, but everything runs through that build step. Want to add search? That's a third-party service. Want a contact form? Another service. Want to preview a draft? Rebuild first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database CMSs&lt;/strong&gt; (WordPress, Drupal, Ghost). Full-featured and dynamic, but now you need a database server, backups, migrations, and often a whole ecosystem of plugins just to get started. The content lives in database rows you can't easily read or version.&lt;/p&gt;

&lt;p&gt;There's a third option that doesn't get enough attention: &lt;strong&gt;file-based dynamic CMSs&lt;/strong&gt;. Your content stays as readable files on disk (Markdown, YAML), but you still get dynamic features like search, filtering, taxonomies, and custom fields, without a database and without a build step.&lt;/p&gt;

&lt;p&gt;This is the approach I wanted to explore with Ava.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this approach clicks (especially if you're learning)
&lt;/h2&gt;

&lt;p&gt;If you're newer to web development, here's why file-based might be worth considering:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can actually see what's happening.&lt;/strong&gt; Your content isn't hidden in a database. It's just files. Open them in any text editor, read them, move them around, back them up by copying a folder. There's no magic layer between you and your data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You learn real fundamentals.&lt;/strong&gt; With Ava, themes are just HTML files with some PHP sprinkled in. No custom templating language to learn first, just the stuff that works everywhere:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;article&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;body&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That &lt;code&gt;&amp;lt;?= ?&amp;gt;&lt;/code&gt; is standard PHP. If you learn it here, you can use it in any PHP project. You're not learning "Ava syntax". You're learning PHP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The feedback loop is instant.&lt;/strong&gt; Edit a file, save it, refresh your browser. No waiting for builds, no deploy pipelines, no "clearing the cache and rebuilding". This matters more than people realise when you're learning. The faster you see results, the faster you understand what you're doing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can use your own tools.&lt;/strong&gt; Write in VS Code, Obsidian, Typora, or a notes app. Manage your content with Git if you want version history. Upload via FTP if that's what you know. The CMS doesn't force a workflow on you.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works in practice
&lt;/h2&gt;

&lt;p&gt;Let me walk you through what happens when you use a file-based approach like this.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your content is just files you can read
&lt;/h3&gt;

&lt;p&gt;A blog post looks like this on disk:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;My&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;First&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Post"&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-first-post&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;published&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2024-12-28&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# Hello World&lt;/span&gt;

This is my first post. I can use &lt;span class="gs"&gt;**bold**&lt;/span&gt;, &lt;span class="ge"&gt;*italics*&lt;/span&gt;, 
and &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;links&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://example.com&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The bit between the &lt;code&gt;---&lt;/code&gt; lines is YAML metadata (front matter). The rest is Markdown. Both are human-readable. You can open this in any text editor, on any computer, and understand what it says.&lt;/p&gt;

&lt;p&gt;Compare that to digging through a WordPress database export to find your content. Or trying to move posts between static site generators that each have their own conventions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Themes are HTML with helpers
&lt;/h3&gt;

&lt;p&gt;There's no Blade, no Twig, no Liquid, no Handlebars. If you know HTML, you can start immediately:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;recent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'post'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;article&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'post'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;time&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/time&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;endforeach&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a list of recent posts. It's verbose compared to Twig, sure. But it's also completely standard PHP that any developer can read. You're not locked into framework-specific knowledge that becomes useless if you move to a different tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Querying content
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;$ava&lt;/code&gt; helper gives you a fluent query builder for filtering content. It reads like English:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Get all published posts tagged "php", newest first&lt;/span&gt;
&lt;span class="nv"&gt;$posts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'post'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;published&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;taxonomy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'tag'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'php'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;orderBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'date'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'desc'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Search across all content&lt;/span&gt;
&lt;span class="nv"&gt;$results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;published&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'flat file cms'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Get a single item by slug&lt;/span&gt;
&lt;span class="nv"&gt;$about&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'page'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'about'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;first&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In practice, this queries the pre-built index, not the filesystem, so even complex queries stay fast.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working with content items
&lt;/h3&gt;

&lt;p&gt;Each content item is an object with methods for accessing its data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$post&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'post'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my-post'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;first&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;       &lt;span class="c1"&gt;// "My Post"&lt;/span&gt;
&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;        &lt;span class="c1"&gt;// "my-post"&lt;/span&gt;
&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;        &lt;span class="c1"&gt;// DateTime object&lt;/span&gt;
&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;status&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;      &lt;span class="c1"&gt;// "published" or "draft"&lt;/span&gt;
&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;excerpt&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;     &lt;span class="c1"&gt;// Short description if set&lt;/span&gt;
&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'author'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Any custom field from front matter&lt;/span&gt;

&lt;span class="c1"&gt;// Taxonomy terms&lt;/span&gt;
&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;terms&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'category'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// ['tutorials', 'php']&lt;/span&gt;
&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;hasTerm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'tag'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'beginner'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true/false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing magical here. Just objects with readable methods. If you've used any PHP framework, this will feel familiar.&lt;/p&gt;

&lt;h3&gt;
  
  
  The indexing trick
&lt;/h3&gt;

&lt;p&gt;"But wait," you might think, "if content is files, doesn't it have to read every file on every request? That sounds slow."&lt;/p&gt;

&lt;p&gt;Good instinct. That's where indexing comes in.&lt;/p&gt;

&lt;p&gt;When you run &lt;code&gt;./ava rebuild&lt;/code&gt; (or Ava auto-detects changes in development mode), it scans all your Markdown files once, extracts the metadata, and stores it in a binary index. Now when someone visits your homepage, Ava doesn't parse files. It reads from the pre-built index.&lt;/p&gt;

&lt;p&gt;It's a bit like how a library works: you don't open every book to find what you need, you check the catalog first.&lt;/p&gt;

&lt;p&gt;The index generates a few cache files optimised for different queries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;recent_cache.bin&lt;/code&gt;: The 200 most recent items per content type (homepage, RSS feeds)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;slug_lookup.bin&lt;/code&gt;: Fast single-item lookups by URL&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;content_index.bin&lt;/code&gt;: Full metadata for complex queries and search&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;routes.bin&lt;/code&gt;: URL routing map&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most traffic hits the first two (fast path). Search and deep pagination load the full index (still fast, just bigger).&lt;/p&gt;

&lt;p&gt;The result: cached pages serve in about 0.02ms. Uncached pages render in about 5ms. For comparison, a basic WordPress page load is typically 200-500ms.&lt;/p&gt;

&lt;h3&gt;
  
  
  When files aren't enough
&lt;/h3&gt;

&lt;p&gt;Most personal sites will happily run on files forever. But if you somehow end up with 10,000+ posts, Ava has a SQLite backend you can switch to with one config line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// app/config/ava.php&lt;/span&gt;
&lt;span class="s1"&gt;'content_index'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'backend'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'sqlite'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;// Switch from 'array' to 'sqlite'&lt;/span&gt;
&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same content files, same workflow, but the index lives in a database instead of a binary file. SQLite uses way less memory per request, which matters when you have 50MB+ of metadata. You don't have to think about this until you need it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project layout (typical)
&lt;/h2&gt;

&lt;p&gt;This is the kind of structure you'll see in an Ava project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mysite/
├── app/
│   ├── config/
│   │   ├── ava.php           # Site settings, caching, paths
│   │   ├── content_types.php # Define what you're publishing
│   │   └── taxonomies.php    # Categories, tags, etc.
│   ├── plugins/              # Your custom plugins
│   ├── snippets/             # Reusable PHP components
│   └── themes/
│       └── default/
│           ├── templates/    # Page layouts (index.php, post.php)
│           ├── partials/     # Reusable fragments (header, footer)
│           ├── assets/       # CSS, JS, images
│           └── theme.php     # Theme setup (register shortcodes, etc.)
├── content/
│   ├── pages/                # Your page .md files
│   ├── posts/                # Your post .md files
│   └── _taxonomies/          # Category/tag descriptions
├── public/
│   └── index.php             # The single entry point
└── storage/
    ├── cache/                # Generated indexes and cached pages
    └── logs/                 # Error and indexer logs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important bit is that your content and config stay transparent and versionable. No hidden &lt;code&gt;.cache&lt;/code&gt; folders full of mystery files. No database dumps to manage. Just folders and text files.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the files actually look like
&lt;/h3&gt;

&lt;p&gt;Let me show you what some of these files contain in practice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;content/posts/hello-world.md&lt;/strong&gt;: A blog post:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Hello World&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;hello-world&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;published&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2024-12-28&lt;/span&gt;
&lt;span class="na"&gt;author&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Addy&lt;/span&gt;
&lt;span class="na"&gt;category&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;tutorials&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;getting-started&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;php&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;featured&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

This is my first post! Here's what I learned setting up Ava...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;content/pages/about.md&lt;/strong&gt;: A simple page:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;About Me&lt;/span&gt;
&lt;span class="na"&gt;slug&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;about&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;published&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

I'm a developer who likes building things with PHP.

&lt;span class="gu"&gt;## What I do&lt;/span&gt;

I build websites, mostly.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;app/config/ava.php&lt;/strong&gt;: Main site settings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'site'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'name'&lt;/span&gt;        &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'My Blog'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'base_url'&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'https://addy.codes'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'timezone'&lt;/span&gt;    &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Europe/London'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'date_format'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'F j, Y'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;

    &lt;span class="s1"&gt;'theme'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'default'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

    &lt;span class="s1"&gt;'content_index'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'mode'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'auto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;      &lt;span class="c1"&gt;// Rebuild when files change&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;

    &lt;span class="s1"&gt;'webpage_cache'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'enabled'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;     &lt;span class="c1"&gt;// Cache rendered pages&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;&lt;strong&gt;app/themes/default/partials/header.php&lt;/strong&gt;: A reusable header:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"logo"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$site&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/blog"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Blog&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/about"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;About&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;app/themes/default/templates/index.php&lt;/strong&gt;: The homepage template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$site&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;asset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'style.css'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;partial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'header'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Recent Posts&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
        &lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;recent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'post'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;article&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'post'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;slug&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;time&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/time&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;excerpt&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
        &lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;endforeach&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;

    &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;partial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'footer'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every file is readable. You can understand what it does by opening it. That's the whole idea.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuration is PHP arrays
&lt;/h3&gt;

&lt;p&gt;Instead of YAML or JSON config files, Ava uses plain PHP arrays. Here's what defining a content type looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// app/config/content_types.php&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'post'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'label'&lt;/span&gt;       &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Blog Posts'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'content_dir'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'posts'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'url'&lt;/span&gt;         &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'type'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'pattern'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'pattern'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'/blog/{slug}'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="s1"&gt;'taxonomies'&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'category'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'tag'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="s1"&gt;'fields'&lt;/span&gt;      &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="s1"&gt;'author'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'type'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'text'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'required'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="s1"&gt;'featured'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'type'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'boolean'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'default'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="s1"&gt;'project'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'label'&lt;/span&gt;       &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Projects'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'content_dir'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'projects'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'url'&lt;/span&gt;         &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'type'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'pattern'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'pattern'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'/work/{slug}'&lt;/span&gt;&lt;span class="p"&gt;],&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;Why PHP instead of YAML? You can add comments explaining &lt;em&gt;why&lt;/em&gt; a setting exists. You can use constants, environment variables, or conditional logic. And PHP arrays are what the code uses anyway, so there is no extra parsing layer to debug.&lt;/p&gt;

&lt;h3&gt;
  
  
  Theme templates are just PHP files
&lt;/h3&gt;

&lt;p&gt;A minimal theme template looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- templates/post.php --&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt; | &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$site&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;asset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'style.css'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;partial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'header'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;article&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;time&lt;/span&gt; &lt;span class="na"&gt;datetime=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Y-m-d'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/time&amp;gt;&lt;/span&gt;

            &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;body&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

            &lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;terms&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'tag'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"tags"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;terms&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'tag'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$tag&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
                        &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'tag'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$tag&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;#&lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$tag&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
                    &lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;endforeach&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
            &lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;

    &lt;span class="cp"&gt;&amp;lt;?=&lt;/span&gt; &lt;span class="nv"&gt;$ava&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;partial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'footer'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Partials (&lt;code&gt;header.php&lt;/code&gt;, &lt;code&gt;footer.php&lt;/code&gt;) are included with &lt;code&gt;$ava-&amp;gt;partial()&lt;/code&gt;. Assets get cache-busting URLs automatically. The &lt;code&gt;$content&lt;/code&gt; variable is the current page/post, &lt;code&gt;$site&lt;/code&gt; has your site config, and &lt;code&gt;$ava&lt;/code&gt; is your helper for everything else.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dynamic features without the usual hassle
&lt;/h2&gt;

&lt;p&gt;Even though it's file-based, Ava aims to cover the stuff that normally pushes people toward a database-backed CMS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Custom content types&lt;/strong&gt;: Not just posts and pages. Projects, recipes, events, whatever your site needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Taxonomies&lt;/strong&gt;: Categories, tags, or any custom grouping you want.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in search&lt;/strong&gt;: Full-text search with relevance scoring. No Algolia account required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shortcodes&lt;/strong&gt;: Embed dynamic content or reusable components inside your Markdown.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugins and hooks&lt;/strong&gt;: Extend the system when you need to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional admin panel&lt;/strong&gt;: A quick web UI for edits and uploads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI&lt;/strong&gt;: Run &lt;code&gt;./ava lint&lt;/code&gt; to check your content, &lt;code&gt;./ava rebuild&lt;/code&gt; to refresh the index, &lt;code&gt;./ava status&lt;/code&gt; to see what's going on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is that you can keep the "edit files in your editor + Git" workflow, but still build the kinds of sites that usually need more infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shortcodes in action
&lt;/h3&gt;

&lt;p&gt;Shortcodes let you embed dynamic content in Markdown without writing HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Copyright © [year] [site_name]

Contact me at [email]hello@example.com[/email]

[snippet name="newsletter-signup"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can register your own shortcodes in your theme:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// app/themes/yourtheme/theme.php&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;shortcodes&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'youtube'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$attrs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$attrs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'id'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s1"&gt;'&amp;lt;iframe src="https://youtube.com/embed/'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$id&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'" 
                frameborder="0" allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;'&lt;/span&gt;&lt;span class="p"&gt;;&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;Now &lt;code&gt;[youtube id="dQw4w9WgXcQ"]&lt;/code&gt; in any Markdown file embeds a video.&lt;/p&gt;

&lt;h3&gt;
  
  
  The CLI
&lt;/h3&gt;

&lt;p&gt;The command line is where Ava shines for developer workflows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./ava status          &lt;span class="c"&gt;# Health check: PHP version, cache status, content stats&lt;/span&gt;
./ava lint            &lt;span class="c"&gt;# Validate all content files (catches YAML errors, missing fields)&lt;/span&gt;
./ava rebuild         &lt;span class="c"&gt;# Rebuild the content index&lt;/span&gt;
./ava make post &lt;span class="s2"&gt;"My New Post"&lt;/span&gt;  &lt;span class="c"&gt;# Scaffold a new content file&lt;/span&gt;
./ava cache:clear     &lt;span class="c"&gt;# Clear the page cache&lt;/span&gt;
./ava user:add me@example.com  &lt;span class="c"&gt;# Create an admin user&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After a week or two, it becomes muscle memory. And if you're new to the terminal, Ava's CLI is a gentle introduction. The commands do one thing and the output is pretty helpful.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest trade-offs
&lt;/h2&gt;

&lt;p&gt;This approach isn't for everyone. Here's where static site generators or database CMSs might still be better:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want zero server-side code&lt;/strong&gt;, static site generators win. Your output is just HTML files that can live on a CDN with no PHP runtime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you need multiple editors with granular permissions&lt;/strong&gt;, a database CMS is probably easier. File-based works great for solo developers or small teams who are comfortable with files, less so for clients who need a polished editing experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want a huge ecosystem of ready-made themes and plugins&lt;/strong&gt;, WordPress is hard to beat. Ava is "bring your own code". That's a feature for some people and a dealbreaker for others.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this is for
&lt;/h2&gt;

&lt;p&gt;Ava is for developers who:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prefer writing real HTML/CSS and sprinkling PHP when needed&lt;/li&gt;
&lt;li&gt;Want their site to be understandable end-to-end&lt;/li&gt;
&lt;li&gt;Like file-based workflows and Git history&lt;/li&gt;
&lt;li&gt;Want a small, boring hosting setup (any PHP host works)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's not aiming at drag-and-drop site builders or big theme marketplaces. It's intentionally "bring your own code".&lt;/p&gt;

&lt;p&gt;If that sounds appealing, or if you've been frustrated by the same things I was, this approach might be worth exploring, whether with Ava or another file-based CMS like Statamic, Grav, or Kirby.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you want to poke at it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Docs: &lt;a href="https://ava.addy.zone/docs" rel="noopener noreferrer"&gt;https://ava.addy.zone/docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Home: &lt;a href="https://ava.addy.zone/" rel="noopener noreferrer"&gt;https://ava.addy.zone/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>php</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Never manually change your copyright date again with this innovative cloud-based API. 🗓</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Thu, 30 Dec 2021 16:09:25 +0000</pubDate>
      <link>https://dev.to/adamgreenough/never-manually-change-your-copyright-date-again-with-this-innovative-cloud-based-api-3m6p</link>
      <guid>https://dev.to/adamgreenough/never-manually-change-your-copyright-date-again-with-this-innovative-cloud-based-api-3m6p</guid>
      <description>&lt;p&gt;Fed up of changing your websites copyright date by hand EVERY year? Looking to offload complex date calculations to the cloud? Travelled here from the future and looking for a definitive confirmation of the current year? This FREE current year API is here to help.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://current-year-api.addy.codes/" rel="noopener noreferrer"&gt;https://current-year-api.addy.codes/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  API Documentation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Basic Usage
&lt;/h3&gt;

&lt;p&gt;If you don't need to factor in timezones and are content using UTC, the basic usage is the simplest way to get up and running with the Current Year API. Simply make a request to the API URL with your preferred method to receive the current year in JSON format.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;https://current-year-api.addy.codes/what-year-is-it&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced Usage
&lt;/h3&gt;

&lt;p&gt;For those that need accurate current year calculations based on timezone data, you can add a timezone parameter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://current-year-api.addy.codes/" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1476582732083904514-940" src="https://platform.twitter.com/embed/Tweet.html?id=1476582732083904514"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1476582732083904514-940');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1476582732083904514&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;PS. Just in case – yes, this is satire!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>discuss</category>
      <category>beginners</category>
    </item>
    <item>
      <title>480+ handpicked tools &amp; resources for web designers/developers 🧰</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Fri, 27 Aug 2021 11:58:12 +0000</pubDate>
      <link>https://dev.to/adamgreenough/480-handpicked-tools-resources-for-web-designers-developers-4con</link>
      <guid>https://dev.to/adamgreenough/480-handpicked-tools-resources-for-web-designers-developers-4con</guid>
      <description>&lt;p&gt;Hey everyone! Passed 10 years in the industry now and my bookmarks continue to boom. I've curated all my favourite tools &amp;amp; resources for web designers &amp;amp; developers to share with you too. Almost all are free, with the exception of a few which will have a from price on the card.&lt;/p&gt;

&lt;p&gt;I hope you find something new to take with you on your dev journey!&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools &amp;amp; Resources for Web Designers &amp;amp; Developers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/accessibility/" rel="noopener noreferrer"&gt;🚹 Accessibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/animation/" rel="noopener noreferrer"&gt;✨ Animation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/api/" rel="noopener noreferrer"&gt;🔌 API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/audio/" rel="noopener noreferrer"&gt;🎵 Audio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/backgrounds/" rel="noopener noreferrer"&gt;🖼 Backgrounds &amp;amp; Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/blogs/" rel="noopener noreferrer"&gt;📖 Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/books/" rel="noopener noreferrer"&gt;📚 Books&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/branding/" rel="noopener noreferrer"&gt;🦄 Branding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/business/" rel="noopener noreferrer"&gt;💼 Business&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/cms/" rel="noopener noreferrer"&gt;🗂 CMS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/code/" rel="noopener noreferrer"&gt;⌨️ Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/colour/" rel="noopener noreferrer"&gt;🌈 Colour&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/community/" rel="noopener noreferrer"&gt;👨‍👩‍👧‍👦 Community&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/copywriting/" rel="noopener noreferrer"&gt;✒️ Copywriting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/developer-tools/" rel="noopener noreferrer"&gt;🛠 Developer Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/domains-hosting/" rel="noopener noreferrer"&gt;🌐 Domains &amp;amp; Hosting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/email/" rel="noopener noreferrer"&gt;📨 Email&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/fun/" rel="noopener noreferrer"&gt;😀 Fun &amp;amp; Games&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/hardware-merch/" rel="noopener noreferrer"&gt;👕 Hardware &amp;amp; Merch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/icons/" rel="noopener noreferrer"&gt;🔣 Icon Packs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/illustrations/" rel="noopener noreferrer"&gt;✍️ Illustrations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/inspiration/" rel="noopener noreferrer"&gt;💡 Inspiration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/job-boards/" rel="noopener noreferrer"&gt;💰 Job Boards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/learning/" rel="noopener noreferrer"&gt;🎓 Learning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/marketing/" rel="noopener noreferrer"&gt;📢 Marketing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/marketplaces/" rel="noopener noreferrer"&gt;💸 Marketplaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/mockups/" rel="noopener noreferrer"&gt;📱 Mockups&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/newsletters/" rel="noopener noreferrer"&gt;🗞 Newsletters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/photography/" rel="noopener noreferrer"&gt;📸 Photography &amp;amp; Stock&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/placeholders/" rel="noopener noreferrer"&gt;📦 Placeholders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/podcasts/" rel="noopener noreferrer"&gt;🎙 Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/productivity/" rel="noopener noreferrer"&gt;✅ Productivity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/public-health/" rel="noopener noreferrer"&gt;🦠 Public Health&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/security/" rel="noopener noreferrer"&gt;🛡 Security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/self-care/" rel="noopener noreferrer"&gt;🧘‍♂️ Self Care&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/self-hosted/" rel="noopener noreferrer"&gt;🧰 Self Hosted&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/seo/" rel="noopener noreferrer"&gt;🔍 SEO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/services/" rel="noopener noreferrer"&gt;⚡️ Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/software/" rel="noopener noreferrer"&gt;💿 Software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/templates/" rel="noopener noreferrer"&gt;📐 Templates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/testing/" rel="noopener noreferrer"&gt;🧪 Test &amp;amp; Optimise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/typography/" rel="noopener noreferrer"&gt;🔤 Typography&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/ui-kits/" rel="noopener noreferrer"&gt;💻 UI Kits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/ux-design/" rel="noopener noreferrer"&gt;🪄 UX Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/video/" rel="noopener noreferrer"&gt;🎥 Video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolkit.addy.codes/tag/wordpress/" rel="noopener noreferrer"&gt;🖊 WordPress&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Am I missing any of your favourites?
&lt;/h2&gt;

&lt;p&gt;Please let me know if I am missing any of your favourites in the comments! &lt;/p&gt;

</description>
      <category>showdev</category>
      <category>design</category>
      <category>discuss</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🧰 412 (and counting) of the best web design &amp; development resources organised for your browsing pleasure</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Sat, 24 Apr 2021 20:49:15 +0000</pubDate>
      <link>https://dev.to/adamgreenough/412-and-counting-of-the-best-web-design-development-resources-organised-for-your-browsing-pleasure-2m5o</link>
      <guid>https://dev.to/adamgreenough/412-and-counting-of-the-best-web-design-development-resources-organised-for-your-browsing-pleasure-2m5o</guid>
      <description>&lt;h1&gt;
  
  
  &lt;a href="https://toolkit.addy.codes/" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="https://toolkit.addy.codes/" rel="noopener noreferrer"&gt;https://toolkit.addy.codes/&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Link ↑&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hey everybody!&lt;/p&gt;

&lt;p&gt;Thanks so much for checking out my little project. Hope you find something new. I've worked hard to make sure only quality (imo) resources feature in this directory. It is not just a scrape of everything I can find.&lt;/p&gt;

&lt;p&gt;I know there are quite a few of these style sites, but I have tried to improve on them by including real up to date website screenshots (a website's hero says much more than an icon!), a bit of pricing information where available, favourites functionality and some better organisation. Any feedback on the site itself would be very much appreciated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are your go-to web dev links in your bookmarks bar? Are any of your favourite resources missing? I'd love to hear them!&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Roast my landing page 🔥</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Fri, 30 Oct 2020 19:30:57 +0000</pubDate>
      <link>https://dev.to/adamgreenough/roast-my-landing-page-3plg</link>
      <guid>https://dev.to/adamgreenough/roast-my-landing-page-3plg</guid>
      <description>&lt;p&gt;Hey DEV friends! 👋🏻&lt;/p&gt;

&lt;p&gt;I've been working on a landing page for my new project this week and would love your feedback on the design &amp;amp; content. You know how when you look at a project too long you go a bit blind to it?&lt;/p&gt;

&lt;p&gt;Link is here: &lt;a href="https://wpfor.dev/" rel="noopener noreferrer"&gt;https://wpfor.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Many thanks in advance. &lt;/p&gt;

</description>
      <category>showdev</category>
      <category>discuss</category>
      <category>design</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Webwide turns one, V2 launched 🎂🎉</title>
      <dc:creator>Adam Greenough</dc:creator>
      <pubDate>Mon, 05 Oct 2020 19:07:17 +0000</pubDate>
      <link>https://dev.to/adamgreenough/webwide-turns-one-v2-launched-21o7</link>
      <guid>https://dev.to/adamgreenough/webwide-turns-one-v2-launched-21o7</guid>
      <description>&lt;p&gt;It's now been a whole year since I launched by web design &amp;amp; development forum! We are celebrating with a launch of version two and a whole host of new features. I'd love your feedback!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://webwide.io/threads/webwide-turns-1-whats-new-and-whats-next.1129/" rel="noopener noreferrer"&gt;https://webwide.io/threads/webwide-turns-1-whats-new-and-whats-next.1129/&lt;/a&gt;&lt;/p&gt;

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