<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Stephen Siegert</title>
    <link>https://xiegerts.com/</link>
    <description>Recent content on Stephen Siegert</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>© 2026 Copyright Stephen Siegert (&lt;a href=&#39;https://www.threads.net/@siegerts&#39; class=&#39;link black-40&#39;&gt;@siegerts&lt;/a&gt;). All rights reserved.</copyright>
    <lastBuildDate>Fri, 27 Mar 2026 11:52:01 -0500</lastBuildDate>
    <atom:link href="https://xiegerts.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Somewhere Between Prompt and Context Engineering</title>
      <link>https://xiegerts.com/post/between-prompts-and-context/</link>
      <pubDate>Fri, 27 Mar 2026 11:52:01 -0500</pubDate>
      <guid>https://xiegerts.com/post/between-prompts-and-context/</guid>
      <description>I know that we &amp;ldquo;moved on&amp;rdquo; from prompt engineering but it&amp;rsquo;s still a huge gap for tech and non-tech AI users, developers, consumers, etc. We need more conversation engineering that is a middle ground between prompt and context.&#xA;Articulating what you envision is still a challenge. I imagine that outside of the tech bubble, writing and summarization are probably still the top uses (in aggregate) for many general AI users. With the next level being light-weight automation.</description>
    </item>
    <item>
      <title>Hit Your 1 Rep Max with AI</title>
      <link>https://xiegerts.com/post/hit-your-1-rep-max-with-ai/</link>
      <pubDate>Tue, 03 Mar 2026 00:00:00 -0500</pubDate>
      <guid>https://xiegerts.com/post/hit-your-1-rep-max-with-ai/</guid>
      <description>In the gym, your 1 rep max is the most weight you can lift for a single repetition. It&amp;rsquo;s not about how many reps and sets you can do. It&amp;rsquo;s about finding the absolute edge of what you&amp;rsquo;re capable of. Just once, in the moment after you&amp;rsquo;ve warmed up or just have a day that you&amp;rsquo;re &amp;ldquo;feeling it&amp;rdquo;.&#xA;That&amp;rsquo;s what AI gives you for creativity. Without any of the limitations.</description>
    </item>
    <item>
      <title>Using Firebase Auth in a Chrome Extension with Offscreen Documents and Plasmo</title>
      <link>https://xiegerts.com/post/firebase-offscreen-auth-chrome-extension/</link>
      <pubDate>Thu, 19 Sep 2024 07:25:16 -0400</pubDate>
      <guid>https://xiegerts.com/post/firebase-offscreen-auth-chrome-extension/</guid>
      <description>This is a quick run through of the setup and configuration needed to use Firebase Auth in a Chrome extension built with Plasmo in offscreen documents.&#xA;There is Offscreen Documents documentation that this post draws from on the Firebase site about using Firebase Auth in Chrome extensions, but I found it a bit complex and incomplete as to what actually needs to be added to the extension to make it work.</description>
    </item>
    <item>
      <title>Dockerfile with uv for Scrapy and Playwright</title>
      <link>https://xiegerts.com/post/uv-docker-scrapy-playwright/</link>
      <pubDate>Sun, 15 Sep 2024 15:25:16 -0400</pubDate>
      <guid>https://xiegerts.com/post/uv-docker-scrapy-playwright/</guid>
      <description>These are some Dockerfile examples for setting up a Scrapy project with uv and Playwright for quick web scraping and automation. Adjust the CMD to match your project&amp;rsquo;s requirements.&#xA;Dockerfile with uv FROM python:3.12 COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv COPY . . RUN uv venv /opt/venv # Use the virtual environment automatically ENV VIRTUAL_ENV=/opt/venv RUN uv pip install --system --no-cache -r requirements.txt CMD scrapy crawl &amp;lt;spider-name&amp;gt; CMD scrapy &amp;lt;command-name&amp;gt; Dockerfile with uv and Playwright FROM python:3.</description>
    </item>
    <item>
      <title>Adding Sign In with Google OAuth to a Chrome Extension: chrome.identity.launchWebAuthFlow</title>
      <link>https://xiegerts.com/post/chrome-extension-oauth-web-auth-flow-firebase-google/</link>
      <pubDate>Sat, 14 Sep 2024 15:25:16 -0400</pubDate>
      <guid>https://xiegerts.com/post/chrome-extension-oauth-web-auth-flow-firebase-google/</guid>
      <description>Google Auth in Chrome Extensions is fun &amp;#x1f60f;&#xA;If you&amp;rsquo;re building OAuth into a Chrome Extension you&amp;rsquo;ll likely start with chrome.identity.getAuthToken and then realize that it doesn&amp;rsquo;t work in other browsers outside of Chrome, even Chromium-based ones like Brave. chrome.identity.launchWebAuthFlow is the alternative but it&amp;rsquo;s a bit more involved since you&amp;rsquo;ll need to handle the token exchange and refresh yourself.&#xA;A few items that you may want to take into consideration.</description>
    </item>
    <item>
      <title>Handling Google OAuth Authorization Code and Access Token Exchange in a Chrome Extension</title>
      <link>https://xiegerts.com/post/chrome-extension-google-oauth-access-token/</link>
      <pubDate>Sat, 14 Sep 2024 15:25:16 -0400</pubDate>
      <guid>https://xiegerts.com/post/chrome-extension-google-oauth-access-token/</guid>
      <description>This is a continuation of the series on developing browser extensions with Google Sign In using Google OAuth. In the previous post, we looked at how to set up a Chrome extension with chrome.identity.launchWebAuthFlow and Google Sign In as an alternative to chrome.identity.getAuthToken. In this post, we will look at how to handle the token exchange and refresh for the Google OAuth flow in a Chrome extension using and external server API running in a Cloudflare Worker.</description>
    </item>
    <item>
      <title>Handling Google OAuth Refresh Tokens in a Chrome Extension</title>
      <link>https://xiegerts.com/post/chrome-extension-google-oauth-refresh-token/</link>
      <pubDate>Sat, 14 Sep 2024 15:25:16 -0400</pubDate>
      <guid>https://xiegerts.com/post/chrome-extension-google-oauth-refresh-token/</guid>
      <description>This is the last post in the series on developing browser extensions with Google Sign In using Google OAuth. In the previous post, we looked at how to exchange the Google OAuth authorization code for the access token and refresh token in a Cloudflare Worker API. In this post, we will look at how to handle the token refresh in the Chrome extension using the refresh token that we got from the token exchange API.</description>
    </item>
    <item>
      <title>Saving Scrapy Crawl Stats to PostgreSQL with a Custom Extension and SQLAlchemy</title>
      <link>https://xiegerts.com/post/scrapy-extension-save-crawlstats-postgres/</link>
      <pubDate>Wed, 14 Aug 2024 07:33:55 -0500</pubDate>
      <guid>https://xiegerts.com/post/scrapy-extension-save-crawlstats-postgres/</guid>
      <description>The Scrapy crawl stat logs are useful for tracking and monitoring the performance of a spider. You&amp;rsquo;ve probably seen the stats log at the end of a spider crawl when they are dumped to the Scrapy log (or console) from memory.&#xA;An example of these CoreStats stats is below. Depending on the spider, settings, and other extensions, the stats may vary in your project.&#xA;{ &amp;#34;downloader/request_bytes&amp;#34;: 1178, &amp;#34;downloader/request_count&amp;#34;: 3, &amp;#34;downloader/request_method_count/GET&amp;#34;: 3, &amp;#34;downloader/response_bytes&amp;#34;: 132792, &amp;#34;downloader/response_count&amp;#34;: 3, &amp;#34;downloader/response_status_count/200&amp;#34;: 1, &amp;#34;downloader/response_status_count/301&amp;#34;: 1, &amp;#34;downloader/response_status_count/404&amp;#34;: 1, &amp;#34;elapsed_time_seconds&amp;#34;: 2.</description>
    </item>
    <item>
      <title>Crawling Pages with Infinite Scroll using Scrapy and Playwright</title>
      <link>https://xiegerts.com/post/infinite-scroll-scrapy-playwright/</link>
      <pubDate>Thu, 08 Aug 2024 10:33:55 -0500</pubDate>
      <guid>https://xiegerts.com/post/infinite-scroll-scrapy-playwright/</guid>
      <description>When crawling websites with Scrapy you&amp;rsquo;ll quickly come across all sorts of scenarios that require you to get creative or interact with the page that you&amp;rsquo;re trying to scrape. One of these scenarios is when you need to crawl an infinite scroll page. This type of website page loads more content as you scroll down the page like a social media feed.&#xA;There is definitely more than one way to crawl these types of pages.</description>
    </item>
    <item>
      <title>Verifying Lemon Squeezy Subscription Webhooks in Cloudflare Workers</title>
      <link>https://xiegerts.com/post/lemon-squeezy-webhooks-cloudflare-workers-d1/</link>
      <pubDate>Thu, 27 Jun 2024 10:33:55 -0500</pubDate>
      <guid>https://xiegerts.com/post/lemon-squeezy-webhooks-cloudflare-workers-d1/</guid>
      <description>I&amp;rsquo;ve been using Lemon Squeezy to handle subscription billing in several projects. Lemon Squeezy offers an easy way to manage subscriptions and payments, similar to the DX of Stripe, but includes tax remittance and compliance as a Merchant of Record (MoR). So, using Lemon Squeezy helps offload the complexities of tax, compliance, and dispute handling. Additionally, I like the idea of having the built-in email marketing and affiliate portal as optional features.</description>
    </item>
    <item>
      <title>Detecting GitHub Issue Transfers in Chrome Extensions</title>
      <link>https://xiegerts.com/post/detecting-server-redirects-browser-extension/</link>
      <pubDate>Tue, 25 Jun 2024 10:33:55 -0500</pubDate>
      <guid>https://xiegerts.com/post/detecting-server-redirects-browser-extension/</guid>
      <description>In GitHub issues, if an issue is transferred to another repository or if the issue is converted to a discussion (or vice versa), the URL reference will change. Still it&amp;rsquo;s not always easy to track these changes. Tracking transfers is pretty tricky, even using the GitHub API. If you&amp;rsquo;re listening for webhook events on issues, it is possible to catch the transferred event but you won&amp;rsquo;t know where the issue was transferred to.</description>
    </item>
    <item>
      <title>Bring Your Own API Key: Supporting User-Provided OpenAI Keys and Prompts in Browser Extensions</title>
      <link>https://xiegerts.com/post/browser-extension-genai-key-prompts/</link>
      <pubDate>Mon, 24 Jun 2024 01:34:21 -0400</pubDate>
      <guid>https://xiegerts.com/post/browser-extension-genai-key-prompts/</guid>
      <description>I recently added support (v1.1.0+) for bringing your OpenAI API to dossi as an opt-in feature. This allows users to use their own OpenAI API key and prompts in the browser extension alongside parsed GitHub issue and discussion content.&#xA;These are just a few thoughts on the implementation and some of my considerations when adding this in.&#xA;Overview It was important to me that the addition strikes a balance between allowing the generative AI functionality and not being too prescriptive in how it’s used.</description>
    </item>
    <item>
      <title>dossi is now open source</title>
      <link>https://xiegerts.com/post/dossi-is-now-open-source/</link>
      <pubDate>Sat, 04 May 2024 19:33:55 -0500</pubDate>
      <guid>https://xiegerts.com/post/dossi-is-now-open-source/</guid>
      <description>dossi, a browser extension and web app to keep track of your own private GitHub notes is now open source.&#xA;Browser extension Web app and API Backstory I built dossi as a way to keep track of my own notes for GitHub issues and pull requests across multiple repositories and organizations.&#xA;Personally, a challenge that I kept running into was just saving general thoughts at the moment when I found a new open-source project or issue that I knew I&amp;rsquo;d want to come back to later.</description>
    </item>
    <item>
      <title>About</title>
      <link>https://xiegerts.com/about/</link>
      <pubDate>Tue, 08 Aug 2023 19:29:36 -0500</pubDate>
      <guid>https://xiegerts.com/about/</guid>
      <description>I sit between developers and product, translating what developers actually experience into what gets built. I&amp;rsquo;ve done this across enterprise cloud platforms, developer tools, and my own bootstrapped B2C products.&#xA;Senior Developer Advocate - Agentic AI &amp;amp; Developer Experience @ Amazon Web Services (AWS)&#xA;Senior Solutions Architect @ Amazon Web Services&#xA;Developer Advocacy @ Neon - Serverless Postgres&#xA;Senior Product Manager, Technical @ Amazon Web Services&#xA;Product Lead @ SAS Institute</description>
    </item>
    <item>
      <title>Changing a Next.js SSG App to SSR on Amplify Hosting</title>
      <link>https://xiegerts.com/post/change-amplify-hosting-app-type/</link>
      <pubDate>Mon, 26 Sep 2022 10:03:45 -0400</pubDate>
      <guid>https://xiegerts.com/post/change-amplify-hosting-app-type/</guid>
      <description>If you want to change to the application type from SSR to SSG, or SSG to SSR, then the platform and framework type needs to be changed in your application settings in Amplify Hosting. If not, you&amp;rsquo;ll likely hit deploy errors or 503s when the site builds and deploys.&#xA;The current framework type is listed in the App settings -&amp;gt; Building settings -&amp;gt; App build specification. This is determined when the application is created.</description>
    </item>
    <item>
      <title>Serverless Authentication with Amplify Auth, Amplify UI, and Next.js</title>
      <link>https://xiegerts.com/post/amplify-ui-auth-nextjs/</link>
      <pubDate>Tue, 28 Jun 2022 12:45:20 -0400</pubDate>
      <guid>https://xiegerts.com/post/amplify-ui-auth-nextjs/</guid>
      <description>This post steps through setting up Amplify Auth with the Amplify UI React library in a Next.js SSR application. Once set up, we can restrict access to pages using the built-in hooks from the Amplify Authenticator on the client-side and use withSSRContext and Auth to restrict access to the API routes.&#xA;At this point, we&amp;rsquo;ll have all of the auth primitives to build a complete fullstack Next.js application. We can restrict access on the client or server (getServerSideProps) and also create API routes for additional business logic and processing.</description>
    </item>
    <item>
      <title>Adding Prisma to Next.js API Routes on Amplify Hosting</title>
      <link>https://xiegerts.com/post/amplify-prisma-nextjs-api-route/</link>
      <pubDate>Tue, 21 Jun 2022 15:25:16 -0400</pubDate>
      <guid>https://xiegerts.com/post/amplify-prisma-nextjs-api-route/</guid>
      <description>This is a quick follow to Deploying Next.js SSR and Prisma on Amplify Hosting.&#xA;Once you have Prisma deployed and working with Next.js getServerSideProps, you can extend the database access into the API routes.&#xA;Adjust the default hello.js with the below Prisma query. This is the same query as the index.js SSR call in the previous post.&#xA;// /api/hello.js import prisma from &amp;#34;@/lib/prisma&amp;#34;; export default async function handler(req, res) { const posts = await prisma.</description>
    </item>
    <item>
      <title>Deploying Next.js SSR and Prisma on Amplify Hosting</title>
      <link>https://xiegerts.com/post/prisma-nextjs-amplify-hosting/</link>
      <pubDate>Tue, 07 Jun 2022 16:03:45 -0400</pubDate>
      <guid>https://xiegerts.com/post/prisma-nextjs-amplify-hosting/</guid>
      <description>In this post, we&amp;rsquo;ll set up and deploy a Next.js SSR app that uses Prisma as an ORM with a PostgreSQL database. Once integrated, we&amp;rsquo;ll be able to fetch data using SSR and getServerSideProps. We&amp;rsquo;ll store the connection information for the database in AWS Systems Manager Parameter Store and deploy the app on Amplify Hosting.&#xA;The application and deployment Create a Next.js app Set up Prisma and seed the DB Create and store the production DB connection string in Parameter Store (SSM) Configure the Amplify Hosting build to retrieve the connection string from (SSM) Deploy!</description>
    </item>
    <item>
      <title>NextAuth.js with Slack Provider Set Up</title>
      <link>https://xiegerts.com/post/next-auth-slack-provider/</link>
      <pubDate>Sat, 18 Dec 2021 19:33:55 -0500</pubDate>
      <guid>https://xiegerts.com/post/next-auth-slack-provider/</guid>
      <description>Just a quick note on configuration changes needed for the Slack provider to save the authenticated user correctly using the Prisma adapter.&#xA;The below changes assume that the app is set up following the NextAuth.js documentation.&#xA;schema.prisma The schema needs to be adjusted to include both state and ok.&#xA;generator client { provider = &amp;#34;prisma-client-js&amp;#34; } datasource db { provider = &amp;#34;postgresql&amp;#34; url = env(&amp;#34;DATABASE_URL&amp;#34;) } model Account { id String @id @default(cuid()) userId String type String provider String providerAccountId String refresh_token String?</description>
    </item>
    <item>
      <title>Building and deploying a Slack app with Python, Bolt, and AWS Amplify</title>
      <link>https://xiegerts.com/post/slack-app-bolt-python-amplify/</link>
      <pubDate>Mon, 24 May 2021 21:47:41 -0400</pubDate>
      <guid>https://xiegerts.com/post/slack-app-bolt-python-amplify/</guid>
      <description>This post is part of an ongoing series focused on tips and tricks when building fullstack serverless apps with AWS Amplify. Slack apps and bots are a handy way to automate and streamline repetitive tasks. Slack&amp;rsquo;s Bolt framework consolidates the different mechanisms to capture and interact with Slack events into a single library.&#xA;From the Slack Bolt documentation:&#xA;All flavors of Bolt are equipped to help you build apps and integrations with our most commonly used features.</description>
    </item>
    <item>
      <title>Deploying a FastAPI backend using AWS Amplify Container-based REST APIs</title>
      <link>https://xiegerts.com/post/fastapi-fargate-amplify/</link>
      <pubDate>Tue, 11 May 2021 23:34:21 -0400</pubDate>
      <guid>https://xiegerts.com/post/fastapi-fargate-amplify/</guid>
      <description>This post is part of an ongoing series focused on tips and tricks when building fullstack serverless apps with AWS Amplify. No surprise that it&amp;rsquo;s a difficult process to go from development to production deployments in an organization &amp;#x1f937;.&#xA;This is especially true for analytics and data science teams developing models or business logic. There&amp;rsquo;s usually not a clear path or tooling to support application hand-offs or deployments across teams.</description>
    </item>
    <item>
      <title>Displaying the active Amplify Environment alongside the current Git branch</title>
      <link>https://xiegerts.com/post/show-current-aws-amplify-environment/</link>
      <pubDate>Sat, 08 May 2021 12:08:30 -0400</pubDate>
      <guid>https://xiegerts.com/post/show-current-aws-amplify-environment/</guid>
      <description>This post is part of an ongoing series focused on tips and tricks when building fullstack serverless apps with AWS Amplify. Working with a lot of Git branches can get a bit tricky when they align to different Amplify environments. I usually find myself checking amplify status or amplify env list to determine the active environment. Below is an approach that is a bit more dynamic and similar to what Git and Python virtual environments show while working in the terminal.</description>
    </item>
    <item>
      <title>Launching RStudio from the command line</title>
      <link>https://xiegerts.com/post/open-rstudio-from-terminal/</link>
      <pubDate>Mon, 06 Jan 2020 12:32:05 -0500</pubDate>
      <guid>https://xiegerts.com/post/open-rstudio-from-terminal/</guid>
      <description>Open RStudio from the terminal like VS Code A quick Zsh or Bash function to open an RStudio project from the command line similar to opening Visual Studio Code with:&#xA;$ code . Configure Place the function below in your .zshrc or comparable .bashrc configuration and re-source:&#xA;rs () { if [ -z &amp;#34;$1&amp;#34; ] ; then dir=&amp;#34;.&amp;#34; else dir=&amp;#34;$1&amp;#34; fi cmd=&amp;#34;proj &amp;lt;- list.files(&amp;#39;$dir&amp;#39;, pattern = &amp;#39;*.Rproj$&amp;#39;, full.names = TRUE); if (length(proj) &amp;gt; 0) { system(paste(&amp;#39;open -na Rstudio&amp;#39;, proj[1])) } else { cat(&amp;#39;No .</description>
    </item>
    <item>
      <title>Publishing a Vue component plugin on npm</title>
      <link>https://xiegerts.com/post/creating-vue-component-library-npm/</link>
      <pubDate>Sat, 04 Jan 2020 12:38:20 -0500</pubDate>
      <guid>https://xiegerts.com/post/creating-vue-component-library-npm/</guid>
      <description>The last step in creating a Vue component library plugin is to publish it as a package. Most packages are published on npm if the intention is to distribute to an external audience. Other registry options include GitHub Package Registry and Artifactory. It is also possible to run your own private registry.&#xA;In this post, I&amp;rsquo;ll explain the process to publish to npm. Similar steps can be taken to use a different registry if it also utilizes the npm (or yarn) CLI API conventions.</description>
    </item>
    <item>
      <title>Deploy VuePress on Netlify</title>
      <link>https://xiegerts.com/post/creating-vue-component-library-deploy/</link>
      <pubDate>Thu, 23 May 2019 21:19:10 -0400</pubDate>
      <guid>https://xiegerts.com/post/creating-vue-component-library-deploy/</guid>
      <description>Documentation is no fun if it isn&amp;rsquo;t public. Now, having configured the component library to use VuePress for the documentation and marketing aspect, we need to deploy it. Netlify is a great choice for this! The VuePress documentation does a great job of documenting deployment options. We&amp;rsquo;ll use Netlify for this example.&#xA;Deploy on Netlify After the last post, the component library plugin structure should be like the structure below. If you&amp;rsquo;ve modified some of the naming conventions, that&amp;rsquo;s okay.</description>
    </item>
    <item>
      <title>Using VuePress for plugin documentation</title>
      <link>https://xiegerts.com/post/creating-vue-component-library-documentation/</link>
      <pubDate>Thu, 21 Mar 2019 12:37:21 -0500</pubDate>
      <guid>https://xiegerts.com/post/creating-vue-component-library-documentation/</guid>
      <description>Documentation time!&#xA;In this post, we&amp;rsquo;ll add a documentation element to the Vue component library plugin using VuePress. The end state of this post will be a static site that is structured to document a component library that exists in the same project.&#xA;The component will generate its own documentation!&#xA;JavaScript is unique in that it&amp;rsquo;s possible to create live documentation sites with all the available tools and frameworks. VuePress adds some extra icing &amp;#x1f370;.</description>
    </item>
    <item>
      <title>Consolidating components into a Vue.js plugin</title>
      <link>https://xiegerts.com/post/creating-vue-component-library-plugin/</link>
      <pubDate>Mon, 11 Mar 2019 12:40:05 -0500</pubDate>
      <guid>https://xiegerts.com/post/creating-vue-component-library-plugin/</guid>
      <description>At this point, we have a structured approach for creating new Vue.js components and consolidating them into a single module export. Awesome! Next, we&amp;rsquo;ll bundle the components into a plugin to be registered on a Vue instance.&#xA;Remember that the Vue CLI creates a main.js entry point file in the root of the /src directory during the project initialization. Usually, that&amp;rsquo;s used as the entry point for a new Vue application.</description>
    </item>
    <item>
      <title>Structuring a Vue component library</title>
      <link>https://xiegerts.com/post/creating-vue-component-library-structure/</link>
      <pubDate>Thu, 28 Feb 2019 12:38:50 -0500</pubDate>
      <guid>https://xiegerts.com/post/creating-vue-component-library-structure/</guid>
      <description>Overview In this post, we&amp;rsquo;ll step through the initial project structure for your Vue components. In the last post, I covered the importance of packaging together a component library. Give that post a quick read, if you haven&amp;rsquo;t yet, for a more context on goals of the project.&#xA;Vue project structure Let&amp;rsquo;s jump right in. We&amp;rsquo;re going to use the Vue CLI 3. Bam!&#xA;Luckily, a lot of the once was configuration steps are now handled by the CLI, mostly regarding webpack.</description>
    </item>
    <item>
      <title>Creating a Vue.js component library: Introduction</title>
      <link>https://xiegerts.com/post/creating-vue-component-library-introduction/</link>
      <pubDate>Wed, 27 Feb 2019 10:03:55 -0500</pubDate>
      <guid>https://xiegerts.com/post/creating-vue-component-library-introduction/</guid>
      <description>In this series, we’ll focus on structuring a Vue component library as a plugin for use, and reuse. That also includes distribution and documentation. That&amp;rsquo;s what is so great about Vue - the ability to create your own building blocks for designing a user experience. This series of posts is not about writing components, that&amp;rsquo;s a subject for another day.&#xA;Context I like to use existing component libraries until I don’t 😉.</description>
    </item>
    <item>
      <title>Visual Studio Code settings for Vue</title>
      <link>https://xiegerts.com/post/vs-code-settings-vue/</link>
      <pubDate>Tue, 26 Feb 2019 11:52:01 -0500</pubDate>
      <guid>https://xiegerts.com/post/vs-code-settings-vue/</guid>
      <description>The settings below are my defaults for Vue development in VS Code. These are optional but influence the structure and syntax of the code examples in some of my posts. I&amp;rsquo;ve been using VS Code with Vue for a few years so I apologize if any of the settings are legacy. I try to keep it up to date. &amp;#x1f4c6;&#xA;Extensions referenced here:&#xA;Vetur ESLint Prettier editor (default) Stylus Supremacy settings.</description>
    </item>
    <item>
      <title>Adding Netlify redirect rules for Hugo</title>
      <link>https://xiegerts.com/post/netlify-redirects-hugo/</link>
      <pubDate>Fri, 22 Feb 2019 10:37:21 -0500</pubDate>
      <guid>https://xiegerts.com/post/netlify-redirects-hugo/</guid>
      <description>The initial jump into the netlify.toml file is a bit daunting at first, especially if you only want to make a small change. Once your Hugo site it deployed on Netlify, you&amp;rsquo;ll want to redirect traffic pointed to the provided subdomain to your primary domain.&#xA;netlify.toml Create a netlify.toml file in the root directory of your Hugo site. This file can be set up to do quite a bit. For our purposes, we&amp;rsquo;ll only configure the provided redirect from the deployment.</description>
    </item>
  </channel>
</rss>
