---
layout: layouts/base.njk
title: Nathan Upchurch | Blogroll
structuredData: none
---
<h1>Blogroll</h1>
<p class="nodropcap">Here are some blogs and independent news outlets I like to read. You can click the RSS icon next to each to subscribe using <a href="../about-feeds/">your newsreader</a>, or import all of them at once by downloading and importing this convenient <a href="./nathanUpchurchBlogroll.opml" download>.opml file</a>.</p>
<p class="page-block">
<em>Skip to category:
{% for category in blogroll.categories %}
<a href="#{{ category.name | slugify }}">{{ category.name }}</a>{% if loop.last %}.{% else %},{% endif %}
{% endfor %}
</em></p>

{% for category in blogroll.categories %}
<section class="blogroll">
	<h2 id="{{ category.name | slugify }}">{{ category.name }}:<a class="header-anchor" href="#{{ category.name | slugify }}">#</a></h2>
		{% for blog in category.blogs %}
		<div class="blogroll-category-group">
			<a href="{{ blog.url }}"><h3>{{ blog.title }}</h3></a>

			<a href="{{ blog.feedUrl }}">
				<svg class="tag-feed-icon small" viewBox="0 0 155 155" width="153.349" height="152.909" version="1.0" xmlns="http://www.w3.org/2000/svg">
					<title>RSS feed for {{ blog.url }}</title>
					<g transform="translate(-427.323 -373.814)">
						<ellipse style="opacity: 1; fill-opacity: 1; fill-rule: nonzero" transform="matrix(.86996 0 0 .86996 135.156 330.529)" cx="360.357" cy="200.643" rx="24.643" ry="23.929"></ellipse>
						<path style="fill-opacity: 1; fill-rule: evenodd" d="m427.835 455.057-.073-30.273c64.706 3.375 100.619 49.673 101.5 101.94h-30.318c-.503-45.942-31.74-69.996-71.11-71.667z"></path>
						<path style="fill-opacity: 1; fill-rule: evenodd" d="m428.201 404.571-.878-30.757C526.75 378.43 580 450.582 580.67 526.724l-31.197-.44c1.365-48.704-34.665-120.267-121.273-121.713Z"></path>
					</g>
				</svg>
			</a>
			<p>{{ blog.description | safe }}</p>
		</div>
		{% endfor %}
	</section>
{% endfor %}
