<?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: Joshua Hughes 🐎</title>
    <description>The latest articles on DEV Community by Joshua Hughes 🐎 (@plutonus).</description>
    <link>https://dev.to/plutonus</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%2F541870%2Fa8b2c338-80b8-4017-ba72-b50595f19dd9.png</url>
      <title>DEV Community: Joshua Hughes 🐎</title>
      <link>https://dev.to/plutonus</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/plutonus"/>
    <language>en</language>
    <item>
      <title>Building a Better Portfolio: My Open-Source Next.js Portfolio Builder</title>
      <dc:creator>Joshua Hughes 🐎</dc:creator>
      <pubDate>Tue, 21 Jan 2025 16:52:33 +0000</pubDate>
      <link>https://dev.to/plutonus/building-a-better-portfolio-my-open-source-nextjs-portfolio-builder-2dcf</link>
      <guid>https://dev.to/plutonus/building-a-better-portfolio-my-open-source-nextjs-portfolio-builder-2dcf</guid>
      <description>&lt;p&gt;G'day!&lt;/p&gt;

&lt;p&gt;I've been heads-down on a project that I want to share with the DEV community: a Next.js Portfolio Builder. As web developers, we all know the importance of a strong portfolio, but the process of building and maintaining one can be, well, a bit of a pain. So, I decided to do something about it...&lt;/p&gt;

&lt;p&gt;This project is a fully open-source monorepo built with &lt;strong&gt;Next.js&lt;/strong&gt;, &lt;strong&gt;Yarn Workspaces&lt;/strong&gt;, &lt;strong&gt;TypeScript&lt;/strong&gt;, and &lt;strong&gt;Tailwind CSS&lt;/strong&gt;. The goal? To make creating and managing web design portfolios smoother, faster, and a lot more enjoyable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Under the Hood?
&lt;/h2&gt;

&lt;p&gt;This isn't just a simple template. It's a robust development environment designed to streamline your workflow. Here's a peek at some of the key features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🚀 Blazing Fast, Incremental Builds: Thanks to Yarn Workspaces and a smart build system, only the packages that have changed are rebuilt. This means significantly faster build times, especially as your portfolio grows.&lt;/li&gt;
&lt;li&gt;🧩 Reusable UI Components: Create a library of custom React components and easily share them across all your portfolio projects. No more copy-pasting the same code over and over!&lt;/li&gt;
&lt;li&gt;🤖 Automation is Your Friend: I've included scripts to automate the boring stuff, like generating new example projects and UI packages. Just run &lt;code&gt;yarn create:example&lt;/code&gt; or &lt;code&gt;yarn create:package&lt;/code&gt;, answer a few prompts, and you're good to go.&lt;/li&gt;
&lt;li&gt;🎨 Styling Made Easy with Tailwind CSS: Tailwind's utility-first approach makes styling a breeze. Get your portfolio looking sharp without writing a ton of custom CSS.&lt;/li&gt;
&lt;li&gt;✨ Clean Code Out of the Box: ESLint and Prettier are pre-configured to keep your code consistent and error-free.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I Built This (And Why You Might Care)
&lt;/h2&gt;

&lt;p&gt;Honestly, I was tired of the usual portfolio project setup. Each project lived in its own silo, with its own dependencies and configuration. Sharing code between projects was a hassle, and keeping everything up-to-date was a nightmare.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This Portfolio Builder solves those problems by:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Centralizing configuration: Manage ESLint and TypeScript settings from the root of the project.&lt;/li&gt;
&lt;li&gt;Providing a consistent development environment: Work on all your portfolio examples within a single, unified workspace.&lt;/li&gt;
&lt;li&gt;Encouraging code reuse: Easily share components and utilities between projects.&lt;/li&gt;
&lt;li&gt;Simplifying updates: Update dependencies and configurations in one place.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get Involved!
&lt;/h2&gt;

&lt;p&gt;This project is 100% open source, and I'd be thrilled to have you contribute! Whether you're a seasoned developer or just starting out, there are plenty of ways to get involved:&lt;/p&gt;

