Welcome. You’ve stumbled across the personal website of James Sinclair. I’m a Christian web developer, living and working in Australia. Among other things, I write about web development, Christianity, art, functional programming, and writing.

Site organisation

The site is divided into two main sections:

  1. Web development: Which, as you might expect, is mostly about writing code in JavaScript, HTML, and CSS. I also tend to write enthusiastically about things I believe improve code quality. That list includes functional programming, TDD, and property-based testing. If you’re only interested in the web development content, you can subscribe to just the web development RSS feed.

  2. Essays: To be honest, this is a label for ‘everything that’s not web development.’ That includes things like essays on social capital, art, writing, movies, and the ethics of fantasy stories. If this kind of content interests you, but you’d rather skip the web development content, there’s an RSS feed for that.

In the distant past, I completed a PhD in information architecture at the ANU. Earlier versions of my site featured some of my publications. To help prevent link rot, I still keep them around.

In the even more distant past, I wrote some silly stories. Many of them featured a not-terribly-flattering caricature of my sister Heather as the main character. Again, I keep them around mainly to slow the spread of link rot.


The kind of people who know what a ‘colophon’ is tend to care most about the typesetting, so let’s jump straight into it.


Body text for the site is set in the wonderful Munson family by Paul Miller. In case you can’t tell, I really like it. The wonky lowercase ‘f’ has so much character, and the serifs on the lowercase ‘a’ and ‘t’ are delightful.

Headings are set in Rosewood Std Fill. Like Munson, it's full of charming imperfections. Though, to be fair, the ‘Fill’ variant isn’t intended for standalone use. Ostensibly, it exists to provide a background for the ‘Regular’ Rosewood.

Code blocks are set in Courier Prime. I dearly loved the distressed old typewriter fonts I used for earlier site designs, but too many people complained that they couldn’t read them. So in the interest of inclusivity, I’m using something more legible.

You'll also find occasional bits and pieces set in sans-serif. These are all using Franklin Gothic FS.

Under the hood

Some other things that might interest the nerds:

  • The site is statically-generated; built using Astro. I write articles in Markdown, and Astro converts them into HTML and CSS using remark-rehype. This is nice, since Astro allows you to use plugins from the unified ecosystem.

  • To make the sidenotes work, I built my own rehype plugin, rehype-sidenotes. At some point, I may write up a post on how it works. I’ve also written another small plugin to support Multimarkdown and Pandoc-style table captions. I haven’t released that as a separate package, but if you’re interested, let me know.

  • Syntax highlighting comes courtesy of the wonderful Prism library. I’ve created my own custom colour theme using CSS, and make use of the Highlight Keywords plugin for a bit of extra control.

  • I use packages from remark-math to typeset Mathematical formulae.

  • The site is currently hosted on Netlify.

  • Source code for the site is repositoried with GitHub, but is currently in a private reposotiry (for now).

  • The fog animation (should you choose to enable it) uses only CSS (no JavaScript). Some JavaScript is involved to toggle it on and off. But even that is simply adding or removing a class to/from a DOM element.

The lamp illustration and the background ‘fog’ clouds are my own work, as is the overall site design.

Other things

  • I’ve been training Brazilian jiu-jitsu since 2019.

  • I like drinking coffee. My current brewing method is hand-grinder + Aeropress. The city where I live (and Australia in general) has a cornucopia of masterful roasters.

Thanks for stopping by.