Skip to content
View JAForbes's full-sized avatar
πŸ”¨
πŸ”¨

Organizations

@fantasyland @sanctuary-js

Block or report JAForbes

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JAForbes/README.md

Hi! πŸ€–

I'm James,

I'm a generalist software developer interested in full stack app architectures.

I'm currently working on a query language for UI state management, and trying to understand datalog a bit better.

I recently rewrote a typed / structured router for web apps check it out

I help run Harth Systems.

  • We maintain our own construction project management app Odin
  • Build new products as partnerships
  • And we do ad-hoc consulting too (postgres, web services, web apps)

I used to participate in game jams but I haven't done that for a long time, still I find game jams have been great for learning how to scope and finish projects, so I'd like to get back into that eventually.

I'm always up for a chat, so hit me up and ask me anything!

If you like, you can follow my work on my website https://james-forbes.com.

If you want to check out my music projects they are here

Pinned Loading

  1. superouter superouter Public

    A side effect free router

    TypeScript 2

  2. pgmg pgmg Public

    Simple postgres.js migrations

    JavaScript 11

  3. S S Public

    TypeScript 6

  4. sum-type sum-type Public

    A simple, serializable sum-type format

    JavaScript 41 4

  5. pr-release pr-release Public

    Manage releases with pull request descriptions and metadata instead of config.

    JavaScript 6 1

  6. superhistory superhistory Public

    A tiny history API with nested contexts.

    TypeScript