&lt;p&gt;⭐ Star the repo on GitHub:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/PlutonusDev" rel="noopener noreferrer"&gt;
        PlutonusDev
      &lt;/a&gt; / &lt;a href="https://github.com/PlutonusDev/nextjs-portfolio-builder" rel="noopener noreferrer"&gt;
        nextjs-portfolio-builder
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A powerful and flexible monorepo template designed to streamline the creation and management of your web design portfolio.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/46195982/405309394-321262e3-7246-4572-8f6b-ec81c32087d2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzc0Nzg5MzMsIm5iZiI6MTczNzQ3ODYzMywicGF0aCI6Ii80NjE5NTk4Mi80MDUzMDkzOTQtMzIxMjYyZTMtNzI0Ni00NTcyLThmNmItZWM4MWMzMjA4N2QyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAxMjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMTIxVDE2NTcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI3NWY4YTg3ZjZhYzRhZmZmZDc1NmM2YWRlOTg1NzAzMjg3M2RiYzAxZDBkMjNjY2I0MTAwNDFmMTQ0Y2VmNWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qMn-GKsxc8ia1viWYhRO-pbamrgYz6uatptVVO68DGQ"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F46195982%2F405309394-321262e3-7246-4572-8f6b-ec81c32087d2.png%3Fjwt%3DeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzc0Nzg5MzMsIm5iZiI6MTczNzQ3ODYzMywicGF0aCI6Ii80NjE5NTk4Mi80MDUzMDkzOTQtMzIxMjYyZTMtNzI0Ni00NTcyLThmNmItZWM4MWMzMjA4N2QyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAxMjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMTIxVDE2NTcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI3NWY4YTg3ZjZhYzRhZmZmZDc1NmM2YWRlOTg1NzAzMjg3M2RiYzAxZDBkMjNjY2I0MTAwNDFmMTQ0Y2VmNWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qMn-GKsxc8ia1viWYhRO-pbamrgYz6uatptVVO68DGQ" alt="Frame 1"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/23a8fc716fdd5b2272a0bad568dce652631a17cd0ceed8e4b27fcefacadc4f94/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6f64652e6a732d3546413034453f6c6f676f3d6e6f6465646f746a73266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/23a8fc716fdd5b2272a0bad568dce652631a17cd0ceed8e4b27fcefacadc4f94/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6f64652e6a732d3546413034453f6c6f676f3d6e6f6465646f746a73266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265" alt="Node.js Badge"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/8b3e611d53998801c927364b7bd3f0a9d8a94cc5e6fa735d7603908e0fce36d9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5961726e2d3243384542423f6c6f676f3d7961726e266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/8b3e611d53998801c927364b7bd3f0a9d8a94cc5e6fa735d7603908e0fce36d9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5961726e2d3243384542423f6c6f676f3d7961726e266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265" alt="Yarn Badge"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/080c05dce04c4824645a410f9b3c0de81cd0a55db6c48787e7f1b23fc50ca9a1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d3331373843363f6c6f676f3d74797065736372697074266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/080c05dce04c4824645a410f9b3c0de81cd0a55db6c48787e7f1b23fc50ca9a1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d3331373843363f6c6f676f3d74797065736372697074266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265" alt="TypeScript Badge"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/52bd91a87c71ba5ac83f9d63f89a9b7f064f8bbd2b8d25e514a061e06067bd78/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d3030303f6c6f676f3d6e657874646f746a73266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/52bd91a87c71ba5ac83f9d63f89a9b7f064f8bbd2b8d25e514a061e06067bd78/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d3030303f6c6f676f3d6e657874646f746a73266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265" alt="Next.js Badge"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/92587ce9690ea56deebbf1c3dd4945245c3eb23782fa7b817c0c769efbcfadf8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642532304353532d3036423644343f6c6f676f3d7461696c77696e64637373266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/92587ce9690ea56deebbf1c3dd4945245c3eb23782fa7b817c0c769efbcfadf8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e642532304353532d3036423644343f6c6f676f3d7461696c77696e64637373266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265" alt="Tailwind CSS Badge"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/11a59aaac78293293c41e06950b13931129b2df98509570ea8cd106bd0d6aa91/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f45534c696e742d3442333243333f6c6f676f3d65736c696e74266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/11a59aaac78293293c41e06950b13931129b2df98509570ea8cd106bd0d6aa91/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f45534c696e742d3442333243333f6c6f676f3d65736c696e74266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265" alt="ESLint Badge"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ff5989fa5a115a88c2712ad27062700e4babde997aafb376d402fcd9ca2ffb97/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f50726574746965722d4637423933453f6c6f676f3d7072657474696572266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/ff5989fa5a115a88c2712ad27062700e4babde997aafb376d402fcd9ca2ffb97/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f50726574746965722d4637423933453f6c6f676f3d7072657474696572266c6f676f436f6c6f723d666666267374796c653d666c61742d737175617265" alt="Prettier Badge"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nextjs-portfolio-builder&lt;/code&gt; is a powerful and flexible monorepo template designed to streamline the creation and management of your web design portfolio. It leverages the latest web technologies, including &lt;strong&gt;Next.js&lt;/strong&gt;, &lt;strong&gt;Yarn Workspaces&lt;/strong&gt;, &lt;strong&gt;TypeScript&lt;/strong&gt;, and &lt;strong&gt;Tailwind CSS&lt;/strong&gt;, to provide a robust and scalable development environment.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;This project provides a well-organized structure for showcasing multiple web design examples, each as a separate Next.js application within a unified Yarn workspace. It also includes utilities for easily creating reusable UI component packages that can be shared across your examples.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Monorepo with Yarn Workspaces:&lt;/strong&gt; Manage multiple Next.js example projects and shared packages efficiently in a single repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js:&lt;/strong&gt; Build fast, SEO-friendly, and scalable React applications for each of your portfolio examples.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript:&lt;/strong&gt; Enhance code quality, maintainability, and developer experience with static typing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS:&lt;/strong&gt; Rapidly style your components and examples using a utility-first CSS framework.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Package and Example Creation:&lt;/strong&gt; Use…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/PlutonusDev/nextjs-portfolio-builder" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;🛠️ Use the builder to create your own portfolio: Let me know what you think!&lt;/li&gt;
&lt;li&gt;🐛 Report bugs or suggest features: Open an issue on GitHub.&lt;/li&gt;
&lt;li&gt;💻 Contribute code: Submit a pull request with fixes or new features.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Let's Build Awesome Portfolios Together
&lt;/h2&gt;

