Mason James · Remote, U.S.

I build apps and websites for small businesses and nonprofits.

You know your work. I can help with the technology behind it. I’ll take the time to understand what your team needs, explain the options in plain language, and build something you feel comfortable using. Then I can help you look after it.

Notes from my work

All writing

Get new writing by email

Notes on software, AI tools, and what I learn by using them.

A few things I’ve built

All projects

Open-source EmDash plugin Beta

Paid Access

Charge people, AI agents, or both for the same post.

  • People and AI agentsCharge either audience, or both, for the same post.
  • Stripe membershipsPlans, Checkout and the customer portal, with email-link sign-in.
  • x402 pay per readAgents pay in USDC on Base and get the full post as Markdown.

Colophon

This site runs on a forked emdash stack — including the drag-and-drop media uploads I contributed upstream in PR #1366.

Publishing

A forked emdash install, packaged for this site and rendered by Astro on a Node standalone server. Content persists in SQLite; media uploads resolve from Cloudflare R2.

Interface

The layout began with the Echo template from shadcnblocks; Resources also borrows from the block library. Tailwind CSS drives the palette picker, theme presets, and day/night modes.

Hosting

Served from self-managed Hetzner servers through Docker Swarm and a Caddy-first Dokploy fork. The upstream Caddy provider PR grew out of a long-running Dokploy feature request.

Operations

Public traffic flows through Cloudflare and Caddy; the admin plane stays private on Tailscale. platform-infra keeps Dokploy manifests, Prometheus/Grafana/Loki monitoring, and Restic-to-R2 backups close to the code.

GitHub Activity

Live work from @masonjames

A rolling contribution map from GitHub, tuned to the same color tokens as the rest of the site.

Full-year public calendar

