> ## Documentation Index
> Fetch the complete documentation index at: https://developer.upsun.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Chad Carlson

> Articles written by Chad Carlson.

export const ShowMore = ({children, className = '', id = 'posts', btnClassName = ''}) => {
  const hash = 'show-all-' + id;
  const [expanded, setExpanded] = useState(false);
  useEffect(() => {
    const check = () => {
      if (window.location.hash === '#' + hash) {
        setExpanded(true);
      }
    };
    check();
    window.addEventListener('hashchange', check);
    return () => window.removeEventListener('hashchange', check);
  }, [hash]);
  const wrapClass = expanded ? className : className + ' blog-paginated';
  return <div>
      <div className={wrapClass}>
        {children}
      </div>
      {!expanded && <div className={btnClassName} style={{
    marginTop: '2rem',
    textAlign: 'center'
  }}>
          <a href={'#' + hash} style={{
    display: 'inline-flex',
    alignItems: 'center',
    gap: '0.5rem',
    padding: '0.75rem 1.5rem',
    borderRadius: '9999px',
    border: '1px solid #e5e7eb',
    fontSize: '0.875rem',
    fontWeight: 500,
    color: '#374151',
    textDecoration: 'none'
  }}>
            Show all posts ▾
          </a>
        </div>}
    </div>;
};

<div className="flex items-center gap-4 mb-8 not-prose">
  <img src="https://github.com/chadwcarlson.png?size=128" alt="Chad Carlson" className="w-16 h-16 rounded-full" />

  <div className="flex flex-wrap gap-3">
    <a href="https://github.com/chadwcarlson" target="_blank" rel="noopener noreferrer" className="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full border border-gray-200 dark:border-white/10 text-sm text-gray-700 dark:text-gray-300 hover:border-primary dark:hover:border-primary-light transition-colors">GitHub</a>
    <a href="https://www.linkedin.com/in/chadwcarlson" target="_blank" rel="noopener noreferrer" className="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full border border-gray-200 dark:border-white/10 text-sm text-gray-700 dark:text-gray-300 hover:border-primary dark:hover:border-primary-light transition-colors">LinkedIn</a>
  </div>
</div>

