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.
I co-host Homebrew Website Club London / Europe with Mark Sutherland. I am a co-chair on the W3C Social Web Incubator Community Group.
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 Aurora, 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 view my IndieWeb-related blog posts on the IndieWeb category on my blog.