parent
e742a2d6d5
commit
9a67ef9211
@ -0,0 +1,152 @@ |
||||
{{ define "body" }} |
||||
|
||||
<script async type="module" src="/assets/api.js"></script> |
||||
|
||||
<p> |
||||
Here's your options for receiving updates about new blog posts: |
||||
</p> |
||||
|
||||
<h2>Option 1: Email</h2> |
||||
|
||||
<p> |
||||
Email is by far my preferred option for notifying followers of new posts. |
||||
</p> |
||||
|
||||
<p> |
||||
The entire email list system for this blog, from storing subscriber email |
||||
addresses to the email server which sends the notifications out, has been |
||||
designed from scratch and is completely self-hosted in my living room. |
||||
</p> |
||||
|
||||
<p> |
||||
I solemnly swear that: |
||||
</p> |
||||
|
||||
<ul> |
||||
|
||||
<li> |
||||
You will never receive an email from this blog except to notify of a new |
||||
post. |
||||
</li> |
||||
|
||||
<li> |
||||
Your email will never be provided or sold to anyone else for any reason. |
||||
</li> |
||||
|
||||
</ul> |
||||
|
||||
<p> |
||||
With all that said, if you'd like to receive an email everytime a new blog |
||||
post is published then input your email below and smash that subscribe button! |
||||
You will need to verify your email, so be sure to check your spam folder to |
||||
complete the process if you don't immediately see anything in your inbox. |
||||
</p> |
||||
|
||||
<style> |
||||
|
||||
#emailStatus.success { |
||||
color: green; |
||||
} |
||||
|
||||
#emailStatus.fail { |
||||
color: red; |
||||
} |
||||
|
||||
</style> |
||||
|
||||
<input type="email" placeholder="name@host.com" id="emailAddress" /> |
||||
<input class="button-primary" type="submit" value="Subscribe" id="emailSubscribe" /> |
||||
<span id="emailStatus"></span> |
||||
|
||||
<script> |
||||
|
||||
const emailAddress = document.getElementById("emailAddress"); |
||||
const emailSubscribe = document.getElementById("emailSubscribe"); |
||||
const emailSubscribeOrigValue = emailSubscribe.value; |
||||
const emailStatus = document.getElementById("emailStatus"); |
||||
|
||||
emailSubscribe.onclick = async () => { |
||||
|
||||
const api = await import("/assets/api.js"); |
||||
|
||||
emailSubscribe.disabled = true; |
||||
emailSubscribe.className = ""; |
||||
emailSubscribe.value = "Please hold..."; |
||||
emailStatus.innerHTML = ''; |
||||
|
||||
try { |
||||
|
||||
if (!window.isSecureContext) { |
||||
throw "The browser environment is not secure."; |
||||
} |
||||
|
||||
await api.call('/api/mailinglist/subscribe', { |
||||
body: { email: emailAddress.value }, |
||||
requiresPow: true, |
||||
}); |
||||
|
||||
emailStatus.className = "success"; |
||||
emailStatus.innerHTML = "Verification email sent (check your spam folder)"; |
||||
|
||||
} catch (e) { |
||||
emailStatus.className = "fail"; |
||||
emailStatus.innerHTML = e; |
||||
|
||||
} finally { |
||||
emailSubscribe.disabled = false; |
||||
emailSubscribe.className = "button-primary"; |
||||
emailSubscribe.value = emailSubscribeOrigValue; |
||||
} |
||||
|
||||
}; |
||||
|
||||
</script> |
||||
|
||||
<h2>Option 2: RSS</h2> |
||||
|
||||
<p> |
||||
RSS is the classic way to follow any blog. It comes from a time before |
||||
aggregators like reddit and twitter stole the show, when people felt capable |
||||
to manage their own content feeds. We should use it again. |
||||
</p> |
||||
|
||||
<p> |
||||
To follow over RSS give any RSS reader the following URL... |
||||
</p> |
||||
|
||||
<p> |
||||
<a href="{{ BlogURL "feed.xml" }}">{{ BlogURL "feed.xml" }}</a> |
||||
</p> |
||||
|
||||
<p> |
||||
...and posts from this blog will show up in your RSS feed as soon as they are |
||||
published. There are literally thousands of RSS readers out there. Here's some |
||||
recommendations: |
||||
</p> |
||||
|
||||
<ul> |
||||
<li> |
||||
<a href="https://chrome.google.com/webstore/detail/rss-feed-reader/pnjaodmkngahhkoihejjehlcdlnohgmp"> |
||||
Google Chrome Browser Extension |
||||
</a> |
||||
</li> |
||||
|
||||
<li> |
||||
<a href="https://f-droid.org/en/packages/net.etuldan.sparss.floss/"> |
||||
spaRSS |
||||
</a> |
||||
is my preferred android RSS reader, but you'll need to install |
||||
<a href="https://f-droid.org/">f-droid</a> on your device to use it (a |
||||
good thing to do anyway, imo). |
||||
</li> |
||||
|
||||
<li> |
||||
<a href="https://ranchero.com/netnewswire/">NetNewsWire</a> |
||||
is a good reader for iPhone/iPad/Mac devices, so I'm told. Their homepage |
||||
description makes a much better sales pitch for RSS than I ever could. |
||||
</li> |
||||
</ul> |
||||
|
||||
{{ end }} |
||||
|
||||
{{ template "base.html" . }} |
Loading…
Reference in new issue