<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Open Archives - MASSIVE News</title>
	<atom:link href="https://massive.news/tag/open/feed/" rel="self" type="application/rss+xml" />
	<link>https://massive.news/tag/open/</link>
	<description>Progressive Mix of World News and Propaganda</description>
	<lastBuildDate>Fri, 22 May 2026 04:00:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://massive.news/wp-content/uploads/2024/08/m-150x150.jpg</url>
	<title>Open Archives - MASSIVE News</title>
	<link>https://massive.news/tag/open/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Some technologies use accelerated natural processes to capture carbon – but can they store it durably?</title>
		<link>https://massive.news/some-technologies-use-accelerated-natural-processes-to-capture-carbon-but-can-they-store-it-durably/</link>
		
		<dc:creator><![CDATA[wiredgorilla]]></dc:creator>
		<pubDate>Fri, 22 May 2026 01:26:20 +0000</pubDate>
				<category><![CDATA[Technology and Science]]></category>
		<category><![CDATA[chemistry]]></category>
		<category><![CDATA[Environment]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[means]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[reactions]]></category>
		<category><![CDATA[recycling]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[Space]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Surface]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[true]]></category>
		<category><![CDATA[water]]></category>
		<guid isPermaLink="false">https://massive.news/some-technologies-use-accelerated-natural-processes-to-capture-carbon-but-can-they-store-it-durably/</guid>

					<description><![CDATA[<p>Natural geological processes have been regulating Earth’s climate for millions of years. Accelerated versions of these...</p>
<p>The post <a href="https://massive.news/some-technologies-use-accelerated-natural-processes-to-capture-carbon-but-can-they-store-it-durably/">Some technologies use accelerated natural processes to capture carbon – but can they store it durably?</a> appeared first on <a href="https://massive.news">MASSIVE News</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img decoding="async" src="https://massive.news/wp-content/uploads/2026/05/some-technologies-use-accelerated-natural-processes-to-capture-carbon-but-can-they-store-it-durably.jpg" class="ff-og-image-inserted"></div>
<p>Natural geological processes have been regulating Earth’s climate for millions of years.</p>
<p>Accelerated versions of these processes are now being promoted as technologies to draw down carbon from the atmosphere – and some are rapidly moving from concept to real-world deployments.</p>
<p>Two such technologies are known as enhanced weathering, which speeds up the chemical breakdown of certain rocks, and ocean alkalinity enhancement, which increases the ocean’s natural ability to remove carbon dioxide from the air. </p>
<p>Startups backed by tech companies including Google and Microsoft are already applying these technologies in field trials. Investment in the sector is rising rapidly, with large-scale trials underway and carbon credits beginning to appear on voluntary markets.</p>
<p>But as our new assessment published in Science highlights, some estimates of carbon removal through these technologies may be too optimistic.  </p>
<p>Current models assume carbon captured on land or in coastal waters will reliably make its way into long-term storage in the ocean. However, these models don’t replicate all Earth processes. </p>
<p>In reality, part of the engineered capture of carbon can be reversed as water moves through soils, rivers, estuaries and coastal environments. Dissolved elements can become trapped again in new minerals such as clays, reducing how much carbon ultimately remains stored over long timescales.</p>
<p>The true additional carbon removed from the atmosphere may be smaller than headline estimates suggest.</p>
<h2>How enhanced weathering is supposed to work</h2>
<p>Enhanced weathering works by accelerating chemical reactions that already occur naturally between rocks, water and carbon dioxide.</p>
<p>When rainwater mixes with carbon dioxide held in the atmosphere and soil, it forms an acid that slowly dissolves rocks that contain the minerals calcium and magnesium. This includes volcanic rocks such as basalt and ultramafic rocks such as dunite.</p>
<p>In nature, the dissolved minerals increase the capactiy of water to store carbon dioxide and these chemical products can then be transported by rivers to the ocean, where the carbon may remain stored for thousands of years.</p>
<p>Enhanced weathering attempts to speed up this natural process. Finely crushed rocks and minerals are spread across landscapes such as agricultural soils, increasing the surface area available for reactions. </p>
<p>Ocean alkalinity enhancement uses similar principles, but aims to increase the ocean’s ability to absorb and store atmospheric carbon dioxide directly.</p>
<h2>Carbon losses along the way</h2>
<p>Many enhanced weathering assessments assume that once minerals dissolve, the resulting alkalinity and carbon will eventually make their way into the ocean for long-term storage.</p>
<p>However, different materials dissolve at different rates. Climate, rainfall, soil chemistry and biological activity also influence how quickly reactions occur. This means carbon removal can vary enormously between environments.</p>
<p>Earth systems also contain many opportunities for the flow of carbon to weaken before it ever reaches the open ocean.</p>
<p>As alkalinity moves through the environment, dissolved elements released during weathering can become trapped again in new minerals. These reactions can consume alkalinity and reduce the amount of carbon ultimately stored long term.</p>
<p>These challenges are not limited to enhanced weathering on land. Ocean alkalinity enhancement may also experience losses as dissolved elements interact with sediments and seawater chemistry, recycling alkalinity back into solid minerals before it contributes to long-term storage.</p>
<h2>The challenge of durable carbon removal</h2>
<p>In natural systems, weathering, transport and mineral formation are tightly linked parts of a much larger Earth-system cycle. </p>
<p>While naturally occurring warm and wet environments may accelerate weathering, using a rapid-dissolution model to replicate this does not necessarily guarantee durable carbon storage.</p>
<p>There is also another problem: some enhanced weathering and alkalinity approaches may interfere with natural carbon removal pathways that would have occurred anyway. </p>
<p>For example, increasing alkalinity in one part of the Earth system may reduce natural dissolution or weathering processes elsewhere. This means the amount of truly additional carbon removed from the atmosphere may be smaller.</p>
<p>Many field trials focus on changes occurring at the application site itself, but much of the long-term carbon storage depends on what happens downstream – across entire catchments, rivers and coastal oceans.</p>
<p>As enhanced weathering and ocean alkalinity enhancement move toward larger-scale deployment, the central question is how much carbon remains removed from the atmosphere over decades to centuries – and whether that removal is truly additional. </p>
<p>None of this means these technologies don’t contribute to climate mitigation. </p>
<p>The challenge is whether Earth systems can keep the captured carbon stored or whether we are simply moving carbon across time and space instead of durably removing it from the atmosphere.</p>
<p>New Zealand may offer an opportunity to better understand these questions because volcanic rocks, high rainfall and strong land-to-sea connectivity create ideal conditions for tracking how alkalinity and carbon move through the Earth system.</p>
<p>If these approaches are going to play a major role in future carbon removal strategies – and generate carbon credits at global scale – we need to understand not only how quickly minerals dissolve, but whether carbon is stored durably without weakening natural carbon removal pathways at the same time.</p>
<div class="video-container"><iframe width="560" height="315" src="https://www.youtube.com/embed/60e6u_1TEIs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
<p>The post <a href="https://massive.news/some-technologies-use-accelerated-natural-processes-to-capture-carbon-but-can-they-store-it-durably/">Some technologies use accelerated natural processes to capture carbon – but can they store it durably?</a> appeared first on <a href="https://massive.news">MASSIVE News</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Set Up a Headless WordPress Blog with Astro and Git</title>
		<link>https://massive.news/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git/</link>
		
		<dc:creator><![CDATA[wiredgorilla]]></dc:creator>
		<pubDate>Thu, 21 May 2026 00:00:05 +0000</pubDate>
				<category><![CDATA[Technology and Science]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[BASIC]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[developer experience]]></category>
		<category><![CDATA[Environment]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[full]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[max]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[name]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Server Management]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[Surface]]></category>
		<category><![CDATA[telegram]]></category>
		<category><![CDATA[Web Design and Development]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[yes]]></category>
		<guid isPermaLink="false">https://massive.news/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git/</guid>

					<description><![CDATA[<p>If you want to build a completely custom frontend UI without giving up the powerful, built-in...</p>
<p>The post <a href="https://massive.news/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git/">How to Set Up a Headless WordPress Blog with Astro and Git</a> appeared first on <a href="https://massive.news">MASSIVE News</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="video-container"><iframe width="560" height="315" src="https://www.youtube.com/embed/LIFvgrRxdt4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
<p>If you want to build a completely custom frontend UI without giving up the powerful, built-in WordPress ecosystem, a headless setup is exactly what you need.</p>
<p><cms-inline-toc tocs="[{&quot;id&quot;:&quot;#benefits-of-headless-wordpress&quot;,&quot;name&quot;:&quot;Benefits of Headless WordPressu00a0&quot;,&quot;tagName&quot;:&quot;h2&quot;},{&quot;id&quot;:&quot;#prerequisites&quot;,&quot;name&quot;:&quot;Prerequisites&quot;,&quot;tagName&quot;:&quot;h2&quot;},{&quot;id&quot;:&quot;#phase-1-prepare-wordpress-for-headless&quot;,&quot;name&quot;:&quot;Phase 1: Prepare WordPress for Headless&quot;,&quot;tagName&quot;:&quot;h2&quot;},{&quot;id&quot;:&quot;#phase-2-create-wordpress-frontend-with-astro&quot;,&quot;name&quot;:&quot;Phase 2: Create WordPress Frontend with Astrou00a0&quot;,&quot;tagName&quot;:&quot;h2&quot;},{&quot;id&quot;:&quot;#step-1-create-a-new-astro-project&quot;,&quot;name&quot;:&quot;Step 1: Create a New Astro Project&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-2-configure-environment-variables&quot;,&quot;name&quot;:&quot;Step 2: Configure Environment Variables&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-3-create-the-homepage-that-fetches-wordpress-data&quot;,&quot;name&quot;:&quot;Step 3: Create the Homepage That Fetches WordPress Data&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-4-create-dynamic-post-pages&quot;,&quot;name&quot;:&quot;Step 4: Create Dynamic Post Pages&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-5-run-the-development-server&quot;,&quot;name&quot;:&quot;Step 5: Run the Development Server&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-6-build-for-production&quot;,&quot;name&quot;:&quot;Step 6: Build for Production&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-7-keep-your-content-in-sync-with-rebuilds&quot;,&quot;name&quot;:&quot;Step 7: Keep Your Content in Sync with Rebuilds&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#phase-3-deploy-astro-project-to-runcloud&quot;,&quot;name&quot;:&quot;Phase 3: Deploy Astro Project to RunCloud&quot;,&quot;tagName&quot;:&quot;h2&quot;},{&quot;id&quot;:&quot;#step-1-push-your-astro-project-to-github&quot;,&quot;name&quot;:&quot;Step 1: Push your Astro project to GitHub&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-2-create-a-new-runcloud-web-application&quot;,&quot;name&quot;:&quot;Step 2: Create a new RunCloud Web Application&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-3-convert-to-atomic-deployment-and-set-webhooks&quot;,&quot;name&quot;:&quot;Step 3: Convert to Atomic Deployment and set Webhooks&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-4-add-your-environment-variables&quot;,&quot;name&quot;:&quot;Step 4: Add your Environment Variables&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-5-install-nvm-via-ssh&quot;,&quot;name&quot;:&quot;Step 5: Install NVM via SSH&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-6-create-the-deployment-script&quot;,&quot;name&quot;:&quot;Step 6: Create the Deployment Script&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#step-7-run-your-first-deployment&quot;,&quot;name&quot;:&quot;Step 7: Run your First Deployment&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#phase-4-advanced-steps-optional&quot;,&quot;name&quot;:&quot;Phase 4: Advanced Steps (optional)&quot;,&quot;tagName&quot;:&quot;h2&quot;},{&quot;id&quot;:&quot;#create-a-staging-environment&quot;,&quot;name&quot;:&quot;Create a Staging Environment&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#install-runcache&quot;,&quot;name&quot;:&quot;Install RunCache&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#make-more-pages-and-endpoints&quot;,&quot;name&quot;:&quot;Make More Pages and Endpoints&quot;,&quot;tagName&quot;:&quot;h3&quot;},{&quot;id&quot;:&quot;#final-thoughts&quot;,&quot;name&quot;:&quot;Final Thoughts&quot;,&quot;tagName&quot;:&quot;h2&quot;}]"></cms-inline-toc></p>
<p><em>A headless WordPress architecture lets you use the WordPress CMS for content management while using the framework of your choice for the frontend. In this tutorial, we will use </em>Astro<em>, a modern framework built for speed that lets you fetch data from WordPress and render it as static HTML.</em></p>
<p>This combination provides the ultimate developer experience: you keep the familiar WordPress dashboard and plugin ecosystem while building a completely custom, high-performance frontend free from the limitations of legacy themes.</p>
<h2 class="wp-block-heading" id="benefits-of-headless-wordpress"><strong>Benefits of Headless WordPress&nbsp;</strong></h2>
<p>Decoupling content creation and frontend development is a major benefit. Content teams use the familiar WordPress dashboard for posts and SEO without touching the Astro codebase, speeding up the content pipeline. Simultaneously, frontend developers focus purely on UX, features, and design optimization without interrupting content work.&nbsp;</p>
<p>Here are the primary advantages you can expect from this headless architecture:</p>
<ul class="wp-block-list">
<li><strong>Performance:</strong> Because Astro builds statically by default, it fetches your data from the WordPress REST API at build time and generates static HTML files, making your site incredibly fast.</li>
<li><strong>Security:</strong> Your WordPress backend is not directly exposed through the frontend, reducing your attack surface while still allowing you to apply standard security controls where needed.</li>
<li><strong>Flexibility:</strong> You have full developer control over the frontend code while still using WordPress as a robust CMS.</li>
<li><strong>SEO:</strong> Static pages are easily crawled and indexed by search engines.</li>
</ul>
<p>By the end of this tutorial, you will know exactly how to connect these two powerful tools. We will focus on producing static pages that are generated entirely at build time.</p>
<p>Once you are comfortable with this workflow, you can later customize how Astro behaves. For example, you can eventually change your category pages to dynamically fetch all pages via the API on the client side, rather than generating them during the build process.</p>
<h2 class="wp-block-heading" id="prerequisites"><strong>Prerequisites</strong></h2>
<p>Before starting, you need a live WordPress site with the REST API accessible (at /wp-json/wp/v2/).</p>
<p>In this guide, we will not teach you how to install WordPress, as we have already covered this topic extensively in our previous blog posts. If you need help setting up your initial WordPress site, please refer to one of these guides:</p>
<h2 class="wp-block-heading" id="phase-1-prepare-wordpress-for-headless"><strong>Phase 1: Prepare WordPress for Headless</strong></h2>
<p>Once your WordPress site is live on the internet, the built-in WordPress REST API will already be active. We just need to make sure it is properly formatted and accessible to Astro.</p>
<ol class="wp-block-list">
<li><strong>Set your Permalinks</strong>: The WordPress REST API relies on clean URLs to work properly.
<ul class="wp-block-list">
<li>Log in to your WordPress admin dashboard.</li>
<li>Navigate to <em>Settings &gt; Permalinks</em>.</li>
<li>Select “Post name” (or any other clean URL structure).</li>
<li>Click <strong>Save Changes</strong>.</li>
</ul>
</li>
<li><strong>Verify the REST API is working</strong>
<ul class="wp-block-list">
<li>Open a new browser tab.</li>
<li>Visit your WordPress site’s API endpoint at https://[YOUR-WP-DOMAIN]/wp-json/wp/v2/ (replace the bracketed text with your actual domain name).</li>
<li>Check the screen for a JSON response containing the site data containing your posts. If you see this data, your headless backend is ready.</li>
</ul>
</li>
</ol>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="581" src="https://massive.news/wp-content/uploads/2026/05/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git.png" alt class="wp-image-13902"></figure>
<ol start="3" class="wp-block-list">
<li><strong>Set up Custom Post Types (Optional)</strong></li>
</ol>
<p>If you use Custom Post Types such as “Portfolios” or “Testimonials”, they are hidden from the REST API by default (unless a plugin actively enables show_in_rest). To use a CPT in your headless setup alongside standard posts and pages, you must configure them in your WordPress dashboard to allow REST API support.</p>
<p><strong><em>Note:</em></strong><em> The upcoming examples will fetch data from a WordPress site whose content types have already been configured and exposed to the REST API.</em></p>
<ol start="4" class="wp-block-list">
<li><strong>Configure Authentication and Fetching Strategy (optional)</strong></li>
</ol>
<p>By default, the REST API is open to the public for reading content. If you are building a private application, you can configure your WordPress site to require authentication by following the official REST API Handbook.</p>
<h2 class="wp-block-heading" id="phase-2-create-wordpress-frontend-with-astro"><strong>Phase 2: Create WordPress Frontend with Astro&nbsp;</strong></h2>
<p>With your WordPress backend configured and its REST API ready to serve content, the next step is to build a fast frontend to display your posts. We’ll use Astro to fetch content from the API at build time, generating static HTML pages for maximum performance and security.</p>
<h3 class="wp-block-heading" id="step-1-create-a-new-astro-project"><strong>Step 1: Create a New Astro Project</strong></h3>
<p>With your WordPress site ready, create a new Astro project using the official starter template:</p>
<pre><code v-pre>npm create astro@latest my-astro-wp</code></pre>
<p>Select the following options when prompted:</p>
<ul class="wp-block-list">
<li>Use A basic, helpful starter project: <strong>Yes</strong></li>
<li>Install dependencies: <strong>Yes</strong></li>
<li>Initialize git: <strong>Yes</strong>&nbsp;</li>
</ul>
<p>Navigate to your project folder:</p>
<pre><code v-pre>cd my-astro-wp</code></pre>
<h3 class="wp-block-heading" id="step-2-configure-environment-variables"><strong>Step 2: Configure Environment Variables</strong></h3>
<p>Create a .env file in the project root to store your WordPress URL:</p>
<pre><code v-pre>PUBLIC_WP_URL=https://runcloud.example.com/wp-json/wp/v2/</code></pre>
<p>Replace the URL with your actual WordPress site URL.</p>
<h3 class="wp-block-heading" id="step-3-create-the-homepage-that-fetches-wordpress-data"><strong>Step 3: Create the Homepage That Fetches WordPress Data</strong></h3>
<p>Create your homepage at <code v-pre>src/pages/index.astro</code> to fetch and display WordPress posts:</p>
<pre><code v-pre>---
import Layout from '../layouts/Layout.astro';
interface WP_Post {
  title: { rendered: string };
  content: { rendered: string };
  excerpt: { rendered: string };
  slug: string;
  _embedded?: {
    'wp:featuredmedia'?: Array&lt;{
      media_details: {
        sizes: {
          medium?: { source_url: string };
        };
      };
    }&gt;;
  };
}
const wpUrl = import.meta.env.PUBLIC_WP_URL;
const res = await fetch(`${wpUrl}/posts?_embed&amp;per_page=20`);
const posts: WP_Post[] = await res.json();
---
&lt;Layout title="Astro + WordPress Blog"&gt;
  &lt;main&gt;
    &lt;h1&gt;Latest Posts&lt;/h1&gt;
    &lt;ul class="post-list"&gt;
      {posts.map((post) =&gt; (
        &lt;li class="post-item"&gt;
          {post._embedded?.['wp:featuredmedia']?.[0]?.media_details?.sizes?.medium?.source_url &amp;&amp; (
            &lt;img
              src={post._embedded['wp:featuredmedia'][0].media_details.sizes.medium.source_url}
              alt={post.title.rendered}
              class="post-thumbnail"
            /&gt;
          )}
          &lt;h2&gt;
            &lt;a href={`/posts/${post.slug}/`} set:html={post.title.rendered} /&gt;
          &lt;/h2&gt;
          &lt;p class="post-excerpt" set:html={post.excerpt.rendered} /&gt;
        &lt;/li&gt;
      ))}
    &lt;/ul&gt;
  &lt;/main&gt;
&lt;/Layout&gt;
&lt;style&gt;
  main {
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem;
  }
  h1 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
    text-align: center;
  }
  .post-list {
    list-style: none;
    padding: 0;
  }
  .post-item {
    margin-bottom: 2rem;
    padding: 1.5rem;
    border: 1px solid #eee;
    border-radius: 8px;
    text-align: center;
  }
  .post-thumbnail {
    width: 100%;
    max-width: 400px;
    height: auto;
    border-radius: 4px;
    margin-bottom: 1rem;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
  .post-item h2 {
    margin: 0.5rem 0;
  }
  .post-item h2 a {
    color: #333;
    text-decoration: none;
  }
  .post-item h2 a:hover {
    color: #0066cc;
  }
  .post-excerpt {
    color: #666;
  }
&lt;/style&gt;</code></pre>
<p><strong>A note on pagination:</strong> The WordPress REST API limits the number of posts that can be returned in a single request. While <code v-pre>per_page=20</code> works for small sites, larger sites will need pagination to fetch all posts.</p>
<p>The maximum value for <code v-pre>per_page</code> is typically 100. If you exceed this, the API will silently limit the results.</p>
<p>For production use, you should either:</p>
<ul class="wp-block-list">
<li>Fetch multiple pages using the <code v-pre>page</code> parameter</li>
<li>Implement a loop to retrieve all posts during the build process</li>
</ul>
<h3 class="wp-block-heading" id="step-4-create-dynamic-post-pages"><strong>Step 4: Create Dynamic Post Pages</strong></h3>
<p>Create <code v-pre>src/pages/posts/[slug].astro</code> to handle individual post pages:</p>
<pre><code v-pre>---
import Layout from '../../layouts/Layout.astro';
interface WP_Post {
  title: { rendered: string };
  content: { rendered: string };
  slug: string;
}
export async function getStaticPaths() {
  const wpUrl = import.meta.env.PUBLIC_WP_URL;
  const res = await fetch(`${wpUrl}/posts?_fields=slug,title,content`);
  const posts: WP_Post[] = await res.json();
  return posts.map((post) =&gt; ({
    params: { slug: post.slug },
    props: { post },
  }));
}
const { post } = Astro.props;
---
&lt;Layout title={post.title.rendered}&gt;
  &lt;main&gt;
    &lt;article&gt;
      &lt;h1 set:html={post.title.rendered} /&gt;
      &lt;div class="content" set:html={post.content.rendered} /&gt;
      &lt;a href="/" class="back-link"&gt;← Back to all posts&lt;/a&gt;
    &lt;/article&gt;
  &lt;/main&gt;
&lt;/Layout&gt;
&lt;style&gt;
  main {
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem;
  }
  article {
    background: white;
    padding: 2rem;
    border-radius: 8px;
  }
  h1 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
    color: #333;
  }
  .content {
    line-height: 1.8;
    color: #444;
  }
  .content :global(img) {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
  }
  .content :global(p) {
    margin-bottom: 1.5rem;
  }
  .back-link {
    display: inline-block;
    margin-top: 2rem;
    color: #0066cc;
    text-decoration: none;
  }
  .back-link:hover {
    text-decoration: underline;
  }
&lt;/style&gt;</code></pre>
<h3 class="wp-block-heading" id="step-5-run-the-development-server"><strong>Step 5: Run the Development Server</strong></h3>
<p>Start the development server:</p>
<pre><code v-pre>npm run dev</code></pre>
<p>Visit <code v-pre>http://localhost:4321</code> to see your headless WordPress blog in action. You should see all your WordPress posts displayed on the homepage, and clicking on any post will take you to its full article page.</p>
<h3 class="wp-block-heading" id="step-6-build-for-production"><strong>Step 6: Build for Production</strong></h3>
<p>When ready to deploy, build your static site:</p>
<pre><code v-pre>npm run build</code></pre>
<p>The output will be in the dist/ folder, ready to deploy to any hosting provider, such as Netlify, GitHub Pages, or RunCloud.</p>
<h3 class="wp-block-heading" id="step-7-keep-your-content-in-sync-with-rebuilds"><strong>Step 7: Keep Your Content in Sync with Rebuilds</strong></h3>
<p>The Astro project in the above example generates static pages at build time by default; any new or updated content published in WordPress will not appear on your live site immediately. To display the latest content, you must trigger a new build so Astro can fetch the fresh data from your REST API.</p>
<p>Depending on your publishing schedule and team size, you have a few ways to manage these rebuilds.</p>
<h4 class="wp-block-heading" id="option-a-manual-rebuilds-simple"><strong>Option A: Manual Rebuilds (Simple)</strong></h4>
<p>If you only publish content occasionally, the simplest approach is to manually trigger a deployment from your RunCloud dashboard whenever you publish a new post.</p>
<ol class="wp-block-list">
<li>Log in to your RunCloud dashboard.</li>
<li>Navigate to <em>Atomic Deployment &gt; your Astro project</em>.</li>
<li>Click <strong>Force Deploy</strong> to force a manual rebuild.</li>
</ol>
<p>RunCloud will run your deployment script, fetch the newest WordPress data, and update your live site using atomic deployment.</p>
<h4 class="wp-block-heading" id="option-b-automated-api-triggers-advanced"><strong>Option B: Automated API Triggers (Advanced)</strong></h4>
<p>By default, RunCloud automatically builds your site whenever new code changes are pushed to GitHub. However, publishing a post in WordPress does not push code to GitHub. To automate deployments based on content updates, you can use the RunCloud API to trigger a build programmatically.</p>
<p>You might be tempted to add a custom PHP function to your WordPress site that pings the RunCloud API every time a post is saved. However, if you have a team of writers constantly saving drafts and making simultaneous revisions, this can result in dozens of unnecessary deployments running back-to-back, which can consume server resources and cause conflicts.</p>
<p><strong>Scheduled Deployments (Cron Jobs)</strong></p>
<p>To avoid overwhelming your deployment pipeline, the best practice is to set up a cron job. Instead of deploying on every single save, you can configure a server cron job to ping the RunCloud deployment API on a predictable schedule.</p>
<ol class="wp-block-list">
<li>Decide on a publishing schedule (for example, once every 12 hours or once a day at midnight).</li>
<li>Create a server-level cron job that sends a POST request to your RunCloud Webhook URL at that specific interval.</li>
<li>Instruct your content team that new posts will go live at those designated times.</li>
</ol>
<p>Read the RunCloud documentation to learn more about enabling API access and setting up cron jobs on RunCloud.</p>
<div class="runcloud-alert" readability="15">
<p><strong>Note:</strong> The need to constantly rebuild your application depends entirely on your Astro project architecture. The steps above apply to Static Site Generation (SSG), Astro’s default behavior that offers the best performance. However, if you configure Astro to use Server-Side Rendering (SSR), your application will dynamically fetch data from the WordPress API at runtime. In an SSR setup, any content changes saved in WordPress will appear on your frontend instantly, completely eliminating the need to rebuild your site after each post.</p>
</div>
<h2 class="wp-block-heading" id="phase-3-deploy-astro-project-to-runcloud"><strong>Phase 3: Deploy Astro Project to RunCloud</strong></h2>
<p>Now that your local Astro project is successfully fetching data from your headless WordPress setup, it is time to share it with the world.</p>
<p>In this phase, we will push your code to GitHub and set up a deployment pipeline on RunCloud.</p>
<p>We are going to configure an “atomic deployment.” The major benefit of this setup is that after you commit and push your code, it becomes available to users worldwide in often less than a minute. Furthermore, if a build fails for any reason, your old code will continue running smoothly with zero downtime.</p>
<p>Here is how to set up your professional deployment workflow.</p>
<h3 class="wp-block-heading" id="step-1-push-your-astro-project-to-github"><strong>Step 1: Push your Astro project to GitHub</strong></h3>
<p>First, we need to host your code in a repository so RunCloud can access it.</p>
<ol class="wp-block-list">
<li>Open your web browser and log in to your GitHub account (or any supported Git provider).</li>
<li>Navigate to your dashboard, then click the <strong>New</strong> button to create a repository.</li>
<li>Give your repository a name.</li>
<li>Leave the option to add a README file unchecked. It is very important that the repository is completely empty.</li>
<li>Click <strong>Create repository</strong>.</li>
<li>GitHub will now show you a page with instructions for pushing an existing repository from the command line. Open your computer’s terminal, make sure you are in your Astro project folder, and copy and paste those specific commands to commit your code and push it to GitHub.</li>
</ol>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="493" src="https://massive.news/wp-content/uploads/2026/05/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git-1.png" alt class="wp-image-13904"></figure>
<h3 class="wp-block-heading" id="step-2-create-a-new-runcloud-web-application"><strong>Step 2: Create a new RunCloud Web Application</strong></h3>
<p>Now, let’s tell RunCloud where to find your code.</p>
<ol class="wp-block-list">
<li>Log in to your RunCloud dashboard.</li>
<li>Navigate to your server, then click <strong>Deploy New Web App</strong>.</li>
<li>Choose the option to install from a Git repository and select your Git provider.</li>
<li>Enter a suitable name for your application.</li>
<li>Locate the “Web Application Owner” section and uncheck the “Use existing system user” checkbox.</li>
<li>Enter a new name, such as <code v-pre>astrowp</code>.</li>
</ol>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="586" src="https://massive.news/wp-content/uploads/2026/05/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git-2.png" alt class="wp-image-13905"></figure>
<ol start="7" class="wp-block-list">
<li>Configure the domain name for your website. (You can use a test domain name for now and update it later manually or by using the RunCloud DNS manager.)</li>
<li>Enter the details for your new project into the “Repository name” and “Branch name” fields.&nbsp;</li>
<li>Copy the deployment key generated by RunCloud.&nbsp;</li>
<li>Open your GitHub repository and navigate to <em>Settings &gt; Deploy keys</em>.</li>
<li>Click <strong>Add deploy key</strong>, paste the key provided by RunCloud, and save your changes.</li>
<li>Return to RunCloud and leave all other settings at their defaults.</li>
<li>Click <strong>Add Web Application</strong>.</li>
</ol>
<p><strong>Note:</strong> Steps for adding deployment keys can vary by provider. For exact steps, screenshots, and a detailed guide, check out your supported provider in the RunCloud documentation.</p>
<h3 class="wp-block-heading" id="step-3-convert-to-atomic-deployment-and-set-webhooks"><strong>Step 3: Convert to Atomic Deployment and set Webhooks</strong></h3>
<p>Atomic deployments keep your site up while Astro builds your new pages.</p>
<ol class="wp-block-list">
<li>Inside your RunCloud dashboard, click on<em> Atomic Deployment </em>in the left menu.</li>
<li>Click the “<strong>Add New Project</strong>” button to convert your application to atomic deployments.</li>
</ol>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="431" src="https://massive.news/wp-content/uploads/2026/05/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git-3.png" alt class="wp-image-13906"></figure>
<ol start="3" class="wp-block-list">
<li>Follow the on-screen instructions to copy the provided webhook URL.</li>
<li>Go back to your GitHub repository, navigate to <em>Settings &gt; Webhooks</em>, and click <strong>Add webhook</strong>.</li>
<li>Paste the RunCloud URL into the “Payload URL” field and save. This ensures that GitHub tells RunCloud to update your site whenever you push new code.</li>
</ol>
<h3 class="wp-block-heading" id="step-4-add-your-environment-variables"><strong>Step 4: Add your Environment Variables</strong></h3>
<p>Because your code is now on a live server, it needs your “.env” file to know where your WordPress API lives. RunCloud’s atomic deployment uses a shared folder so your environment variables persist across deployments.</p>
<ol class="wp-block-list">
<li>In your RunCloud Web Application dashboard, navigate to <em>Atomic Deployment &gt; Your Project &gt; Symlink</em>.</li>
<li>Click <strong>Add New Symlink</strong>.</li>
<li>Set the “Symlink Type” to “Config”.</li>
<li>Enter “.env” in both the “Link From” and “Link To” fields.</li>
<li>Add your PUBLIC_WP_URL variable exactly as you did on your local machine.</li>
<li>Set a password for encryption. Remember this password if you want to edit this file again.</li>
<li>Click <strong>Save</strong>.</li>
</ol>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="522" src="https://massive.news/wp-content/uploads/2026/05/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git-4.png" alt class="wp-image-13907"></figure>
<h3 class="wp-block-heading" id="step-5-install-nvm-via-ssh"><strong>Step 5: Install NVM via SSH</strong></h3>
<p>RunCloud servers ship with a default version of Node.js, but Astro often requires a specific, modern LTS (Long-Term Support) version. We will install Node Version Manager to handle this safely.</p>
<ol class="wp-block-list">
<li>Open your terminal and log in to your server via SSH using your new system user account (for example, “astrowp”). For step-by-step instructions and a detailed guide on connecting to your server via SSH, refer to the RunCloud documentation on How to Connect to Your Server via SSH.</li>
<li>Run the following command to download and install NVM:</li>
</ol>
<pre><code v-pre>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash</code></pre>
<ol start="3" class="wp-block-list">
<li>Close your terminal completely and open a new SSH session so the system recognizes the new software.</li>
<li>Run nvm install –lts to install the latest long-term support version of Node.js.</li>
</ol>
<p><strong>Note:</strong> This is the only time you need to log in via SSH; all other processes will be handled automatically by the Git deployment pipeline.</p>
<h3 class="wp-block-heading" id="step-6-create-the-deployment-script"><strong>Step 6: Create the Deployment Script</strong></h3>
<p>Now we will write the instructions that RunCloud follows every time it receives new code from GitHub.</p>
<ol class="wp-block-list">
<li>In your RunCloud dashboard, navigate to <em>Atomic Deployment &gt; Your Project &gt; Deployment Script</em>.</li>
<li>Scroll down to the <em>Activate Latest Release</em> section and click “<strong>Add Script</strong>”.</li>
<li>Give this script a suitable name, and under the “When to Run This Script”, select “Before Activate latest release” from the dropdown menu.</li>
<li>Delete the default text and paste the following script:</li>
</ol>
<pre><code v-pre># 1. Navigate to the current release directory
cd {RELEASEPATH}


# 2. Load NVM into the script environment 
export NVM_DIR="/home/$USER/.nvm"[ -s "$NVM_DIR/nvm.sh" ] &amp;&amp; . "$NVM_DIR/nvm.sh"


# 3. Tell the system to use the LTS version of Node.js
nvm use --lts


# 4. Install your Astro project dependencies
npm install


# 5. Build the static files using an absolute path to avoid version conflicts
npm run build</code></pre>
<p><strong><em>Note:</em></strong> <em>By using the NVM in step 3, you ensure the system will not accidentally revert to RunCloud’s built-in Node version, preventing unexpected version conflicts.&nbsp;</em></p>
<ol start="5" class="wp-block-list">
<li>Make sure to check the box next to “Run on Web Application” and then click <strong>Save</strong> to apply your new script.</li>
<li>After that, open the Settings tab for this atomic deployment project to configure the deployment configuration options.
<ul class="wp-block-list">
<li><strong>Auto deploy on git push:</strong> Triggers a deployment every time you push code to the configured branch.&nbsp;</li>
<li><strong>Install Composer dependencies:</strong> Ensure this is <strong>UNCHECKED</strong>. For this Astro project, we use npm install in the custom script, not Composer.</li>
<li><strong>Install Dev Dependencies:</strong> Installs development-related PHP dependencies. (Not applicable to this Node.js/Astro project).</li>
</ul>
</li>
<li>You can optionally configure notification channels such as Slack, Discord, Telegram, or Webhooks for both successful and failed deployments in the Notifications section of your RunCloud Web Application.</li>
</ol>
<ol start="3" class="wp-block-list">
<li></li>
</ol>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="614" src="https://massive.news/wp-content/uploads/2026/05/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git-5.png" alt class="wp-image-13908"></figure>
<h3 class="wp-block-heading" id="step-7-run-your-first-deployment"><strong>Step 7: Run your First Deployment</strong></h3>
<p>You are fully configured and ready to go.</p>
<ol class="wp-block-list">
<li>Still inside the <em>Atomic Deployment</em> menu on RunCloud, locate the option to manually run a deployment on the top right.</li>
<li>Click <strong>Force Deploy</strong>.</li>
<li>Watch the deployment log. You will see RunCloud fetch your code, install dependencies, and build your Astro HTML files using your WordPress data.</li>
</ol>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="580" src="https://massive.news/wp-content/uploads/2026/05/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git-6.png" alt class="wp-image-13909"></figure>
<p>Once the build passes, your headless website is officially live. Now, if you visit the URL configured in Step 2 for your frontend web application on RunCloud, you will be able to view your newly deployed, fast, headless WordPress site powered by Astro.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="485" src="https://massive.news/wp-content/uploads/2026/05/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git-7.png" alt="deploy astro headless wordpress site" class="wp-image-13910"></figure>
<h2 class="wp-block-heading" id="phase-4-advanced-steps-optional"><strong>Phase 4: Advanced Steps (optional)</strong></h2>
<p>Now that your headless WordPress and Astro website is live, you can explore a few optional advanced steps to optimize your workflow, improve performance, and expand your site features.</p>
<h3 class="wp-block-heading" id="create-a-staging-environment"><strong>Create a Staging Environment</strong></h3>
<p>To take complete advantage of the RunCloud environment, it is highly recommended to build a staging environment.</p>
<p>A staging environment is a private replica of your website where you can test WordPress plugins, Astro code updates, or new designs without breaking your live production site.</p>
<p>Because your backend (WordPress) and frontend (Astro) are separated, you will manage their staging environments separately. You can deploy two different branches of your Astro Git repository for this purpose.</p>
<h4 class="wp-block-heading" id="test-your-staging-site-locally"><strong>Test your staging site locally:</strong></h4>
<ol class="wp-block-list">
<li>Clone your production WordPress site to a new staging domain on RunCloud using RunCloud’s built-in one-click WordPress staging functionality.</li>
<li>Open your local Astro project on your computer.</li>
<li>Open your “.env” file.</li>
<li>Update the <code v-pre>PUBLIC_WP_URL</code> variable to match your new staging WordPress domain name.</li>
<li>Run your local development server to safely test your new WordPress plugins against your Astro frontend.</li>
</ol>
<h4 class="wp-block-heading" id="create-a-cloud-staging-environment-for-your-team"><strong>Create a cloud staging environment for your team:</strong></h4>
<p>Optionally, you can create a second project on the cloud so your entire team can test changes under load or for longer durations.</p>
<ol class="wp-block-list">
<li>Open your GitHub repository and create a new branch named “staging”.</li>
<li>Log in to your RunCloud dashboard and navigate to <em>Web Application</em>.</li>
<li>Click <strong>Create Web App</strong>.</li>
<li>Follow the standard deployment steps, but enter “staging” into the “Branch name” field.</li>
<li>Assign a test domain name to this new web application and click <strong>Add Web Application</strong>.</li>
</ol>
<h3 class="wp-block-heading" id="install-runcache"><strong>Install RunCache</strong></h3>
<p>To make your headless website build even faster, you should pair it with an object caching plugin. Object caching saves the results of complex database queries and returns data instantly. This significantly speeds up your WordPress REST API responses.</p>
<p>RunCache is a free tool built for this exact purpose. While it is highly optimized for RunCloud servers, it can be <strong>used on any WordPress backend site</strong>.</p>
<h3 class="wp-block-heading" id="make-more-pages-and-endpoints"><strong>Make More Pages and Endpoints</strong></h3>
<p>Your website is currently fetching blog posts, but you are only limited by your imagination. You can create custom views, pages, and features using the pre-built WordPress REST APIs. Astro can generate pages for any data that WordPress outputs.</p>
<p>Here are a few examples of what you can build next:</p>
<ul class="wp-block-list">
<li><strong>Author Pages:</strong> Fetch data from the <code v-pre>/wp-json/wp/v2/users</code> endpoint to create a directory of your blog authors and their biographies.</li>
<li><strong>Category Pages:</strong> Fetch data from the <code v-pre>/wp-json/wp/v2/categories</code> endpoint to generate dynamic landing pages that group your posts by specific topics.</li>
<li><strong>Custom Post Types:</strong> If you use a plugin to create a “Portfolio” or “Testimonials” post type, you can fetch them just like regular posts and design unique Astro layouts for them.</li>
</ul>
<p>If you know a little PHP, you can even write your own WordPress plugins to create completely custom REST API endpoints tailored to your exact business needs.</p>
<p>To discover everything you can fetch and build, review the official WordPress API documentation:</p>
<h2 class="wp-block-heading" id="final-thoughts"><strong>Final Thoughts</strong></h2>
<p>Building a headless architecture with WordPress and Astro offers the best of both worlds: you get the unmatched content management experience of WordPress alongside Astro’s high-performance, developer-first environment.&nbsp;</p>
<p><em>While you are now free from the constraints of pre-built themes, a custom stack demands a fast server environment to handle deployments, security, and consistent uptime.</em></p>
<p>RunCloud bridges this gap by turning complex server administration into a streamlined, automated workflow. Once your site is deployed, RunCloud handles the “heavy lifting” (including server-level security, SSH access, system backups, and automated continuous deployments) so you can focus entirely on your work rather than managing your OS.</p>
<p>If you are looking for a professional-grade way to host and manage your headless infrastructure, RunCloud provides the stability and ease of use your project deserves.</p>
<p>Sign up for your RunCloud account and experience painless server management today.<strong>&nbsp;</strong></p>
<p>The post <a href="https://massive.news/how-to-set-up-a-headless-wordpress-blog-with-astro-and-git/">How to Set Up a Headless WordPress Blog with Astro and Git</a> appeared first on <a href="https://massive.news">MASSIVE News</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tiny fossils found in 1.7 billion-year-old mud yield clues to the evolution of complex life</title>
		<link>https://massive.news/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life/</link>
		
		<dc:creator><![CDATA[wiredgorilla]]></dc:creator>
		<pubDate>Wed, 20 May 2026 23:08:13 +0000</pubDate>
				<category><![CDATA[Technology and Science]]></category>
		<category><![CDATA[animals]]></category>
		<category><![CDATA[chemistry]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Energy]]></category>
		<category><![CDATA[Environment]]></category>
		<category><![CDATA[evolution]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[geology]]></category>
		<category><![CDATA[Insight]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[means]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[oxygen]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[Surface]]></category>
		<category><![CDATA[us]]></category>
		<guid isPermaLink="false">https://massive.news/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life/</guid>

					<description><![CDATA[<p>Stored in an open-air warehouse in tropical Darwin, Australia, are dozens of trays containing cylindrical cores...</p>
<p>The post <a href="https://massive.news/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life/">Tiny fossils found in 1.7 billion-year-old mud yield clues to the evolution of complex life</a> appeared first on <a href="https://massive.news">MASSIVE News</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Stored in an open-air warehouse in tropical Darwin, Australia, are dozens of trays containing cylindrical cores of rock. They are from drill holes bored hundreds of metres below the surface by mineral exploration companies decades ago.</p>
<p>Some of these cores at the Northern Territory Geological Survey are mudstone – a type of sedimentary rock formed from hardened seafloor mud. The companies that drilled these cores were largely unaware that within these mudstones were fossils of microscopic organisms buried on the seafloor of an ancient inland sea that covered much of northern Australia over 1.5 billion years ago.</p>
<p>As our new study, published today in Nature, shows, these fossils are crucial for addressing a longstanding puzzle about the major evolutionary leap that led to all complex life on Earth: the origin of eukaryotes.</p>
<figure class="align-center zoomable">
            <img decoding="async" alt="Large brown rocks rising from a grassy plain." src="https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life.jpg" class="native-lazy" loading="lazy" srcset="https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-1.jpg 600w, https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-2.jpg 1200w, https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-3.jpg 1800w, https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-4.jpg 754w, https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-5.jpg 1508w, https://images.theconversation.com/files/735242/original/file-20260512-57-7npbph.jpeg?ixlib=rb-4.1.0&amp;q=15&amp;auto=format&amp;w=754&amp;h=503&amp;fit=crop&amp;dpr=3 2262w" sizes="(min-width: 1466px) 754px, (max-width: 599px) 100vw, (min-width: 600px) 600px, 237px"><figcaption>
              <span class="caption">Layers of 1.7 billion-year-old sedimentary rocks, Kakadu National Park, Northern Territory.</span><br />
              <span class="attribution"><span class="source">Maxwell Lechte</span></span><br />
            </figcaption></figure>
<h2>Small but complex</h2>
<p>All life on Earth can be placed into one of two types which are fundamentally different at the cellular level. </p>
<p>Prokaryotes (bacteria and archaea) have simple cellular organisation and are mostly single celled. Eukaryotes – including all animals, plants, algae and fungi – are very different. They have much more complicated cells featuring a nucleus and other specialised structures such as organelles which perform specific jobs. </p>
<p>The eukaryotic revolution transformed the planet. It led to the rise of animals and, eventually, to us. Based on observations from the genes of living organisms, it is now widely agreed that the last common ancestor of all living eukaryotes resulted from the symbiotic union of (at least) two prokaryotic microbes: an archaeon and a bacterium. </p>
<p>The first evidence for eukaryotic life comes in the form of these fossils of single-celled organisms. They show a level of cellular complexity not seen among prokaryotes, but common in eukaryotes. </p>
<p>Eukaryote fossils can be found around the world in rocks dating back at least 1.5 billion years. The fossils of the Northern Territory, the oldest of which date back to 1.75 billion years ago, are the oldest currently known eukaryote fossils globally.</p>
<p>But the ancient world in which early eukaryotes evolved remains shrouded in mystery. And so many fundamental aspects regarding their nature are unknown. </p>
<h2>Oxygen – friend or foe?</h2>
<p>Many types of bacteria can live and grow in places without oxygen. But nearly all eukaryotes alive today use oxygen for their survival. That’s because aerobic respiration – breaking down food using oxygen – provides the vast amounts of energy that complex life demands.</p>
<p>But the idea that oxygen has always been beneficial for all eukaryotes has come under fire in recent years. This follows the surprising discoveries of enigmatic eukaryotes that can thrive in conditions without oxygen. </p>
<p>There is also mounting evidence from the geological record that when eukaryotes were first evolving, oxygen was likely much scarcer. This means oxygen-free marine habitats would have been the norm. Collectively, these observations have called into question the assumption eukaryotes have depended on oxygen since their inception. </p>
<p>Genetic studies of living microbes belonging to groups considered closest to the ancestors of the first eukaryote can offer key insights into eukaryote ancestry. But only the fossil record can tell us about long-extinct lineages. And only geology can offer a window into the kind of world these organisms lived in.</p>
<figure class="align-center zoomable">
            <img decoding="async" alt="A microscopic image of five fossils." src="https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life.png" class="native-lazy" loading="lazy" srcset="https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-1.png 600w, https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-2.png 1200w, https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-3.png 1800w, https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-4.png 754w, https://massive.news/wp-content/uploads/2026/05/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life-5.png 1508w, https://images.theconversation.com/files/736995/original/file-20260520-71-1pc5bs.png?ixlib=rb-4.1.0&amp;q=15&amp;auto=format&amp;w=754&amp;h=670&amp;fit=crop&amp;dpr=3 2262w" sizes="(min-width: 1466px) 754px, (max-width: 599px) 100vw, (min-width: 600px) 600px, 237px"><figcaption>
              <span class="caption">Fossils of single-celled eukaryotic organisms with complex surface features such as extensions and plates.</span><br />
              <span class="attribution"><span class="source">Leigh Anne Riedman</span></span><br />
            </figcaption></figure>
<h2>More than 12,000 fossils</h2>
<p>For our new study, we crushed up samples of the mudstone cores stored in Darwin, then dissolved them. We identified more than 12,000 fossils by analysing the organic residue left behind by this dissolution under a microscope. </p>
<p>We also studied the mudstones the fossils were preserved in to better understand what the environment was like when the sediments were deposited. This offered insight about the habitats in which these eukaryotes lived. And by analysing the chemistry of these mudstones, we could determine whether oxygen was present in the ancient seawater.</p>
<p>Our results show that eukaryote fossils were found in environments ranging from coastal mudflats to the open sea. But they were present only in samples deposited in oxygenated settings. Samples from oxygen-free environments contained only simple, prokaryotic forms.</p>
<p>This suggests that even the oldest known eukaryotes that lived on Earth 1.7 to 1.4 billion years ago were dependent on oxygen. These data lend support to a long-held hypothesis that oxygen played a key role in driving the evolution of early eukaryotes.</p>
<p>Resolving the drivers and context of the major evolutionary leap represented by early eukaryotes is one of the major outstanding questions in the life sciences. Ongoing studies of these enigmatic, ancient microfossils will no doubt tell us more about our own origins – and our place in the cosmos.</p>
<p>The post <a href="https://massive.news/tiny-fossils-found-in-1-7-billion-year-old-mud-yield-clues-to-the-evolution-of-complex-life/">Tiny fossils found in 1.7 billion-year-old mud yield clues to the evolution of complex life</a> appeared first on <a href="https://massive.news">MASSIVE News</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