&lt;p&gt;I want to make a difference in how we create and manage our web design portfolios. I'm excited to see what can be built with it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>nextjs</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Putting Dev.to to work - using it as a CMS</title>
      <dc:creator>Joshua Hughes 🐎</dc:creator>
      <pubDate>Mon, 02 May 2022 22:02:41 +0000</pubDate>
      <link>https://dev.to/plutonus/putting-devto-to-work-using-it-as-a-cms-1234</link>
      <guid>https://dev.to/plutonus/putting-devto-to-work-using-it-as-a-cms-1234</guid>
      <description>&lt;p&gt;I've been pretty lazy these past few months. Little to no progress on any of my projects, and no will to change that. Then, out of the blue, I came across the old project folder for my &lt;em&gt;then&lt;/em&gt; portfolio website. That was the spark I needed to start working again.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, what did I do?
&lt;/h2&gt;

&lt;p&gt;I started out by searching online for other portfolios people have created for inspiration. It was then that I came across &lt;a href="https://wallis.dev/" rel="noopener noreferrer"&gt;James Wallis' portfolio&lt;/a&gt;, and I loved the design, to understate how I felt.&lt;/p&gt;

&lt;p&gt;The deliberate minimalism was definitely something I was aiming for, and this hit the nail on the head.&lt;/p&gt;

