> ## 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.

# All Articles

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>;
};

<ShowMore id="all-articles" className="blog-card-grid">
  {/* Auto-generated by blog:generate — DO NOT edit manually */}

  <a href="/posts/insights/the-not-so-hidden-cost-of-ai-scrapers" 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="The (not so) hidden cost of AI scrapers" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, May 5th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The (not so) hidden cost of AI scrapers</h3>
      <p className="blog-card-desc">AI scrapers drive up your hosting cost while real users wait. Use robots.txt, cache normalization, and sane application limits to take the pressure off.</p>
    </div>
  </a>

  <a href="/posts/how-tos/supply-chain-attacks-in-the-ai-era-and-what-to-do-about-them" 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="Supply chain attacks in the AI era, and what to do about them" 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, April 30th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Supply chain attacks in the AI era, and what to do about them</h3>
      <p className="blog-card-desc">AI agents are reading code at scale, including your dependencies. Why supply chain risk just changed, plus a build-time fix to add on Upsun.</p>
    </div>
  </a>

  <a href="/posts/use-cases/n8n-upgrade-with-postgresql-and-redis" 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/use-cases/n8n-upgrade-postgresql-redis/n8n-postgresql-redis-thumbnail.svg` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/use-cases/n8n-upgrade-postgresql-redis/n8n-postgresql-redis-thumbnail.svg" alt="Scale n8n with PostgreSQL and Redis on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, April 29th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Scale n8n with PostgreSQL and Redis on Upsun</h3>
      <p className="blog-card-desc">Upgrade your n8n instance from SQLite to PostgreSQL and add Redis caching for better performance, scalability, and reliability. Step-by-step guide for Upsun.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-04-27" 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/ai/aiweekly-2026-04-27/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-04-27/aiweekly.webp" alt="AI Weekly Review - Apr. 27th 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, April 27th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Apr. 27th 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/how-it-works/building-observability-from-scratch-three-times-over" 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-it-works/building-observability-from-scratch-three-times-over/building-observability-from-scratch-three-times-over.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/building-observability-from-scratch-three-times-over/building-observability-from-scratch-three-times-over.webp" alt="Building observability from scratch, three times over" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, April 21st 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Building observability from scratch, three times over</h3>
      <p className="blog-card-desc">A look back at how Platform.sh / Upsun's observability evolved from Nagios on a single box to a unified stack across thousands of VMs, and the migration patterns that made each transition smooth.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/how-we-caught-a-silent-io-storm-before-it-hit-production" 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-it-works/how-we-caught-a-silent-io-storm-before-it-hit-production/cgroup-v2-dirty-pages.png` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/how-we-caught-a-silent-io-storm-before-it-hit-production/cgroup-v2-dirty-pages.png" alt="How we caught a silent IO storm before it hit production" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, April 14th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How we caught a silent IO storm before it hit production</h3>
      <p className="blog-card-desc">A sysctl setting that worked fine for years caused over 500 MB/s of disk writes after migrating to Debian 12. MariaDB stalled on pending IO, Redis complained about slow fsync, and RBD-backed storage ground to a halt. The culprit: cgroup v2 changes how the kernel divides dirty page budgets across containers.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-04-13" 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/ai/aiweekly-2026-04-13/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-04-13/aiweekly.webp" alt="AI Weekly Review - Apr. 13th 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, April 13th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Apr. 13th 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/how-it-works/how-upsun-provisions-tls-certificates-at-scale" 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-it-works/how-upsun-provisions-tls-certificates-at-scale/how-upsun-provisions-tls-certificates-at-scale.png` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/how-upsun-provisions-tls-certificates-at-scale/how-upsun-provisions-tls-certificates-at-scale.png" alt="How Upsun provisions TLS certificates at scale" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, April 9th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How Upsun provisions TLS certificates at scale</h3>
      <p className="blog-card-desc">Every Upsun environment gets HTTPS automatically. Here's how the certificate system works, from wildcards to Let's Encrypt automation.</p>
    </div>
  </a>

  <a href="/posts/tutorials/sandboxing-ai-agents-on-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/sandboxing-ai-agents-on-upsun/sandboxing-ai-agents.png` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/sandboxing-ai-agents-on-upsun/sandboxing-ai-agents.png" alt="Sandboxing AI agents on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Sandboxing AI agents on Upsun</h3>
      <p className="blog-card-desc">Sandbox AI agents in Upsun containers to protect secrets from prompt injection. Covers Linux primitives, Claude Code, and Codex.</p>
    </div>
  </a>

  <a href="/posts/core-concepts/meta-upsun-validation-schema-dx-improvement" 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="How Meta-Upsun improved Validation Schema and Developer eXperience" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`core-concepts` !== '' && (
                      <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">
                        core-concepts
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, April 7th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How Meta-Upsun improved Validation Schema and Developer eXperience</h3>
      <p className="blog-card-desc">The introduction of Meta-Upsun enabled dynamic validation schemas and version enumeration for Upsun services and runtimes, significantly improving developer experience.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-04-07" 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/ai/aiweekly-2026-04-07/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-04-07/aiweekly.webp" alt="AI Weekly Review - Apr. 7th 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, April 7th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Apr. 7th 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/how-it-works/why-upsun-moved-from-lvm-to-ceph" 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-it-works/why-upsun-moved-from-lvm-to-ceph/why-upsun-moved-from-lvm-to-ceph.png` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/why-upsun-moved-from-lvm-to-ceph/why-upsun-moved-from-lvm-to-ceph.png" alt="Why we moved from LVM to Ceph for container storage" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, April 2nd 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Why we moved from LVM to Ceph for container storage</h3>
      <p className="blog-card-desc">Upsun migrated from LVM to Ceph for container storage to separate compute from storage, enable instant volume migration, and make VMs disposable again.</p>
    </div>
  </a>

  <a href="/posts/how-tos/meta-version-updater-introduction" 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/meta-version-updater-introduction/red-background.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/meta-version-updater-introduction/red-background.webp" alt="Automating Runtime and Service Tracking with Meta Version Updater" 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">Wednesday, April 1st 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Automating Runtime and Service Tracking with Meta Version Updater</h3>
      <p className="blog-card-desc">Meta is Upsun’s shared reference layer for runtimes, services, regions, and extensions. Learn why we built it, how it works, and how it powers the next generation of Upsun documentation and tooling.</p>
    </div>
  </a>

  <a href="/posts/discussions/why-ai-agents-need-cloud-sandboxes" 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/discussions/why-ai-agents-need-cloud-sandboxes/why-ai-agents-need-cloud-sandboxes.png` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/why-ai-agents-need-cloud-sandboxes/why-ai-agents-need-cloud-sandboxes.png" alt="Why AI agents need cloud sandboxes" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, March 31st 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Why AI agents need cloud sandboxes</h3>
      <p className="blog-card-desc">AI agents run real commands on real systems. Learn why cloud sandboxes with production data beat local isolation for safe AI agent workflows.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-03-30" 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/ai/aiweekly-2026-03-30/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-03-30/aiweekly.webp" alt="AI Weekly Review - Mar. 30th 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, March 30th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Mar. 30th 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/ai/stuck-on-localhost" 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/ai/stuck-on-localhost/stuck-on-localhost.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/stuck-on-localhost/stuck-on-localhost.webp" alt="Your agents are stuck on localhost. Upsun isn't." className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, March 26th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your agents are stuck on localhost. Upsun isn't.</h3>
      <p className="blog-card-desc">Coding agents made engineers faster, but cycle time hasn't budged. Background agents running on GitHub, GitLab, and Claude Code can break the bottleneck by producing PRs that Upsun deploys and validates automatically. A practical guide to setting it up with real YAML configs, infrastructure-as-code workflows, and preview environments.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/meta-reference-source-introduction" 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-it-works/meta-reference-source-introduction/meta.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/meta-reference-source-introduction/meta.webp" alt="Centralising Upsun Technical References with Meta-Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Centralising Upsun Technical References with Meta-Upsun</h3>
      <p className="blog-card-desc">How Upsun centralised runtime, service, region, and PHP reference data into a single public API to improve consistency, automation, and documentation accuracy.</p>
    </div>
  </a>

  <a href="/posts/discussions/governance-is-a-contract-chain-and-youre-in-it" 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/discussions/governance-is-a-contract-chain-and-youre-in-it/governance-is-a-contract-chain.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/governance-is-a-contract-chain-and-youre-in-it/governance-is-a-contract-chain.webp" alt="Governance is a contract chain, and you're in it" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, March 24th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Governance is a contract chain, and you're in it</h3>
      <p className="blog-card-desc">Governance is a chain of contracts from certification bodies to you. AI didn't change the chain, but it produces code faster than humans can review it.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-03-23" 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/ai/aiweekly-2026-03-23/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-03-23/aiweekly.webp" alt="AI Weekly Review - Mar. 23rd 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, March 23rd 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Mar. 23rd 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/how-it-works/rpm-repo-s3" 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-it-works/rpm-repo-s3/rpm-logo.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/rpm-repo-s3/rpm-logo.webp" alt="How we host an RPM repository on AWS S3" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How we host an RPM repository on AWS S3</h3>
      <p className="blog-card-desc">Learn how to host an RPM repository entirely on AWS S3 with no active components, minimal cost, and authenticated access using IAM.</p>
    </div>
  </a>

  <a href="/posts/releases/introducing-developer-upsun-com" 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/introducing-developer-upsun-com/developer-upsun-com.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/introducing-developer-upsun-com/developer-upsun-com.webp" alt="Introducing developer.upsun.com: Upsun docs, rebuilt for developers and AI agents" 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">Monday, March 16th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Introducing developer.upsun.com: Upsun docs, rebuilt for developers and AI agents</h3>
      <p className="blog-card-desc">The Upsun documentation has moved to developer.upsun.com with a complete infrastructure rebuild focused on agent-readiness. 244+ pages of structured, machine-readable content with llms.txt support and built-in AI assistance.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-03-16" 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/ai/aiweekly-2026-03-16/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-03-16/aiweekly.webp" alt="AI Weekly Review - Mar. 16th 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, March 16th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Mar. 16th 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/how-it-works/natural-scaling-for-multi-country-ecommerce" 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-it-works/natural-scaling-for-multi-country-ecommerce/natural-scaling-for-multi-country-ecommerce.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/natural-scaling-for-multi-country-ecommerce/natural-scaling-for-multi-country-ecommerce.webp" alt="Natural scaling for multi-country ecommerce" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, March 12th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Natural scaling for multi-country ecommerce</h3>
      <p className="blog-card-desc">Multi-country ecommerce is a textbook case for natural scaling. Instead of cramming every country into one store, give each its own. Here's why.</p>
    </div>
  </a>

  <a href="/posts/how-tos/replicate-your-production-outage-on-staging" 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/replicate-your-production-outage-on-staging/replicate-your-production-outage-on-staging.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/replicate-your-production-outage-on-staging/replicate-your-production-outage-on-staging.webp" alt="Replicate your production outage on staging" 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, March 10th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Replicate your production outage on staging</h3>
      <p className="blog-card-desc">After fixing a production outage, you need to prove the fix works under the same traffic. Here's how to replicate real production traffic on an Upsun staging environment using the observability API and k6.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-03-09" 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/ai/aiweekly-2026-03-09/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-03-09/aiweekly.webp" alt="AI Weekly Review - Mar. 9th 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, March 9th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Mar. 9th 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/discussions/how-product-managers-use-preview-environments-and-ai-to-prototype" 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/discussions/how-product-managers-use-preview-environments-and-ai-to-prototype/how-product-managers-use-preview-environments-and-ai-to-prototype.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/how-product-managers-use-preview-environments-and-ai-to-prototype/how-product-managers-use-preview-environments-and-ai-to-prototype.webp" alt="How product managers use preview environments and AI to prototype" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, March 5th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How product managers use preview environments and AI to prototype</h3>
      <p className="blog-card-desc">Learn how product managers at Upsun use AI coding assistants and preview environments to prototype feature ideas, validate concepts with real data, and share interactive demos with stakeholders.</p>
    </div>
  </a>

  <a href="/posts/hands-on/that-cron-should-be-a-worker" 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/hands-on/that-cron-should-be-a-worker/that-cron-should-be-a-worker.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/that-cron-should-be-a-worker/that-cron-should-be-a-worker.webp" alt="That cron should be a worker" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">That cron should be a worker</h3>
      <p className="blog-card-desc">Long-running crons block your deployments, steal resources from your app container, and create support tickets. Here's when to use workers instead.</p>
    </div>
  </a>

  <a href="/posts/how-tos/fastly-cdn-and-waf" 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/fastly-cdn-and-waf/fastly-cdn-and-waf.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/fastly-cdn-and-waf/fastly-cdn-and-waf.webp" alt="Speed vs. Security? Why not both: The Fastly CDN and WAF on Upsun" 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, March 3rd 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Speed vs. Security? Why not both: The Fastly CDN and WAF on Upsun</h3>
      <p className="blog-card-desc">Learn how to pair Fastly’s CDN for speed with its Next-Gen WAF for security on Upsun. Optimize global performance while protecting your infrastructure from threats.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-03-02" 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/ai/aiweekly-2026-03-02/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-03-02/aiweekly.webp" alt="AI Weekly Review - Mar. 2nd 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, March 2nd 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Mar. 2nd 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/tutorials/deploy-mattermost-on-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/deploy-mattermost-on-upsun/deploy-mattermost-on-upsun.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/deploy-mattermost-on-upsun/deploy-mattermost-on-upsun.webp" alt="Deploy Mattermost Team Edition on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, February 27th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploy Mattermost Team Edition on Upsun</h3>
      <p className="blog-card-desc">Learn how to deploy a self-hosted Mattermost Team Edition server on Upsun, with PostgreSQL 16 and OpenSearch 2 configured automatically through a single infrastructure-as-code file.</p>
    </div>
  </a>

  <a href="/posts/discussions/cpu-vs-gpu" 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/discussions/cpu-vs-gpu/cpu-vs-gpu.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/cpu-vs-gpu/cpu-vs-gpu.webp" alt="CPU vs GPU for AI: most AI applications don't need GPUs" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, February 26th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">CPU vs GPU for AI: most AI applications don't need GPUs</h3>
      <p className="blog-card-desc">How to build and deploy an Angular application on Upsun.</p>
    </div>
  </a>

  <a href="/posts/releases/upsun-node-sdk-announcement" 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/upsun-node-sdk-announcement/upsun-sdk-node.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/upsun-node-sdk-announcement/upsun-sdk-node.webp" alt="Announcing the Official Upsun Node.js SDK" 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, February 25th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Announcing the Official Upsun Node.js SDK</h3>
      <p className="blog-card-desc">Discover how the Upsun Node SDK simplifies API access and speeds up integrations, with clear documentation and modern tooling.</p>
    </div>
  </a>

  <a href="/posts/discussions/instant-data-cloning-was-a-bet-ai-agents-are-the-payoff" 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/discussions/instant-data-cloning-was-a-bet-ai-agents-are-the-payoff/data-cloning-agents.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/instant-data-cloning-was-a-bet-ai-agents-are-the-payoff/data-cloning-agents.webp" alt="Instant data cloning was a bet. AI agents are the payoff." className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, February 24th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Instant data cloning was a bet. AI agents are the payoff.</h3>
      <p className="blog-card-desc">How Upsun's data-first architecture, built a decade ago for CMS and e-commerce needs, turns out to be the exact infrastructure AI agents need: instant, isolated, production-identical environments with real data.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-02-23" 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/ai/aiweekly-2026-02-23/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-02-23/aiweekly.webp" alt="AI Weekly Review - Feb. 23th 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, February 23rd 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Feb. 23th 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/ai/agents-md-less-is-more" 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/ai/agents-md-less-is-more/agents-md-less-is-more.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/agents-md-less-is-more/agents-md-less-is-more.webp" alt="The research is in: your AGENTS.md is probably too long" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, February 23rd 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The research is in: your AGENTS.md is probably too long</h3>
      <p className="blog-card-desc">Research shows comprehensive AGENTS.md files actually hurt coding agent performance. Learn why less is more and how to build context files that work.</p>
    </div>
  </a>

  <a href="/posts/discussions/building-an-ai-code-review-agent-for-gitlab" 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/discussions/building-an-ai-code-review-agent-for-gitlab/ai-code-review-agent.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/building-an-ai-code-review-agent-for-gitlab/ai-code-review-agent.webp" alt="Building an AI code review agent for our self-hosted GitLab" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, February 19th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Building an AI code review agent for our self-hosted GitLab</h3>
      <p className="blog-card-desc">I vibe-coded a GitLab code review agent last month - 40K lines of Python written by Claude - and it has reviewed 1000 merge requests.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/your-waf-is-buffering-ours-is-streaming" 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-it-works/your-waf-is-buffering-ours-is-streaming/your-waf-is-buffering-ours-is-streaming.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/your-waf-is-buffering-ours-is-streaming/your-waf-is-buffering-ours-is-streaming.webp" alt="Your WAF is buffering. Ours is streaming." className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your WAF is buffering. Ours is streaming.</h3>
      <p className="blog-card-desc">Most WAFs buffer your entire request before validating it. That's slow. Upsun's technical WAF validates requests while streaming them to your backend, so you don't pay a latency tax for security.</p>
    </div>
  </a>

  <a href="/posts/ai/aiweekly-2026-02-17" 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/ai/aiweekly-2026-02-17/aiweekly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/aiweekly-2026-02-17/aiweekly.webp" alt="AI Weekly Review - Feb. 17th 2026" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, February 17th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI Weekly Review - Feb. 17th 2026</h3>
      <p className="blog-card-desc">A press, Youtube and Github review of everything AI</p>
    </div>
  </a>

  <a href="/posts/ai/making-coding-agents-reliable" 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/ai/making-coding-agents-reliable/making-coding-agents-reliable.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/making-coding-agents-reliable/making-coding-agents-reliable.webp" alt="Making coding agents (Claude Code, Codex, etc.) reliable" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, February 17th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Making coding agents (Claude Code, Codex, etc.) reliable</h3>
      <p className="blog-card-desc">The bottleneck for AI coding agents isn't model capability. It's your verification infrastructure. Here's how to fix that.</p>
    </div>
  </a>

  <a href="/posts/hands-on/the-real-story-of-setting-up-drupal-canvas-with-ai" 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/hands-on/the-real-story-of-setting-up-drupal-canvas-with-ai/lemberg-setting-up-drupal-canvas-with-ai.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/the-real-story-of-setting-up-drupal-canvas-with-ai/lemberg-setting-up-drupal-canvas-with-ai.webp" alt="From DrupalCon keynote to live Upsun demo: the real story of setting up Drupal Canvas with AI" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, February 13th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">From DrupalCon keynote to live Upsun demo: the real story of setting up Drupal Canvas with AI</h3>
      <p className="blog-card-desc">Discover how the Lemberg Solutions team set up Drupal Canvas with an AI assistant: how long it took, the challenges we faced and lessons we learned.</p>
    </div>
  </a>

  <a href="/posts/ai/git-worktrees-for-parallel-ai-coding-agents" 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/ai/git-worktrees-for-parallel-ai-coding-agents/git-worktrees-for-parallel-ai-coding-agents.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/git-worktrees-for-parallel-ai-coding-agents/git-worktrees-for-parallel-ai-coding-agents.webp" alt="Git worktrees for parallel AI coding agents" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Git worktrees for parallel AI coding agents</h3>
      <p className="blog-card-desc">Learn how git worktrees enable parallel AI agent workflows, their limitations, and what an ideal orchestration tool needs.</p>
    </div>
  </a>

  <a href="/posts/hands-on/scriberr-on-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/hands-on/scriberr-on-upsun/scriberr-on-upsun.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/scriberr-on-upsun/scriberr-on-upsun.webp" alt="Scriberr on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Scriberr on Upsun</h3>
      <p className="blog-card-desc">Learn how to deploy Scriberr, an AI-powered transcription tool, on Upsun for self-hosted audio and video transcription.</p>
    </div>
  </a>

  <a href="/posts/hands-on/unstable-website-use-queues" 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/hands-on/unstable-website-use-queues/unstable-website-use-queues.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/unstable-website-use-queues/unstable-website-use-queues.webp" alt="Unstable website? Use queues." className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, February 5th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Unstable website? Use queues.</h3>
      <p className="blog-card-desc">Your site throws 502 errors when external APIs are slow. The fix isn't more resources. It's offloading that work to background jobs so your responses stay fast.</p>
    </div>
  </a>

  <a href="/posts/core-concepts/eliminating-database-pwd-risk-with-network-isolation" 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/core-concepts/eliminating-database-pwd-risk-with-network-isolation/database-security.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/core-concepts/eliminating-database-pwd-risk-with-network-isolation/database-security.webp" alt="Eliminating Database Password Risk with Network Isolation" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`core-concepts` !== '' && (
                      <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">
                        core-concepts
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Eliminating Database Password Risk with Network Isolation</h3>
      <p className="blog-card-desc">By removing default database passwords, Upsun reduces common credential risks (leaks, reuse, hardcoding) and relies on stronger security controls like SSH keys and private networking.</p>
    </div>
  </a>

  <a href="/posts/insights/the-only-correct-way-to-git-pull-and-merge" 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/insights/the-only-correct-way-to-git-pull-and-merge/the-only-correct-way-to-git-pull-and-merge.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/the-only-correct-way-to-git-pull-and-merge/the-only-correct-way-to-git-pull-and-merge.webp" alt="The only correct way to git pull and merge" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, February 3rd 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The only correct way to git pull and merge</h3>
      <p className="blog-card-desc">A strongly opinionated guide to git pull and merge strategies that will make your commit history actually useful. Learn when to rebase, when to merge, and why the defaults are lying to you.</p>
    </div>
  </a>

  <a href="/posts/ai/will-ai-make-software-companies-worthless" 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/ai/will-ai-make-software-companies-worthless/thumbnail.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/will-ai-make-software-companies-worthless/thumbnail.webp" alt="Will AI make software companies worthless?" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`ai` !== '' && (
                      <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">
                        ai
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, January 30th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Will AI make software companies worthless?</h3>
      <p className="blog-card-desc">If anyone can build software with AI, do software companies still matter? The answer is more nuanced than you might think.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/spf-dkim-dmarc-what-are-those-for-anyway" 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-it-works/spf-dkim-dmarc-what-are-those-for-anyway/spf-dkim-dmarc-what-are-those-for-anyway.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/spf-dkim-dmarc-what-are-those-for-anyway/spf-dkim-dmarc-what-are-those-for-anyway.webp" alt="SPF, DKIM, DMARC, what are those for anyway?" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">SPF, DKIM, DMARC, what are those for anyway?</h3>
      <p className="blog-card-desc">Finally understand what SPF, DKIM, and DMARC actually do, why email needs them, and how to set them up without wanting to flip a table.</p>
    </div>
  </a>

  <a href="/posts/insights/the-third-way-to-scale-that-nobody-talks-about" 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/insights/the-third-way-to-scale-that-nobody-talks-about/the-third-way-to-scale-that-nobody-talks-about.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/the-third-way-to-scale-that-nobody-talks-about/the-third-way-to-scale-that-nobody-talks-about.webp" alt="The third way to scale that nobody talks about" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The third way to scale that nobody talks about</h3>
      <p className="blog-card-desc">Beyond vertical and horizontal scaling lies a third approach that most scaling discussions ignore. Learn about natural scaling, where you sidestep the problem entirely.</p>
    </div>
  </a>

  <a href="/posts/hands-on/how-to-use-harlequin-sql-ide-with-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/hands-on/how-to-use-harlequin-sql-ide-with-upsun/harlequin-interface.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/how-to-use-harlequin-sql-ide-with-upsun/harlequin-interface.webp" alt="How to Use Harlequin SQL IDE with Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How to Use Harlequin SQL IDE with Upsun</h3>
      <p className="blog-card-desc">Learn two ways to connect Harlequin SQL IDE to your Upsun PostgreSQL database: using local SSH tunnels or deploying Harlequin directly on the platform.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/how-weve-been-hardening-containers-since-before-docker-made-it-cool" 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-it-works/how-weve-been-hardening-containers-since-before-docker-made-it-cool/how-weve-been-hardening-containers-since-before-docker-made-it-cool.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/how-weve-been-hardening-containers-since-before-docker-made-it-cool/how-weve-been-hardening-containers-since-before-docker-made-it-cool.webp" alt="How we've been hardening containers since before Docker made it cool" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, January 13th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How we've been hardening containers since before Docker made it cool</h3>
      <p className="blog-card-desc">Docker's hardened images are great, but we've been doing this for years. Here's the automated pipeline that's been securing hundreds of container images behind the scenes at Upsun.</p>
    </div>
  </a>

  <a href="/posts/how-tos/automated-encrypt-backups-amazon-s3" 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/automated-encrypt-backups-amazon-s3/UpsunxSkvare-800x300.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/automated-encrypt-backups-amazon-s3/UpsunxSkvare-800x300.webp" alt="Automated encrypted backups to Amazon S3 | Upsun" 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">Monday, January 12th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Automated encrypted backups to Amazon S3 | Upsun</h3>
      <p className="blog-card-desc">Learn how to configure Duplicity, GPG keys, and cron on Upsun to send incremental, encrypted backups of your application to AWS S3 for reliable restores</p>
    </div>
  </a>

  <a href="/posts/discussions/the-universal-commerce-protocol-and-the-inevitable-rise-of-agentic-commerce" 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/discussions/the-universal-commerce-protocol-and-the-inevitable-rise-of-agentic-commerce/ucp.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/the-universal-commerce-protocol-and-the-inevitable-rise-of-agentic-commerce/ucp.webp" alt="The universal commerce protocol and the inevitable rise of agentic commerce" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The universal commerce protocol and the inevitable rise of agentic commerce</h3>
      <p className="blog-card-desc">Fifteen years ago, I believed the trajectory of digital commerce was destined for a singular, consolidated fate. To me, the technological landscape was fracturing rapidly; the desktop monopoly had shattered, giving way to the mobile web, native applications, and the nascent experiments of Google Glass and early IoT devices. In my view, for independent brands and retailers, this multiplication of channels represented a terrifying escalation in technical complexity. To sell effectively, I thought a merchant needed not just a website, but a mobile-responsive design, an iOS app, an Android app, and integrations with a growing roster of marketplaces.</p>
    </div>
  </a>

  <a href="/posts/hands-on/stop-testing-jcr-apps-in-production" 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/hands-on/stop-testing-jcr-apps-in-production/stop-testing-jcr-apps-in-production.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/stop-testing-jcr-apps-in-production/stop-testing-jcr-apps-in-production.webp" alt="Stop testing JCR apps in production" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, January 6th 2026</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Stop testing JCR apps in production</h3>
      <p className="blog-card-desc">Learn why JCR-based applications benefit from fast, production-grade environment cloning. Discover how Upsun removes one of JCR's biggest operational challenges through instant repository duplication.</p>
    </div>
  </a>

  <a href="/posts/releases/composer-2.9" 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/composer-2.9/composer-2.9.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/composer-2.9/composer-2.9.webp" alt="Composer 2.9 lands on Upsun PHP Images: Here’s what you need to know" 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">Thursday, December 25th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Composer 2.9 lands on Upsun PHP Images: Here’s what you need to know</h3>
      <p className="blog-card-desc">Remote code execution vulnerability in Next.js 15.x and 16.x App Router requires immediate patching. Learn how to secure your applications.</p>
    </div>
  </a>

  <a href="/posts/hands-on/civicrm-drupal-11-on-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/hands-on/civicrm-drupal-11-on-upsun/UpsunxSkvare-800x300.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/civicrm-drupal-11-on-upsun/UpsunxSkvare-800x300.webp" alt="Installing CiviCRM with Drupal 11 on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, December 19th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Installing CiviCRM with Drupal 11 on Upsun</h3>
      <p className="blog-card-desc">Learn how to install CiviCRM with Drupal 11 on Upsun, from config.yml and databases to cron, caching, extensions and Skvare’s best-practice template.</p>
    </div>
  </a>

  <a href="/posts/discussions/whatsun-efficient-code-analysis" 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/discussions/whatsun-efficient-code-analysis/whatsun.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/whatsun-efficient-code-analysis/whatsun.webp" alt="Efficient code analysis for LLMs" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Efficient code analysis for LLMs</h3>
      <p className="blog-card-desc">Learn how Whatsun generates concise codebase summaries to improve the performance and accuracy of AI features.</p>
    </div>
  </a>

  <a href="/posts/unknown/how-we-scaled-live-connections-for-1200-developers-at-symfonycon" 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/how-we-scaled-live-connections-for-1200-developers-at-symfonycon/how-we-scaled-live-connections-for-1200-developers-at-symfonycon.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/how-we-scaled-live-connections-for-1200-developers-at-symfonycon/how-we-scaled-live-connections-for-1200-developers-at-symfonycon.webp" alt="How we scaled live connections for 1200 developers at SymfonyCon" 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">Wednesday, December 17th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How we scaled live connections for 1200 developers at SymfonyCon</h3>
      <p className="blog-card-desc">A Symfony core contributor's journey from FrankenPHP 502 errors to a stable multi-app architecture that handled hundreds of live connections at SymfonyCon 2025.</p>
    </div>
  </a>

  <a href="/posts/hands-on/migration-day-executing-your-upsun-cutover" 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/hands-on/migration-day-executing-your-upsun-cutover/migration-day-executing-your-upsun-cutover.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/migration-day-executing-your-upsun-cutover/migration-day-executing-your-upsun-cutover.webp" alt="Migration day: executing your Upsun cutover" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Migration day: executing your Upsun cutover</h3>
      <p className="blog-card-desc">A step-by-step guide to migration day: maintenance windows, cutover sequences, verification, and post-migration monitoring strategies.</p>
    </div>
  </a>

  <a href="/posts/releases/composable-image-embraces-real-world-diversity" 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/composable-image-embraces-real-world-diversity/composable-image.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/composable-image-embraces-real-world-diversity/composable-image.webp" alt="One project, many needs: How Composable Image embraces real-world diversity" 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">Thursday, December 11th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">One project, many needs: How Composable Image embraces real-world diversity</h3>
      <p className="blog-card-desc">Applications rarely fit inside a single tidy runtime box. They evolve through experiments, architectural shifts, quick MVP spikes that outlast their intended lifespan, and the continuous layering of new business needs.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/keeping-the-peace-how-zookeeper-stops-database-nodes-from-fighting" 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-it-works/keeping-the-peace-how-zookeeper-stops-database-nodes-from-fighting/keeping-the-peace-how-zookeeper-stops-database-nodes-from-fighting.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/keeping-the-peace-how-zookeeper-stops-database-nodes-from-fighting/keeping-the-peace-how-zookeeper-stops-database-nodes-from-fighting.webp" alt="Keeping the peace: how ZooKeeper stops database nodes from fighting" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Keeping the peace: how ZooKeeper stops database nodes from fighting</h3>
      <p className="blog-card-desc">Learn how Upsun uses Zookeeper's sequences, watchers, and ephemeral nodes to coordinate MariaDB clusters and workers across distributed systems without breaking your application.</p>
    </div>
  </a>

  <a href="/posts/insights/why-you-cant-just-add-infinite-php-fpm-workers" 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/insights/why-you-cant-just-add-infinite-php-fpm-workers/why-you-cant-just-add-infinite-php-fpm-workers.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/why-you-cant-just-add-infinite-php-fpm-workers/why-you-cant-just-add-infinite-php-fpm-workers.webp" alt="Why you can't just add infinite PHP-FPM workers" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Why you can't just add infinite PHP-FPM workers</h3>
      <p className="blog-card-desc">Workers need memory. Learn how PHP-FPM sizing hints work, why you can't just add infinite workers, and how to tune your worker count based on actual memory usage.</p>
    </div>
  </a>

  <a href="/posts/discussions/building-ai-feature-necessary-evals" 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/discussions/building-ai-feature-necessary-evals/ai-necessary-evals.svg` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/building-ai-feature-necessary-evals/ai-necessary-evals.svg" alt="Building an AI feature: The necessary evals" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Building an AI feature: The necessary evals</h3>
      <p className="blog-card-desc">What we learned building an AI feature: evaluations take most of the time, and your existing tools are enough.</p>
    </div>
  </a>

  <a href="/posts/discussions/nextjs-cve-2025-66478" 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/discussions/nextjs-cve-2025-66478/nextjs-cve-2025-29927.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/nextjs-cve-2025-66478/nextjs-cve-2025-29927.webp" alt="Critical Next.js Security Update: CVE-2025-66478 Affects RSC" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Critical Next.js Security Update: CVE-2025-66478 Affects RSC</h3>
      <p className="blog-card-desc">Remote code execution vulnerability in Next.js 15.x and 16.x App Router requires immediate patching. Learn how to secure your applications.</p>
    </div>
  </a>

  <a href="/posts/hands-on/zero-downtime-deployments-with-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/hands-on/zero-downtime-deployments-with-upsun/ZZD-dev-center.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/zero-downtime-deployments-with-upsun/ZZD-dev-center.webp" alt="Zero-downtime deployments: now in open beta" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, December 3rd 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Zero-downtime deployments: now in open beta</h3>
      <p className="blog-card-desc">We've launched zero-downtime deployments in open beta. Deploy your applications without service interruption.</p>
    </div>
  </a>

  <a href="/posts/tutorials/angular-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/angular-and-upsun/angular-and-upsun.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/angular-and-upsun/angular-and-upsun.webp" alt="Building and Deploying Angular Apps on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, December 3rd 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Building and Deploying Angular Apps on Upsun</h3>
      <p className="blog-card-desc">How to build and deploy an Angular application on Upsun.</p>
    </div>
  </a>

  <a href="/posts/how-tos/planning-your-upsun-migration-the-6-9-week-roadmap" 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/planning-your-upsun-migration-the-6-9-week-roadmap/planning-your-upsun-migration-the-6-9-week-roadmap.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/planning-your-upsun-migration-the-6-9-week-roadmap/planning-your-upsun-migration-the-6-9-week-roadmap.webp" alt="Planning your Upsun migration: the 6-9 week roadmap" 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, December 2nd 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Planning your Upsun migration: the 6-9 week roadmap</h3>
      <p className="blog-card-desc">Learn why 6-9 weeks is the ideal timeline for Upsun migrations, with expert insights on planning, testing, and avoiding common pitfalls.</p>
    </div>
  </a>

  <a href="/posts/insights/why-setting-your-php-memory-limit-to-60gb-wont-help" 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/insights/why-setting-your-php-memory-limit-to-60gb-wont-help/why-setting-your-php-memory-limit-to-60gb-wont-help.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/why-setting-your-php-memory-limit-to-60gb-wont-help/why-setting-your-php-memory-limit-to-60gb-wont-help.webp" alt="Why setting your PHP memory limit to 60GB won't help" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, December 1st 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Why setting your PHP memory limit to 60GB won't help</h3>
      <p className="blog-card-desc">When you see a PHP memory limit error, your instinct shouldn't be to just increase the limit. Learn what PHP memory\_limit actually does and why blindly increasing it can hurt your site's uptime.</p>
    </div>
  </a>

  <a href="/posts/hands-on/ai-use-case-generate-load-test-scenarios" 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/hands-on/ai-use-case-generate-load-test-scenarios/ai-use-case-generate-load-test-scenarios.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/ai-use-case-generate-load-test-scenarios/ai-use-case-generate-load-test-scenarios.webp" alt="AI use-case: Generate load test scenarios with MCPs" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AI use-case: Generate load test scenarios with MCPs</h3>
      <p className="blog-card-desc">Automate Locust load testing by combining Chrome MCP and Context7 to generate realistic user behavior patterns with Claude Code.</p>
    </div>
  </a>

  <a href="/posts/insights/my-terminal-setup-mac-linux" 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/insights/my-terminal-setup-mac-linux/thumbnail.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/my-terminal-setup-mac-linux/thumbnail.webp" alt="My terminal setup (Mac & Linux)" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">My terminal setup (Mac & Linux)</h3>
      <p className="blog-card-desc">A no-nonsense guide to transforming your terminal from painful to powerful with GhostTTY, NeoVim, and Claude Code</p>
    </div>
  </a>

  <a href="/posts/how-it-works/when-php-fpm-runs-out-of-workers-a-502-error-field-guide" 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-it-works/when-php-fpm-runs-out-of-workers-a-502-error-field-guide/when-php-fpm-runs-out-of-workers-a-502-error-field-guide.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/when-php-fpm-runs-out-of-workers-a-502-error-field-guide/when-php-fpm-runs-out-of-workers-a-502-error-field-guide.webp" alt="When php-fpm runs out of workers: a 502 error field guide" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, November 24th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">When php-fpm runs out of workers: a 502 error field guide</h3>
      <p className="blog-card-desc">Your PHP site keeps throwing 502 errors. Your CDN shows 503s. Learn why PHP-FPM workers get exhausted and how to diagnose and fix the real problems.</p>
    </div>
  </a>

  <a href="/posts/releases/php-85-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-85-release/elephant-84.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/php-85-release/elephant-84.webp" alt="PHP 8.5 is here!" 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">Thursday, November 20th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">PHP 8.5 is here!</h3>
      <p className="blog-card-desc">What if the next PHP revolution made no noise but completely transformed your developer daily life?</p>
    </div>
  </a>

  <a href="/posts/how-it-works/we-switched-from-lvm-to-sparse-files" 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-it-works/we-switched-from-lvm-to-sparse-files/we-switched-from-lvm-to-sparse-files.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/we-switched-from-lvm-to-sparse-files/we-switched-from-lvm-to-sparse-files.webp" alt="We switched from LVM to... sparse files?!" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, November 14th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">We switched from LVM to... sparse files?!</h3>
      <p className="blog-card-desc">How we eliminated 90% of VM evacuation time by replacing LVM with sparse files for temporary storage. A tale of inertia, performance bottlenecks, and surprisingly effective solutions.</p>
    </div>
  </a>

  <a href="/posts/how-tos/creating-custom-reports-using-cli" 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/creating-custom-reports-using-cli/creating-custom-reports-using-cli.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/creating-custom-reports-using-cli/creating-custom-reports-using-cli.webp" alt="Creating Custom Reports using the Upsun CLI" 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">Wednesday, November 12th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Creating Custom Reports using the Upsun CLI</h3>
      <p className="blog-card-desc">Someone recently asked me</p>
    </div>
  </a>

  <a href="/posts/insights/the-mystery-of-the-shrinking-database-dump" 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/insights/the-mystery-of-the-shrinking-database-dump/the-mystery-of-the-shrinking-database-dump.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/the-mystery-of-the-shrinking-database-dump/the-mystery-of-the-shrinking-database-dump.webp" alt="The mystery of the shrinking database dump" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, November 10th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The mystery of the shrinking database dump</h3>
      <p className="blog-card-desc">Your database uses 10GB but dumps to 100MB. Discover why database dumps shrink, how InnoDB fragmentation works, and how to reclaim that missing storage space.</p>
    </div>
  </a>

  <a href="/posts/hands-on/varnish-104-advanced-traffic-filtering-with-classification-headers-on-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/hands-on/varnish-104-advanced-traffic-filtering-with-classification-headers-on-upsun/varnish-104.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/varnish-104-advanced-traffic-filtering-with-classification-headers-on-upsun/varnish-104.webp" alt="Varnish 104: Advanced Traffic Filtering with Classification Headers on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, November 7th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Varnish 104: Advanced Traffic Filtering with Classification Headers on Upsun</h3>
      <p className="blog-card-desc">Learn how to implement advanced security controls in Varnish on Upsun using classification headers to block malicious traffic, restrict geographic access, filter by ASN, and protect sensitive paths with HTTP Basic Auth.</p>
    </div>
  </a>

  <a href="/posts/releases/upsun-php-sdk-announcement" 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/upsun-php-sdk-announcement/upsun-sdk-php.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/upsun-php-sdk-announcement/upsun-sdk-php.webp" alt="Introducing the Upsun PHP SDK" 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">Tuesday, November 4th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Introducing the Upsun PHP SDK</h3>
      <p className="blog-card-desc">Discover how the Upsun PHP SDK simplifies API access and speeds up integrations, with clear documentation and modern tooling.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/we-made-our-infrastructure-read-only-and-never-looked-back" 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-it-works/we-made-our-infrastructure-read-only-and-never-looked-back/we-made-our-infrastructure-read-only-and-never-looked-back.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/we-made-our-infrastructure-read-only-and-never-looked-back/we-made-our-infrastructure-read-only-and-never-looked-back.webp" alt="We made our infrastructure read-only and never looked back" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, November 3rd 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">We made our infrastructure read-only and never looked back</h3>
      <p className="blog-card-desc">Learn why read-only infrastructure eliminates entire classes of security attacks, improves reproducibility, and simplifies compliance while enabling predictable deployments.</p>
    </div>
  </a>

  <a href="/posts/hands-on/varnish-103-cache-optimization-with-url-normalization-on-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/hands-on/varnish-103-cache-optimization-with-url-normalization-on-upsun/varnish-103.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/varnish-103-cache-optimization-with-url-normalization-on-upsun/varnish-103.webp" alt="Varnish 103: Cache Optimization with URL Normalization on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, October 31st 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Varnish 103: Cache Optimization with URL Normalization on Upsun</h3>
      <p className="blog-card-desc">Learn how to maximize Varnish cache efficiency through URL normalization, query string sorting, and tracking parameter removal to dramatically improve cache hit ratios and reduce backend load.</p>
    </div>
  </a>

  <a href="/posts/hands-on/varnish-102-protecting-your-application-with-rate-limiting-on-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/hands-on/varnish-102-protecting-your-application-with-rate-limiting-on-upsun/varnish-102.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/varnish-102-protecting-your-application-with-rate-limiting-on-upsun/varnish-102.webp" alt="Varnish 102: Protecting Your Application with Rate Limiting on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, October 24th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Varnish 102: Protecting Your Application with Rate Limiting on Upsun</h3>
      <p className="blog-card-desc">Learn how to implement effective rate limiting in Varnish using the vsthrottle VMOD to protect your application from abuse, prevent DDoS attacks, and ensure fair resource allocation.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/event-loop-monitoring-in-nextjs-performance-guide" 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-it-works/event-loop-monitoring-in-nextjs-performance-guide/event-loop-monitoring-in-nextjs-performance-guide.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/event-loop-monitoring-in-nextjs-performance-guide/event-loop-monitoring-in-nextjs-performance-guide.webp" alt="Event Loop Monitoring in Next.js: Performance Guide" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, October 24th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Event Loop Monitoring in Next.js: Performance Guide</h3>
      <p className="blog-card-desc">Learn to implement event loop monitoring in Next.js applications to identify blocking operations, optimize performance, and scale confidently with production-ready code.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/autoscaling-deep-dive" 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-it-works/autoscaling-deep-dive/autoscaling-deep-dive.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/autoscaling-deep-dive/autoscaling-deep-dive.webp" alt="Auto-scaling on Upsun Flex. A deep dive." className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, October 20th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Auto-scaling on Upsun Flex. A deep dive.</h3>
      <p className="blog-card-desc">Learn how Upsun's autoscaling dynamically adjusts application instances based on CPU usage, ensuring performance during traffic spikes while optimizing costs.</p>
    </div>
  </a>

  <a href="/posts/hands-on/varnish-101-protecting-paths-with-http-basic-authentication-on-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/hands-on/varnish-101-protecting-paths-with-http-basic-authentication-on-upsun/varnish-101.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/varnish-101-protecting-paths-with-http-basic-authentication-on-upsun/varnish-101.webp" alt="Varnish 101: Protecting Paths with HTTP Basic Authentication on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, October 17th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Varnish 101: Protecting Paths with HTTP Basic Authentication on Upsun</h3>
      <p className="blog-card-desc">Learn how to implement HTTP Basic Authentication directly in Varnish VCL on Upsun to protect specific paths like admin areas, staging environments, and work-in-progress content without touching your backend.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/fake-ip-till-you-make-ip" 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-it-works/fake-ip-till-you-make-ip/fake-ip-till-you-make-ip.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/fake-ip-till-you-make-ip/fake-ip-till-you-make-ip.webp" alt="Fake IP till you make IP" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Fake IP till you make IP</h3>
      <p className="blog-card-desc">How Upsun uses virtual IPs and NAT to keep your database connections stable even when containers move between VMs. A look at the networking tricks behind relationship stability.</p>
    </div>
  </a>

  <a href="/posts/how-tos/fastlycdn-pluginapp-activation" 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/fastlycdn-pluginapp-activation/hero-image.svg` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/fastlycdn-pluginapp-activation/hero-image.svg" alt="Streamline Your CDN Management with Fastly CDN Plugin App [BETA]" 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, October 7th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Streamline Your CDN Management with Fastly CDN Plugin App \[BETA]</h3>
      <p className="blog-card-desc">Managing Content Delivery Network (CDN) configurations alongside your application deployments can be a complex task, often requiring developers to switch between multiple interfaces and tools. The Fastly CDN plugin app bridges this gap by bringing Fastly CDN management directly into your Upsun console, creating a seamless workflow for developers who want to manage their CDN configurations without leaving their primary development environment.</p>
    </div>
  </a>

  <a href="/posts/tutorials/deploying-open-source-on-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/deploying-open-source-on-upsun/deploying-open-source-on-upsun.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/deploying-open-source-on-upsun/deploying-open-source-on-upsun.webp" alt="Deploying open-source projects on Upsun: Snipe-IT as an example" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploying open-source projects on Upsun: Snipe-IT as an example</h3>
      <p className="blog-card-desc">Learn how to deploy any GitHub-hosted open-source project on Upsun by forking repositories, configuring for deployment, and keeping your fork synchronized with upstream updates.</p>
    </div>
  </a>

  <a href="/posts/insights/build-time-environment-variables-considered-harmful" 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/insights/build-time-environment-variables-considered-harmful/build-time-environment-variables-considered-harmful.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/build-time-environment-variables-considered-harmful/build-time-environment-variables-considered-harmful.webp" alt="Build-time environment variables considered harmful" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, October 6th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Build-time environment variables considered harmful</h3>
      <p className="blog-card-desc">Build-time environment variables break deployment caching, compromise security, and force unnecessary rebuilds. Learn why runtime configuration is the better alternative.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/explore-plan-execute-methodology" 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-it-works/explore-plan-execute-methodology/explore-plan-execute-methodology.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/explore-plan-execute-methodology/explore-plan-execute-methodology.webp" alt="Mastering the Explore, Plan, Execute methodology for AI-assisted development" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, October 3rd 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Mastering the Explore, Plan, Execute methodology for AI-assisted development</h3>
      <p className="blog-card-desc">Learn how to transform AI coding assistants from eager juniors into rockstar developers using proven context strategies, quality assurance, and the three-phase workflow</p>
    </div>
  </a>

  <a href="/posts/tutorials/building-async-processing-pipelines-with-fastapi-and-celery-on-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/building-async-processing-pipelines-with-fastapi-and-celery-on-upsun/building-async-processing-pipelines-with-fastapi-and-celery-on-upsun.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/building-async-processing-pipelines-with-fastapi-and-celery-on-upsun/building-async-processing-pipelines-with-fastapi-and-celery-on-upsun.webp" alt="Building async processing pipelines with FastAPI and Celery on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, October 3rd 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Building async processing pipelines with FastAPI and Celery on Upsun</h3>
      <p className="blog-card-desc">Learn how to build production-ready async processing pipelines using FastAPI and Celery on Upsun. From architecture design to deployment, discover how to handle long-running tasks without blocking your API responses.</p>
    </div>
  </a>

  <a href="/posts/hands-on/building-internal-ai-agents-for-our-teams-on-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/hands-on/building-internal-ai-agents-for-our-teams-on-upsun/building-internal-ai-agents-for-our-teams-on-upsun.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/building-internal-ai-agents-for-our-teams-on-upsun/building-internal-ai-agents-for-our-teams-on-upsun.webp" alt="Building internal AI agents for our teams on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, September 30th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Building internal AI agents for our teams on Upsun</h3>
      <p className="blog-card-desc">Learn how to build and deploy production-ready AI agents on Upsun using Google's ADK, ChromaDB vector database, and Retrieval-Augmented Generation (RAG) to create context-aware, domain-specific agents for your team.</p>
    </div>
  </a>

  <a href="/posts/ai/upsun-mcp-announcement" 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/ai/upsun-mcp-announcement/upsun-mcp-announcement.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/ai/upsun-mcp-announcement/upsun-mcp-announcement.webp" alt="Introducing the Upsun MCP server: bring Upsun into your LLMs" 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">Monday, September 22nd 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Introducing the Upsun MCP server: bring Upsun into your LLMs</h3>
      <p className="blog-card-desc">Manage your Upsun infrastructure directly through AI assistants with our new Model Context Protocol server - now in beta at mcp.upsun.com</p>
    </div>
  </a>

  <a href="/posts/insights/why-you-should-replace-postgresql-with-git-for-your-next-project" 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/insights/why-you-should-replace-postgresql-with-git-for-your-next-project/why-you-should-replace-postgresql-with-git-for-your-next-project.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/why-you-should-replace-postgresql-with-git-for-your-next-project/why-you-should-replace-postgresql-with-git-for-your-next-project.webp" alt="Why you should replace PostgreSQL with Git for your next project" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, September 19th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Why you should replace PostgreSQL with Git for your next project</h3>
      <p className="blog-card-desc">Explore how Git's internal architecture makes it a surprisingly capable database alternative. Learn Git's data structures through a practical todo app implementation that might make you reconsider your database choices.</p>
    </div>
  </a>

  <a href="/posts/hands-on/run-tailscale-on-upsun-secure-vpn-connections" 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/hands-on/run-tailscale-on-upsun-secure-vpn-connections/run-tailscale-on-upsun-secure-vpn-connections.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/run-tailscale-on-upsun-secure-vpn-connections/run-tailscale-on-upsun-secure-vpn-connections.webp" alt="Run Tailscale on Upsun: Create secure VPN connections for your applications" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Run Tailscale on Upsun: Create secure VPN connections for your applications</h3>
      <p className="blog-card-desc">Learn how to integrate Tailscale VPN with your Upsun applications to create secure, private network connections between your containers and infrastructure.</p>
    </div>
  </a>

  <a href="/posts/how-tos/composer1-rip" 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/composer1-rip/composer-migrate-v1-v2.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/composer1-rip/composer-migrate-v1-v2.webp" alt="Composer 1 is dead – Upgrade to Composer 2 now" 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, September 9th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Composer 1 is dead – Upgrade to Composer 2 now</h3>
      <p className="blog-card-desc">Composer 1 has reached end of life and is no longer available on Upsun and Platform.sh. Learn why it’s no longer possible to rely on Composer 1, what errors you’ll see, and how to safely upgrade your project to Composer 2.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/cut-aws-bandwidth-costs-95-with-dm-cache" 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-it-works/cut-aws-bandwidth-costs-95-with-dm-cache/cut-aws-bandwidth-costs-95-with-dm-cache.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/cut-aws-bandwidth-costs-95-with-dm-cache/cut-aws-bandwidth-costs-95-with-dm-cache.webp" alt="How we cut AWS bandwidth costs 95% with dm-cache: fast local SSD caching for network storage" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How we cut AWS bandwidth costs 95% with dm-cache: fast local SSD caching for network storage</h3>
      <p className="blog-card-desc">Learn how Upsun solved costly inter-AZ bandwidth billing by implementing dm-cache with local SSDs, achieving 95% read traffic reduction and 30x performance improvement.</p>
    </div>
  </a>

  <a href="/posts/hands-on/store-embeddings-in-chroma-with-persistent-storage-nodejs-and-python-examples" 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/hands-on/store-embeddings-in-chroma-with-persistent-storage-nodejs-and-python-examples/thumbnail.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/store-embeddings-in-chroma-with-persistent-storage-nodejs-and-python-examples/thumbnail.webp" alt="Store embeddings in chroma with persistent storage (nodejs and python examples)" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, September 3rd 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Store embeddings in chroma with persistent storage (nodejs and python examples)</h3>
      <p className="blog-card-desc">Learn how to implement Chroma with persistent storage on Upsun using both Node.js and Python, including document ingestion and embedding storage.</p>
    </div>
  </a>

  <a href="/posts/hands-on/fastly-maintenance" 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/hands-on/fastly-maintenance/manualjob.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/fastly-maintenance/manualjob.webp" alt="How to enable custom maintenance page in Fastly" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, August 25th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How to enable custom maintenance page in Fastly</h3>
      <p className="blog-card-desc">Configure GitLab CI/CD to deploy to Upsun from private air-gapped GitLab instances using push-based workflows and API automation.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/how-do-we-do-incremental-but-really-full-backups-on-top-of-ceph" 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-it-works/how-do-we-do-incremental-but-really-full-backups-on-top-of-ceph/ceph-backup-blob-storage.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/how-do-we-do-incremental-but-really-full-backups-on-top-of-ceph/ceph-backup-blob-storage.webp" alt="High-performance backups: How Ceph snapshots enable incremental full backups" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, August 25th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">High-performance backups: How Ceph snapshots enable incremental full backups</h3>
      <p className="blog-card-desc">Learn how Upsun leverages Ceph's RBD export-diff feature to implement high-performance incremental backups that maintain full restore capabilities for large-scale container storage.</p>
    </div>
  </a>

  <a href="/posts/hands-on/connect-multiple-projects-applications-or-services-together" 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/hands-on/connect-multiple-projects-applications-or-services-together/connect-multiple-projects-applications-or-services-together.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/connect-multiple-projects-applications-or-services-together/connect-multiple-projects-applications-or-services-together.webp" alt="Connect multiple projects applications or services together" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, August 15th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Connect multiple projects applications or services together</h3>
      <p className="blog-card-desc">Learn how to use Chisel to securely connect applications and services across different Upsun projects, with a practical MariaDB replication example.</p>
    </div>
  </a>

  <a href="/posts/insights/why-your-readme-matters-more-than-ai-configuration-files" 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/insights/why-your-readme-matters-more-than-ai-configuration-files/why-your-readme-matters-more-than-ai-configuration-files.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/why-your-readme-matters-more-than-ai-configuration-files/why-your-readme-matters-more-than-ai-configuration-files.webp" alt="AGENTS.md: Why your README matters more than AI configuration files" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">AGENTS.md: Why your README matters more than AI configuration files</h3>
      <p className="blog-card-desc">AGENTS.md promises to standardize AI coding assistant configuration, but the real solution is writing better READMEs that serve both humans and AI agents</p>
    </div>
  </a>

  <a href="/posts/insights/why-python-developers-should-switch-to-uv" 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/insights/why-python-developers-should-switch-to-uv/why-python-developers-should-switch-to-uv.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/why-python-developers-should-switch-to-uv/why-python-developers-should-switch-to-uv.webp" alt="Why Python developers should switch to uv" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Why Python developers should switch to uv</h3>
      <p className="blog-card-desc">Learn how uv, the revolutionary Python package manager, delivers 100x faster installations and streamlines project management with automatic virtual environments and dependency tracking.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/how-upsun-built-stateless-mesh-networking-for-high-density-containers" 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-it-works/how-upsun-built-stateless-mesh-networking-for-high-density-containers/mesh-network.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/how-upsun-built-stateless-mesh-networking-for-high-density-containers/mesh-network.webp" alt="How Upsun built stateless mesh networking for high-density containers" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How Upsun built stateless mesh networking for high-density containers</h3>
      <p className="blog-card-desc">Discover how Upsun's innovative stateless mesh networking architecture handles thousands of containers without databases or bottlenecks.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-un-global-compact-sdgs-2025" 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/platformsh-un-global-compact-sdgs-2025/platformsh-un-global-compact-sdgs-2025.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-un-global-compact-sdgs-2025/platformsh-un-global-compact-sdgs-2025.webp" alt="Platform.sh reaffirms commitment to the UN Global Compact and the SDGs" 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 30th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh reaffirms commitment to the UN Global Compact and the SDGs</h3>
      <p className="blog-card-desc">We’re pleased to confirm that Platform.</p>
    </div>
  </a>

  <a href="/posts/hands-on/gitlab-push-solution" 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/hands-on/gitlab-push-solution/manualjob.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/gitlab-push-solution/manualjob.webp" alt="Synchronize your air-gapped GitLab with Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, July 21st 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Synchronize your air-gapped GitLab with Upsun</h3>
      <p className="blog-card-desc">Configure GitLab CI/CD to deploy to Upsun from private air-gapped GitLab instances using push-based workflows and API automation</p>
    </div>
  </a>

  <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/use-cases/n8n-saved-my-life" 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/use-cases/n8n-saved-my-life/social-media.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/use-cases/n8n-saved-my-life/social-media.webp" alt="How n8n saved our Advocacy impact on Social Media!" 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, July 3rd 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How n8n saved our Advocacy impact on Social Media!</h3>
      <p className="blog-card-desc">Learn how n8n workflows improve internal communication and amplify our Advocacy social media impact.</p>
    </div>
  </a>

  <a href="/posts/insights/why-configuration-as-code-beats-click-and-deploy" 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/insights/why-configuration-as-code-beats-click-and-deploy/configuration-as-code.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/why-configuration-as-code-beats-click-and-deploy/configuration-as-code.webp" alt="Git-Driven Infrastructure: Why Configuration as Code Beats Click-and-Deploy" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Git-Driven Infrastructure: Why Configuration as Code Beats Click-and-Deploy</h3>
      <p className="blog-card-desc">Discover why YAML-driven infrastructure outperforms point-and-click deployment for scalable, maintainable applications. Learn best practices for configuration as code.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/mcp-interaction-types-article" 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-it-works/mcp-interaction-types-article/mcp-interaction-types-article.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/mcp-interaction-types-article/mcp-interaction-types-article.webp" alt="Beyond Tool Calling: Understanding MCP's Three Core Interaction Types" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Saturday, June 7th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Beyond Tool Calling: Understanding MCP's Three Core Interaction Types</h3>
      <p className="blog-card-desc">Discover how prompts, resources, and tools work together in the Model Context Protocol to create richer AI application experiences beyond simple tool calling.</p>
    </div>
  </a>

  <a href="/posts/hands-on/deploy-mcp-servers-on-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/hands-on/deploy-mcp-servers-on-upsun/deploy-mcp-servers-on-upsun.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/deploy-mcp-servers-on-upsun/deploy-mcp-servers-on-upsun.webp" alt="Build and deploy AI-Native Applications with MCP Servers on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Build and deploy AI-Native Applications with MCP Servers on Upsun</h3>
      <p className="blog-card-desc">Learn how Model Context Protocol servers work with different transports and deploy them to Upsun for scalable AI-powered applications</p>
    </div>
  </a>

  <a href="/posts/releases/redis-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/redis-release/redis.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/redis-release/redis.webp" alt="Redis 8.0 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">Wednesday, June 4th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Redis 8.0 is here</h3>
      <p className="blog-card-desc">We are excited to announce that **Redis 8.0** is now available for all customers.</p>
    </div>
  </a>

  <a href="/posts/how-tos/handling-well-known-directory" 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/handling-well-known-directory/handle-well-known.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/handling-well-known-directory/handle-well-known.webp" alt="How to manage the `.well-known` directory on Upsun and Platform.sh" 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">Monday, May 26th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How to manage the `.well-known` directory on Upsun and Platform.sh</h3>
      <p className="blog-card-desc">If you have ever tried to enable</p>
    </div>
  </a>

  <a href="/posts/hands-on/nocode-n8n" 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/hands-on/nocode-n8n/nocode-n8n-thumbnail.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/nocode-n8n/nocode-n8n-thumbnail.webp" alt="NoCode with Upsun: Supercharge Your Automation with Zero Code" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">NoCode with Upsun: Supercharge Your Automation with Zero Code</h3>
      <p className="blog-card-desc">Learn how to leverage Upsun to deploy powerful NoCode tools like n8n for workflow automation. Fast setup, secure hosting, and real-world use cases — all without writing code.</p>
    </div>
  </a>

  <a href="/posts/insights/advanced-prompting-techniques-for-coding" 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/insights/advanced-prompting-techniques-for-coding/advanced-prompting-techniques-for-coding.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/advanced-prompting-techniques-for-coding/advanced-prompting-techniques-for-coding.webp" alt="Advanced prompting techniques for complex coding tasks" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Advanced prompting techniques for complex coding tasks</h3>
      <p className="blog-card-desc">This articles will give you an overview of prompting strategies that help coding assistants reason through difficult problems and produce higher-quality solutions.</p>
    </div>
  </a>

  <a href="/posts/releases/file_size_limit" 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/file_size_limit/file_size_limit.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/file_size_limit/file_size_limit.webp" alt="New file size limits explained" 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">Wednesday, May 7th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">New file size limits explained</h3>
      <p className="blog-card-desc">To ensure the optimal performance, stability, and reliability of our Git infrastructure, we are introducing a limit on the size of individual files that can be pushed to your project repositories.</p>
    </div>
  </a>

  <a href="/posts/releases/vscode-extension" 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/vscode-extension/visual-studio-code.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/vscode-extension/visual-studio-code.webp" alt="Supercharge your workflow with the Upsun VSCode Extension" 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, May 6th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Supercharge your workflow with the Upsun VSCode Extension</h3>
      <p className="blog-card-desc">If you're working on Upsun projects with VSCode, the **Upsun VSCode extension** is an essential tool to enhance your development experience. Learn more...</p>
    </div>
  </a>

  <a href="/posts/how-tos/validate-yaml-config" 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/validate-yaml-config/logo-yaml.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/validate-yaml-config/logo-yaml.webp" alt="Making .upsun/config.yaml easier to edit with IDE autocomplete and validation" 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, May 6th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Making .upsun/config.yaml easier to edit with IDE autocomplete and validation</h3>
      <p className="blog-card-desc">Boost your productivity and eliminate configuration errors with real-time autocompletion and validation for your .upsun/config.yaml — discover how to enhance your IDE experience in just a few simple steps!</p>
    </div>
  </a>

  <a href="/posts/hands-on/pytorch-running-on-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/hands-on/pytorch-running-on-upsun/pytorch.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/pytorch-running-on-upsun/pytorch.webp" alt="How to run PyTorch in an Upsun application?" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How to run PyTorch in an Upsun application?</h3>
      <p className="blog-card-desc">Learn how to deploy a sentiment analysis application powered by PyTorch and FastAPI on the Upsun cloud platform</p>
    </div>
  </a>

  <a href="/posts/how-tos/context7-mcp" 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/context7-mcp/context7-mcp.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/context7-mcp/context7-mcp.webp" alt="Upsun documentation is now available via the Context7 MCP" 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, May 1st 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Upsun documentation is now available via the Context7 MCP</h3>
      <p className="blog-card-desc">Access Upsun documentation directly from your AI workflows using Context7's Model Context Protocol integration</p>
    </div>
  </a>

  <a href="/posts/hands-on/postgres-mcp-on-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/hands-on/postgres-mcp-on-upsun/postgres-mcp-on-upsun.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/postgres-mcp-on-upsun/postgres-mcp-on-upsun.webp" alt="Using PostgreSQL MCP with Upsun Remote Database" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Using PostgreSQL MCP with Upsun Remote Database</h3>
      <p className="blog-card-desc">Learn how to set up an MCP server to connect your Upsun PostgreSQL database to language models like Claude or IDE like VSCode GitHub Copilot and Cursor, enabling natural language data queries without writing SQL.</p>
    </div>
  </a>

  <a href="/posts/hands-on/route-ids-env" 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/hands-on/route-ids-env/route-ids-env.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/route-ids-env/route-ids-env.webp" alt="How to automatically inject multi-app endpoints as environment variables" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, April 28th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How to automatically inject multi-app endpoints as environment variables</h3>
      <p className="blog-card-desc">Learn how to use Upsun route identifiers and the PLATFORM\_ROUTES variable to easily get and use the hostnames of dynamically deployed applications in your project.</p>
    </div>
  </a>

  <a href="/posts/tutorials/oauth-nextjs-laravel" 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/oauth-nextjs-laravel/oauth-nextjs-laravel.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/oauth-nextjs-laravel/oauth-nextjs-laravel.webp" alt="OAuth authentication between Next.js and Laravel Passport" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, April 28th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">OAuth authentication between Next.js and Laravel Passport</h3>
      <p className="blog-card-desc">Learn how to implement secure OAuth authentication between a Next.js frontend and Laravel backend using Passport with the Authorization Code Flow and PKCE.</p>
    </div>
  </a>

  <a href="/posts/tutorials/deploying-clamav-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">
    {`https://www.clamav.net/assets/clamav-trademark.png` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="https://www.clamav.net/assets/clamav-trademark.png" alt="Deploy ClamAV on Upsun, on service mode." 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, April 24th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploy ClamAV on Upsun, on service mode.</h3>
      <p className="blog-card-desc">Learn how to deploy ClamAV service on Upsun. This tutorial covers ClamAV integration on service scan mode.</p>
    </div>
  </a>

  <a href="/posts/releases/valkey-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/valkey-release/valkey.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/valkey-release/valkey.webp" alt="Valkey is now available" 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">Wednesday, April 16th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Valkey is now available</h3>
      <p className="blog-card-desc">We're excited to announce the availability of [Valkey](https://valkey.io/), a high-performance, open-source key/value database, now offered as a managed service on Upsun. Valkey serves as a drop-in alternative to Redis, particularly relevant following recent licensing changes to the Redis project.</p>
    </div>
  </a>

  <a href="/posts/hands-on/install-gh-asset-on-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/hands-on/install-gh-asset-on-upsun/github.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/install-gh-asset-on-upsun/github.webp" alt="Up(sun) and ready with GitHub release assets installation" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Up(sun) and ready with GitHub release assets installation</h3>
      <p className="blog-card-desc">Discover how to install any GitHub release asset you want in your Upsun project.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/psh-elastic-love-loss-licensing" 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-it-works/psh-elastic-love-loss-licensing/psh-elastic-love-loss-licensing-thumbnail.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/psh-elastic-love-loss-licensing/psh-elastic-love-loss-licensing-thumbnail.webp" alt="Upsun and Elasticsearch: A tale of love, loss, and licensing roadblocks" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Upsun and Elasticsearch: A tale of love, loss, and licensing roadblocks</h3>
      <p className="blog-card-desc">[Elasticsearch](https://www.elastic.co/) is a distributed **search engine designed for speed, scalability, and reliability**. Built on [Apache Lucene](https://lucene.apache.org/), it allows you to store, search, and analyze large volumes of data in near real-time.</p>
    </div>
  </a>

  <a href="/posts/unknown/nextjs-cve-2025-2997" 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/nextjs-cve-2025-2997/nextjs-cve-2025-29927.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/nextjs-cve-2025-2997/nextjs-cve-2025-29927.webp" alt="Next.js Security Vulnerability (CVE-2025-29927): What Upsun Users Need to Know" 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, March 25th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Next.js Security Vulnerability (CVE-2025-29927): What Upsun Users Need to Know</h3>
      <p className="blog-card-desc">A comprehensive guide to understanding and addressing the recent Next.js security vulnerability CVE-2025-29927 for applications deployed on Upsun.</p>
    </div>
  </a>

  <a href="/posts/tutorials/sfcon2024-decouple-frontend" 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/sfcon2024-decouple-frontend/decouple-frontend.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/sfcon2024-decouple-frontend/decouple-frontend.webp" alt="Decouple your Symfony frontend using Next.js" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, March 24th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Decouple your Symfony frontend using Next.js</h3>
      <p className="blog-card-desc">How to decouple your frontend from your backend, using a Symfony project as backend and adding a Next.js application for frontend.</p>
    </div>
  </a>

  <a href="/posts/tutorials/deploying-with-lisp" 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/deploying-with-lisp/blog-lisp-blog.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/deploying-with-lisp/blog-lisp-blog.webp" alt="Up(sun) and running with Lisp" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Up(sun) and running with Lisp</h3>
      <p className="blog-card-desc">Lisp support was discontinued in March 2025. If you really want to power a Lisp project, feel free to contact us on our [Discord](https://discord.gg/upsun).</p>
    </div>
  </a>

  <a href="/posts/tutorials/deploying-twill-on-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/deploying-twill-on-upsun/twill_cms_logo_white.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/deploying-twill-on-upsun/twill_cms_logo_white.webp" alt="Up(sun) and Running with Twill" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Up(sun) and Running with Twill</h3>
      <p className="blog-card-desc">This guide provides instructions for deploying and working with [Twill](https://twillcms.com/), an "open-source</p>
    </div>
  </a>

  <a href="/posts/releases/elixir-118-release-available" 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/elixir-118-release-available/elixir-118-release-available-thumbnail.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/elixir-118-release-available/elixir-118-release-available-thumbnail.webp" alt="Apologies to the Elixir community: 1.18 release now available" 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, February 26th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Apologies to the Elixir community: 1.18 release now available</h3>
      <p className="blog-card-desc">Elixir 1.18 is now available on Upsun and Platform.sh with type checking, LSP improvements, and built-in JSON support.</p>
    </div>
  </a>

  <a href="/posts/tutorials/deploying-clamav-onetime" className="blog-card group rounded-xl bg-card border-theme card-hover shadow-sm hover:shadow-md transition-all overflow-hidden flex flex-col">
    {`https://www.clamav.net/assets/clamav-trademark.png` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="https://www.clamav.net/assets/clamav-trademark.png" alt="Deploy ClamAV on Upsun, on one-time scan" 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">Friday, February 14th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploy ClamAV on Upsun, on one-time scan</h3>
      <p className="blog-card-desc">Learn how to deploy ClamAV service on Upsun. This tutorial covers ClamAV integration on one-time scan mode.</p>
    </div>
  </a>

  <a href="/posts/releases/llms-introduction" 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/llms-introduction/llms-introduction.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/llms-introduction/llms-introduction.webp" alt="Upsun and Platform.sh Docs are now llms.txt compatible!" 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">Friday, February 14th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Upsun and Platform.sh Docs are now llms.txt compatible!</h3>
      <p className="blog-card-desc">We’re thrilled to announce that both [Upsun Documentation](https://docs.upsun.com) and [Platform.sh Documentation](https://docs.platform.sh) are now fully compatible with [llms.txt proposed standard](https://llmstxt.org/)!</p>
    </div>
  </a>

  <a href="/posts/how-tos/install-pandoc-on-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/how-tos/install-pandoc-on-upsun/pandoc.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/install-pandoc-on-upsun/pandoc.webp" alt="Up(sun) and ready with Pandoc" 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">Wednesday, February 12th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Up(sun) and ready with Pandoc</h3>
      <p className="blog-card-desc">With the recent growth in enthusiasm for AI assistants, you may be looking for how these assistants can provide technical information about your product.</p>
    </div>
  </a>

  <a href="/posts/unknown/magento-performance-optimization" 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/magento-performance-optimization/magento-performance-optimization.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/magento-performance-optimization/magento-performance-optimization.webp" alt="Magento performance optimization–Actionable tips and strategies" 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, February 4th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Magento performance optimization–Actionable tips and strategies</h3>
      <p className="blog-card-desc">Is your ecommerce store traffic resulting in enough conversions.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/debian-repo-s3" 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-it-works/debian-repo-s3/debian-logo.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/debian-repo-s3/debian-logo.webp" alt="How we host a Debian repository on AWS S3" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How we host a Debian repository on AWS S3</h3>
      <p className="blog-card-desc">Pretty cool fact about our internal Debian repositories: they’re hosted entirely on AWS S3. Why is that cool? For 2</p>
    </div>
  </a>

  <a href="/posts/tutorials/upsun-and-running-forem" 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/upsun-and-running-forem/forem.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/upsun-and-running-forem/forem.webp" alt="Up(sun) and Running with Forem" 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">Friday, January 24th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Up(sun) and Running with Forem</h3>
      <p className="blog-card-desc">This guide provides instructions for deploying and working with [Forem](https://www.forem.com/), an "open-source</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/hands-on/deploying-chainlit-with-rag" 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/hands-on/deploying-chainlit-with-rag/chainlit-thumbnail.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/deploying-chainlit-with-rag/chainlit-thumbnail.webp" alt="Experiment with Chainlit AI interface with RAG on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Experiment with Chainlit AI interface with RAG on Upsun</h3>
      <p className="blog-card-desc">Learn to deploy production-ready RAG applications with Chainlit and Python on Upsun. Tutorial covers OpenAI Assistants integration, llama\_index implementation, and secure authentication.</p>
    </div>
  </a>

  <a href="/posts/how-tos/no-downtime-postgres-updates" 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/no-downtime-postgres-updates/postgresql.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/no-downtime-postgres-updates/postgresql.webp" alt="How to update your PostgreSQL database without downtime" 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, January 9th 2025</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How to update your PostgreSQL database without downtime</h3>
      <p className="blog-card-desc">On paper, releasing a new version of your application that requires upgrading the schema of the database is straightforward. But, changes of code and schema can not be updated in an atomic way, you only need to take care that old code is not performing a query against new schema, and reciprocally.</p>
    </div>
  </a>

  <a href="/posts/discussions/triage-bot" 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/discussions/triage-bot/kier-in-sight-archives-0fL5XCrt_nU-unsplash.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/triage-bot/kier-in-sight-archives-0fL5XCrt_nU-unsplash.webp" alt="How did we migrate issues from GitLab to Linear?" 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">Wednesday, December 18th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How did we migrate issues from GitLab to Linear?</h3>
      <p className="blog-card-desc">We migrated our issues from GitLab to Linear due to GitLab's limited issue-tracking features. To handle thousands of issues and tight timelines, we developed a migration tool using GitLab Triage Bot and Linear's GraphQL API. The tool mapped issue states, assignees, labels, and comments, and transformed GitLab epics into Linear issues with sub-issues. It was successful overall and enabled team-by-team migration for flexibility. Now, [we’re open-sourcing the migrator](https://github.com/upsun/gitlab-triage-linear-migrator) to help others facing similar challenges.</p>
    </div>
  </a>

  <a href="/posts/discussions/go-124" 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/discussions/go-124/gopher.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/go-124/gopher.webp" alt="Golang 1.24 is looking seriously awesome" 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">Sunday, December 15th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Golang 1.24 is looking seriously awesome</h3>
      <p className="blog-card-desc">The Golang team just released the [first release candidate of Golang 1.24](https://tip.golang.org/doc/go1.24). At Upsun, we use Golang extensively for everything in our hot path, especially for the routing of HTTP requests throughout our infrastructure. Here is what we are looking forward to the most.</p>
    </div>
  </a>

  <a href="/posts/discussions/cve-2024-45337" 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/discussions/cve-2024-45337/cve-2024-45337.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/cve-2024-45337/cve-2024-45337.webp" alt="CVE-2024-45337" 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">Friday, December 13th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">CVE-2024-45337</h3>
      <p className="blog-card-desc">This article was originally published on the [Platform.sh blog](https://platform.sh/blog/uncovered-and-patched-golang-vunerability/).</p>
    </div>
  </a>

  <a href="/posts/unknown/uncovered-and-patched-golang-vunerability" 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/uncovered-and-patched-golang-vunerability/uncovered-and-patched-golang-vunerability.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/uncovered-and-patched-golang-vunerability/uncovered-and-patched-golang-vunerability.webp" alt="Security vulnerability uncovered and patched in the golang.org/x/crypto /ssh package" 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">Friday, December 13th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Security vulnerability uncovered and patched in the golang.org/x/crypto /ssh package</h3>
      <p className="blog-card-desc">Misimplementation of PublicKeyCallback leads to authorization bypass in Go's x/crypto/sshPlatform.</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/tutorials/laravel-rest-api-on-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/laravel-rest-api-on-upsun/laravel-rest-api.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/laravel-rest-api-on-upsun/laravel-rest-api.webp" alt="Creating and deploying a Laravel REST API on Upsun in 10 minutes" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Creating and deploying a Laravel REST API on Upsun in 10 minutes</h3>
      <p className="blog-card-desc">Follow this comprehensive guide to build and deploy a modern Laravel REST API on Upsun's cloud platform. We'll walk through setting up your local development environment, creating API endpoints, and deploying to production with a custom domain. This tutorial is perfect for developers looking to quickly ship production-ready Laravel applications without dealing with complex infrastructure management.</p>
    </div>
  </a>

  <a href="/posts/how-tos/blackfire-google-alert-markers-interfaces" 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/blackfire-google-alert-markers-interfaces/blackfire-marker-list.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/blackfire-google-alert-markers-interfaces/blackfire-marker-list.webp" alt="Import multiple RSS Feeds on your Blackfire timeline + extra interfaces" 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, November 5th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Import multiple RSS Feeds on your Blackfire timeline + extra interfaces</h3>
      <p className="blog-card-desc">We saw in the [previous episode](/posts/how-tos/blackfire-google-alert-markers) how to automatically add context on your Blackfire timeline from an RSS Feed (Google Alert),</p>
    </div>
  </a>

  <a href="/posts/unknown/human-impact-of-adopting-platformsh" 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/human-impact-of-adopting-platformsh/human-impact-of-adopting-platformsh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/human-impact-of-adopting-platformsh/human-impact-of-adopting-platformsh.webp" alt="A tale of people: the human impact of adopting Platform.sh" 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 29th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">A tale of people: the human impact of adopting Platform.sh</h3>
      <p className="blog-card-desc">I have a complicated relationship with people.</p>
    </div>
  </a>

  <a href="/posts/how-tos/schedule-resource-availability" 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/schedule-resource-availability/red-background.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/schedule-resource-availability/red-background.webp" alt="Scheduling resources" 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, October 24th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Scheduling resources</h3>
      <p className="blog-card-desc">As Upsun does purely usage-driven billing,</p>
    </div>
  </a>

  <a href="/posts/releases/continuous-profiling-comparisons" 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/continuous-profiling-comparisons/cp-comparisons.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/continuous-profiling-comparisons/cp-comparisons.webp" alt="Continuous profiling comparisons" 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, October 23rd 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Continuous profiling comparisons</h3>
      <p className="blog-card-desc">Upsun’s new continuous profiling comparisons feature provides deeper insights into application performance, enabling you to easily contrast performance metrics over time or between code versions.</p>
    </div>
  </a>

  <a href="/posts/tutorials/rails8-upsun-tutorial" 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/rails8-upsun-tutorial/rails8-thumbnail.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/rails8-upsun-tutorial/rails8-thumbnail.webp" alt="Deploy your first Rails 8 application on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, October 23rd 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploy your first Rails 8 application on Upsun</h3>
      <p className="blog-card-desc">Learn how to build and deploy a modern Rails 8 blog application on Upsun's cloud platform. This hands-on tutorial walks you through local development setup, creating a feature-rich blog application, and deploying it to production with proper monitoring and scaling. Discover why Platform-as-a-Service remains relevant even with Rails 8's new deployment features, and learn best practices for cloud deployment. Perfect for developers wanting to quickly ship production-ready Rails applications without managing complex infrastructure.</p>
    </div>
  </a>

  <a href="/posts/how-tos/configuring-an-autoscaler" 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/configuring-an-autoscaler/configuring-an-autoscaler-CPU-propogation.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/configuring-an-autoscaler/configuring-an-autoscaler-CPU-propogation.webp" alt="Adding an autoscaler to Upsun projects" 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">Saturday, October 19th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Adding an autoscaler to Upsun projects</h3>
      <p className="blog-card-desc">In this post we will describe a small configuration that will</p>
    </div>
  </a>

  <a href="/posts/how-tos/blackfire-google-alert-markers" 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/blackfire-google-alert-markers/google-alert-marker.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/blackfire-google-alert-markers/google-alert-marker.webp" alt="Add context on your Blackfire timeline from a Google Alerts RSS Feed" 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">Monday, October 7th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Add context on your Blackfire timeline from a Google Alerts RSS Feed</h3>
      <p className="blog-card-desc">Observing your application is essential to be able to find what needs (and what does not need) to be optimized.</p>
    </div>
  </a>

  <a href="/posts/releases/context-driven-navigation" 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/context-driven-navigation/convert_typescript.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/context-driven-navigation/convert_typescript.webp" alt="Context driven navigation" 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">Thursday, October 3rd 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Context driven navigation</h3>
      <p className="blog-card-desc">You may have noticed some changes to navigation and user settings on your Platform.sh dashboard.</p>
    </div>
  </a>

  <a href="/posts/discussions/understanding-cors" 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/discussions/understanding-cors/CORS.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/understanding-cors/CORS.webp" alt="Understanding Cross-Origin Resource Sharing (CORS)" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Understanding Cross-Origin Resource Sharing (CORS)</h3>
      <p className="blog-card-desc">Learn about Cross-Origin Resource Sharing (CORS), a crucial web security mechanism. Understand its importance, key concepts, and implementation in Symfony, Next.js, and Laravel. Includes practical examples and tips for testing with curl and Postman, plus Platform.sh configuration guidance.</p>
    </div>
  </a>

  <a href="/posts/unknown/evolve-partner-summit-awards" 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/evolve-partner-summit-awards/evolve-partner-summit-awards.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/evolve-partner-summit-awards/evolve-partner-summit-awards.webp" alt="It's almost time…Platform.sh’s Evolve Partner Summit Awards" 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, September 23rd 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">It's almost time…Platform.sh’s Evolve Partner Summit Awards</h3>
      <p className="blog-card-desc">We’d love for you to join us in Paris to celebrate the incredible work you’ve done.</p>
    </div>
  </a>

  <a href="/posts/how-tos/automate-with-gatling-1" 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/automate-with-gatling-1/gatling.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/automate-with-gatling-1/gatling.webp" alt="How to automate load tests with Gatling" 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">Friday, September 20th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How to automate load tests with Gatling</h3>
      <p className="blog-card-desc">When I was on your side of the keyboard, developing cool and funny applications (more or less :D), load tests were (most of the time) executed a few days before going live.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/using-the-upsun-api" 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-it-works/using-the-upsun-api/red-background.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/using-the-upsun-api/red-background.webp" alt="Using the Upsun API" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Using the Upsun API</h3>
      <p className="blog-card-desc">> Anything you can do, API can do better!</p>
    </div>
  </a>

  <a href="/posts/discussions/preview-environments-a-developers-secret-weapon" 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/discussions/preview-environments-a-developers-secret-weapon/branches.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/preview-environments-a-developers-secret-weapon/branches.webp" alt="Preview Environments" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Preview Environments</h3>
      <p className="blog-card-desc">Discover how preview environments transform software deployment, reducing stress and improving code quality. Learn about the six essential components for implementing preview environments, including Git, infrastructure as code, and automated DNS management. Find out why preview environments are crucial for catching bugs, testing performance, and enhancing collaboration between technical and non-technical team members. Explore how Upsun's platform leverages preview environments to streamline the development process and deliver higher-quality software products.</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/tutorials/how-to-host-multiple-applications" 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/how-to-host-multiple-applications/multiple-application-blog.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/tutorials/how-to-host-multiple-applications/multiple-application-blog.webp" alt="How to host a multiple-application project on Platform.sh" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, August 16th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How to host a multiple-application project on Platform.sh</h3>
      <p className="blog-card-desc">Learn how to host and configure multiple-application projects on Platform.sh with this step-by-step guide.</p>
    </div>
  </a>

  <a href="/posts/hands-on/harnessing-power-embeddings" 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="Harnessing the power of Embeddings: a real-world example of a watch recommendation app using a vector database." className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Monday, May 20th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Harnessing the power of Embeddings: a real-world example of a watch recommendation app using a vector database.</h3>
      <p className="blog-card-desc">Learn how to build a real-world watch recommendation application using embeddings and a vector database. This tutorial covers using Postgres with pgvector, Laravel, React, OpenAI, and Groq, deployed on Upsun.</p>
    </div>
  </a>

  <a href="/posts/use-cases/wordpress-performance-optimization-with-blackfire" 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/use-cases/wordpress-performance-optimization-with-blackfire/Meeting_Jonny_Harris.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/use-cases/wordpress-performance-optimization-with-blackfire/Meeting_Jonny_Harris.webp" alt="Meeting Jonny Harris: WordPress performance optimization with Blackfire" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`use-cases` !== '' && (
                      <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">
                        use-cases
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Meeting Jonny Harris: WordPress performance optimization with Blackfire</h3>
      <p className="blog-card-desc">Jonny Harris is a WordPress core contributor and committer based in the UK and a member of the WordPress Performance</p>
    </div>
  </a>

  <a href="/posts/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-three" 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/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-three/Limit_deployments_to_psh-three.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-three/Limit_deployments_to_psh-three.webp" alt="Limit deployments to Platform.sh only with tags: part three" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, April 12th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Limit deployments to Platform.sh only with tags: part three</h3>
      <p className="blog-card-desc">In parts [one](/posts/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-one) and</p>
    </div>
  </a>

  <a href="/posts/unknown/drupal-camp-florida-2024" 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/drupal-camp-florida-2024/drupal-camp-florida-2024.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/drupal-camp-florida-2024/drupal-camp-florida-2024.webp" alt="DrupalCamp Florida 2024: sharing takeaways from the experts" 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, March 25th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">DrupalCamp Florida 2024: sharing takeaways from the experts</h3>
      <p className="blog-card-desc">I had the pleasure of returning to DrupalCamp FL (DCFL) again this year and even now in its sixteenth year, DCFL 2024 was as lively and energetic as ever.</p>
    </div>
  </a>

  <a href="/posts/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-one" 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/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-one/Limit_deployments_to_psh-one.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-one/Limit_deployments_to_psh-one.webp" alt="Limit deployments to Platform.sh only with tags: part one" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, March 14th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Limit deployments to Platform.sh only with tags: part one</h3>
      <p className="blog-card-desc">Throughout the years, many users have asked us if it’s possible to only deploy to Platform.sh when a tag is pushed using</p>
    </div>
  </a>

  <a href="/posts/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-two" 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/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-two/Limit_deployments_to_psh-two.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/guide-to-limit-deployments-to-platformsh-only-with-tags-part-two/Limit_deployments_to_psh-two.webp" alt="Limit deployments to Platform.sh only when Git tagged: part two" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, March 14th 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Limit deployments to Platform.sh only when Git tagged: part two</h3>
      <p className="blog-card-desc">In [part one of this series](https://platform.sh/blog/guide-to-limit-deployments-to-platformsh-only-with-tags-part-one/),</p>
    </div>
  </a>

  <a href="/posts/tutorials/deploying-remixjs-app-on-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/devcenter.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/devcenter.webp" alt="Deploying a Remix JS app on Upsun in 5 minutes" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, March 1st 2024</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploying a Remix JS app on Upsun in 5 minutes</h3>
      <p className="blog-card-desc">Learn how to deploy a Remix JS application on Upsun in just 5 minutes. This tutorial covers creating a project, setting up the Node.js server, and deploying your app.</p>
    </div>
  </a>

  <a href="/posts/tutorials/deploying-laravel-with-horizon-on-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/devcenter.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/devcenter.webp" alt="Deploying Laravel with Horizon on Upsun" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`tutorials` !== '' && (
                      <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">
                        tutorials
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploying Laravel with Horizon on Upsun</h3>
      <p className="blog-card-desc">Learn how to deploy a Laravel application with Redis queues and Horizon on Upsun, including PostgreSQL database setup, environment configuration, and domain management.</p>
    </div>
  </a>

  <a href="/posts/unknown/whats-the-deal-with-eu-headquartered-iaas-providers" 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/whats-the-deal-with-eu-headquartered-iaas-providers/whats-the-deal-with-eu-headquartered-iaas-providers.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/whats-the-deal-with-eu-headquartered-iaas-providers/whats-the-deal-with-eu-headquartered-iaas-providers.webp" alt="International data protection with EU-entities of US-headquartered IaaS providers" 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, November 13th 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">International data protection with EU-entities of US-headquartered IaaS providers</h3>
      <p className="blog-card-desc">Learn why we use EU-headquartered IaaS providers for maximum data protection and the additional measures we have in place with our providers for GDPR.</p>
    </div>
  </a>

  <a href="/posts/unknown/building-a-trust-centric-culture-for-success" 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/building-a-trust-centric-culture-for-success/building-a-trust-centric-culture-for-success.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/building-a-trust-centric-culture-for-success/building-a-trust-centric-culture-for-success.webp" alt="Building a trust-centric culture for success" 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, November 8th 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Building a trust-centric culture for success</h3>
      <p className="blog-card-desc">Trust is more than compliance. It drives employee and customer retention, positive word of mouth, and builds your brand reputation. Find out how to build it.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/how-platformsh-stays-ahead-of-emerging-cybersecurity-threats" 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-it-works/how-platformsh-stays-ahead-of-emerging-cybersecurity-threats/terrible_trio_blog.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/how-platformsh-stays-ahead-of-emerging-cybersecurity-threats/terrible_trio_blog.webp" alt="Semper vigilans: how Platform.sh stays ahead of emerging cybersecurity threats (so you don’t have to)" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Friday, October 13th 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Semper vigilans: how Platform.sh stays ahead of emerging cybersecurity threats (so you don’t have to)</h3>
      <p className="blog-card-desc">Always vigilant is more than a motto. Find out how the Platform.sh Security team monitors vulnerabilities 24x7 to protect customers from cybersecurity threats.</p>
    </div>
  </a>

  <a href="/posts/releases/bun-support-is-here" 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/bun-support-is-here/bun_support_blog.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/bun-support-is-here/bun_support_blog.webp" alt="It's out of the Oven: Bun 1.0 support on Platform.sh" 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">Friday, September 8th 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">It's out of the Oven: Bun 1.0 support on Platform.sh</h3>
      <p className="blog-card-desc">Bun 1.0 support is now available on Platform.sh. Discover our comparison results against Yarn and how to test Bun 1.0 out for yourself in this article.</p>
    </div>
  </a>

  <a href="/posts/how-tos/help-reduce-resource-consumption-put-your-preview-environments-on-pause" 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/help-reduce-resource-consumption-put-your-preview-environments-on-pause/Help_reduce_resource_consumption_paused_environments.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-tos/help-reduce-resource-consumption-put-your-preview-environments-on-pause/Help_reduce_resource_consumption_paused_environments.webp" alt="Help reduce resource consumption: Put your preview environments on pause" 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">Friday, August 18th 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Help reduce resource consumption: Put your preview environments on pause</h3>
      <p className="blog-card-desc">You can now manually pause your idle preview environments or have them automatically paused after 14 days of being idle to minimize your resource usage.</p>
    </div>
  </a>

  <a href="/posts/unknown/an-update-to-our-events-privacy-policy" 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/an-update-to-our-events-privacy-policy/an-update-to-our-events-privacy-policy.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/an-update-to-our-events-privacy-policy/an-update-to-our-events-privacy-policy.webp" alt="An update to our events privacy policy" 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 31st 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">An update to our events privacy policy</h3>
      <p className="blog-card-desc">To ensure the best experience at Platform.sh conferences and events, we've updated our privacy policy detailing how we'll use and care for your personal data.</p>
    </div>
  </a>

  <a href="/posts/unknown/greater-organization-insights-through-weekly-activity-reports-emails" 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/greater-organization-insights-through-weekly-activity-reports-emails/greater-organization-insights-through-weekly-activity-reports-emails.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/greater-organization-insights-through-weekly-activity-reports-emails/greater-organization-insights-through-weekly-activity-reports-emails.webp" alt="Greater organization insights through weekly activity reports emails" 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, April 10th 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Greater organization insights through weekly activity reports emails</h3>
      <p className="blog-card-desc">For our Elite/Enterprise customers, we now will be sending weekly activity reports to provide visibility on the key stats and metrics on all projects.</p>
    </div>
  </a>

  <a href="/posts/unknown/infrastructure-metrics-expanded-to-longer-time-frames" 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/infrastructure-metrics-expanded-to-longer-time-frames/infrastructure-metrics-expanded-to-longer-time-frames.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/infrastructure-metrics-expanded-to-longer-time-frames/infrastructure-metrics-expanded-to-longer-time-frames.webp" alt="Infrastructure Monitoring Metrics with Longer Time Frames" 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 1st 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Infrastructure Monitoring Metrics with Longer Time Frames</h3>
      <p className="blog-card-desc">Unlock valuable insights with longer time frames in infrastructure metrics on Platform.sh. Make informed decisions for better capacity planning.</p>
    </div>
  </a>

  <a href="/posts/unknown/its-time-for-version--all-new-upgrades-for-our-api-server" 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/its-time-for-version--all-new-upgrades-for-our-api-server/its-time-for-version--all-new-upgrades-for-our-api-server.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/its-time-for-version--all-new-upgrades-for-our-api-server/its-time-for-version--all-new-upgrades-for-our-api-server.webp" alt="Introducing version 19: New upgrades for our API server" 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, January 26th 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Introducing version 19: New upgrades for our API server</h3>
      <p className="blog-card-desc">Unlock the power of Version 19 upgrades, boosting API server performance. Upgrade with Platform.sh for a seamless experience and enhanced capabilities.</p>
    </div>
  </a>

  <a href="/posts/releases/platformsh-is-always-one-step-ahead-announcing-postgresql--python--and-ruby--for-our-users" 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/platformsh-is-always-one-step-ahead-announcing-postgresql--python--and-ruby--for-our-users/prostgresqul_python_ruby_updates_blog.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/platformsh-is-always-one-step-ahead-announcing-postgresql--python--and-ruby--for-our-users/prostgresqul_python_ruby_updates_blog.webp" alt="Platform.sh is always one step ahead: Announcing PostgreSQL 15, Python 3.11, and Ruby 3.2 for our users" 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">Monday, January 16th 2023</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh is always one step ahead: Announcing PostgreSQL 15, Python 3.11, and Ruby 3.2 for our users</h3>
      <p className="blog-card-desc">Explore the new features and performance improvements in Python 3.11, PostgreSQL 15, and Ruby 3.2. Stay up-to-date with the latest programming languages.</p>
    </div>
  </a>

  <a href="/posts/hands-on/powerup-your-local-development-with-ddev" 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/hands-on/powerup-your-local-development-with-ddev/Power_ddev_blog.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/hands-on/powerup-your-local-development-with-ddev/Power_ddev_blog.webp" alt="Power-up Your Local Development with DDEV" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`hands-on` !== '' && (
                      <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">
                        hands-on
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Power-up Your Local Development with DDEV</h3>
      <p className="blog-card-desc">Get the best local development experience with the DDEV-Platform.sh add-on. Follow our guide, share your feedback, and optimize your workflow</p>
    </div>
  </a>

  <a href="/posts/unknown/introducing-our-new-api-and-metrics-servers-upgrades" 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/introducing-our-new-api-and-metrics-servers-upgrades/introducing-our-new-api-and-metrics-servers-upgrades.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/introducing-our-new-api-and-metrics-servers-upgrades/introducing-our-new-api-and-metrics-servers-upgrades.webp" alt="Introducing our new API and Metrics servers upgrades" 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, December 15th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Introducing our new API and Metrics servers upgrades</h3>
      <p className="blog-card-desc">Updates: Jenkins 'H' pattern for cron jobs, result filters for activity scripts, cancellable build and source operations, and the clear build cache activity.</p>
    </div>
  </a>

  <a href="/posts/unknown/dont-be-held-to-ransom-security-awareness-with-platformsh" 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/dont-be-held-to-ransom-security-awareness-with-platformsh/dont-be-held-to-ransom-security-awareness-with-platformsh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/dont-be-held-to-ransom-security-awareness-with-platformsh/dont-be-held-to-ransom-security-awareness-with-platformsh.webp" alt="Don’t be held to ransom: Security awareness with Platform.sh" 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">Friday, December 2nd 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Don’t be held to ransom: Security awareness with Platform.sh</h3>
      <p className="blog-card-desc">Learn how to safeguard your organization against ransomware attacks. Explore security measures and proactive steps to protect your company's data.</p>
    </div>
  </a>

  <a href="/posts/unknown/are-your-websites-ready-to-handle-traffic-peaks-this-holiday-season" 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/are-your-websites-ready-to-handle-traffic-peaks-this-holiday-season/are-your-websites-ready-to-handle-traffic-peaks-this-holiday-season.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/are-your-websites-ready-to-handle-traffic-peaks-this-holiday-season/are-your-websites-ready-to-handle-traffic-peaks-this-holiday-season.webp" alt="Are your websites ready to handle traffic peaks this holiday season?" 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, November 28th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Are your websites ready to handle traffic peaks this holiday season?</h3>
      <p className="blog-card-desc">Discover how to optimize your website for increased holiday traffic. Learn best practices for performance and customer experience during the busy sales season.</p>
    </div>
  </a>

  <a href="/posts/unknown/the-platformsh-cli-is-ready-to-golang" 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/the-platformsh-cli-is-ready-to-golang/the-platformsh-cli-is-ready-to-golang.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/the-platformsh-cli-is-ready-to-golang/the-platformsh-cli-is-ready-to-golang.webp" alt="The Platform.sh CLI is ready to Go(lang)" 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, November 17th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The Platform.sh CLI is ready to Go(lang)</h3>
      <p className="blog-card-desc">New Universal Platform.sh CLI, designed to help developers manage projects efficiently, supporting multiple languages and eliminating PHP dependency.</p>
    </div>
  </a>

  <a href="/posts/releases/introducing-a-more-complete-logs-forwarding-experience" 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/introducing-a-more-complete-logs-forwarding-experience/complete-log-forwarding.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/introducing-a-more-complete-logs-forwarding-experience/complete-log-forwarding.webp" alt="Introducing a more complete logs forwarding experience" 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">Friday, November 4th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Introducing a more complete logs forwarding experience</h3>
      <p className="blog-card-desc">Streamline monitoring with centralized log forwarding. Platform.sh now supports log forwarding to Sumologic, New Relic Logs, Splunk, and more. Discover how!</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-partners-with-mongodb-to-help-customers-build-modern-applications-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/platformsh-partners-with-mongodb-to-help-customers-build-modern-applications-faster/platformsh-partners-with-mongodb-to-help-customers-build-modern-applications-faster.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-partners-with-mongodb-to-help-customers-build-modern-applications-faster/platformsh-partners-with-mongodb-to-help-customers-build-modern-applications-faster.webp" alt="Platform.sh partners with MongoDB to help customers build modern applications faster" 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, October 6th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh partners with MongoDB to help customers build modern applications faster</h3>
      <p className="blog-card-desc">Announcing MongoDB 5.0 for Enterprise and Elite customers. Enjoy improved security, support, and features. Upgrade now for seamless MongoDB integration.</p>
    </div>
  </a>

  <a href="/posts/unknown/mohammed-ajmal-siddiqui" 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/mohammed-ajmal-siddiqui/mohammed-ajmal-siddiqui.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/mohammed-ajmal-siddiqui/mohammed-ajmal-siddiqui.webp" alt="Platform.sh | Journeys Mohammed Ajmal Siddiqui" 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">Friday, September 16th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh | Journeys Mohammed Ajmal Siddiqui</h3>
      <p className="blog-card-desc">Follow Ajmal's journey from India to Paris as he navigates programming, internships, and lockdowns. Join Platform.sh's success story today!</p>
    </div>
  </a>

  <a href="/posts/unknown/weve-made-changes-to-our-dpa-to-clarify-platformsh-role-under-the-gdpr" 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/weve-made-changes-to-our-dpa-to-clarify-platformsh-role-under-the-gdpr/weve-made-changes-to-our-dpa-to-clarify-platformsh-role-under-the-gdpr.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/weve-made-changes-to-our-dpa-to-clarify-platformsh-role-under-the-gdpr/weve-made-changes-to-our-dpa-to-clarify-platformsh-role-under-the-gdpr.webp" alt="We’ve made changes to our DPA to clarify Platform.sh role under the GDPR" 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, September 1st 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">We’ve made changes to our DPA to clarify Platform.sh role under the GDPR</h3>
      <p className="blog-card-desc">Discover how Platform.sh complies with GDPR, acting as both a data controller and data processor under the European Union's General Data Protection Regulation.</p>
    </div>
  </a>

  <a href="/posts/unknown/were-updating-our-privacy-policy-to-include-event-accommodations" 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/were-updating-our-privacy-policy-to-include-event-accommodations/were-updating-our-privacy-policy-to-include-event-accommodations.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/were-updating-our-privacy-policy-to-include-event-accommodations/were-updating-our-privacy-policy-to-include-event-accommodations.webp" alt="We’re updating our privacy policy to include event accommodations" 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">Friday, August 19th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">We’re updating our privacy policy to include event accommodations</h3>
      <p className="blog-card-desc">Learn about our privacy policy update regarding dietary restrictions and disability accommodations at Platform.sh events.</p>
    </div>
  </a>

  <a href="/posts/unknown/pandemic-caused-spike-in-cybercrime" 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/pandemic-caused-spike-in-cybercrime/pandemic-caused-spike-in-cybercrime.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/pandemic-caused-spike-in-cybercrime/pandemic-caused-spike-in-cybercrime.webp" alt="The pandemic has indeed caused a massive spike in cybercrime" 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, May 26th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The pandemic has indeed caused a massive spike in cybercrime</h3>
      <p className="blog-card-desc">Insights from Joey Stanford, VP of Privacy & Security at Platform.sh, on cybersecurity trends, challenges, and the future of security for modern businesses.</p>
    </div>
  </a>

  <a href="/posts/unknown/infrastructure-metrics-for-all-professional-projects" 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/infrastructure-metrics-for-all-professional-projects/infrastructure-metrics-for-all-professional-projects.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/infrastructure-metrics-for-all-professional-projects/infrastructure-metrics-for-all-professional-projects.webp" alt="Infrastructure Metrics available for all Professional projects" 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, May 3rd 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Infrastructure Metrics available for all Professional projects</h3>
      <p className="blog-card-desc">Gain insight into your application's behavior with observability and metrics on Platform.sh. Monitor CPU, RAM, disk space, and more for informed decisions.</p>
    </div>
  </a>

  <a href="/posts/unknown/greener-hosting-starts-with-transparency" 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/greener-hosting-starts-with-transparency/greener-hosting-starts-with-transparency.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/greener-hosting-starts-with-transparency/greener-hosting-starts-with-transparency.webp" alt="Greener hosting starts with transparency" 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">Friday, April 22nd 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Greener hosting starts with transparency</h3>
      <p className="blog-card-desc">Platform.sh enhances transparency about its carbon footprint. Make informed choices on where to deploy your projects with data on environmental impact.</p>
    </div>
  </a>

  <a href="/posts/unknown/automated-code-updates" 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/automated-code-updates/automated-code-updates.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/automated-code-updates/automated-code-updates.webp" alt="Automated code updates" 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">Friday, April 15th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Automated code updates</h3>
      <p className="blog-card-desc">Simplify updates and security for critical apps. Platform.sh offers automated source operations to keep your apps up to date.</p>
    </div>
  </a>

  <a href="/posts/unknown/split-projects-and-users-across-organizations" 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/split-projects-and-users-across-organizations/split-projects-and-users-across-organizations.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/split-projects-and-users-across-organizations/split-projects-and-users-across-organizations.webp" alt="Split projects and users across multiple organizations" 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">Friday, April 15th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Split projects and users across multiple organizations</h3>
      <p className="blog-card-desc">Platform.sh now allows creating multiple organizations to suit your project, billing, and contributor management needs.</p>
    </div>
  </a>

  <a href="/posts/unknown/go-1-18-released-on-platformsh" 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/go-1-18-released-on-platformsh/go-1-18-released-on-platformsh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/go-1-18-released-on-platformsh/go-1-18-released-on-platformsh.webp" alt="Go 1.18 released on Platform.sh" 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 16th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Go 1.18 released on Platform.sh</h3>
      <p className="blog-card-desc">Discover the new features in Go 1.18, including support for generics, and learn how to upgrade your Go projects on Platform.sh for enhanced functionality.</p>
    </div>
  </a>

  <a href="/posts/unknown/privacy-policy-updates" 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/privacy-policy-updates/privacy-policy-updates.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/privacy-policy-updates/privacy-policy-updates.webp" alt="Privacy Policy updates and subprocessors list change" 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 16th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Privacy Policy updates and subprocessors list change</h3>
      <p className="blog-card-desc">Discover the latest changes in Privacy Policy version 6.0, including UTMs and Law Enforcement Requests guidelines. Learn more at Platform.sh.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-announces-microsoft-azure-support-australian-market" 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/platformsh-announces-microsoft-azure-support-australian-market/platformsh-announces-microsoft-azure-support-australian-market.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-announces-microsoft-azure-support-australian-market/platformsh-announces-microsoft-azure-support-australian-market.webp" alt="Announcing Microsoft Azure Support for Australia" 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">Friday, January 28th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Announcing Microsoft Azure Support for Australia</h3>
      <p className="blog-card-desc">Extending services to the Australian market, offering more choice and local support for web platform development on Microsoft Azure and other cloud providers.</p>
    </div>
  </a>

  <a href="/posts/unknown/managing-multiple-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/managing-multiple-website/managing-multiple-website.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/managing-multiple-website/managing-multiple-website.webp" alt="The secret to managing multiple websites" 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, January 27th 2022</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The secret to managing multiple websites</h3>
      <p className="blog-card-desc">Learn how a unified DevOps strategy can help manage a diverse website portfolio at scale while controlling costs and driving predictability with Platform.sh.</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/unknown/overview-video" 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/overview-video/overview-video.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/overview-video/overview-video.webp" alt="New Platform.sh overview video: a proven, 5-step approach helps explain a complex concept" 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, November 15th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">New Platform.sh overview video: a proven, 5-step approach helps explain a complex concept</h3>
      <p className="blog-card-desc">Discover what Platform.sh does in this 5-step overview video. Clear explanations, no technical jargon. Learn how it can benefit your business. Watch now!</p>
    </div>
  </a>

  <a href="/posts/unknown/creating-problem-solving-partnerships-through-open-innovation" 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/creating-problem-solving-partnerships-through-open-innovation/creating-problem-solving-partnerships-through-open-innovation.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/creating-problem-solving-partnerships-through-open-innovation/creating-problem-solving-partnerships-through-open-innovation.webp" alt="Creating problem-solving partnerships with open innovation" 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, September 8th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Creating problem-solving partnerships with open innovation</h3>
      <p className="blog-card-desc">Learn about open innovation, its challenges, and benefits. Discover how companies collaborate for creative problem-solving and innovation.</p>
    </div>
  </a>

  <a href="/posts/unknown/keeping-afloat-during-flood-of-worker-turnover" 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/keeping-afloat-during-flood-of-worker-turnover/keeping-afloat-during-flood-of-worker-turnover.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/keeping-afloat-during-flood-of-worker-turnover/keeping-afloat-during-flood-of-worker-turnover.webp" alt="Keeping afloat during the flood of worker turnover" 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 19th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Keeping afloat during the flood of worker turnover</h3>
      <p className="blog-card-desc">Discover insights on the talent turnover tsunami, burnout, and remote work strategies. Learn how to win the talent war in today's job market.</p>
    </div>
  </a>

  <a href="/posts/unknown/beginners-guide-to-platformsh" 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/beginners-guide-to-platformsh/beginners-guide-to-platformsh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/beginners-guide-to-platformsh/beginners-guide-to-platformsh.webp" alt="A beginner’s guide to Platform.sh" 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, August 17th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">A beginner’s guide to Platform.sh</h3>
      <p className="blog-card-desc">Beginner's guide to Platform.sh: a complete end-to-end cloud Platform-as-a-Service for development teams. Discover the features and developer experience.</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/building-better-mousetrap-barebones-budget" 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/building-better-mousetrap-barebones-budget/building-better-mousetrap-barebones-budget.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/building-better-mousetrap-barebones-budget/building-better-mousetrap-barebones-budget.webp" alt="Building a better mousetrap on a barebones budget" 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, July 1st 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Building a better mousetrap on a barebones budget</h3>
      <p className="blog-card-desc">Learn from Dan Kildahl's insights on innovating wisely with limited resources in the latest Fleet Club session. Join the conversation at Fleet Club.</p>
    </div>
  </a>

  <a href="/posts/unknown/best-practices-for-engaging-digital-agency" 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/best-practices-for-engaging-digital-agency/best-practices-for-engaging-digital-agency.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/best-practices-for-engaging-digital-agency/best-practices-for-engaging-digital-agency.webp" alt="Best practices for engaging a digital agency" 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, April 26th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Best practices for engaging a digital agency</h3>
      <p className="blog-card-desc">Build a strong digital agency partnership with open communication and trust. Learn top tips from Carl Smith, Bureau of Digital principal.</p>
    </div>
  </a>

  <a href="/posts/unknown/four-reasons-to-build-ecommerce-site-with-modern-paas" 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/four-reasons-to-build-ecommerce-site-with-modern-paas/four-reasons-to-build-ecommerce-site-with-modern-paas.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/four-reasons-to-build-ecommerce-site-with-modern-paas/four-reasons-to-build-ecommerce-site-with-modern-paas.webp" alt="Four reasons to build your ecommerce site with a modern PaaS" 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, April 22nd 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Four reasons to build your ecommerce site with a modern PaaS</h3>
      <p className="blog-card-desc">Discover why SportRx and FREITAG chose Platform.sh for their ecommerce businesses. Higher performance, scalability, stability, and redundancy.</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/core-concepts/https-and-tls-certificates-always-served-fresh" 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/core-concepts/https-and-tls-certificates-always-served-fresh/https-and-tls-certificates-always-served-fresh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/core-concepts/https-and-tls-certificates-always-served-fresh/https-and-tls-certificates-always-served-fresh.webp" alt="HTTPS and TLS certificates: Always served fresh" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`core-concepts` !== '' && (
                      <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">
                        core-concepts
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">HTTPS and TLS certificates: Always served fresh</h3>
      <p className="blog-card-desc">Goodbye to expired certificates! We now auto-renew TLS certificates for your websites, ensuring end-to-end encryption without interruptions.</p>
    </div>
  </a>

  <a href="/posts/unknown/how-digital-agency-adapt-innovates-without-heavy-lifting" 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/how-digital-agency-adapt-innovates-without-heavy-lifting/how-digital-agency-adapt-innovates-without-heavy-lifting.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/how-digital-agency-adapt-innovates-without-heavy-lifting/how-digital-agency-adapt-innovates-without-heavy-lifting.webp" alt="How digital agency Adapt innovates—without heavy-lifting" 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 3rd 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How digital agency Adapt innovates—without heavy-lifting</h3>
      <p className="blog-card-desc">Discover how to optimize websites using Statamic on Laravel with Platform.sh. Flexible, secure, and editor-friendly solutions for developers and editors.</p>
    </div>
  </a>

  <a href="/posts/unknown/lazard-names-platformsh-to-their-t100-index" 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/lazard-names-platformsh-to-their-t100-index/lazard-names-platformsh-to-their-t100-index.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/lazard-names-platformsh-to-their-t100-index/lazard-names-platformsh-to-their-t100-index.webp" alt="Lazard names Platform.sh to their T100 Index" 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, February 1st 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Lazard names Platform.sh to their T100 Index</h3>
      <p className="blog-card-desc">Lazard recognizes Platform.sh as a top European company with disruptive potential. Learn how we enable innovation and flexibility for businesses.</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/frederic-potvin-and-yann-deshayes" 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/frederic-potvin-and-yann-deshayes/frederic-potvin-and-yann-deshayes.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/frederic-potvin-and-yann-deshayes/frederic-potvin-and-yann-deshayes.webp" alt="Platform.sh | Journeys Frederic Potvin and Yann Deshayes" 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, January 19th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh | Journeys Frederic Potvin and Yann Deshayes</h3>
      <p className="blog-card-desc">Stories of two Platform.sh engineers who left and returned, highlighting the company's flexibility, employee support, and commitment to a healthy work culture</p>
    </div>
  </a>

  <a href="/posts/unknown/free-your-developers-the-simple-way-to-rebalance-your-devops-resources" 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/free-your-developers-the-simple-way-to-rebalance-your-devops-resources/free-your-developers-the-simple-way-to-rebalance-your-devops-resources.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/free-your-developers-the-simple-way-to-rebalance-your-devops-resources/free-your-developers-the-simple-way-to-rebalance-your-devops-resources.webp" alt="Free your developers! The simple way to rebalance your DevOps resources" 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, January 14th 2021</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Free your developers! The simple way to rebalance your DevOps resources</h3>
      <p className="blog-card-desc">Discover how Platform-as-a-Service (PaaS) can shift the balance of power from Ops to Dev, giving organizations more time, money, and tools for development.</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/platformsh-joins-gaia-x" 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/platformsh-joins-gaia-x/platformsh-joins-gaia-x.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-joins-gaia-x/platformsh-joins-gaia-x.webp" alt="Platform.sh joins the Gaia-X data infrastructure initiative" 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, December 7th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh joins the Gaia-X data infrastructure initiative</h3>
      <p className="blog-card-desc">Platform.sh partners with Gaia-X, boosting EU data security and processing. Trusted by leading European institutions, we're committed to a secure data future.</p>
    </div>
  </a>

  <a href="/posts/unknown/record-breaking-2020-black-friday-cyber-monday-volumes" 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/record-breaking-2020-black-friday-cyber-monday-volumes/record-breaking-2020-black-friday-cyber-monday-volumes.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/record-breaking-2020-black-friday-cyber-monday-volumes/record-breaking-2020-black-friday-cyber-monday-volumes.webp" alt="Record-breaking 2020 Black Friday volumes" 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, December 7th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Record-breaking 2020 Black Friday volumes</h3>
      <p className="blog-card-desc">Platform.sh helped retailers thrive during the 2020 holiday season with record traffic and order volumes. Learn more about our high-performance architecture.</p>
    </div>
  </a>

  <a href="/posts/unknown/what-the-heck-is-a-cdn" 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-cdn/what-the-heck-is-a-cdn.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/what-the-heck-is-a-cdn/what-the-heck-is-a-cdn.webp" alt="What the heck is . . . a CDN?" 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">Friday, November 27th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">What the heck is . . . a CDN?</h3>
      <p className="blog-card-desc">Ask a non-technical professional what the most challenging part of their job is and you’ll often hear, “Understanding what the heck our developers are talking about.</p>
    </div>
  </a>

  <a href="/posts/unknown/php-80-brings-it-all-together-on-platformsh" 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/php-80-brings-it-all-together-on-platformsh/php-80-brings-it-all-together-on-platformsh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/php-80-brings-it-all-together-on-platformsh/php-80-brings-it-all-together-on-platformsh.webp" alt="PHP 8.0 brings it all together on Platform.sh" 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, November 26th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">PHP 8.0 brings it all together on Platform.sh</h3>
      <p className="blog-card-desc">Discover the new features in PHP 8.0 and learn how to upgrade your Platform.sh projects. Constructor Property Promotion, Attributes, Named Arguments, and more!</p>
    </div>
  </a>

  <a href="/posts/core-concepts/getting-gitops-right" 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/core-concepts/getting-gitops-right/v2blog-100.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/core-concepts/getting-gitops-right/v2blog-100.webp" alt="Getting GitOps right" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`core-concepts` !== '' && (
                      <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">
                        core-concepts
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Getting GitOps right</h3>
      <p className="blog-card-desc">Source code management has never been simpler with GitOps from Platform.sh. We'll help you get started with automating your deployments.</p>
    </div>
  </a>

  <a href="/posts/releases/php-80-feature-focus-constructor-property-promotion" 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-80-feature-focus-constructor-property-promotion/php-80-feature-focus-constructor-property-promotion.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/php-80-feature-focus-constructor-property-promotion/php-80-feature-focus-constructor-property-promotion.webp" alt="PHP 8.0 feature focus: Class constructor property promotion" 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">Thursday, November 5th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">PHP 8.0 feature focus: Class constructor property promotion</h3>
      <p className="blog-card-desc">Discover how PHP 8.0's Constructor Property Promotion feature can streamline your code, reduce verbosity, and make coding faster. Try it on Platform.sh today!</p>
    </div>
  </a>

  <a href="/posts/unknown/php-80-feature-focus-language-tightening" 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/php-80-feature-focus-language-tightening/php-80-feature-focus-language-tightening.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/php-80-feature-focus-language-tightening/php-80-feature-focus-language-tightening.webp" alt="PHP 8.0 feature focus: Language tightenings" 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, October 22nd 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">PHP 8.0 feature focus: Language tightenings</h3>
      <p className="blog-card-desc">Explore PHP 8.0's language changes for safer code. Discover stable sorting, numeric string handling, stricter magic methods, and more on Platform.sh!</p>
    </div>
  </a>

  <a href="/posts/how-it-works/how-do-you-manage-ssh-keys-in-your-organization" 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-it-works/how-do-you-manage-ssh-keys-in-your-organization/how-do-you-manage-ssh-keys-in-your-organization.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/how-do-you-manage-ssh-keys-in-your-organization/how-do-you-manage-ssh-keys-in-your-organization.webp" alt="SSH certificates with Platform.sh" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Wednesday, October 21st 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">SSH certificates with Platform.sh</h3>
      <p className="blog-card-desc">Learn how Platform.sh simplifies provisioning SSH certificates for secure and keyless SSH authentication, enhancing security and making compliance easier.</p>
    </div>
  </a>

  <a href="/posts/unknown/ks-chan" 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/ks-chan/ks-chan.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/ks-chan/ks-chan.webp" alt="Platform.sh | Journeys KS Chan" 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, October 21st 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh | Journeys KS Chan</h3>
      <p className="blog-card-desc">Discover how a Platform.sh engineer found work-life balance while shaping the company's largest department, all while spending time with his family.</p>
    </div>
  </a>

  <a href="/posts/unknown/php-80-feature-focus-quality-of-life-improvements" 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/php-80-feature-focus-quality-of-life-improvements/php-80-feature-focus-quality-of-life-improvements.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/php-80-feature-focus-quality-of-life-improvements/php-80-feature-focus-quality-of-life-improvements.webp" alt="PHP 8.0 feature focus: quality of life improvements" 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, October 14th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">PHP 8.0 feature focus: quality of life improvements</h3>
      <p className="blog-card-desc">Explore PHP 8.0's new string functions, throw expression, and other improvements. Try PHP 8.0 on Platform.sh today!</p>
    </div>
  </a>

  <a href="/posts/unknown/what-the-heck-is-a-container" 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-container/what-the-heck-is-a-container.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/what-the-heck-is-a-container/what-the-heck-is-a-container.webp" alt="CMS architecture: What the heck is . . . containerization?" 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, October 5th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">CMS architecture: What the heck is . . . containerization?</h3>
      <p className="blog-card-desc">Want to better understand containerization? Let Platform.sh walk you through it. Our no-hassle container platform will keep your applications running smoothly.</p>
    </div>
  </a>

  <a href="/posts/releases/php-80-feature-focus-weak-maps" 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-80-feature-focus-weak-maps/php-80-feature-focus-weak-maps.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/php-80-feature-focus-weak-maps/php-80-feature-focus-weak-maps.webp" alt="PHP 8.0 feature focus: Weak maps" 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">Thursday, October 1st 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">PHP 8.0 feature focus: Weak maps</h3>
      <p className="blog-card-desc">Learn how PHP 8.0's Weak Maps simplify memory management by efficiently handling cached objects. Try PHP 8.0 on Platform.sh today!</p>
    </div>
  </a>

  <a href="/posts/unknown/mahdi-mokhtariirani" 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/mahdi-mokhtariirani/mahdi-mokhtariirani.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/mahdi-mokhtariirani/mahdi-mokhtariirani.webp" alt="Platform.sh | Journeys Mahdi Mokhtariirani" 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, September 16th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh | Journeys Mahdi Mokhtariirani</h3>
      <p className="blog-card-desc">Follow Mahdi's journey from Iran to Europe, his experiences at Platform.sh, and how he continues to learn and grow in unfamiliar surroundings.</p>
    </div>
  </a>

  <a href="/posts/unknown/microsoft-azure-west-datacenter" 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/microsoft-azure-west-datacenter/microsoft-azure-west-datacenter.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/microsoft-azure-west-datacenter/microsoft-azure-west-datacenter.webp" alt="Expansion of Microsoft Azure Data Center services" 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, September 8th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Expansion of Microsoft Azure Data Center services</h3>
      <p className="blog-card-desc">Platform.sh expands to Microsoft Azure West US 2, offering agile teams in the West faster access. Learn more about our end-to-end web platform.</p>
    </div>
  </a>

  <a href="/posts/unknown/pre-release-php-8-0-images-now-available" 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/pre-release-php-8-0-images-now-available/pre-release-php-8-0-images-now-available.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/pre-release-php-8-0-images-now-available/pre-release-php-8-0-images-now-available.webp" alt="Pre-release PHP 8.0 images now available" 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, September 3rd 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Pre-release PHP 8.0 images now available</h3>
      <p className="blog-card-desc">Explore PHP 8.0's new features and performance improvements. Try it out early on Platform.sh with a simple configuration change.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/installers-that-dont-suck" 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-it-works/installers-that-dont-suck/installers-that-dont-suck.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/installers-that-dont-suck/installers-that-dont-suck.webp" alt="Installers that don't suck" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Installers that don't suck</h3>
      <p className="blog-card-desc">Learn how to create cloud-friendly web application installers that account for cloud-based environments and optimize the user experience.</p>
    </div>
  </a>

  <a href="/posts/engineering/save-your-drupal-team-hours-and-effort-with-source-operations-and-activity-scripts" 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/engineering/save-your-drupal-team-hours-and-effort-with-source-operations-and-activity-scripts/save-your-drupal-team-hours-and-effort-with-source-operations-and-activity-scripts.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/engineering/save-your-drupal-team-hours-and-effort-with-source-operations-and-activity-scripts/save-your-drupal-team-hours-and-effort-with-source-operations-and-activity-scripts.webp" alt="Source Operations and Activity Scripts for Drupal teams" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`engineering` !== '' && (
                      <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">
                        engineering
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Source Operations and Activity Scripts for Drupal teams</h3>
      <p className="blog-card-desc">Learn how to automate Drupal updates on Platform.sh using Source Operations and Activity Scripts, saving your development team time and effort.</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/connecting-with-the-community-at-drupalcon-global" 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/connecting-with-the-community-at-drupalcon-global/connecting-with-the-community-at-drupalcon-global.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/connecting-with-the-community-at-drupalcon-global/connecting-with-the-community-at-drupalcon-global.webp" alt="Connecting with the community at DrupalCon Global" 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">Friday, July 24th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Connecting with the community at DrupalCon Global</h3>
      <p className="blog-card-desc">Discover our highlights from DrupalCon Global, including our partnership with Lando and booth demos. Stay updated on our Drupal community involvement.</p>
    </div>
  </a>

  <a href="/posts/unknown/sso-for-platformsh-now-available-for-openid-connect-and-google" 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/sso-for-platformsh-now-available-for-openid-connect-and-google/sso-for-platformsh-now-available-for-openid-connect-and-google.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/sso-for-platformsh-now-available-for-openid-connect-and-google/sso-for-platformsh-now-available-for-openid-connect-and-google.webp" alt="SSO available for OpenID Connect and Google" 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, June 25th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">SSO available for OpenID Connect and Google</h3>
      <p className="blog-card-desc">Enhance security with Single Sign-On for OpenID Connect and Google. Protect your projects with two-factor authentication and password rotation.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-partner-eZ-Systems-announces-name-change-to-ibexa" 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/platformsh-partner-eZ-Systems-announces-name-change-to-ibexa/platformsh-partner-eZ-Systems-announces-name-change-to-ibexa.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-partner-eZ-Systems-announces-name-change-to-ibexa/platformsh-partner-eZ-Systems-announces-name-change-to-ibexa.webp" alt="Platform.sh partner eZ Systems announces name change to Ibexa" 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, June 23rd 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh partner eZ Systems announces name change to Ibexa</h3>
      <p className="blog-card-desc">After twenty years as a successful Web Content Management vendor, eZ Systems last month announced the launch of its new corporate brand identity and name: Ibexa</p>
    </div>
  </a>

  <a href="/posts/unknown/integrations-management-through-platform-sh-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/integrations-management-through-platform-sh-console/integrations-management-through-platform-sh-console.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/integrations-management-through-platform-sh-console/integrations-management-through-platform-sh-console.webp" alt="View your external integrations through the 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">Thursday, June 18th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">View your external integrations through the console</h3>
      <p className="blog-card-desc">View, create, update, and debug your Platform.sh project's external integrations directly from the console for increased control.</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/improve-visibility-over-your-external-integrations" 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/improve-visibility-over-your-external-integrations/improve-visibility-over-your-external-integrations.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/improve-visibility-over-your-external-integrations/improve-visibility-over-your-external-integrations.webp" alt="Improve visibility over your external integrations" 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, May 12th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Improve visibility over your external integrations</h3>
      <p className="blog-card-desc">Stay updated with activities from your integrations in the API or CLI. Easily validate, test, and troubleshoot external integrations with Platform.sh.</p>
    </div>
  </a>

  <a href="/posts/unknown/improving-access-and-security-for-your-projects" 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/improving-access-and-security-for-your-projects/improving-access-and-security-for-your-projects.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/improving-access-and-security-for-your-projects/improving-access-and-security-for-your-projects.webp" alt="Improving access and security for your projects" 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, April 20th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Improving access and security for your projects</h3>
      <p className="blog-card-desc">Improved user security measures, including strong password policies and Single Sign-On (SSO) capabilities for enhanced authentication and mitigation control.</p>
    </div>
  </a>

  <a href="/posts/unknown/supporting-drupal-covid-19" 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/supporting-drupal-covid-19/supporting-drupal-covid-19.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/supporting-drupal-covid-19/supporting-drupal-covid-19.webp" alt="Supporting the Drupal Association through COVID-19" 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">Friday, April 17th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Supporting the Drupal Association through COVID-19</h3>
      <p className="blog-card-desc">Platform.sh remains committed to DrupalCon, Drupal Association, and COVID-19 response initiatives during these challenging times.</p>
    </div>
  </a>

  <a href="/posts/unknown/taking-your-application-to-saas-a-business-decision" 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/taking-your-application-to-saas-a-business-decision/taking-your-application-to-saas-a-business-decision.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/taking-your-application-to-saas-a-business-decision/taking-your-application-to-saas-a-business-decision.webp" alt="High-performance for cloud application development" 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">Friday, April 17th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">High-performance for cloud application development</h3>
      <p className="blog-card-desc">Learn why some applications make it to a \$2 billion SaaS acquisition while others don't. Explore the path to SaaS success with Platform.sh.</p>
    </div>
  </a>

  <a href="/posts/unknown/new-enterprise-pricing-tiers-fleetops" 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-enterprise-pricing-tiers-fleetops/new-enterprise-pricing-tiers-fleetops.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/new-enterprise-pricing-tiers-fleetops/new-enterprise-pricing-tiers-fleetops.webp" alt="New pricing tiers make FleetOps accessible" 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, April 15th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">New pricing tiers make FleetOps accessible</h3>
      <p className="blog-card-desc">New product tiers offering features for managing multiple websites. Explore Platform.sh's Elite tier with Technical Account Management, higher SLAs, and more.</p>
    </div>
  </a>

  <a href="/posts/unknown/the-monolith-myth-why-tech-suites-are-not-solution" 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/the-monolith-myth-why-tech-suites-are-not-solution/the-monolith-myth-why-tech-suites-are-not-solution.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/the-monolith-myth-why-tech-suites-are-not-solution/the-monolith-myth-why-tech-suites-are-not-solution.webp" alt="A monolith myth: All-in-one tech suites aren't the solution" 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, April 13th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">A monolith myth: All-in-one tech suites aren't the solution</h3>
      <p className="blog-card-desc">Explore the reality behind all-in-one tech suites and why they often fail to meet the diverse needs of businesses</p>
    </div>
  </a>

  <a href="/posts/unknown/a-10x-increase-in-enterprise-valuation-over-two-years-a-saas-case-study" 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/a-10x-increase-in-enterprise-valuation-over-two-years-a-saas-case-study/a-10x-increase-in-enterprise-valuation-over-two-years-a-saas-case-study.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/a-10x-increase-in-enterprise-valuation-over-two-years-a-saas-case-study/a-10x-increase-in-enterprise-valuation-over-two-years-a-saas-case-study.webp" alt="SaaS case study: 10x increase in enterprise valuation" 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, April 7th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">SaaS case study: 10x increase in enterprise valuation</h3>
      <p className="blog-card-desc">Learn how an ecommerce company increased valuation via a Platform.sh cloud transition. Explore SaaS benefits, business value, and insights for your model.</p>
    </div>
  </a>

  <a href="/posts/unknown/the-suddenly-online-conference" 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/the-suddenly-online-conference/the-suddenly-online-conference.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/the-suddenly-online-conference/the-suddenly-online-conference.webp" alt="The suddenly online conference: an Indy Cloud Conf case study" 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, April 2nd 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The suddenly online conference: an Indy Cloud Conf case study</h3>
      <p className="blog-card-desc">Explore the challenges and successes of transitioning from in-person conferences to remote events during the COVID-19 pandemic.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-covid-19-response" 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/platformsh-covid-19-response/platformsh-covid-19-response.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-covid-19-response/platformsh-covid-19-response.webp" alt="A note to Platform.sh customers about COVID-19 preparedness" 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, March 17th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">A note to Platform.sh customers about COVID-19 preparedness</h3>
      <p className="blog-card-desc">Platform.sh remains fully operational during the COVID-19 pandemic. Learn about our measures to ensure business continuity and employee safety.</p>
    </div>
  </a>

  <a href="/posts/unknown/survival-guide-for-efficient-remote-work" 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/survival-guide-for-efficient-remote-work/survival-guide-for-efficient-remote-work.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/survival-guide-for-efficient-remote-work/survival-guide-for-efficient-remote-work.webp" alt="Voilà! You’re now a distributed workforce" 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">Friday, March 13th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Voilà! You’re now a distributed workforce</h3>
      <p className="blog-card-desc">A Survival Guide for managers who need to drive a company that became remote overnight due to COVID-19</p>
    </div>
  </a>

  <a href="/posts/releases/deploy-strapi-on-platformsh" 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/deploy-strapi-on-platformsh/deploy-strapi-on-platformsh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/deploy-strapi-on-platformsh/deploy-strapi-on-platformsh.webp" alt="Platform.sh–deploying the future of content with one click" 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">Tuesday, March 3rd 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh–deploying the future of content with one click</h3>
      <p className="blog-card-desc">Platform.sh and Strapi empower developers with a headless CMS solution for streamlined digital experiences. Deploy Strapi instantly. Learn more</p>
    </div>
  </a>

  <a href="/posts/unknown/out-of-the-lab-Node.js-12-features-graduate-from-experimental-status" 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/out-of-the-lab-Node.js-12-features-graduate-from-experimental-status/out-of-the-lab-Node.js-12-features-graduate-from-experimental-status.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/out-of-the-lab-Node.js-12-features-graduate-from-experimental-status/out-of-the-lab-Node.js-12-features-graduate-from-experimental-status.webp" alt="Node.js 12 features graduate from experimental status" 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, January 14th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Node.js 12 features graduate from experimental status</h3>
      <p className="blog-card-desc">Discover the latest Node.js 12 LTS release with performance optimizations and new features. Upgrade your applications seamlessly with Platform.sh. Learn more!</p>
    </div>
  </a>

  <a href="/posts/unknown/what-is-new-with-jakarta-nosql-part-II" 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-is-new-with-jakarta-nosql-part-II/what-is-new-with-jakarta-nosql-part-II.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/what-is-new-with-jakarta-nosql-part-II/what-is-new-with-jakarta-nosql-part-II.webp" alt="What’s new with Jakarta NoSQL? (Part II)" 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, January 8th 2020</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">What’s new with Jakarta NoSQL? (Part II)</h3>
      <p className="blog-card-desc">Discover cloud-native with Jakarta EE, best practices, and deploying applications with Jakarta EE NoSQL. Move to the cloud with Platform.sh.</p>
    </div>
  </a>

  <a href="/posts/unknown/sharpen-your-tusks-it-is-time-for-python-3.8" 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/sharpen-your-tusks-it-is-time-for-python-3.8/sharpen-your-tusks-it-is-time-for-python-3.8.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/sharpen-your-tusks-it-is-time-for-python-3.8/sharpen-your-tusks-it-is-time-for-python-3.8.webp" alt="Sharpen your tusks: it's time for Python 3.8" 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 18th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Sharpen your tusks: it's time for Python 3.8</h3>
      <p className="blog-card-desc">Discover the latest features in Python 3.8, including the walrus operator, self-documenting f-strings, and more. Upgrade your Python applications</p>
    </div>
  </a>

  <a href="/posts/unknown/php-7.4-is-just-a-git-push-away" 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/php-7.4-is-just-a-git-push-away/php-7.4-is-just-a-git-push-away.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/php-7.4-is-just-a-git-push-away/php-7.4-is-just-a-git-push-away.webp" alt="PHP 7.4 is just a git push away" 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, November 28th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">PHP 7.4 is just a git push away</h3>
      <p className="blog-card-desc">The latest features in PHP 7.4. Learn about typed properties, short-lambda syntax, null coalesce assignment, and opcache preloading.</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/business/website-fleet" 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/business/website-fleet/website-fleet-blog.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/business/website-fleet/website-fleet-blog.webp" alt="Website fleet management: challenges and opportunities" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`business` !== '' && (
                      <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">
                        business
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Website fleet management: challenges and opportunities</h3>
      <p className="blog-card-desc">A solution to manage website fleets, automate code updates, and streamline operations for organizations with numerous websites and applications.</p>
    </div>
  </a>

  <a href="/posts/engineering/three-ways-to-manage-a-fleet" 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/engineering/three-ways-to-manage-a-fleet/Blog_Fleet.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/engineering/three-ways-to-manage-a-fleet/Blog_Fleet.webp" alt="Three ways to manage a website fleet" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`engineering` !== '' && (
                      <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">
                        engineering
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Three ways to manage a website fleet</h3>
      <p className="blog-card-desc">Efficient multi-website management using Source Operations on Platform.sh. Automate updates, builds, and deployments for a large number of websites with ease.</p>
    </div>
  </a>

  <a href="/posts/unknown/strong-customer-authentication" 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/strong-customer-authentication/strong-customer-authentication.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/strong-customer-authentication/strong-customer-authentication.webp" alt="Strong Customer Authentication will be required for European credit and bank card payments" 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, September 26th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Strong Customer Authentication will be required for European credit and bank card payments</h3>
      <p className="blog-card-desc">Get ready for Strong Customer Authentication (SCA) in Europe. Ensure your Platform.sh account complies with new credit card payment security regulations.</p>
    </div>
  </a>

  <a href="/posts/unknown/security-updates-for-php-rolling-out-now" 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/security-updates-for-php-rolling-out-now/security-updates-for-php-rolling-out-now.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/security-updates-for-php-rolling-out-now/security-updates-for-php-rolling-out-now.webp" alt="Security updates for PHP: rolling out now" 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, September 11th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Security updates for PHP: rolling out now</h3>
      <p className="blog-card-desc">Stay secure with the latest PHP updates. Learn how Platform.sh ensures your protection with automatic upgrades. No action needed on your part.</p>
    </div>
  </a>

  <a href="/posts/unknown/go-release-1.13-on-Platform.sh" 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/go-release-1.13-on-Platform.sh/go-release-1.13-on-Platform.sh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/go-release-1.13-on-Platform.sh/go-release-1.13-on-Platform.sh.webp" alt="New: Go release 1.13 on Platform.sh" 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, September 4th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">New: Go release 1.13 on Platform.sh</h3>
      <p className="blog-card-desc">Upgrade your Go projects on Platform.sh to version 1.13, featuring improvements like Go Modules, enhanced number literal support, and more. Try it now!</p>
    </div>
  </a>

  <a href="/posts/unknown/try-out-the-future-of-php-on-platform.sh-today" 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/try-out-the-future-of-php-on-platform.sh-today/try-out-the-future-of-php-on-platform.sh-today.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/try-out-the-future-of-php-on-platform.sh-today/try-out-the-future-of-php-on-platform.sh-today.webp" alt="PHP 7.4 is here: Try out the future of PHP on Platform.sh today!" 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, August 27th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">PHP 7.4 is here: Try out the future of PHP on Platform.sh today!</h3>
      <p className="blog-card-desc">Explore the new features in PHP 7.4 and learn how to deploy pre-release versions on Platform.sh to test and prepare your project for the official release.</p>
    </div>
  </a>

  <a href="/posts/unknown/microservices-in-the-cloud-part-two" 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/microservices-in-the-cloud-part-two/microservices-in-the-cloud-part-two.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/microservices-in-the-cloud-part-two/microservices-in-the-cloud-part-two.webp" alt="Microservices in the cloud, part two" 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">Friday, August 23rd 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Microservices in the cloud, part two</h3>
      <p className="blog-card-desc">Discover microservices, clean code, SOLID principles, and more. Explore Speaker, Session, Conference services with Eclipse MicroProfile.</p>
    </div>
  </a>

  <a href="/posts/unknown/microservices-in-the-cloud-part-one" 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/microservices-in-the-cloud-part-one/microservices-in-the-cloud-part-one.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/microservices-in-the-cloud-part-one/microservices-in-the-cloud-part-one.webp" alt="Microservices in the cloud, part one" 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, August 13th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Microservices in the cloud, part one</h3>
      <p className="blog-card-desc">Microservices are a software architecture, where the systems are a collection of several independent services. Each service has a specific b</p>
    </div>
  </a>

  <a href="/posts/unknown/lisp" 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/lisp/blog-lisp-blog.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/lisp/blog-lisp-blog.webp" alt="We are happy, relieved and somewhat amused to announce the availability of Common Lisp on Platform.sh" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`lisp` !== '' && (
                      <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">
                        lisp
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">We are happy, relieved and somewhat amused to announce the availability of Common Lisp on Platform.sh</h3>
      <p className="blog-card-desc">Discover the history and uniqueness of Lisp, a programming language often called 'the path not taken,' and learn how to deploy a Lisp web applications.</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/jakarta-ee-generation-iv-a-new-hope" 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/jakarta-ee-generation-iv-a-new-hope/jakarta-ee-generation-iv-a-new-hope.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/jakarta-ee-generation-iv-a-new-hope/jakarta-ee-generation-iv-a-new-hope.webp" alt="Jakarta EE: Generation IV - a new hope" 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 30th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Jakarta EE: Generation IV - a new hope</h3>
      <p className="blog-card-desc">Explore Jakarta EE & MongoDB on Platform.sh. Build enterprise apps with Java & NoSQL. Easy deployment with our tutorial.</p>
    </div>
  </a>

  <a href="/posts/unknown/version-will-be-required-in-type-what-it-means-for-your-projects" 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="Version will be required in type: what it means for your projects" 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, July 22nd 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Version will be required in type: what it means for your projects</h3>
      <p className="blog-card-desc">Important changes to Platform.sh configuration requirements. Learn how including versions in your configurations impacts your projects.</p>
    </div>
  </a>

  <a href="/posts/unknown/eclipse-microprofiles-gain-agility-release-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/eclipse-microprofiles-gain-agility-release-faster/eclipse-microprofiles-gain-agility-release-faster.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/eclipse-microprofiles-gain-agility-release-faster/eclipse-microprofiles-gain-agility-release-faster.webp" alt="Eclipse MicroProfiles: gain agility, release faster" 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, July 15th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Eclipse MicroProfiles: gain agility, release faster</h3>
      <p className="blog-card-desc">Explore how Eclipse MicroProfile optimizes Enterprise Java for microservices architecture. Learn about Java frameworks and Platform.sh for cloud deployment.</p>
    </div>
  </a>

  <a href="/posts/unknown/web-dev-plus-IT-unique-roles-equal-partners-in-application-success" 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/web-dev-plus-IT-unique-roles-equal-partners-in-application-success/web-dev-plus-IT-unique-roles-equal-partners-in-application-success.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/web-dev-plus-IT-unique-roles-equal-partners-in-application-success/web-dev-plus-IT-unique-roles-equal-partners-in-application-success.webp" alt="Web dev + IT: unique roles, equal partners in app success" 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, June 24th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Web dev + IT: unique roles, equal partners in app success</h3>
      <p className="blog-card-desc">Platform.sh enables web development teams to work autonomously without the need for IT assistance, with a focus on governance, security, and compliance.</p>
    </div>
  </a>

  <a href="/posts/unknown/Spring-MVC-and-MongoDB-a-match-made-in-Platform.sh-heaven" 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/Spring-MVC-and-MongoDB-a-match-made-in-Platform.sh-heaven/Spring-MVC-and-MongoDB-a-match-made-in-Platform.sh-heaven.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/Spring-MVC-and-MongoDB-a-match-made-in-Platform.sh-heaven/Spring-MVC-and-MongoDB-a-match-made-in-Platform.sh-heaven.webp" alt="Spring MVC and MongoDB: a match made in Platform.sh heaven" 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 19th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Spring MVC and MongoDB: a match made in Platform.sh heaven</h3>
      <p className="blog-card-desc">Learn how to effortlessly integrate Spring MVC with MongoDB on Platform.sh. Create stand-alone, production-grade applications with ease.</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>

  <a href="/posts/unknown/java-hello-world-at-platform.sh" 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/java-hello-world-at-platform.sh/java-hello-world-at-platform.sh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/java-hello-world-at-platform.sh/java-hello-world-at-platform.sh.webp" alt="Java: Hello, World! at Platform.sh" 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, June 6th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Java: Hello, World! at Platform.sh</h3>
      <p className="blog-card-desc">Discover how to deploy Java applications on Platform.sh. Learn about Spring Boot, MySQL integration, and continuous deployment for Java apps.</p>
    </div>
  </a>

  <a href="/posts/unknown/apache-kafka-support" 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/apache-kafka-support/apache-kafka-support.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/apache-kafka-support/apache-kafka-support.webp" alt="Apache Kafka now available" 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 5th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Apache Kafka now available</h3>
      <p className="blog-card-desc">Discover the power of Apache Kafka for real-time streaming applications and data pipelines. Get started with Kafka on Platform.sh. No servers to configure.</p>
    </div>
  </a>

  <a href="/posts/unknown/new-german-region" 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-german-region/new-german-region.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/new-german-region/new-german-region.webp" alt="New Germany region: more speed, more capability, lower cost" 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 22nd 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">New Germany region: more speed, more capability, lower cost</h3>
      <p className="blog-card-desc">Discover Platform.sh Enterprise in Germany. Get more speed, capability, and compliance for your applications with strict data control.</p>
    </div>
  </a>

  <a href="/posts/unknown/it-worked-in-staging" 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/it-worked-in-staging/it-worked-in-staging.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/it-worked-in-staging/it-worked-in-staging.webp" alt="Learning to trust the machines and the process in DevOps" 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, April 25th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Learning to trust the machines and the process in DevOps</h3>
      <p className="blog-card-desc">Platform.sh enables seamless collaboration between development and operations teams, leading to predictable and reliable deployments for your applications.</p>
    </div>
  </a>

  <a href="/posts/unknown/shiny-new-platformsh-web-management-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/shiny-new-platformsh-web-management-console/shiny-new-platformsh-web-management-console.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/shiny-new-platformsh-web-management-console/shiny-new-platformsh-web-management-console.webp" alt="Shiny, new Platform.sh management 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">Thursday, April 11th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Shiny, new Platform.sh management console</h3>
      <p className="blog-card-desc">Explore the new and improved Platform.sh management console, built for better usability and visualization. Try it now and share your feedback!</p>
    </div>
  </a>

  <a href="/posts/unknown/adobe-summit-2019" 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/adobe-summit-2019/adobe-summit-2019.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/adobe-summit-2019/adobe-summit-2019.webp" alt="Adobe Summit 2019: take-aways" 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, April 1st 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Adobe Summit 2019: take-aways</h3>
      <p className="blog-card-desc">Discover key announcements from the Adobe Summit 2019, including Magento integration and Adobe Experience Cloud.</p>
    </div>
  </a>

  <a href="/posts/unknown/four-days-four-languages-four-frameworks-day-3-gatsbyjs-the-reactbased-static-site-generator" 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/four-days-four-languages-four-frameworks-day-3-gatsbyjs-the-reactbased-static-site-generator/four-days-four-languages-four-frameworks-day-3-gatsbyjs-the-reactbased-static-site-generator.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/four-days-four-languages-four-frameworks-day-3-gatsbyjs-the-reactbased-static-site-generator/four-days-four-languages-four-frameworks-day-3-gatsbyjs-the-reactbased-static-site-generator.webp" alt="4 days, 4 languages, 4 frameworks, Day 3: GatsbyJS" 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, February 28th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">4 days, 4 languages, 4 frameworks, Day 3: GatsbyJS</h3>
      <p className="blog-card-desc">Explore how to run GatsbyJS, a Progressive Web App (PWA), on Platform.sh. Learn about JAMstack architecture and deploy your Gatsby site easily.</p>
    </div>
  </a>

  <a href="/posts/unknown/four-days-four-languages-four-frameworks-day-2-running-hugo" 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/four-days-four-languages-four-frameworks-day-2-running-hugo/four-days-four-languages-four-frameworks-day-2-running-hugo.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/four-days-four-languages-four-frameworks-day-2-running-hugo/four-days-four-languages-four-frameworks-day-2-running-hugo.webp" alt="4 days, 4 languages, 4 frameworks, Day 2: Running Hugo" 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 27th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">4 days, 4 languages, 4 frameworks, Day 2: Running Hugo</h3>
      <p className="blog-card-desc">Learn how to build a static site with Hugo on Platform.sh. Hugo is a fast and light static site generator that's easy to use with Platform.sh.</p>
    </div>
  </a>

  <a href="/posts/unknown/four-days-four-languages-four-frameworks-on-platformsh" 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/four-days-four-languages-four-frameworks-on-platformsh/four-days-four-languages-four-frameworks-on-platformsh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/four-days-four-languages-four-frameworks-on-platformsh/four-days-four-languages-four-frameworks-on-platformsh.webp" alt="Four days, four languages, four frameworks on Platform.sh" 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, February 26th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Four days, four languages, four frameworks on Platform.sh</h3>
      <p className="blog-card-desc">Learn how to run Brightspot CMS, a Java-based content management system, on Platform.sh with Apache Tomcat, MySQL, and Solr. Deploy with ease</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-full-speed-ahead-into-2019" 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/platformsh-full-speed-ahead-into-2019/platformsh-full-speed-ahead-into-2019.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-full-speed-ahead-into-2019/platformsh-full-speed-ahead-into-2019.webp" alt="Platform.sh full speed ahead into 2019" 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, January 29th 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh full speed ahead into 2019</h3>
      <p className="blog-card-desc">Discover Platform.sh's achievements in 2018 and its goals for 2019. From customer success to robust products, see what's in store for the future.</p>
    </div>
  </a>

  <a href="/posts/unknown/open-source-software-roi-for-your-organization" 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/open-source-software-roi-for-your-organization/open-source-software-roi-for-your-organization.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/open-source-software-roi-for-your-organization/open-source-software-roi-for-your-organization.webp" alt="Open source software ROI for your organization" 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, January 2nd 2019</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Open source software ROI for your organization</h3>
      <p className="blog-card-desc">The benefits of contributing to open-source software and how it can enhance your organization, attract top developers, and improve your software quality.</p>
    </div>
  </a>

  <a href="/posts/unknown/give-the-gift-of-ruby-this-season" 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/give-the-gift-of-ruby-this-season/give-the-gift-of-ruby-this-season.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/give-the-gift-of-ruby-this-season/give-the-gift-of-ruby-this-season.webp" alt="Give the gift of Ruby this season" 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, December 18th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Give the gift of Ruby this season</h3>
      <p className="blog-card-desc">Discover the new features in Ruby 2.5 and how to easily upgrade your Ruby apps to the latest version with Platform.sh. Enjoy improved performance and syntax.</p>
    </div>
  </a>

  <a href="/posts/releases/deploy-with-php-73-this-friday-er-thursday" 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/deploy-with-php-73-this-friday-er-thursday/deploy-with-php-73-this-friday-er-thursday.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/deploy-with-php-73-this-friday-er-thursday/deploy-with-php-73-this-friday-er-thursday.webp" alt="Deploy with PHP 7.3 this Friday, er, Thursday" 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">Thursday, December 6th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploy with PHP 7.3 this Friday, er, Thursday</h3>
      <p className="blog-card-desc">Platform.sh welcomes PHP 7.3! Explore the latest features and performance improvements. Upgrade your application with a simple YAML tweak.</p>
    </div>
  </a>

  <a href="/posts/unknown/update-to-our-privacy-policy" 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="Update to our Privacy Policy" 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, November 19th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Update to our Privacy Policy</h3>
      <p className="blog-card-desc">The latest updates to our Privacy Policy, version 2.1, including grammar fixes, GDPR compliance, and a toll-free contact number for California citizens.</p>
    </div>
  </a>

  <a href="/posts/unknown/our-black-friday-gift-10000-cpus-overnight-without-downtime" 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/our-black-friday-gift-10000-cpus-overnight-without-downtime/our-black-friday-gift-10000-cpus-overnight-without-downtime.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/our-black-friday-gift-10000-cpus-overnight-without-downtime/our-black-friday-gift-10000-cpus-overnight-without-downtime.webp" alt="Our Black Friday gift: 10,000 CPUs without downtime" 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">Friday, November 16th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Our Black Friday gift: 10,000 CPUs without downtime</h3>
      <p className="blog-card-desc">Prepare your ecommerce site for Black Friday seamlessly with Platform.sh. Add capacity, handle high traffic, and ensure performance without downtime.</p>
    </div>
  </a>

  <a href="/posts/unknown/good-morning-australia-were-back-in-business" 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/good-morning-australia-were-back-in-business/good-morning-australia-were-back-in-business.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/good-morning-australia-were-back-in-business/good-morning-australia-were-back-in-business.webp" alt="Good morning, Australia: we’re back in business" 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, November 15th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Good morning, Australia: we’re back in business</h3>
      <p className="blog-card-desc">Reflecting on Platform.sh's first year in Australia. Improved uptime, support, pricing, and plans for a better experience. Learn how we can help you.</p>
    </div>
  </a>

  <a href="/posts/unknown/why-you-should-care-about-wechat-before-its-too-late" 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/why-you-should-care-about-wechat-before-its-too-late/why-you-should-care-about-wechat-before-its-too-late.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/why-you-should-care-about-wechat-before-its-too-late/why-you-should-care-about-wechat-before-its-too-late.webp" alt="Why you should care about WeChat before it's too late!" 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, October 31st 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Why you should care about WeChat before it's too late!</h3>
      <p className="blog-card-desc">Learn about WeChat, China's super-app, and discover strategies for reaching its vast user base. WeChat's influence on mobile commerce and marketing.</p>
    </div>
  </a>

  <a href="/posts/releases/golang-forth-and-deploy" 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/golang-forth-and-deploy/golang-forth-and-deploy.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/golang-forth-and-deploy/golang-forth-and-deploy.webp" alt="Go[lang] forth and deploy" 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">Monday, October 29th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Go\[lang] forth and deploy</h3>
      <p className="blog-card-desc">Discover the full support for Go 1.11 on Platform.sh. No more GOPATH required. Easy setup and deployment for Go applications with Go modules and Platform.sh.</p>
    </div>
  </a>

  <a href="/posts/unknown/were-improving-our-communications-tools-at-platformsh" 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="We're improving our communications tools at Platform.sh" 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">Friday, October 26th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">We're improving our communications tools at Platform.sh</h3>
      <p className="blog-card-desc">We value your privacy. Learn about our email management system, Marketo, and how to change your opt-in status.</p>
    </div>
  </a>

  <a href="/posts/releases/deploy-your-python-37-code-to-the-moon" 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/deploy-your-python-37-code-to-the-moon/deploy-your-python-37-code-to-the-moon.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/deploy-your-python-37-code-to-the-moon/deploy-your-python-37-code-to-the-moon.webp" alt="Deploy your Python 3.7 code to the Moon" 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 5th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploy your Python 3.7 code to the Moon</h3>
      <p className="blog-card-desc">Platform.sh now supports Python 3.7. Explore the latest features and enhancements. Update your .platform.app.yaml file and enjoy Python 3.7!</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-wins-2018-stratus-award-for-cloud-computing" 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/platformsh-wins-2018-stratus-award-for-cloud-computing/platformsh-wins-2018-stratus-award-for-cloud-computing.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-wins-2018-stratus-award-for-cloud-computing/platformsh-wins-2018-stratus-award-for-cloud-computing.webp" alt="Platform.sh Wins 2018 Stratus Award for Cloud Computing" 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 30th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh Wins 2018 Stratus Award for Cloud Computing</h3>
      <p className="blog-card-desc">Platform.sh wins 2018 Stratus Award for Cloud Computing in the Platform-as-a-Service category by Business Intelligence Group.</p>
    </div>
  </a>

  <a href="/posts/unknown/of-cicadas-and-cron-jobs" 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/of-cicadas-and-cron-jobs/of-cicadas-and-cron-jobs.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/of-cicadas-and-cron-jobs/of-cicadas-and-cron-jobs.webp" alt="Of Cicadas and cron jobs" 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, August 21st 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Of Cicadas and cron jobs</h3>
      <p className="blog-card-desc">Discover how cicadas and prime numbers can teach us about optimizing web development tasks and avoiding conflicts in cron jobs for smoother website performance.</p>
    </div>
  </a>

  <a href="/posts/unknown/its-july-2018-do-you-know-what-your-php-is" 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/its-july-2018-do-you-know-what-your-php-is/its-july-2018-do-you-know-what-your-php-is.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/its-july-2018-do-you-know-what-your-php-is/its-july-2018-do-you-know-what-your-php-is.webp" alt="It's July 2018, do you know what your PHP is?" 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 3rd 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">It's July 2018, do you know what your PHP is?</h3>
      <p className="blog-card-desc">Discover the benefits of upgrading to PHP 7, including better performance, enhanced security, and new functionality.</p>
    </div>
  </a>

  <a href="/posts/unknown/some-gifts-for-the-json-fans" 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/some-gifts-for-the-json-fans/some-gifts-for-the-json-fans.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/some-gifts-for-the-json-fans/some-gifts-for-the-json-fans.webp" alt="Some gifts for the JSON fans" 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, June 28th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Some gifts for the JSON fans</h3>
      <p className="blog-card-desc">Platform.sh now supports the latest MongoDB versions and Node.js version 10. Upgrade seamlessly to enjoy new features and stability for your applications.</p>
    </div>
  </a>

  <a href="/posts/unknown/your-guide-to-gdpr-compliance-training-your-employees" 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/your-guide-to-gdpr-compliance-training-your-employees/your-guide-to-gdpr-compliance-training-your-employees.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/your-guide-to-gdpr-compliance-training-your-employees/your-guide-to-gdpr-compliance-training-your-employees.webp" alt="Your Guide to GDPR Compliance: Training your employees" 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">Friday, June 8th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your Guide to GDPR Compliance: Training your employees</h3>
      <p className="blog-card-desc">Discover the importance of GDPR staff training for data protection and how it can safeguard your organization. Ensure GDPR compliance with informed employees.</p>
    </div>
  </a>

  <a href="/posts/unknown/the-github-acquisition-its-all-about-cloud-for-microsoft" 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/the-github-acquisition-its-all-about-cloud-for-microsoft/the-github-acquisition-its-all-about-cloud-for-microsoft.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/the-github-acquisition-its-all-about-cloud-for-microsoft/the-github-acquisition-its-all-about-cloud-for-microsoft.webp" alt="The Github acquisition: it's all about cloud for Microsoft" 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, June 5th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The Github acquisition: it's all about cloud for Microsoft</h3>
      <p className="blog-card-desc">Explore how Microsoft's acquisition of GitHub aligns with its cloud strategy and the emerging paradigm of GitOps for application deployment to the cloud.</p>
    </div>
  </a>

  <a href="/posts/unknown/your-guide-to-gdpr-compliance-transfers-of-personal-data-to-third-countries" 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/your-guide-to-gdpr-compliance-transfers-of-personal-data-to-third-countries/your-guide-to-gdpr-compliance-transfers-of-personal-data-to-third-countries.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/your-guide-to-gdpr-compliance-transfers-of-personal-data-to-third-countries/your-guide-to-gdpr-compliance-transfers-of-personal-data-to-third-countries.webp" alt="Your Guide to GDPR Compliance: Transfers of personal data to third countries" 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 30th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your Guide to GDPR Compliance: Transfers of personal data to third countries</h3>
      <p className="blog-card-desc">International personal data transfers under GDPR and the conditions for such transfers. Ensure your organization complies with data protection rules.</p>
    </div>
  </a>

  <a href="/posts/unknown/your-guide-to-gdpr-compliance-data-protection-impact-assessment-and-security-measures-for-processing-data" 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/your-guide-to-gdpr-compliance-data-protection-impact-assessment-and-security-measures-for-processing-data/your-guide-to-gdpr-compliance-data-protection-impact-assessment-and-security-measures-for-processing-data.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/your-guide-to-gdpr-compliance-data-protection-impact-assessment-and-security-measures-for-processing-data/your-guide-to-gdpr-compliance-data-protection-impact-assessment-and-security-measures-for-processing-data.webp" alt="Your Guide to GDPR Compliance: Data protection impact assessment and security measures for processing data" 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">Friday, May 25th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your Guide to GDPR Compliance: Data protection impact assessment and security measures for processing data</h3>
      <p className="blog-card-desc">Discover how the GDPR's Data Protection Impact Assessment (DPIA) can help you identify and minimize privacy risks, build trust, and achieve compliance.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-raises-34m-to-bring-speed-and-confidence-to-enterprise-cloud-deployments" 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="Platform.sh raises \$34M in series C funding" 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 23rd 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh raises \$34M in series C funding</h3>
      <p className="blog-card-desc">Platform.sh secures \$34M in Series C funding to accelerate growth and support customers in North America. Simplify cloud infrastructures with Platform.sh.</p>
    </div>
  </a>

  <a href="/posts/unknown/your-guide-to-gdpr-compliance-data-subject-rights" 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/your-guide-to-gdpr-compliance-data-subject-rights/your-guide-to-gdpr-compliance-data-subject-rights.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/your-guide-to-gdpr-compliance-data-subject-rights/your-guide-to-gdpr-compliance-data-subject-rights.webp" alt="Your Guide to GDPR Compliance: Data subject rights" 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 23rd 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your Guide to GDPR Compliance: Data subject rights</h3>
      <p className="blog-card-desc">Explore GDPR data rights: be informed, access, rectify, erase, restrict processing, data portability, object, and automated decision-making.</p>
    </div>
  </a>

  <a href="/posts/unknown/data-protection-by-design-and-default" 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/data-protection-by-design-and-default/data-protection-by-design-and-default.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/data-protection-by-design-and-default/data-protection-by-design-and-default.webp" alt="Data protection by design and by default" 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, May 7th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Data protection by design and by default</h3>
      <p className="blog-card-desc">Explore protection by design in our GDPR blog series. Platform.sh ensures data security through privacy by design principles in this insightful article</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-confirms-that-it-is-ready-for-the-gdpr" 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/platformsh-confirms-that-it-is-ready-for-the-gdpr/platformsh-confirms-that-it-is-ready-for-the-gdpr.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-confirms-that-it-is-ready-for-the-gdpr/platformsh-confirms-that-it-is-ready-for-the-gdpr.webp" alt="Platform.sh confirms that it is ready for the GDPR" 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 2nd 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh confirms that it is ready for the GDPR</h3>
      <p className="blog-card-desc">Discover what GDPR (General Data Protection Regulation) is and how it impacts your organization's data privacy. Learn about our GDPR measures and guidelines.</p>
    </div>
  </a>

  <a href="/posts/unknown/your-guide-to-gdpr-compliance-the-six-principles-of-processing-personal-data" 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/your-guide-to-gdpr-compliance-the-six-principles-of-processing-personal-data/your-guide-to-gdpr-compliance-the-six-principles-of-processing-personal-data.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/your-guide-to-gdpr-compliance-the-six-principles-of-processing-personal-data/your-guide-to-gdpr-compliance-the-six-principles-of-processing-personal-data.webp" alt="Your Guide to GDPR Compliance: The Six Principles of Processing Personal Data" 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">Friday, April 20th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your Guide to GDPR Compliance: The Six Principles of Processing Personal Data</h3>
      <p className="blog-card-desc">Discover the six key data protection principles of GDPR and why they are vital for compliance. Learn how to prioritize your GDPR efforts.</p>
    </div>
  </a>

  <a href="/posts/insights/what-will-you-do-after-you-deploy" 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/insights/what-will-you-do-after-you-deploy/what-will-you-do-after-you-deploy.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/insights/what-will-you-do-after-you-deploy/what-will-you-do-after-you-deploy.webp" alt="What will you do after you deploy?" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`insights` !== '' && (
                      <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">
                        insights
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, April 17th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">What will you do after you deploy?</h3>
      <p className="blog-card-desc">Learn how Platform.sh's post\_deploy hook can keep your site responsive during deploy tasks, making your deploys faster and more efficient.</p>
    </div>
  </a>

  <a href="/posts/unknown/your-guide-to-gdpr-compliance-roles-and-responsibilities" 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/your-guide-to-gdpr-compliance-roles-and-responsibilities/your-guide-to-gdpr-compliance-roles-and-responsibilities.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/your-guide-to-gdpr-compliance-roles-and-responsibilities/your-guide-to-gdpr-compliance-roles-and-responsibilities.webp" alt="Your Guide to GDPR Compliance: Roles and Responsibilities" 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, April 9th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your Guide to GDPR Compliance: Roles and Responsibilities</h3>
      <p className="blog-card-desc">Learn the roles and responsibilities under GDPR - data subject, data controller, data processor. Get ready for GDPR compliance today!</p>
    </div>
  </a>

  <a href="/posts/unknown/your-guide-to-gdpr-compliance-introduction" 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/your-guide-to-gdpr-compliance-introduction/your-guide-to-gdpr-compliance-introduction.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/your-guide-to-gdpr-compliance-introduction/your-guide-to-gdpr-compliance-introduction.webp" alt="Your Guide to GDPR Compliance (Introduction)" 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, April 4th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your Guide to GDPR Compliance (Introduction)</h3>
      <p className="blog-card-desc">Get ready for GDPR with our comprehensive guide. Understand its impact, your responsibilities, and how to protect personal data and privacy.</p>
    </div>
  </a>

  <a href="/posts/unknown/drupal-critical-core-vulnerability-announced" 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/drupal-critical-core-vulnerability-announced/drupal-critical-core-vulnerability-announced.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/drupal-critical-core-vulnerability-announced/drupal-critical-core-vulnerability-announced.webp" alt="Drupal critical core vulnerability announced" 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 28th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Drupal critical core vulnerability announced</h3>
      <p className="blog-card-desc">Urgent security update for Drupal users. Update to 8.5.1 / 8.4.9 / 8.3.8 / 7.58 immediately. Platform.sh is working on a platform-level fix.</p>
    </div>
  </a>

  <a href="/posts/unknown/using-platformsh-with-scrum" 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/using-platformsh-with-scrum/using-platformsh-with-scrum.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/using-platformsh-with-scrum/using-platformsh-with-scrum.webp" alt="Using Platform.sh with Scrum" 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, February 13th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Using Platform.sh with Scrum</h3>
      <p className="blog-card-desc">Learn how Platform.sh's Git-based environment workflow unblocks Scrum projects, allowing for efficient testing, parallel development, and feature isolation.</p>
    </div>
  </a>

  <a href="/posts/releases/hhvm-deploys-off-into-the-sunset" 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/hhvm-deploys-off-into-the-sunset/hhvm-deploys-off-into-the-sunset.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/releases/hhvm-deploys-off-into-the-sunset/hhvm-deploys-off-into-the-sunset.webp" alt="HHVM deploys off into the sunset" 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">Tuesday, January 30th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">HHVM deploys off into the sunset</h3>
      <p className="blog-card-desc">Platform.sh will no longer support HHVM runtime after 1 March 2018. Learn about this change and the evolution of PHP alternatives.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-is-ready-to-make-an-impact-in-china" 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/platformsh-is-ready-to-make-an-impact-in-china/platformsh-is-ready-to-make-an-impact-in-china.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-is-ready-to-make-an-impact-in-china/platformsh-is-ready-to-make-an-impact-in-china.webp" alt="Platform.sh is ready to make an Impact in China" 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, January 24th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh is ready to make an Impact in China</h3>
      <p className="blog-card-desc">Platform.sh is partnering with Impact China 2018 to help China ready startups expand their operations in China and offer cloud hosting services in the region.</p>
    </div>
  </a>

  <a href="/posts/unknown/spectremeltdown-security-update-notice" 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/spectremeltdown-security-update-notice/spectremeltdown-security-update-notice.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/spectremeltdown-security-update-notice/spectremeltdown-security-update-notice.webp" alt="Spectre/Meltdown Security Update Notice" 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">Friday, January 5th 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Spectre/Meltdown Security Update Notice</h3>
      <p className="blog-card-desc">Platform.sh addresses the Spectre and Meltdown vulnerabilities with scheduled maintenance. Learn more about the updates and potential downtime.</p>
    </div>
  </a>

  <a href="/posts/unknown/backup-and-forget" 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/backup-and-forget/backup-and-forget.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/backup-and-forget/backup-and-forget.webp" alt="Backup and Forget" 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, January 3rd 2018</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Backup and Forget</h3>
      <p className="blog-card-desc">Learn how to automate disaster recovery backups using Platform.sh. A simple 3-step process for routine snapshots of your production environment.</p>
    </div>
  </a>

  <a href="/posts/unknown/a-look-back-on-2017" 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/a-look-back-on-2017/a-look-back-on-2017.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/a-look-back-on-2017/a-look-back-on-2017.webp" alt="A look back on 2017" 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">Friday, December 29th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">A look back on 2017</h3>
      <p className="blog-card-desc">Explore a year of enhancements at Platform.sh, from HTTP/2 support to expanded services. Preview what's coming in 2018 for our PaaS.</p>
    </div>
  </a>

  <a href="/posts/unknown/tighten-up-your-tls" 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/tighten-up-your-tls/tighten-up-your-tls.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/tighten-up-your-tls/tighten-up-your-tls.webp" alt="Tighten up your TLS" 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, December 28th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Tighten up your TLS</h3>
      <p className="blog-card-desc">Discover new TLS-related features for increased website security on Platform.sh. Restrict TLS versions, enable HSTS, and implement client-authenticated TLS.</p>
    </div>
  </a>

  <a href="/posts/unknown/route-all-the-things" 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/route-all-the-things/route-all-the-things.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/route-all-the-things/route-all-the-things.webp" alt="Route all the things" 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 20th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Route all the things</h3>
      <p className="blog-card-desc">Learn how the routing system works on Platform.sh, including its flexibility, multi-domain support, and routing configurations.</p>
    </div>
  </a>

  <a href="/posts/unknown/gitlab-integration-is-here" 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/gitlab-integration-is-here/gitlab-integration-is-here.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/gitlab-integration-is-here/gitlab-integration-is-here.webp" alt="GitLab Integration is here!" 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, December 12th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">GitLab Integration is here!</h3>
      <p className="blog-card-desc">Easily integrate GitLab with Platform.sh for streamlined code management, deployment, and collaboration. Create environments for every branch and pull request.</p>
    </div>
  </a>

  <a href="/posts/unknown/living-on-the-edge-with-ruby-25-preview" 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/living-on-the-edge-with-ruby-25-preview/living-on-the-edge-with-ruby-25-preview.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/living-on-the-edge-with-ruby-25-preview/living-on-the-edge-with-ruby-25-preview.webp" alt="Living on the edge with Ruby 2.5 (preview)" 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, December 12th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Living on the edge with Ruby 2.5 (preview)</h3>
      <p className="blog-card-desc">Discover how to effortlessly migrate your Ruby and Rails applications to Ruby 2.5 on Platform.sh, with enhanced performance and new features.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-joins-the-prestigious-french-tech-tour-china-2017" 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/platformsh-joins-the-prestigious-french-tech-tour-china-2017/platformsh-joins-the-prestigious-french-tech-tour-china-2017.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-joins-the-prestigious-french-tech-tour-china-2017/platformsh-joins-the-prestigious-french-tech-tour-china-2017.webp" alt="Platform.sh joins the prestigious French Tech Tour China 2017" 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">Sunday, December 3rd 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh joins the prestigious French Tech Tour China 2017</h3>
      <p className="blog-card-desc">Join our CEO and team in Singapore, Hong Kong, Shenzhen, Shanghai, and Beijing for the French Tech Tour China 2017. Learn more about Platform.sh's journey.</p>
    </div>
  </a>

  <a href="/posts/unknown/welcome-to-the-world-php-72" 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/welcome-to-the-world-php-72/welcome-to-the-world-php-72.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/welcome-to-the-world-php-72/welcome-to-the-world-php-72.webp" alt="Welcome to the world, PHP 7.2!" 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, November 30th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Welcome to the world, PHP 7.2!</h3>
      <p className="blog-card-desc">Learn about the new features and improvements in PHP 7.2.0, including better performance and security enhancements. Try PHP 7.2.0 on Platform.sh with ease.</p>
    </div>
  </a>

  <a href="/posts/unknown/deploy-api-platform-on-platformsh" 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/deploy-api-platform-on-platformsh/deploy-api-platform-on-platformsh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/deploy-api-platform-on-platformsh/deploy-api-platform-on-platformsh.webp" alt="Simplifying API Platform Deployment on Platform.sh" 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, November 29th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Simplifying API Platform Deployment on Platform.sh</h3>
      <p className="blog-card-desc">Optimize API development with Platform.sh. Deploy API Platform effortlessly and unlock robust backend capabilities for your APIs</p>
    </div>
  </a>

  <a href="/posts/unknown/wordpress-security-updates-the-quick-way" 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/wordpress-security-updates-the-quick-way/wordpress-security-updates-the-quick-way.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/wordpress-security-updates-the-quick-way/wordpress-security-updates-the-quick-way.webp" alt="WordPress security updates, the quick way" 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, November 1st 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">WordPress security updates, the quick way</h3>
      <p className="blog-card-desc">Learn how to update your WordPress version to 4.8.3 to fix a security vulnerability.</p>
    </div>
  </a>

  <a href="/posts/unknown/going-local-with-lando" 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/going-local-with-lando/going-local-with-lando.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/going-local-with-lando/going-local-with-lando.webp" alt="Going Local with Lando" 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, October 18th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Going Local with Lando</h3>
      <p className="blog-card-desc">Lando, a Docker-based local development tool recommended by Platform.sh. Easily set up your local environment and sync data from for seamless web development.</p>
    </div>
  </a>

  <a href="/posts/unknown/wildcard-support-for-cookies-in-the-http-cache" 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/wildcard-support-for-cookies-in-the-http-cache/wildcard-support-for-cookies-in-the-http-cache.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/wildcard-support-for-cookies-in-the-http-cache/wildcard-support-for-cookies-in-the-http-cache.webp" alt="Wildcard support for cookies in the HTTP cache" 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 17th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Wildcard support for cookies in the HTTP cache</h3>
      <p className="blog-card-desc">Learn how to use regular expressions for wildcard cookie matching at the cache layer on Platform.sh, improving caching rules and caching performance.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/the-platformsh-build-and-deploy-pipeline" 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="The Platform.sh build-and-deploy pipeline" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, October 3rd 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The Platform.sh build-and-deploy pipeline</h3>
      <p className="blog-card-desc">Learn how Platform.sh simplifies the build and deploy pipeline for web applications, ensuring consistency and repeatability with Git-based semantics.</p>
    </div>
  </a>

  <a href="/posts/unknown/taking-care-of-your-health" 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/taking-care-of-your-health/taking-care-of-your-health.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/taking-care-of-your-health/taking-care-of-your-health.webp" alt="Taking care of your health" 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, October 2nd 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Taking care of your health</h3>
      <p className="blog-card-desc">Easily monitor your project's health with built-in notification checks for disk space, sent via email, Slack, or Pager Duty on Platform Professional projects.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-joins-orange-cloud-for-business-at-huawei-connect-2017-shanghai" 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/platformsh-joins-orange-cloud-for-business-at-huawei-connect-2017-shanghai/platformsh-joins-orange-cloud-for-business-at-huawei-connect-2017-shanghai.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-joins-orange-cloud-for-business-at-huawei-connect-2017-shanghai/platformsh-joins-orange-cloud-for-business-at-huawei-connect-2017-shanghai.webp" alt="Platform.sh & Orange Cloud at Huawei Connect 2017, Shanghai" 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, September 4th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh & Orange Cloud at Huawei Connect 2017, Shanghai</h3>
      <p className="blog-card-desc">Join Platform.sh and Orange Cloud for Business at Huawei Connect in Shanghai. Discover Continuous Deployment cloud hosting for agile development.</p>
    </div>
  </a>

  <a href="/posts/unknown/6-things-to-do-to-make-your-application-cloud-friendly" 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/6-things-to-do-to-make-your-application-cloud-friendly/6-things-to-do-to-make-your-application-cloud-friendly.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/6-things-to-do-to-make-your-application-cloud-friendly/6-things-to-do-to-make-your-application-cloud-friendly.webp" alt="7 things to do to make your application cloud-friendly" 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, August 7th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">7 things to do to make your application cloud-friendly</h3>
      <p className="blog-card-desc">Make your app cloud-friendly with 7 steps. Test it on Platform.sh for free to ensure compatibility in a real-world environment.</p>
    </div>
  </a>

  <a href="/posts/unknown/deploy-down-under-platformsh-is-now-available-in-australia" 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/deploy-down-under-platformsh-is-now-available-in-australia/deploy-down-under-platformsh-is-now-available-in-australia.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/deploy-down-under-platformsh-is-now-available-in-australia/deploy-down-under-platformsh-is-now-available-in-australia.webp" alt="Deploy Down Under: Platform.sh is now available in Australia" 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, July 3rd 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Deploy Down Under: Platform.sh is now available in Australia</h3>
      <p className="blog-card-desc">Experience unmatched Australian cloud hosting. Deploy PHP, NodeJS, Ruby & Python projects with Platform.sh's Continuous Deployment. Try it now!</p>
    </div>
  </a>

  <a href="/posts/unknown/containers-old-containers-new-memcached-support-and-php-72" 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/containers-old-containers-new-memcached-support-and-php-72/containers-old-containers-new-memcached-support-and-php-72.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/containers-old-containers-new-memcached-support-and-php-72/containers-old-containers-new-memcached-support-and-php-72.webp" alt="Containers, memcached support, and PHP 7.2" 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, June 26th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Containers, memcached support, and PHP 7.2</h3>
      <p className="blog-card-desc">Stay updated with Platform.sh's latest features, including MariaDB and Memcached support. Try PHP 7.2-alpha and explore new languages</p>
    </div>
  </a>

  <a href="/posts/unknown/now-available-sovereign-hosting-solution-in-microsoft-cloud-germany" 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/now-available-sovereign-hosting-solution-in-microsoft-cloud-germany/now-available-sovereign-hosting-solution-in-microsoft-cloud-germany.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/now-available-sovereign-hosting-solution-in-microsoft-cloud-germany/now-available-sovereign-hosting-solution-in-microsoft-cloud-germany.webp" alt="Sovereign Hosting Solution in Microsoft Cloud Germany" 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, June 22nd 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Sovereign Hosting Solution in Microsoft Cloud Germany</h3>
      <p className="blog-card-desc">A sovereign, end-to-end development and production hosting solution in Microsoft Cloud Germany. Ensure compliance, data security, and efficiency gains.</p>
    </div>
  </a>

  <a href="/posts/unknown/getting-to-5050-women-men-participation-polyconf-a-very-diverse-conference" 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/getting-to-5050-women-men-participation-polyconf-a-very-diverse-conference/getting-to-5050-women-men-participation-polyconf-a-very-diverse-conference.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/getting-to-5050-women-men-participation-polyconf-a-very-diverse-conference/getting-to-5050-women-men-participation-polyconf-a-very-diverse-conference.webp" alt="Getting to 50/50: Polyconf, a very diverse conference" 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, June 8th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Getting to 50/50: Polyconf, a very diverse conference</h3>
      <p className="blog-card-desc">Learn about PolyConf 2023, a conference promoting diversity in tech. Discover how Platform.sh supports gender diversity and inclusion in the tech community.</p>
    </div>
  </a>

  <a href="/posts/unknown/the-ultimate-third-party-resources-list-on-using-platformsh" 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/the-ultimate-third-party-resources-list-on-using-platformsh/the-ultimate-third-party-resources-list-on-using-platformsh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/the-ultimate-third-party-resources-list-on-using-platformsh/the-ultimate-third-party-resources-list-on-using-platformsh.webp" alt="The Ultimate Third Party Resources List on Using Platform.sh" 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, May 16th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The Ultimate Third Party Resources List on Using Platform.sh</h3>
      <p className="blog-card-desc">Resources and guides from the Platform.sh community. Get tips on migrations, debugging, workflows, and more for your projects. Contribute to this growing list.</p>
    </div>
  </a>

  <a href="/posts/unknown/devops-gives-you-wings" 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/devops-gives-you-wings/devops-gives-you-wings.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/devops-gives-you-wings/devops-gives-you-wings.webp" alt="DevOps gives you wings" 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, May 9th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">DevOps gives you wings</h3>
      <p className="blog-card-desc">Discover the importance of DevOps and automation for your organization. Learn how Platform.sh can help you achieve better DevOps for competitive success.</p>
    </div>
  </a>

  <a href="/posts/unknown/screencast-composer-and-continuous-integration" 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/screencast-composer-and-continuous-integration/screencast-composer-and-continuous-integration.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/screencast-composer-and-continuous-integration/screencast-composer-and-continuous-integration.webp" alt="Screencast - Composer and Continuous Integration" 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, May 9th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Screencast - Composer and Continuous Integration</h3>
      <p className="blog-card-desc">Discover how Platform.sh simplifies Composer usage and streamlines continuous integration. Learn about managing PHP applications effectively.</p>
    </div>
  </a>

  <a href="/posts/unknown/sponsoring-predotscale-and-election-drinks" 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/sponsoring-predotscale-and-election-drinks/sponsoring-predotscale-and-election-drinks.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/sponsoring-predotscale-and-election-drinks/sponsoring-predotscale-and-election-drinks.webp" alt="Sponsoring pre-dotScale and election drinks !" 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">Friday, April 21st 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Sponsoring pre-dotScale and election drinks !</h3>
      <p className="blog-card-desc">Platform.sh invites you to enjoy free drinks at Café Delaville in Paris before the dotSecurity and dotScale conferences. A perfect opportunity to mingle!</p>
    </div>
  </a>

  <a href="/posts/unknown/free-ssl-certificates-for-every-project-every-environment" 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/free-ssl-certificates-for-every-project-every-environment/free-ssl-certificates-for-every-project-every-environment.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/free-ssl-certificates-for-every-project-every-environment/free-ssl-certificates-for-every-project-every-environment.webp" alt="Free SSL certificates for every project & every environment" 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, April 20th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Free SSL certificates for every project & every environment</h3>
      <p className="blog-card-desc">We now offer free automatic Let's Encrypt SSL certificates, making your site secure, fast, and feature-rich. Say hello to secure, fast, and easy web hosting!</p>
    </div>
  </a>

  <a href="/posts/unknown/imagine-2017-the-new-magento-ecosystem" 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/imagine-2017-the-new-magento-ecosystem/imagine-2017-the-new-magento-ecosystem.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/imagine-2017-the-new-magento-ecosystem/imagine-2017-the-new-magento-ecosystem.webp" alt="Imagine 2017: The New Magento Ecosystem" 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, April 13th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Imagine 2017: The New Magento Ecosystem</h3>
      <p className="blog-card-desc">Dive into the excitement of Magento Imagine 2017. Discover how Magento's revitalized spirit and innovative approach are shaping the future of e-commerce.</p>
    </div>
  </a>

  <a href="/posts/unknown/global-app-cache-our-managed-tiered-cdn-feature-for-global-page-and-asset-cache-coverage" 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/global-app-cache-our-managed-tiered-cdn-feature-for-global-page-and-asset-cache-coverage/global-app-cache-our-managed-tiered-cdn-feature-for-global-page-and-asset-cache-coverage.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/global-app-cache-our-managed-tiered-cdn-feature-for-global-page-and-asset-cache-coverage/global-app-cache-our-managed-tiered-cdn-feature-for-global-page-and-asset-cache-coverage.webp" alt="Global App Cache: Managed CDNs for optimal performance" 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, April 5th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Global App Cache: Managed CDNs for optimal performance</h3>
      <p className="blog-card-desc">CDN caching boosts website speed and reliability. Learn how our Global App Cache combines multiple CDNs for optimal delivery and 99.99% uptime.</p>
    </div>
  </a>

  <a href="/posts/unknown/influxdb" 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/influxdb/influxdb.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/influxdb/influxdb.webp" alt="Now you can save time in a database" 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, March 27th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Now you can save time in a database</h3>
      <p className="blog-card-desc">Introducing Influx DB 1.2, perfect for high-volume logging, data collection, and metrics. Easily add it to your services.yaml file for improved data handling.</p>
    </div>
  </a>

  <a href="/posts/unknown/oliver-sweeney-website-revamp-with-magento-cloud-powered-by-platformsh-oozes-sophistication-and-luxury" 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/oliver-sweeney-website-revamp-with-magento-cloud-powered-by-platformsh-oozes-sophistication-and-luxury/oliver-sweeney-website-revamp-with-magento-cloud-powered-by-platformsh-oozes-sophistication-and-luxury.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/oliver-sweeney-website-revamp-with-magento-cloud-powered-by-platformsh-oozes-sophistication-and-luxury/oliver-sweeney-website-revamp-with-magento-cloud-powered-by-platformsh-oozes-sophistication-and-luxury.webp" alt="Oliver Sweeney website revamp with Magento Cloud" 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">Friday, March 17th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Oliver Sweeney website revamp with Magento Cloud</h3>
      <p className="blog-card-desc">When your company sells luxury items, you want your website to offer that same exclusive, stunning digital experience for your customers too.</p>
    </div>
  </a>

  <a href="/posts/unknown/expands-usa-operations-meet-growing-demand-north-america" 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/expands-usa-operations-meet-growing-demand-north-america/expands-usa-operations-meet-growing-demand-north-america.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/expands-usa-operations-meet-growing-demand-north-america/expands-usa-operations-meet-growing-demand-north-america.webp" alt="Platform.sh expands its US operations" 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, February 14th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh expands its US operations</h3>
      <p className="blog-card-desc">Platform.sh opens its US headquarters in San Francisco, forms a US Advisory board, and launches strong North America recruitment to meet growing demand.</p>
    </div>
  </a>

  <a href="/posts/unknown/multi-mysql" 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/multi-mysql/multi-mysql.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/multi-mysql/multi-mysql.webp" alt="Multiple MySQLs Make Platform.sh a Multisite Machine" 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">Friday, February 10th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Multiple MySQLs Make Platform.sh a Multisite Machine</h3>
      <p className="blog-card-desc">Learn how Platform.sh now supports multiple databases in MySQL and restricted user access. Optimize your projects with flexible database configurations.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-at-the-oop-conference" 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/platformsh-at-the-oop-conference/platformsh-at-the-oop-conference.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platformsh-at-the-oop-conference/platformsh-at-the-oop-conference.webp" alt="Platform.sh is down wit' OOP" 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, January 26th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh is down wit' OOP</h3>
      <p className="blog-card-desc">Join us at OOP Conference 2017 in Munich from Jan 30 to Feb 3. Live demos, answers to your PaaS questions, and more at booth 3.14. Don't miss it!</p>
    </div>
  </a>

  <a href="/posts/unknown/persistent-redis" 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/persistent-redis/persistent-redis.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/persistent-redis/persistent-redis.webp" alt="Redis, now for long-term keys and values" 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, January 25th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Redis, now for long-term keys and values</h3>
      <p className="blog-card-desc">Discover Platform.sh's Redis Persistent Service, a super-fast key-value database that allows you to store data permanently. Learn how to configure and use it.</p>
    </div>
  </a>

  <a href="/posts/unknown/solr-63" 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/solr-63/solr-63.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/solr-63/solr-63.webp" alt="New year, new Solr, new features" 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, January 17th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">New year, new Solr, new features</h3>
      <p className="blog-card-desc">Platform.sh launches the new Apache Solr version 6.3 with multi-core support, providing better search capabilities for your applications.</p>
    </div>
  </a>

  <a href="/posts/unknown/mongodb_apocalypse" 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/mongodb_apocalypse/mongodb_apocalypse.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/mongodb_apocalypse/mongodb_apocalypse.webp" alt="Your instances safe from MongoDB Apocalypse on the Platform.sh PaaS" 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, January 10th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Your instances safe from MongoDB Apocalypse on the Platform.sh PaaS</h3>
      <p className="blog-card-desc">Discover why your MongoDB instances are safe on Platform.sh. Our secure architecture keeps your data protected. Join us for peace of mind!</p>
    </div>
  </a>

  <a href="/posts/unknown/the-year-we-won-php" 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/the-year-we-won-php/the-year-we-won-php.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/the-year-we-won-php/the-year-we-won-php.webp" alt="2016, The Year We Won PHP" 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 9th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">2016, The Year We Won PHP</h3>
      <p className="blog-card-desc">Why Platform.sh is the preferred choice for hosting PHP applications. From Drupal and Symfony to Magento and more, we're here to make it run seamlessly.</p>
    </div>
  </a>

  <a href="/posts/unknown/http2" 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/http2/http2.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/http2/http2.webp" alt="Announcing HTTP/2 support!" 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">Sunday, January 8th 2017</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Announcing HTTP/2 support!</h3>
      <p className="blog-card-desc">Experience blazing-fast website loading times in 2017 with HTTP/2 support on all Platform.sh regions. No setup required; it's already active!</p>
    </div>
  </a>

  <a href="/posts/unknown/php-71" 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/php-71/php-71.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/php-71/php-71.webp" alt="Next Wave PHP now supported" 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, December 29th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Next Wave PHP now supported</h3>
      <p className="blog-card-desc">Discover the latest PHP 7.1 features, async support, and PThreads support on Platform.sh. Upgrade your PHP version for improved speed and new features.</p>
    </div>
  </a>

  <a href="/posts/unknown/what-is-your-timezone" 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-is-your-timezone/what-is-your-timezone.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/what-is-your-timezone/what-is-your-timezone.webp" alt="What's your timezone?" 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, December 27th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">What's your timezone?</h3>
      <p className="blog-card-desc">Discover how Platform.sh, a fully distributed company, manages its global team and communication using Node.js and self-hosted timezone.io.</p>
    </div>
  </a>

  <a href="/posts/unknown/production-artifact" 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/production-artifact/production-artifact-0-jpg.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/production-artifact/production-artifact-0-jpg.webp" alt="Production is an artifact of development" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`symfony` !== '' && (
                      <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">
                        symfony
                      </span>
                    )}

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

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Production is an artifact of development</h3>
      <p className="blog-card-desc">Explore the concept that production is an artifact of development and how Platform.sh revolutionizes web hosting for modern web applications.</p>
    </div>
  </a>

  <a href="/posts/unknown/project-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/unknown/project-variables/project-variables.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/project-variables/project-variables.webp" alt="This week in new features - Build-time variables" 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, December 20th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">This week in new features - Build-time variables</h3>
      <p className="blog-card-desc">Discover the benefits of project-level variables available at build time on Platform.sh and explore their use cases, including private composer repositories.</p>
    </div>
  </a>

  <a href="/posts/unknown/screencast-yaml" 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/screencast-yaml/screencast-yaml.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/screencast-yaml/screencast-yaml.webp" alt="Screencast - Configuring your Platform.sh Project" 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, December 19th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Screencast - Configuring your Platform.sh Project</h3>
      <p className="blog-card-desc">Learn to set up your project on Platform.sh, manage dependencies with infrastructure as code, and gain independence in this quick technical screencast.</p>
    </div>
  </a>

  <a href="/posts/unknown/leader-php-hosting-multiple-partnerships" 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/leader-php-hosting-multiple-partnerships/leader-php-hosting-multiple-partnerships.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/leader-php-hosting-multiple-partnerships/leader-php-hosting-multiple-partnerships.webp" alt="Platform.sh at the forefront of PHP hosting in 2016" 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, December 15th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh at the forefront of PHP hosting in 2016</h3>
      <p className="blog-card-desc">Platform.sh is the go-to PaaS for major PHP vendors like Magento, eZ Systems, TYPO3, and Sensio Labs. Get maximum scalability, stability, and performance.</p>
    </div>
  </a>

  <a href="/posts/how-it-works/repeatable-deployments" 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-it-works/repeatable-deployments/how-repeatable-deployment-work-jpg.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/repeatable-deployments/how-repeatable-deployment-work-jpg.webp" alt="How repeatable deployments work" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, December 13th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How repeatable deployments work</h3>
      <p className="blog-card-desc">Platform.sh ensures predictable, repeatable deployments by controlling the key inputs to your application and guaranteeing code consistency.</p>
    </div>
  </a>

  <a href="/posts/unknown/app-updates-php" 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/app-updates-php/app-updates-php.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/app-updates-php/app-updates-php.webp" alt="Application updates for PHP containers" 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">Friday, December 9th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Application updates for PHP containers</h3>
      <p className="blog-card-desc">Discover the latest improvements for PHP containers on Platform.sh. Learn about environment configuration, starting processes, and log file changes.</p>
    </div>
  </a>

  <a href="/posts/unknown/screencast-basic-platformsh-workflow" 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/screencast-basic-platformsh-workflow/screencast-basic-platformsh-workflow.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/screencast-basic-platformsh-workflow/screencast-basic-platformsh-workflow.webp" alt="Screencast - Basic Platform.sh Workflow" 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, December 5th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Screencast - Basic Platform.sh Workflow</h3>
      <p className="blog-card-desc">Discover how Platform.sh makes Git branching and merging easier. Streamline your development process in this Platform.sh from Scratch series.</p>
    </div>
  </a>

  <a href="/posts/unknown/a-cloud-for-symfony" 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/a-cloud-for-symfony/a-cloud-for-symfony.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/a-cloud-for-symfony/a-cloud-for-symfony.webp" alt="A Cloud for Symfony" 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">Friday, December 2nd 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">A Cloud for Symfony</h3>
      <p className="blog-card-desc">Discover SensioCloud, the new comprehensive cloud offering for Symfony applications. Managed services, optimized runtimes, and scalability.</p>
    </div>
  </a>

  <a href="/posts/unknown/typo3-8-starting-platformsh-cloud" 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/typo3-8-starting-platformsh-cloud/typo3-8-starting-platformsh-cloud.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/typo3-8-starting-platformsh-cloud/typo3-8-starting-platformsh-cloud.webp" alt="TYPO3 CMS 8 starting today with Platform.sh in the cloud" 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, October 27th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">TYPO3 CMS 8 starting today with Platform.sh in the cloud</h3>
      <p className="blog-card-desc">Try TYPO3 CMS 8 on Platform.sh with Microsoft Azure in Germany. Scale your projects, enjoy developer-friendly features, and ensure data protection.</p>
    </div>
  </a>

  <a href="/posts/unknown/do-more-with-less" 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/do-more-with-less/do-more-with-less.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/do-more-with-less/do-more-with-less.webp" alt="Cut your digital budget by 30% by doing less work" 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, October 17th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Cut your digital budget by 30% by doing less work</h3>
      <p className="blog-card-desc">Discover how Platform.sh can help you simplify digital, reduce costs, and increase efficiency with faster development and deployment processes.</p>
    </div>
  </a>

  <a href="/posts/unknown/typo3-platformsh-cloud-integration" 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="TYPO3 and Platform.sh announce cloud readiness and tech preview of strategic integration" 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, October 13th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">TYPO3 and Platform.sh announce cloud readiness and tech preview of strategic integration</h3>
      <p className="blog-card-desc">Test TYPO3 on Platform.sh cloud hosting. Discover the benefits of this partnership with continuous delivery hosting. Ideal for Composer-based applications.</p>
    </div>
  </a>

  <a href="/posts/unknown/vc-ready-funding-survey" 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="Three trends that make successful tech startups attractive to VCs" 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 4th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Three trends that make successful tech startups attractive to VCs</h3>
      <p className="blog-card-desc">Explore best practices for software development and team management in today's startup landscape. Learn how to build attractive software for VC funding.</p>
    </div>
  </a>

  <a href="/posts/releases/python-ruby-support" 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="Continuous Deployment - Now with Python and Ruby support!" 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">Friday, September 23rd 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Continuous Deployment - Now with Python and Ruby support!</h3>
      <p className="blog-card-desc">Platform.sh now offers continuous deployment for Ruby and Python developers. Explore the benefits of continuous deployment for your projects in these languages.</p>
    </div>
  </a>

  <a href="/posts/unknown/documentation-tng" 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="Platform.sh Documentation - The Next Generation" 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, September 21st 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh Documentation - The Next Generation</h3>
      <p className="blog-card-desc">Explore our redesigned documentation to discover the full potential of Platform.sh for your development needs.</p>
    </div>
  </a>

  <a href="/posts/unknown/ez-systems-partnership" 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="We partnered with eZ Systems to accelerate development" 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, September 19th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">We partnered with eZ Systems to accelerate development</h3>
      <p className="blog-card-desc">eZ Systems and Platform.sh partner to accelerate development with eZ Platform, offering an accelerated path to build content-rich websites and applications.</p>
    </div>
  </a>

  <a href="/posts/releases/github-blackfire-platformsh" 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="Develop on GitHub, Deploy on Platform.sh, Test on Blackfire.io" 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">Tuesday, August 30th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Develop on GitHub, Deploy on Platform.sh, Test on Blackfire.io</h3>
      <p className="blog-card-desc">Learn how to easily integrate GitHub, Blackfire, and Platform.sh for streamlined code management, deployment, and performance testing.</p>
    </div>
  </a>

  <a href="/posts/unknown/gitflow-is-now-supported" 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="GitFlow is now supported on Platform.sh!" 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, August 24th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">GitFlow is now supported on Platform.sh!</h3>
      <p className="blog-card-desc">Learn about our recent infrastructure update with bug fixes and GitFlow branch name support. Enjoy the new features on Platform.sh!</p>
    </div>
  </a>

  <a href="/posts/unknown/release-ui-2-13" 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="UI version 2.13 released" 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, August 23rd 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">UI version 2.13 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh UI version 2.13 with new enhancements, error notifications, SSH key alerts, and better environment handling. Stay informed and organized. Try it now!</p>
    </div>
  </a>

  <a href="/posts/unknown/httpoxy" 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="Httpoxy or how Platform.sh keeps your applications safe" 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 20th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Httpoxy or how Platform.sh keeps your applications safe</h3>
      <p className="blog-card-desc">Ensure your applications' security! We've fixed the Httpoxy vulnerability in every Platform.sh region, so you're safe without any redeployments.</p>
    </div>
  </a>

  <a href="/posts/unknown/release-ui-2-12" 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="UI version 2.12 released" 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, July 18th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">UI version 2.12 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh UI version 2.12 with enhancements for easier setup, domain validation, SSH keys, environment management, and user administration. Explore now!</p>
    </div>
  </a>

  <a href="/posts/unknown/release-ui-2-11" 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="UI version 2.11 released" 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 5th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">UI version 2.11 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh UI version 2.11 with new warning notifications, environment grouping, autofocus on text inputs, and improved display of environment variables.</p>
    </div>
  </a>

  <a href="/posts/unknown/new-features-june" 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="June Features Update" 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, June 30th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">June Features Update</h3>
      <p className="blog-card-desc">The latest updates and improvements from Platform.sh. From web interface enhancements to CLI improvements and Drupal 8 with Composer updates.</p>
    </div>
  </a>

  <a href="/posts/unknown/is-thecloud-really-someone-elses-computer" 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="Is the Cloud really someone else's computer?" 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, June 27th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Is the Cloud really someone else's computer?</h3>
      <p className="blog-card-desc">Difference between "the Cloud" and cloud computing. The benefits and drawbacks of both concepts, and how Platform.sh offers a unique approach to hosting.</p>
    </div>
  </a>

  <a href="/posts/unknown/cloud-adoption-europe-data-privacy" 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="Cloud adoption in Europe: Addressing data privacy concerns" 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, June 21st 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Cloud adoption in Europe: Addressing data privacy concerns</h3>
      <p className="blog-card-desc">Discover the advantages of cloud services and data privacy considerations for European enterprises, including Platform.sh's partnership with Microsoft Azure.</p>
    </div>
  </a>

  <a href="/posts/unknown/marketing-manager-paris" 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/marketing-manager-paris/marketing-manager-paris.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/marketing-manager-paris/marketing-manager-paris.webp" alt="Looking for our new marketing manager! Are you the one?" 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">Friday, June 10th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Looking for our new marketing manager! Are you the one?</h3>
      <p className="blog-card-desc">Exciting opportunity to join the award-winning Platform.sh marketing team. Grow your career with a groundbreaking hosting and development tool.</p>
    </div>
  </a>

  <a href="/posts/unknown/drupal-8-starter-kit-now-with-php-7-and-composer" 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="Drupal 8 starter kit now with PHP 7 and Composer!" 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, June 7th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Drupal 8 starter kit now with PHP 7 and Composer!</h3>
      <p className="blog-card-desc">Discover how Drupal 8.1 embraces Composer and PHP 7 on Platform.sh. Learn what changes and how it benefits your Drupal projects.</p>
    </div>
  </a>

  <a href="/posts/unknown/release-ui-2-10" 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="UI version 2.10 released" 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, June 7th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">UI version 2.10 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh UI version 2.10 with accessibility improvements, better messages, and enhanced log display in the activity stream.</p>
    </div>
  </a>

  <a href="/posts/unknown/microsoft-joint-paas-offering" 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="Microsoft and Platform.sh announce joint PaaS offering for High Availability (HA) hosting" 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, June 2nd 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Microsoft and Platform.sh announce joint PaaS offering for High Availability (HA) hosting</h3>
      <p className="blog-card-desc">Platform.sh announces plans for scalable web apps in German datacenters, offering 99.99% uptime, and Azure integration. Learn more today!</p>
    </div>
  </a>

  <a href="/posts/unknown/isv-saas-iaas-providers" 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="Software vendor, SaaS or IaaS - doesn’t matter which. Platform.sh really is the killer app for you!" 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 25th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Software vendor, SaaS or IaaS - doesn’t matter which. Platform.sh really is the killer app for you!</h3>
      <p className="blog-card-desc">Discover how Platform.sh is revolutionizing SaaS, software vendors, and hosting providers by offering innovative solutions in the cloud computing space.</p>
    </div>
  </a>

  <a href="/posts/unknown/drupalcon-nola-survival-guide" 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="DrupalCon New Orleans Survival Guide" 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, May 5th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">DrupalCon New Orleans Survival Guide</h3>
      <p className="blog-card-desc">Attending DrupalCon New Orleans? Learn tips for making the most of your experience, from networking to sessions and sprints, with Platform.sh.</p>
    </div>
  </a>

  <a href="/posts/unknown/larry-garfield-joins-platformsh" 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="The one and only Director of Runtimes and Integrations" 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, May 2nd 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The one and only Director of Runtimes and Integrations</h3>
      <p className="blog-card-desc">Meet Larry Garfield, our new Director of Runtimes, Integrations, and Services. Discover why he's a perfect fit for Platform.sh and connect with him on Twitter.</p>
    </div>
  </a>

  <a href="/posts/unknown/magento-enterprise-cloud-edition-powered-by-platform-sh" 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/magento-enterprise-cloud-edition-powered-by-platform-sh/magento-enterprise-cloud-edition-powered-by-platform-sh.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/magento-enterprise-cloud-edition-powered-by-platform-sh/magento-enterprise-cloud-edition-powered-by-platform-sh.webp" alt="Platform.sh Provides PaaS Technology to Magento Commerce" 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, April 12th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh Provides PaaS Technology to Magento Commerce</h3>
      <p className="blog-card-desc">Discover how Magento Commerce benefits from Platform.sh's second-generation PaaS for its Enterprise Cloud Edition, enhancing development and release management.</p>
    </div>
  </a>

  <a href="/posts/unknown/deploy-to-the-moon" 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="Platform.sh announces world’s first LDN for web applications" 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">Friday, April 1st 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh announces world’s first LDN for web applications</h3>
      <p className="blog-card-desc">Platform.sh achieves the extraordinary by deploying PHP apps on the lunar surface. Experience the world's first Lunar Delivery Network (LDN).</p>
    </div>
  </a>

  <a href="/posts/unknown/release-cli-3-0" 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="CLI version 3.0 released" 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, March 22nd 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">CLI version 3.0 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh CLI version 3.0 with major changes: new file structure, web root location, and PHP requirement. Upgrade now!</p>
    </div>
  </a>

  <a href="/posts/unknown/platform.sh-independent-company" 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="Platform.sh becomes an independent company" 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, February 9th 2016</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh becomes an independent company</h3>
      <p className="blog-card-desc">Exciting news from Platform.sh! We're now an independent company, with a renewed focus on our cloud hosting solution. Read about our journey and plans.</p>
    </div>
  </a>

  <a href="/posts/unknown/php-session-bug" 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="All Platform.sh clients kept automatically safe from serious PHP bug" 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, December 17th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">All Platform.sh clients kept automatically safe from serious PHP bug</h3>
      <p className="blog-card-desc">PHP session extension bug and how Platform.sh has automatically updated sites to prevent vulnerability. No action required for our customers.</p>
    </div>
  </a>

  <a href="/posts/unknown/drupal-8-release-party" 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/drupal-8-release-party/drupal-8-release-party.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/drupal-8-release-party/drupal-8-release-party.webp" alt="Drupal 8.0 has been released... Party time!" 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, November 19th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Drupal 8.0 has been released... Party time!</h3>
      <p className="blog-card-desc">Join the global Drupal 8 release celebration! Learn more about Drupal 8 parties and deploy it today on Platform.sh for a free trial.</p>
    </div>
  </a>

  <a href="/posts/unknown/safe-harbour-safe" 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="Concerned about the recent European Court ruling on Safe Harbor?" 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, November 3rd 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Concerned about the recent European Court ruling on Safe Harbor?</h3>
      <p className="blog-card-desc">Discover the consequences of the EU-US Safe Harbor agreement invalidation and how Platform.sh offers flexibility to protect your data as needed.</p>
    </div>
  </a>

  <a href="/posts/unknown/badcamp" 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="Platform.sh to exhibit at BADCamp 2015" 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 20th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh to exhibit at BADCamp 2015</h3>
      <p className="blog-card-desc">Platform.sh, a Contrib Level sponsor, will be at BADCamp 2015. Visit our booth for demos and learn about web application hosting.</p>
    </div>
  </a>

  <a href="/posts/unknown/best-horizontal-cloud-solution-for-2015-in-europe" 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="Platform.sh Best Horizontal Cloud Solution for 2015 in Europe" 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">Friday, October 9th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh Best Horizontal Cloud Solution for 2015 in Europe</h3>
      <p className="blog-card-desc">Platform.sh awarded Best Horizontal Cloud Solution in Europe by Eurocloud. Find out more.</p>
    </div>
  </a>

  <a href="/posts/unknown/release-hhvm" 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="HHVM versions 3.9 and 3.12 supported" 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, September 23rd 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">HHVM versions 3.9 and 3.12 supported</h3>
      <p className="blog-card-desc">Announcing HHVM support on Platform.sh. HHVM offers improved PHP performance and scalability. Learn how to use and configure it in our documentation.</p>
    </div>
  </a>

  <a href="/posts/unknown/symfony-documentation-pull-requests" 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="Platform.sh hosts Symfony documentation GitHub pull requests" 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, September 10th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh hosts Symfony documentation GitHub pull requests</h3>
      <p className="blog-card-desc">Symfony's documentation now uses Platform.sh for automatic code deployment into isolated environments, simplifying review and testing.</p>
    </div>
  </a>

  <a href="/posts/unknown/featured-on-bitbucket" 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="Platform.sh / Bitbucket Integration, featured on the Bitbucket Blog" 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, August 17th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh / Bitbucket Integration, featured on the Bitbucket Blog</h3>
      <p className="blog-card-desc">Discover the Bitbucket integration with Platform.sh. Learn how it works in this short screencast. Get the details on the Bitbucket Blog.</p>
    </div>
  </a>

  <a href="/posts/unknown/platform-sh-hiring-interns" 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-hiring-interns/platform-sh-hiring-interns.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/platform-sh-hiring-interns/platform-sh-hiring-interns.webp" alt="Hiring interns" 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, August 10th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Hiring interns</h3>
      <p className="blog-card-desc">Explore cloud engineering internships at Platform.sh. Gain hands-on experience with high availability cloud infrastructure and cutting-edge technologies.</p>
    </div>
  </a>

  <a href="/posts/unknown/work-with-distribution" 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="The correct way to work with Drupal distributions" 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 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">The correct way to work with Drupal distributions</h3>
      <p className="blog-card-desc">Learn how to easily build and maintain your Drupal site on top of distributions using Platform.sh's support for Drush Make files.</p>
    </div>
  </a>

  <a href="/posts/unknown/release-docs-3-0" 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="Documentation version 3.0 released" 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">Saturday, July 25th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Documentation version 3.0 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh documentation version 3.0 with improved guides and easier contributions. Explore the new documentation now!</p>
    </div>
  </a>

  <a href="/posts/unknown/five-platform-sh-the-paas-for-drupal-8" 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="Five reasons why Platform.sh is the PaaS you need for Drupal 8" 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, July 16th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Five reasons why Platform.sh is the PaaS you need for Drupal 8</h3>
      <p className="blog-card-desc">Discover why Drupal 8 on Platform.sh is making waves. From Swiss publishers to usability testing, explore the Drupal 8 hype. Get ready for the future!</p>
    </div>
  </a>

  <a href="/posts/unknown/best-horizontal-cloud-platform-eurocloud" 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/best-horizontal-cloud-platform-eurocloud/best-horizontal-cloud-platform-eurocloud.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/unknown/best-horizontal-cloud-platform-eurocloud/best-horizontal-cloud-platform-eurocloud.webp" alt="Platform.sh elected Best Horizontal Cloud Platform of the year" 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">Friday, July 10th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh elected Best Horizontal Cloud Platform of the year</h3>
      <p className="blog-card-desc">Platform.sh wins Best Cloud Services for horizontal markets at CLOUD WEEK Paris. Discover how Platform.sh empowers marketing teams for agile web development.</p>
    </div>
  </a>

  <a href="/posts/unknown/ceo-interviewed-on-bfm-business" 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="CEO of Commerce Guys is interviewed by the main French Business TV Channel about Platform.sh" 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 8th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">CEO of Commerce Guys is interviewed by the main French Business TV Channel about Platform.sh</h3>
      <p className="blog-card-desc">Fred Plais, Platform.sh CEO, discusses Platform.sh's innovation and European Grant on French business TV channel interview.</p>
    </div>
  </a>

  <a href="/posts/unknown/european-horizon-2020-grant" 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="Platform.sh awarded a €1.95M grant" 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, June 25th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh awarded a €1.95M grant</h3>
      <p className="blog-card-desc">PaaS leader Platform.sh receives EU innovation grant. Explore their ambitious roadmap for multi-cloud, distributed storage, and more.</p>
    </div>
  </a>

  <a href="/posts/unknown/2015-06-european-cloud-leadership-born-in-france" 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="European cloud leadership is being born before our very own eyes in France" 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, June 23rd 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">European cloud leadership is being born before our very own eyes in France</h3>
      <p className="blog-card-desc">Discover how Platform.sh achieved success following Commerce Guys with 250+ customers worldwide.</p>
    </div>
  </a>

  <a href="/posts/unknown/release-ui-2-0" 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="UI version 2.0 released" 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 27th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">UI version 2.0 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh UI version 2.0 with new features: environment status, access control, SSH key upload, SSL certificate management, and more.</p>
    </div>
  </a>

  <a href="/posts/unknown/groundbreaking-drupal-8-news-portal-goes-live-platformsh" 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="Groundbreaking Drupal 8 news portal goes live on Platform.sh" 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 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Groundbreaking Drupal 8 news portal goes live on Platform.sh</h3>
      <p className="blog-card-desc">Platform.sh, PaaS leader, is hosting one of the first Enterprise production sites on Drupal 8. Platform.sh enhances development workflows.</p>
    </div>
  </a>

  <a href="/posts/unknown/platformsh-cli-developments-1-10" 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="Platform.sh CLI developments" 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, March 16th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh CLI developments</h3>
      <p className="blog-card-desc">Explore the latest updates and features in the Platform.sh CLI, the powerful tool for web developers. Manage your projects with ease. Install or upgrade now!</p>
    </div>
  </a>

  <a href="/posts/how-it-works/how-platform-paas-works" 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-it-works/how-platform-paas-works/Blog_How_Platfromsh_Works.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/how-it-works/how-platform-paas-works/Blog_How_Platfromsh_Works.webp" alt="How the Platform.sh PaaS works" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`how-it-works` !== '' && (
                      <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-it-works
                      </span>
                    )}

        <span className="text-xs text-subtle">Tuesday, March 3rd 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How the Platform.sh PaaS works</h3>
      <p className="blog-card-desc">Discover how Platform.sh simplifies PaaS. Focus on your code; we manage the rest. Explore our second-generation PaaS for seamless application development.</p>
    </div>
  </a>

  <a href="/posts/discussions/containers-are-the-new-static-binaries" 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/discussions/containers-are-the-new-static-binaries/Blog_Containers_are_the_new_static_binaries.webp` !== '' && (
          <div className="blog-card-img-wrap">
            <img src="/images/posts/discussions/containers-are-the-new-static-binaries/Blog_Containers_are_the_new_static_binaries.webp" alt="Containers are the new static binaries" className="blog-card-img" />
          </div>
        )}

    <div className="blog-card-body">
      <div className="flex items-center gap-2">
        {`discussions` !== '' && (
                      <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">
                        discussions
                      </span>
                    )}

        <span className="text-xs text-subtle">Thursday, February 26th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Containers are the new static binaries</h3>
      <p className="blog-card-desc">Platform.sh updates: new languages, MariaDB, and PHP 7.2-alpha support. Stay informed and enjoy your containers.</p>
    </div>
  </a>

  <a href="/posts/unknown/blackfire-integration" 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="Support for Blackfire Profiler" 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, February 2nd 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Support for Blackfire Profiler</h3>
      <p className="blog-card-desc">Optimize performance with Blackfire Profiler on Platform.sh. Monitor server resources, identify bottlenecks, and compare codebases for better performance.</p>
    </div>
  </a>

  <a href="/posts/unknown/release-ui-1-10" 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="UI version 1.10 released" 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 26th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">UI version 1.10 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh UI version 1.10 with easy SSH key upload and snapshot restoration. Enhance your Platform.sh experience. Explore the new features now!</p>
    </div>
  </a>

  <a href="/posts/unknown/release-cli-1-7" 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="CLI version 1.7 released" 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, January 20th 2015</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">CLI version 1.7 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh CLI version 1.7.1 with new features, improved commands, and enhanced HTTP access control. Install or upgrade using Composer!</p>
    </div>
  </a>

  <a href="/posts/unknown/git-clients-vulnerable" 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="Git clients vulnerable" 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">Friday, December 19th 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Git clients vulnerable</h3>
      <p className="blog-card-desc">Learn about the Git vulnerability affecting Mac OS X and Windows users. Find out how Platform.sh customers can protect their Git clients.</p>
    </div>
  </a>

  <a href="/posts/unknown/release-ui-1-9" 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="UI version 1.9 released" 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 3rd 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">UI version 1.9 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh UI version 1.9 with quick environment access, easy Git and SSH command copying, and unified configuration screens.</p>
    </div>
  </a>

  <a href="/posts/unknown/us-platform-adoption" 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="Leading digital agencies adopt Platform.sh to support Continuous Delivery" 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, November 5th 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Leading digital agencies adopt Platform.sh to support Continuous Delivery</h3>
      <p className="blog-card-desc">Discover the benefits of Platform.sh for hosting Drupal and Symfony web applications. Streamline development, reduce costs, and improve deployment.</p>
    </div>
  </a>

  <a href="/posts/unknown/release-cli-1-2" 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="CLI version 1.2 released" 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, October 29th 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">CLI version 1.2 released</h3>
      <p className="blog-card-desc">Announcing Platform.sh CLI version 1.2.2 with new features, colorful interface, safer commands, and more. Install or upgrade using Composer now!</p>
    </div>
  </a>

  <a href="/posts/unknown/1000-tickets-strong" 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="1000 tickets strong" 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, October 22nd 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">1000 tickets strong</h3>
      <p className="blog-card-desc">Join us in recognizing the milestone of 1,000 support tickets, showcasing rapid responses, high satisfaction, and efficient issue resolution.</p>
    </div>
  </a>

  <a href="/posts/unknown/protecting-your-apps" 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="Protecting your apps" 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 21st 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Protecting your apps</h3>
      <p className="blog-card-desc">Platform.sh launched automated blocking for critical vulnerabilities (incl. Drupal SQL Injection) and seeks collaborators for an open-source signature database</p>
    </div>
  </a>

  <a href="/posts/unknown/sa-core-2014-005" 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="Platform.sh and Drupal 7.32 Core SQL Injection" 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, October 15th 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Platform.sh and Drupal 7.32 Core SQL Injection</h3>
      <p className="blog-card-desc">Learn about the Drupal 7.32 security update and the steps taken by Platform.sh to protect your Drupal website from a severe SQL injection vulnerability.</p>
    </div>
  </a>

  <a href="/posts/unknown/wunderkraut-chooses-platform" 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="Wunderkraut adopts Platform.sh for all of its 14 international offices" 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, September 30th 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Wunderkraut adopts Platform.sh for all of its 14 international offices</h3>
      <p className="blog-card-desc">Wunderkraut announces their partnership for adopting Platform.sh in all 14 international offices, enhancing cloud hosting and development.</p>
    </div>
  </a>

  <a href="/posts/unknown/platform-removes-developer-overhead-6" 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="FlixBus launches new eCommerce Service on Platform.sh Enterprise" 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, September 23rd 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">FlixBus launches new eCommerce Service on Platform.sh Enterprise</h3>
      <p className="blog-card-desc">sh is a one-stop solution offering a new paradigm in collaborative web development and live hosting London, U.</p>
    </div>
  </a>

  <a href="/posts/unknown/release-cli-1-1" 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="CLI version 1.1 released" 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, September 9th 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">CLI version 1.1 released</h3>
      <p className="blog-card-desc">Platform.sh CLI version 1.1.0 is out with new features and commands. Upgrade now! Learn more on GitHub.</p>
    </div>
  </a>

  <a href="/posts/unknown/platform-removes-developer-overhead" 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="How the Platform.sh PaaS removes developer overhead" 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, July 31st 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">How the Platform.sh PaaS removes developer overhead</h3>
      <p className="blog-card-desc">Platform.sh is a PaaS designed to bring continuous delivery to Drupal. Explore its features and CLI for agile Drupal development.</p>
    </div>
  </a>

  <a href="/posts/unknown/commerce-guys-launches-platform" 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="Commerce Guys Launches Platform.sh, Continuous Delivery Cloud on Amazon Web Services" 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, May 13th 2014</span>
      </div>

      <h3 className="blog-card-title group-hover:text-accent transition-colors">Commerce Guys Launches Platform.sh, Continuous Delivery Cloud on Amazon Web Services</h3>
      <p className="blog-card-desc">Discover Platform.sh, a revolutionary cloud hosting solution for Drupal, Symfony, and PHP-based applications. Achieve up to 25% savings on developer effort.</p>
    </div>
  </a>
</ShowMore>
