Why I am Building IndieWeb Search | James' Coffee Blog
How my search engine direct answers work | James' Coffee Blog
Generating a PDF from a folder of Markdown files | James' Coffee Blog
Fun with Words | James' Coffee Blog
Seeing your content at the top of a search results page | James' Coffee Blog
My search engine has moved to IndieWeb Search | James' Coffee Blog
The Housekeeper and The Professor Book Review | James' Coffee Blog
Adding hovercards to my website | James' Coffee Blog
Announcing stories.js: Create web stories on your personal website | James' Coffee Blog
Announcing Screenshots: How I generate meta images for my site | James' Coffee Blog
Announcing indieweb-utils | James' Coffee Blog
How to make a plant monitor dashboard: Part II | James' Coffee Blog
SWICG Email: Community Events Calendar and Website | James' Coffee Blog
Why I publish microformats on my website | James' Coffee Blog
Creating my GitHub README.md | James' Coffee Blog
Owning my links | James' Coffee Blog
Trying Not to Overengineer | James' Coffee Blog
Cleaning Up the IndieWeb Webring | James' Coffee Blog
Writing an Analytics Bash Script | James' Coffee Blog
Announcing getsitemap, a Python library for sitemap URL retrieval | James' Coffee Blog
Linking to GitHub repositories from my own site | James' Coffee Blog
Weeknotes #1: The Beginning | James' Coffee Blog
How to Start a Garden | James' Coffee Blog
Reorganizing my site home page | James' Coffee Blog
My source code root folder name | James' Coffee Blog
Computer-generated art | James' Coffee Blog
Before the coffee gets cold Book Review | James' Coffee Blog
Before the coffee gets cold: Tales of the cafe Book Review | James' Coffee Blog
The one with the Standing Desk | James' Coffee Blog
Porridge Overflow | James' Coffee Blog