&lt;p&gt;Some of the features that really stood out for me were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The choice of using &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS&lt;/a&gt;, a CSS framework that I was comfortable with,&lt;/li&gt;
&lt;li&gt;The use of &lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;Next.JS&lt;/a&gt; to programmatically create dynamic pages,&lt;/li&gt;
&lt;li&gt;The overall design; uncluttered and intuitive&lt;/li&gt;
&lt;li&gt;Using Dev.to as a CMS to automatically populate the portfolio and blog&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A CMS?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Yes!&lt;/strong&gt; A &lt;strong&gt;C&lt;/strong&gt;ontent &lt;strong&gt;M&lt;/strong&gt;anagement &lt;strong&gt;S&lt;/strong&gt;ystem. With the tech that James has developed, I can harness Dev.to to act as a provider for the information I display on my website. There's a few awesome benefits you get for doing this too, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dev.to stores the articles and any images that are uploaded and used.&lt;/li&gt;
&lt;li&gt;I can use Dev.to's editor and the ability to draft an article and publish it later.&lt;/li&gt;
&lt;li&gt;It has a built-in RSS feed that I can use to share my articles to other sites such as CodeNewbie and Medium.&lt;/li&gt;
&lt;li&gt;Although Dev.to has the article first, the use of a canonical URL ensures that Google and other sites see my personal website as the source site for the articles.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Built using Next.JS, we have access to two helper functions (&lt;a href="https://nextjs.org/docs/basic-features/data-fetching#getstaticpaths-static-generation" rel="noopener noreferrer"&gt;&lt;code&gt;getStaticPaths&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://nextjs.org/docs/basic-features/data-fetching#getstaticprops-static-generation" rel="noopener noreferrer"&gt;&lt;code&gt;getStaticProps&lt;/code&gt;&lt;/a&gt; to generate the &lt;a href="https://plutonus.dev/articles" rel="noopener noreferrer"&gt;Articles&lt;/a&gt; and &lt;a href="https://plutonus.dev/portfolio" rel="noopener noreferrer"&gt;Portfolio&lt;/a&gt; pages.&lt;/p&gt;

&lt;p&gt;Before an article is displayed on my website, it must meet the two following requirements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Must be published (obviously)
Must have a canonical URL directing to my website. This enables me to pick which articles are displayed, what the article's path will be on my website (not the post ID).&lt;/li&gt;
&lt;li&gt;Moreover, an article with a canonical URL pointing to &lt;a href="https://plutonus.dev/articles/" rel="noopener noreferrer"&gt;https://plutonus.dev/articles/&lt;/a&gt;... will be built as part of my blog whereas, if its canonical URL is &lt;a href="https://plutonus.dev/portfolio/" rel="noopener noreferrer"&gt;https://plutonus.dev/portfolio/&lt;/a&gt;... it will be a portfolio piece.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For every article that meets the requirements, the subsequent build process is followed:&lt;/p&gt;

&lt;p&gt;At build time, Next.js calls the getStaticPaths function which&lt;/p&gt;

&lt;p&gt;Fetches a list of my published articles using the Dev.to API (/api/articles/me).&lt;br&gt;
Converts the article's markdown to HTML.&lt;br&gt;
Saves the articles to a cache file for use in the next step.&lt;br&gt;
A dynamic page is created within the Next.js context for each article - the page slug will be the canonical URL path.&lt;br&gt;
For each page, Next.js calls getStaticProps which fetches the page's article from the cache. The article contains the name, description and HTML.&lt;/p&gt;

&lt;p&gt;The pages are rendered with the markdown using remark-html.&lt;br&gt;
Finally, the page is rendered. I use custom elements to display the article name and description and then display the HTML I rendered earlier in getStaticPaths using remark-html. For styling, I use the Tailwind Typography plugin.&lt;/p&gt;

&lt;p&gt;Well, that pretty much sums it up. You can view the articles I write on Dev.to, &lt;a href="https://plutonus.dev/articles/designing-my-website-using-devto-as-a-cms" rel="noopener noreferrer"&gt;&lt;strong&gt;including this one&lt;/strong&gt;&lt;/a&gt;, on &lt;a href="https://plutonus.dev/" rel="noopener noreferrer"&gt;my brand new site&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>nextjs</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