github.com/masonjames
OctNovDecJanFebMarAprMayJunJulAugSepOctNo contributions on Oct 11, 2025No contributions on Oct 12, 2025No contributions on Oct 14, 2025No contributions on Oct 16, 2025No contributions on Oct 19, 2025No contributions on Oct 23, 2025No contributions on Oct 25, 2025No contributions on Oct 26, 2025No contributions on Oct 27, 2025No contributions on Oct 28, 2025No contributions on Oct 29, 2025No contributions on Oct 30, 2025No contributions on Oct 31, 2025No contributions on Nov 1, 2025No contributions on Nov 2, 2025No contributions on Nov 3, 2025No contributions on Nov 4, 2025No contributions on Nov 5, 2025No contributions on Nov 6, 2025No contributions on Nov 13, 2025No contributions on Nov 14, 2025No contributions on Nov 15, 2025No contributions on Nov 19, 2025No contributions on Nov 24, 2025No contributions on Nov 29, 2025No contributions on Nov 30, 2025No contributions on Dec 1, 2025No contributions on Dec 11, 2025No contributions on Dec 17, 2025No contributions on Dec 20, 2025No contributions on Dec 21, 2025No contributions on Dec 25, 2025No contributions on Dec 26, 2025No contributions on Dec 27, 2025No contributions on Dec 28, 2025No contributions on Dec 29, 2025No contributions on Jan 4, 2026No contributions on Jan 6, 2026No contributions on Jan 7, 2026No contributions on Jan 8, 2026No contributions on Jan 9, 2026No contributions on Jan 10, 2026No contributions on Jan 11, 2026No contributions on Jan 15, 2026No contributions on Jan 16, 2026No contributions on Jan 18, 2026No contributions on Jan 19, 2026No contributions on Jan 20, 2026No contributions on Jan 24, 2026No contributions on Jan 25, 2026No contributions on Feb 22, 2026No contributions on Mar 3, 2026No contributions on Mar 4, 2026No contributions on Mar 7, 2026No contributions on Mar 8, 2026No contributions on Mar 12, 2026No contributions on Mar 13, 2026No contributions on Mar 14, 2026No contributions on Mar 20, 2026No contributions on Mar 22, 2026No contributions on Mar 29, 2026No contributions on Apr 4, 2026No contributions on Apr 9, 2026No contributions on Apr 12, 2026No contributions on Apr 18, 2026No contributions on Apr 19, 2026No contributions on Apr 20, 2026No contributions on Apr 25, 2026No contributions on Apr 26, 2026No contributions on Apr 29, 2026No contributions on May 2, 2026No contributions on May 8, 2026No contributions on May 17, 2026No contributions on May 26, 2026No contributions on May 29, 2026No contributions on May 30, 2026No contributions on Jun 6, 2026No contributions on Jun 13, 2026No contributions on Jun 14, 2026No contributions on Jun 19, 2026No contributions on Jun 20, 2026No contributions on Jun 21, 2026No contributions on Jul 2, 2026No contributions on Jul 5, 2026No contributions on Jul 19, 2026No contributions on Jul 24, 2026No contributions on Aug 21, 2026No contributions on Sep 9, 20261 contribution on Oct 13, 20253 contributions on Oct 15, 20252 contributions on Oct 17, 20251 contribution on Oct 18, 202527 contributions on Oct 20, 202510 contributions on Oct 21, 202517 contributions on Oct 22, 20251 contribution on Oct 24, 202528 contributions on Nov 7, 202513 contributions on Nov 8, 20253 contributions on Nov 9, 20252 contributions on Nov 10, 20252 contributions on Nov 11, 20255 contributions on Nov 12, 202524 contributions on Nov 16, 202519 contributions on Nov 17, 20251 contribution on Nov 18, 20252 contributions on Nov 20, 202514 contributions on Nov 21, 20258 contributions on Nov 22, 20252 contributions on Nov 23, 20253 contributions on Nov 25, 202520 contributions on Nov 26, 20253 contributions on Nov 27, 20259 contributions on Nov 28, 20251 contribution on Dec 2, 20253 contributions on Dec 3, 202511 contributions on Dec 4, 202517 contributions on Dec 5, 20259 contributions on Dec 6, 20254 contributions on Dec 7, 202531 contributions on Dec 8, 202543 contributions on Dec 9, 20256 contributions on Dec 10, 20254 contributions on Dec 12, 20253 contributions on Dec 13, 202541 contributions on Dec 14, 202522 contributions on Dec 15, 202533 contributions on Dec 16, 20258 contributions on Dec 18, 20252 contributions on Dec 19, 20259 contributions on Dec 22, 20253 contributions on Dec 23, 20256 contributions on Dec 24, 20259 contributions on Dec 30, 20255 contributions on Dec 31, 20256 contributions on Jan 1, 20261 contribution on Jan 2, 20261 contribution on Jan 3, 20262 contributions on Jan 5, 20266 contributions on Jan 12, 20262 contributions on Jan 13, 20262 contributions on Jan 14, 20261 contribution on Jan 17, 20265 contributions on Jan 21, 20267 contributions on Jan 22, 20264 contributions on Jan 23, 202628 contributions on Jan 26, 202619 contributions on Jan 27, 202624 contributions on Jan 28, 202629 contributions on Jan 29, 202627 contributions on Jan 30, 202634 contributions on Jan 31, 202643 contributions on Feb 1, 202617 contributions on Feb 2, 202623 contributions on Feb 3, 202628 contributions on Feb 6, 202634 contributions on Feb 7, 202624 contributions on Feb 8, 202631 contributions on Feb 9, 202631 contributions on Feb 10, 202648 contributions on Feb 11, 202613 contributions on Feb 12, 20265 contributions on Feb 13, 20265 contributions on Feb 14, 20261 contribution on Feb 15, 202618 contributions on Feb 16, 202613 contributions on Feb 17, 202640 contributions on Feb 18, 20268 contributions on Feb 19, 202614 contributions on Feb 20, 20265 contributions on Feb 21, 202618 contributions on Feb 23, 20265 contributions on Feb 24, 20269 contributions on Feb 25, 202620 contributions on Feb 26, 20265 contributions on Feb 27, 202610 contributions on Feb 28, 202611 contributions on Mar 1, 202624 contributions on Mar 2, 20261 contribution on Mar 5, 20262 contributions on Mar 6, 20261 contribution on Mar 9, 202628 contributions on Mar 10, 20267 contributions on Mar 11, 20266 contributions on Mar 15, 202614 contributions on Mar 16, 202614 contributions on Mar 17, 202619 contributions on Mar 18, 20262 contributions on Mar 19, 20261 contribution on Mar 21, 202610 contributions on Mar 23, 20268 contributions on Mar 24, 202622 contributions on Mar 25, 202640 contributions on Mar 26, 202621 contributions on Mar 27, 20265 contributions on Mar 28, 20265 contributions on Mar 30, 202614 contributions on Mar 31, 202622 contributions on Apr 1, 202622 contributions on Apr 3, 202613 contributions on Apr 5, 202618 contributions on Apr 6, 20268 contributions on Apr 7, 202610 contributions on Apr 8, 20269 contributions on Apr 10, 202611 contributions on Apr 11, 202637 contributions on Apr 13, 20269 contributions on Apr 14, 202612 contributions on Apr 15, 20264 contributions on Apr 16, 20263 contributions on Apr 17, 20269 contributions on Apr 21, 20262 contributions on Apr 22, 20262 contributions on Apr 23, 20261 contribution on Apr 24, 20267 contributions on Apr 27, 20264 contributions on Apr 28, 20265 contributions on Apr 30, 20263 contributions on May 1, 20267 contributions on May 3, 202650 contributions on May 4, 202618 contributions on May 6, 20261 contribution on May 7, 20261 contribution on May 9, 20261 contribution on May 10, 202618 contributions on May 11, 202642 contributions on May 12, 202636 contributions on May 13, 202613 contributions on May 14, 202619 contributions on May 15, 20262 contributions on May 16, 202610 contributions on May 18, 202611 contributions on May 19, 20269 contributions on May 20, 20268 contributions on May 21, 20264 contributions on May 22, 20263 contributions on May 23, 20261 contribution on May 24, 20261 contribution on May 25, 20267 contributions on May 27, 20268 contributions on May 28, 20262 contributions on May 31, 202621 contributions on Jun 1, 202612 contributions on Jun 2, 20262 contributions on Jun 3, 20261 contribution on Jun 4, 20262 contributions on Jun 5, 20262 contributions on Jun 7, 20269 contributions on Jun 8, 202616 contributions on Jun 9, 202640 contributions on Jun 11, 202615 contributions on Jun 12, 20261 contribution on Jun 15, 20263 contributions on Jun 16, 20263 contributions on Jun 17, 20265 contributions on Jun 18, 20261 contribution on Jun 22, 20266 contributions on Jun 23, 20262 contributions on Jun 24, 20267 contributions on Jun 25, 202615 contributions on Jun 26, 20265 contributions on Jun 27, 20266 contributions on Jun 28, 20264 contributions on Jun 29, 20262 contributions on Jun 30, 202628 contributions on Jul 1, 202618 contributions on Jul 4, 202646 contributions on Jul 7, 20268 contributions on Jul 8, 202614 contributions on Jul 9, 202617 contributions on Jul 10, 202648 contributions on Jul 13, 202616 contributions on Jul 14, 202635 contributions on Jul 15, 202616 contributions on Jul 16, 20264 contributions on Jul 17, 20261 contribution on Jul 18, 202610 contributions on Jul 20, 202611 contributions on Jul 21, 202628 contributions on Jul 22, 20263 contributions on Jul 23, 20263 contributions on Jul 25, 202633 contributions on Jul 26, 202612 contributions on Jul 27, 202621 contributions on Jul 28, 20267 contributions on Jul 29, 20264 contributions on Jul 30, 20266 contributions on Jul 31, 202632 contributions on Aug 1, 20269 contributions on Aug 2, 20264 contributions on Aug 3, 202610 contributions on Aug 4, 202646 contributions on Aug 5, 202624 contributions on Aug 7, 202620 contributions on Aug 8, 202636 contributions on Aug 9, 20266 contributions on Aug 11, 20266 contributions on Aug 12, 202622 contributions on Aug 13, 202625 contributions on Aug 17, 20261 contribution on Aug 18, 20262 contributions on Aug 19, 202621 contributions on Aug 20, 202613 contributions on Aug 22, 202619 contributions on Aug 23, 202617 contributions on Aug 28, 202644 contributions on Aug 30, 202645 contributions on Aug 31, 202633 contributions on Sep 2, 202645 contributions on Sep 4, 202640 contributions on Sep 7, 20262 contributions on Sep 8, 202617 contributions on Sep 10, 202620 contributions on Sep 11, 20268 contributions on Sep 14, 202620 contributions on Sep 15, 202624 contributions on Sep 16, 202619 contributions on Sep 18, 202620 contributions on Sep 19, 202630 contributions on Sep 20, 202621 contributions on Sep 21, 202622 contributions on Sep 22, 20266 contributions on Sep 23, 202614 contributions on Sep 27, 202634 contributions on Sep 28, 202642 contributions on Oct 4, 202614 contributions on Oct 5, 20267 contributions on Oct 6, 20262 contributions on Oct 7, 20264 contributions on Oct 8, 202649 contributions on Oct 9, 202636 contributions on Oct 10, 202672 contributions on Feb 4, 202666 contributions on Feb 5, 202651 contributions on Apr 2, 202686 contributions on May 5, 202659 contributions on Jul 3, 202682 contributions on Jul 6, 202661 contributions on Aug 6, 202657 contributions on Aug 10, 202678 contributions on Aug 14, 202679 contributions on Aug 15, 202661 contributions on Aug 16, 202690 contributions on Aug 24, 202685 contributions on Aug 25, 202680 contributions on Aug 26, 202676 contributions on Aug 27, 202670 contributions on Aug 29, 202659 contributions on Sep 1, 202663 contributions on Sep 3, 202672 contributions on Sep 12, 202660 contributions on Sep 13, 202665 contributions on Sep 17, 202662 contributions on Sep 24, 202677 contributions on Sep 25, 202671 contributions on Sep 26, 202657 contributions on Sep 29, 202694 contributions on Oct 3, 2026113 contributions on Jul 11, 2026107 contributions on Jul 12, 2026144 contributions on Sep 5, 2026148 contributions on Oct 1, 2026187 contributions on Jun 10, 2026153 contributions on Sep 6, 2026202 contributions on Sep 30, 2026203 contributions on Oct 2, 2026
  • 277active days
  • 31day current streak
  • 31day longest streak
  • Oct 2, 2026203 contributions