I'm a full time open source developer in the web development ecosystem.
I work on projects that help improve code quality, most notably typescript-eslint: a powerful static analysis toolset for JavaScript and TypeScript code. I'm also the author of O'Reilly's Learning TypeScript book, a Microsoft MVP for developer technologies, and an (upcoming) developer at Sentry.
I was an independent maintainer from 2022 through 2025. Nowadays I work on open source in my spare time. My work was and is supported by these wonderful sponsors. They deserve our sincere appreciation and gratitude.
| Platinum Sponsors (>=$100/mo) | Gold Sponsors (>=$25/mo) | Silver Sponsors (>=$10/mo) | Bronze Sponsors (>=$5/mo) |
|---|---|---|---|
|
|
|
|
π Motivated to support my work, or just want your image here? See my GitHub Sponsors profile. Thanks!
If you work with JavaScript or TypeScript, you may have used one of the open source projects I support:
| Project βοΈ | Description π | Role π§βπ | Stars β |
|---|---|---|---|
| eslint | Find and fix problems in your JavaScript code. | Committer | |
| mocha | βοΈ Classic, reliable, trusted test framework for Node.js and the browser | Maintainer | |
| typescript-eslint | β¨ Monorepo for all the tooling which enables ESLint to support TypeScript | Maintainer | |
| TypeStat | Converts JavaScript to TypeScript and TypeScript to better TypeScript. π§« | Creator & maintainer | |
| create-typescript-app | Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. π | Creator & maintainer | |
| Bingo | Delightful templates for web repositories. π | Creator & maintainer |
I also have an interest in making web apps more delightful. These projects will help you add emoji delighters to your page quickly.
| Project βοΈ | Description π | Role π§βπ | Stars β |
|---|---|---|---|
| node-emoji | π simple emoji support for node.js projects | Junior maintainer | |
| emoji-blast | Blasts emoji like fireworks all up in your HTML page. π | Creator & maintainer | |
| emojipedia | Unofficial static export of technical information from Emojipedia. π | Creator & maintainer | |
| emoji-platform-data | Static export of platform-specific metadata for unicode emojis. ποΈ | Creator & maintainer |
These projects I do because I think they're fascinating and/or fun, if not particularly useful:
| Project βοΈ | Description π | Role π§βπ | Stars β |
|---|---|---|---|
| FullScreenMario | An HTML5 remake of the original Super Mario Brothers - expanded for wide screens. | Creator | |
| FullScreenPokemon | A free HTML5 remake of the original Pokemon, expanded for modern browsing. | Creator & maintainer | |
| EightBittr | Bare-bones, highly modular game engine for 2D 8-bit games. | Creator & maintainer | |
| ChooseYourFramework | Choosing a modern JavaScript UI framework, Pokemon-style. | Creator & maintainer | |
| Budgie | A unified syntax that compiles into your favorite OOP languages. π¦ | Creator & maintainer |
I work on assorted projects in the JavaScript/TypeScript ecosystem that make it easier to write high quality applications.
| Project βοΈ | Description π | Role π§βπ | Stars β |
|---|---|---|---|
| dedent | β¬ οΈ ES6 string tag that strips indentation from multi-line strings. | Adoptive maintainer | |
| flint | [Experimental] A fast, friendly linter. β€οΈβπ₯ | Creator & maintainer | |
| eslint-plugin-package-json | Rules for consistent, readable, and valid package.json files. ποΈ | Adoptive maintainer | |
| bingo | Delightful templates for web repositories. π | Creator & maintainer | |
| eslint-plugin-expect-type | ESLint plugin with ^? Twoslash, $ExpectError, and $ExpectType type assertions. π§© | Adoptive maintainer | |
| ts-api-utils | Utility functions for working with TypeScript's API. Successor to the wonderful tsutils. π οΈοΈ | Creator & maintainer | |
| package-json-validator | Tools to validate package.json files. | Adoptive maintainer | |
| prettier-plugin-curly | Prettier plugin to enforce consistent brace style for all control statements. π₯ | Creator & maintainer | |
| eslint-plugin-erasable-syntax-only | ESLint plugin to granularly enforce TypeScript's erasableSyntaxOnly flag. β | Creator & maintainer | |
| formatly | Formats code with whatever formatter a project is already using. π§Ό | Creator & maintainer | |
| refined-saved-replies | Browser extension for GitHub's Saved Replies that adds replies from a repository's .github/replies.yml. π¨ | Creator & maintainer | |
| OctoGuide | Helps contributors adhere to best practices for your repository on GitHub. πΊοΈ | Creator & maintainer | |
| ts-function-inliner | TypeScript transformation that inlines calls to small functions. β‘οΈ | Creator & maintainer | |
| console-fail-test | Gently fails test runs if the console was used during them. π’ | Creator & maintainer | |
| mock-react-redux | Mocks out Redux actions and selectors for clean React Jest tests. | Creator & maintainer | |
| sentences-per-line | Packages to enforce the number of sentences per line in Markdown files. π | Creator & maintainer | |
| github-username-to-emails | Fetches any public emails associated with a GitHub username. π§ | Creator & maintainer | |
| eslint-fix-utils | Utilities for ESLint rule fixers and suggestions. π§βπ§ | Creator & maintainer | |
| all-contributors-auto-action | Fills in missing allcontributors entries for a repository. πͺ | Creator & maintainer | |
| wifi-share-link | Generates shareable WIFI:// link strings for wifi credentials. πΆ | Creator & maintainer | |
| should-semantic-release | Checks whether a semantic release should be run for a repository. π | Creator & maintainer | |
| cached-factory | Creates and caches values under keys. π | Creator & maintainer | |
| import-local-or-npx | Imports a local package or one installed from npx. π | Creator & maintainer | |
| are-docs-informative | Checks whether a documentation description introduces any new information. βΉοΈ | Creator & maintainer | |
| release-it-action | Runs release-it as a GitHub Action, with handling for semantic releases and protected branches. π€ | Creator & maintainer | |
| debug-for-file | debug() wrapper that creates a string based on your file's path within the package. π§Ά | Creator & maintainer | |
| tidelift-me-up-site | Web app to find your npm packages eligible for Tidelift funding. πΈ | Creator & maintainer | |
| tidelift-me-up | CLI that checks if your npm packages are eligible for Tidelift funding. πΈ | Creator & maintainer | |
| console-table-without-index | The built-in Node.js console.table, but without the annoying (index) column. π | Creator & maintainer | |
| prune-github-notifications | Prunes GitHub notifications you don't care about, such as automated dependency bumps. π§Ή | Creator & maintainer | |
| github-username-to-emails-site | Web app to fetch any public emails associated with a GitHub username. π§ | Creator & maintainer | |
| get-github-auth-token | Retrieves the running user's GitHub authentication token. πͺ | Creator & maintainer | |
| notion-rich-text-to-markdown | Converts Notion's rich text strings to Markdown. πͺ’ | Creator & maintainer | |
| package-json-validator-cli | CLI to validate package.json files. π | Creator & maintainer | |
| cspell-populate-words | Populates your cspell.json dictionary with existing unknown words. π | Creator & maintainer | |
| github-sponsors-to-markdown | Creates a Markdown table summarizing your GitHub sponsors. π° | Creator & maintainer | |
| description-to-co-authors | Parses co-authors from Git/GitHub-style commit messages and issue bodies. βοΈ | Creator & maintainer | |
| text-table-fast | Generates borderless text table strings suitable for printing to stdout. Fast. π | Creator & maintainer | |
| all-contributors-for-repository | Generates an allcontributors list for an existing repository. π€ | Creator & maintainer | |
| without-undefined-properties | Copies an object without its undefined properties. π«₯ | Creator & maintainer | |
| zod-tsconfig | Zod schemas for TypeScript's TSConfig properties. βοΈ | Creator & maintainer | |
| npm-username-to-packages | Fetches any packages associated with an npm username. π¨ | Creator & maintainer | |
| co-author-to-username | Fetches the GitHub username for a co-author, if possible. π | Creator & maintainer | |
| object-strings-deep | Retrieves all strings with an object, including keys, properties, recursive objects, and within arrays. π§΅ | Creator & maintainer | |
| remove-dependencies | Quickly removes dependencies from your package.json file. πͺ | Creator & maintainer | |
| populate-all-contributors-for-repository | Populates the .all-contributorsrc for a repository using all-contributors-for-repository. π | Creator & maintainer | |
| octokit-from-auth | Creates a GitHub Octokit instance from any available auth token. π | Creator & maintainer | |
| all-contributors-inferred | Infers All Contributors settings from an existing README.md table and package.json. π | Creator & maintainer | |
| all-properties-lazy | Evaluates the properties of an object, including functions, Promises, and their combination. π΄ | Creator & maintainer | |
| is-comment-meaningless | Determines whether the text of a comment doesn't add anything to the conversation. πΆ | Creator & maintainer | |
| terminal-reprint | Efficiently (re)-prints text into your terminal. π¨ | Creator & maintainer | |
| set-github-repository-labels | Sets labels for a GitHub repository, including renaming existing similar labels. π·οΈ | Creator & maintainer | |
| sinon-timers-repeatable | A version of Sinon's `useFakeTimers` that you can call multiple times in a test. β±οΈ | Creator & maintainer | |
| new-github-repository | Creates a new repository on GitHub, including waiting for initialization. π | Creator & maintainer | |
| github-default-labels | Static export of GitHub's default labels. π | Creator & maintainer | |
| draft-pr-once-action | GitHub Action that changes a pull request to draft, once. π | Creator & maintainer |
See .github/CONTRIBUTING.md, then .github/DEVELOPMENT.md.
Thanks! π
Josh Goldberg π¨ π π» π§ π§ π π π π€ π |
π This package is templated with create-typescript-app.