<ShowMore id="author-chadwcarlson-articles" className="blog-card-grid">
  <a href="/posts/unknown/new-improvement-global-settings-in-console" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/new-improvement-global-settings-in-console/new-improvement-global-settings-in-console.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/new-improvement-global-settings-in-console/new-improvement-global-settings-in-console.webp" alt="New improvement: global settings in console" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, July 9th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">New improvement: global settings in console</h3>
      <p className="blog-card-desc">Discover the new global settings page in the Console. Easily configure project and environment settings in one location for a smoother experience.</p>
    </div>
  </a>

  <a href="/posts/tutorials/drupal-and-upsun" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/tutorials/drupal-and-upsun/logo-image.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/drupal-and-upsun/logo-image.webp" alt="Drupal and Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`featured` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        featured
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, January 16th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Drupal and Upsun</h3>
      <p className="blog-card-desc">[Drupal CMS](https://www.drupal.org/project/cms), born of [DrupalCon 2024 initiative](https://www.drupal.org/about/in-the-news/blog/drupal-cms-groundbreaking-new-version-of-drupal-detailed-at-drupalcon-singapore-2024) "Starshot", has been [released today](https://www.drupal.org/blog/drupal-cms-1-0).</p>
    </div>
  </a>

  <a href="/posts/releases/php-84-release" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/releases/php-84-release/elephant-84.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/php-84-release/elephant-84.webp" alt="PHP 8.4 is here!" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`featured` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        featured
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, November 26th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">PHP 8.4 is here!</h3>
      <p className="blog-card-desc">PHP 8.4 was [officially released](https://www.php.net/archive/2024.php#2024-11-21-4) on November 21st, and with it comes a number of improvements and new features that you can - as of today - begin working with on your Upsun and Platform.sh projects.</p>
    </div>
  </a>

  <a href="/posts/releases/introducing-dev-center" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/devcenter.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/devcenter.webp" alt="Introducing the Upsun Developer Center" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`releases` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        releases
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, September 18th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Introducing the Upsun Developer Center</h3>
      <p className="blog-card-desc">This month our Developer Relations and Advocacy teams are excited to share with you our latest resource: the Upsun Developer Center.</p>
    </div>
  </a>

  <a href="/posts/how-tos/measuring-the-success-of-a-deployment-with-githubactions" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/how-tos/measuring-the-success-of-a-deployment-with-githubactions/cover-github-actions.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/measuring-the-success-of-a-deployment-with-githubactions/cover-github-actions.webp" alt="Measuring Deployment Success with GitHub Actions" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-tos` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        how-tos
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, December 23rd 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Measuring Deployment Success with GitHub Actions</h3>
      <p className="blog-card-desc">Learn how GitHub actions can streamline your Platform.sh deployments for faster and more efficient development workflows</p>
    </div>
  </a>

  <a href="/posts/unknown/share-your-activities-with-robots-surfacing-activities-with-github-actions" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/share-your-activities-with-robots-surfacing-activities-with-github-actions/cover.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/share-your-activities-with-robots-surfacing-activities-with-github-actions/cover.webp" alt="Surfacing activities with GitHub actions" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`activities` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        activities
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, December 22nd 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Surfacing activities with GitHub actions</h3>
      <p className="blog-card-desc">Learn how to leverage the predictable link in your workflow by integrating Platform.sh with GitHub Actions. Streamline your deployments and error handling.</p>
    </div>
  </a>

  <a href="/posts/unknown/share-your-failures-fix-them-faster" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/share-your-failures-fix-them-faster/share-your-failures-fix-them-faster.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/share-your-failures-fix-them-faster/share-your-failures-fix-them-faster.webp" alt="Share and fix failures faster with shareable activities" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, December 8th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Share and fix failures faster with shareable activities</h3>
      <p className="blog-card-desc">Troubleshoot failures efficiently with shareable activity logs. Collaborate with your team and Platform.sh support to streamline Continuous Delivery workflow.</p>
    </div>
  </a>

  <a href="/posts/how-tos/get-more-control-over-your-environments-with-build-variables" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/devcenter.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/devcenter.webp" alt="Get more control over your environments with build variables" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-tos` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        how-tos
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, August 10th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Get more control over your environments with build variables</h3>
      <p className="blog-card-desc">Discover the visible-build flag on Platform.sh, enabling environment-specific build variables for more control over your development process.</p>
    </div>
  </a>

  <a href="/posts/unknown/plan-monitor-operate-more-knowledgeably-with-metrics" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/plan-monitor-operate-more-knowledgeably-with-metrics/plan-monitor-operate-more-knowledgeably-with-metrics.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/plan-monitor-operate-more-knowledgeably-with-metrics/plan-monitor-operate-more-knowledgeably-with-metrics.webp" alt="Plan, monitor, and operate more knowledgeably with metrics" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, March 17th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Plan, monitor, and operate more knowledgeably with metrics</h3>
      <p className="blog-card-desc">Introducing metrics and observability on Dedicated infrastructure projects, allowing you to easily monitor CPU, RAM, and disk usage across your hosts.</p>
    </div>
  </a>

  <a href="/posts/unknown/time-to-breakup-three-reasons-to-decouple-your-application" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/time-to-breakup-three-reasons-to-decouple-your-application/time-to-breakup-three-reasons-to-decouple-your-application.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/time-to-breakup-three-reasons-to-decouple-your-application/time-to-breakup-three-reasons-to-decouple-your-application.webp" alt="Time to breakup? Three reasons to decouple your application" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, February 10th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Time to breakup? Three reasons to decouple your application</h3>
      <p className="blog-card-desc">Reasons to consider decoupling your website on Platform.sh. Specialized frameworks, focused teams, and create once, publish everywhere benefits.</p>
    </div>
  </a>

  <a href="/posts/unknown/renaming-your-projects-default-branch" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/renaming-your-projects-default-branch/renaming-your-projects-default-branch.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/renaming-your-projects-default-branch/renaming-your-projects-default-branch.webp" alt="Renaming your project’s default branch" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`git` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        git
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, January 20th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Renaming your project’s default branch</h3>
      <p className="blog-card-desc">Update your Project's default branch in Git repositories. Rename your master branch to support a more inclusive default naming convention.</p>
    </div>
  </a>

  <a href="/posts/unknown/what-the-heck-is-a-decoupled-website" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/what-the-heck-is-a-decoupled-website/what-the-heck-is-a-decoupled-website.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/what-the-heck-is-a-decoupled-website/what-the-heck-is-a-decoupled-website.webp" alt="CMS architecture: What the heck is . . . a decoupled website?" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, January 11th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">CMS architecture: What the heck is . . . a decoupled website?</h3>
      <p className="blog-card-desc">A decoupled CMS architecture splits website tasks into smaller apps while maintaining specific functions. Learn how Platform.sh improves the process.</p>
    </div>
  </a>

  <a href="/posts/unknown/headless-but-this-time-live-decoupled-drupal-with-gatsby" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/headless-but-this-time-live-decoupled-drupal-with-gatsby/headless-but-this-time-live-decoupled-drupal-with-gatsby.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/headless-but-this-time-live-decoupled-drupal-with-gatsby/headless-but-this-time-live-decoupled-drupal-with-gatsby.webp" alt="Headless, but this time live! Decoupled Drupal with Gatsby" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, July 28th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Headless, but this time live! Decoupled Drupal with Gatsby</h3>
      <p className="blog-card-desc">Learn to decouple Drupal and Gatsby on Platform.sh for parallel work and efficient content management. Follow our tutorial and deploy your project today!</p>
    </div>
  </a>

  <a href="/posts/unknown/headless-strapi-and-wordpress-content-with-gatsby-builds" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/headless-strapi-and-wordpress-content-with-gatsby-builds/headless-strapi-and-wordpress-content-with-gatsby-builds.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/headless-strapi-and-wordpress-content-with-gatsby-builds/headless-strapi-and-wordpress-content-with-gatsby-builds.webp" alt="Going headless during your Gatsby builds" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, May 13th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Going headless during your Gatsby builds</h3>
      <p className="blog-card-desc">Recently, Platform.</p>
    </div>
  </a>

  <a href="/posts/unknown/new-services-page" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/new-services-page/new-services-page.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/new-services-page/new-services-page.webp" alt="New Services Page: more shininess, as promised" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, October 15th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">New Services Page: more shininess, as promised</h3>
      <p className="blog-card-desc">Discover the brand new Services page in our management console. Get detailed insights into your services, routes, and applications right from the console.</p>
    </div>
  </a>

  <a href="/posts/unknown/platform.sh-documentation-new-guides-new-look" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/platform.sh-documentation-new-guides-new-look/platform.sh-documentation-new-guides-new-look.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platform.sh-documentation-new-guides-new-look/platform.sh-documentation-new-guides-new-look.webp" alt="Platform.sh documentation: new guides, new look" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, August 1st 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh documentation: new guides, new look</h3>
      <p className="blog-card-desc">Explore the comprehensive Platform.sh documentation. Find step-by-step guides, tutorials, and resources to simplify web app development with Platform.sh.</p>
    </div>
  </a>

  <a href="/posts/unknown/off-with-its-head-headless-Chrome-as-a-service" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`/images/posts/unknown/off-with-its-head-headless-Chrome-as-a-service/off-with-its-head-headless-Chrome-as-a-service.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/off-with-its-head-headless-Chrome-as-a-service/off-with-its-head-headless-Chrome-as-a-service.webp" alt="Off with its Head! Headless Chrome as a Service decoded" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`platformsh-blog` !== '' && (
                      <span className="text-xs font-semibold uppercase tracking-wider px-2 py-0.5 rounded-md bg-accent-badge border border-accent-soft text-accent">
                        platformsh-blog
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, June 12th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Off with its Head! Headless Chrome as a Service decoded</h3>
      <p className="blog-card-desc">Headless Chrome is a headless browser configurable on Platform.sh. Compare screenshots and generate PDFs hassle-free today</p>
    </div>
  </a>
</ShowMore>
