How to Set Up a Self-Updating Blog Page on Neocities
Using Standard Notes, Listed, and an RSS Feed
What is Standard Notes?
Standard Notes is a privacy-focused writing app. Think of it as a simpler, encrypted version of Evernote or Notion — with less bloat and more focus. You can use it for journaling, note-taking, writing drafts, or… publishing blog posts. It works on:
Web (in any browser)
Desktop (Windows, Mac, Linux)
Mobile (iOS and Android)
Your notes sync across devices, and because the app is end-to-end encrypted, you’re the only one who can read what you write. No cloud peeking, no surveillance. Perfect for a private journal, but it also offers an opt-in public blog feature called Listed.
What is Listed?
Listed is a blogging extension built into Standard Notes. You choose which notes to publish publicly. Each time you publish one, it shows up on a minimalist blog page — something like:
https://listed.to/@yourusername
That page also includes an automatically generated RSS feed:
https://listed.to/@yourusername/feed
Step-by-Step: How to Set This Up
1. Set Up Standard Notes + Listed
Go to standardnotes.com and create an account
Download the mobile app (optional but useful)
In the web or desktop app, go to the menu and open “Extensions”
Enable the extension called Listed
This will give you a blog URL like https://listed.to/@yourusername
You now have a blog, but it’s empty until you publish something. Let’s fix that next.
2. Write and Publish a Post
Create a new note
Click or tap the “share” icon
Select “Publish to Listed”
The note is now live on your blog and added to your RSS feed
You can do this from your phone too — same steps. Just write, publish, done.
3. Create Your Blog Page on Neocities
On your Neocities site, create a new page like blog.html. This page will act as a visual wrapper that pulls content from your RSS feed and displays it automatically. Here’s what your code might look like.
Copy and paste the code below into your file editor:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>My Blog</title> <meta name="description" content="Posts from my Standard Notes blog"> <link rel="stylesheet" href="style.css"> </head> <body> <h1>Blog</h1> <div id="blog-feed">Loading posts...</div> <script> fetch("https://listed.to/@yourusername/feed") .then(res => res.text()) .then(str => new window.DOMParser().parseFromString(str, "text/xml")) .then(data => { const items = data.querySelectorAll("item"); const container = document.getElementById("blog-feed"); container.innerHTML = ""; items.forEach(item => { const title = item.querySelector("title").textContent; const link = item.querySelector("link").textContent; const pubDate = new Date(item.querySelector("pubDate").textContent); const description = item.querySelector("description")?.textContent || ""; const post = document.createElement("div"); post.className = "post"; post.innerHTML = ` <a href="${link}" target="_blank">${title}</a> <div class="date">${pubDate.toDateString()}</div> <div class="desc">${description}</div> `; container.appendChild(post); }); }) .catch(err => { document.getElementById("blog-feed").innerText = "Couldn't load posts."; console.error(err); }); </script> </body> </html>
Important: replace @yourusername in the URL with your actual Listed username.
You can also style this page with your site’s usual CSS — background, fonts, layout — just like any other part of your site.
Why Use This Method?
Most blogging platforms give you either:
Too much complexity (WordPress, Ghost, etc.)
Or no control at all
This setup gives you the best of both:
Post from anywhere — desktop or mobile
Your blog updates automatically
Hope this helps!!












