User:Jamesg.blog

James (capjamesg)
Hello there! I am James. I started writing about coffee and the IndieWeb in mid-2020. Since then I have written dozens of posts on speciality coffee, interviewed many coffee professionals for my blog, and have explained some of my web and programming projects in detail in blog posts.

The values of data ownership and using what you build (also called "eating your own dog food" in the community) resonate with me. I use my blog, and its associated infrastructure, to take control over my writing and social interactions. I build tools that help me make my blog what I want it to be. My needs and interests are constantly changing so my website will never be truly complete.

IndieWeb Search
I built a search engine for the IndieWeb community. You can read more about the search engine on the IndieWeb Search wiki page. You can use the search engine yourself. This project is under active development. Feedback is appreciated.

My Website
My website, found at jamesg.blog, is content-heavy. I place a lot of emphasis on the long-form content on my site as that is my preferred method of writing. On my home page I list my most recent posts. There are some lists of links to help people find my coffee interviews, coffee blogs and books posts, and my general coffee posts. I also have pagination and automatically-generated category pages that makes it easy to find content.

Technologies
My site is generated using letsjam, my custom-built static site generator.

Micropub
My website currently supports Micropub, powered by my Micropub server (NB: All of my IndieWeb projects are named after their purpose so this project is called my Micropub server). My Micropub server lets me post content from a Micropub client I wrote. The server creates a document formatted with front matter which is then posted to my jamesg.blog GitHub repository. After the post is pushed to GitHub, Netlify deploys the post to my blog.

Here are the social interactions I support on my site:


 * Drinking posts (where I post what coffee I am drinking)
 * Notes
 * Likes
 * Bookmarks
 * Checkins
 * RSVPs

Webmentions
My blog supports Webmentions. You can send a Webmention to any page on jamesg.blog and the mention will be picked up by my receiver. I built my own receiver, called my Webmention Receiver, to learn more about the Webmention specification and to take control over more data that means a lot to me.

Webmentions show up on all of my blog posts and social interactions (i.e. likes and checkins) through a short JavaScript snippet I have written and embedded onto those pages.

Social Syndication from Instagram
I use Instagram more than any other social network. I rely on brid.gy to receive any comments or likes posted on my Instagram posts as Webmentions. Webmentions are only sent to pages when I have linked to a page on my blog in the Instagram post.

I am interested in syndicating my Instagram posts to my blog but I have not yet worked on a solution to this problem.

Open Source Projects
I have open-sourced a number of components behind my website on GitHub. My open-source projects are usually named after the function they provide.

Here are the open-source projects I have written so far:


 * capjamesg/micropub
 * capjamesg/microsub
 * capjamesg/jamesg-indieauth
 * capjamesg/webmention-receiver
 * capjamesg/websub
 * capjamesg/indieweb-search
 * capjamesg/indieweb-utils
 * capjamesg/static-site-webring
 * capjamesg/planet
 * capjamesg/microsub-opml-utils

The first five projects are implementations of specifications in Python and should not be confused with specifications themselves. Further documentation on each project is provided on the linked GitHub pages.

IndieWeb Blog Posts
You can find a list of the posts I have written about the IndieWeb on my blog. Here [are] a few of the highlights:


 * My search engine has moved to IndieWeb Search (06 September 2021)


 * Sharing social interactions with Micropub (02 September 2021)


 * Adding links to serial blog posts (10 August 2021)


 * Weighing search results on my personal search engine (06 August 2021)


 * How my blog search engine works, briefly (04 August 2021)


 * Implementing TextRank on my blog search engine (22 July 2021)


 * Building a search engine for my blog: Part II (21 July 2021)


 * Building a search engine for my blog (20 July 2021)


 * The Thermal Printer Project: Printing hcards (02 July 2021)


 * The Thermal Printer Project: IndieWeb Wiki (01 July 2021)

Itches

 * Find usage of rel=me and the rel=privacy-policy attributes in Common Crawl