Hi, I'm Josh! π
I'm an independent full time open source developer.
I work on projects in the TypeScript ecosystem, most notably typescript-eslint: the tooling that enables ESLint and Prettier to run on TypeScript code. I'm also the author of O'Reilly's Learning TypeScript book, a Microsoft MVP for developer technologies, and an active conference speaker.
My personal projects range from static analysis to meta-languages to recreating retro games in the browser. Also cats. π±
Thanks to my Sponsors
Because I'm independent, I rely on sponsors to fund my work. They deserve our sincere appreciation and gratitude.
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!
What I'm Working On
Biggest Projects
If you work with TypeScript, you may have used one of the open source projects I support:
Project βοΈ | Description π | Role π§βπ | Stars β |
---|---|---|---|
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 |
Emojis
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 | |
Emojisplosion | π₯ Blasts π emoji π like π fireworks π all up in your π» HTML π page. π | Creator & maintainer | |
Konamimojisplosion | Connects konami-code-js to emojisplosion for a glorious easter egg. π β¨ π | Creator & maintainer | |
typedoc-plugin-konamimojisplosion | TypeDoc plugin to quickly integrate konamimojisplosion into your docs site. π β¨ π | Creator & maintainer | |
astro-konamimojisplosion | Astro integration to quickly load konamimojisplosion into your site. π β¨ π | Creator & maintainer |
Just For Fun
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 |
Tooling
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 | |
eslint-plugin-expect-type | ESLint plugin with ^? Twoslash, $ExpectError, and $ExpectType type assertions. π§© | Adoptive maintainer | |
prettier-plugin-curly | Prettier plugin to enforce consistent brace style for all control statements. π₯ | Creator & maintainer | |
ts-api-utils | Utility functions for working with TypeScript's API. Successor to the wonderful tsutils. π οΈοΈ | Creator & maintainer | |
refined-saved-replies | Chrome extension for GitHub's Saved Replies that adds replies from a repository's `.github/replies.yml`. π¨ | Creator & maintainer | |
ts-function-inliner | TypeScript transformation that inlines calls to small functions. β‘οΈ | Creator & maintainer | |
mock-react-redux | Mocks out Redux actions and selectors for clean React Jest tests. π | Creator & maintainer | |
cached-factory | Creates and caches values under keys. π | Creator & maintainer | |
console-fail-test | Gently fails test runs if the console was used during them. π’ | Creator & maintainer | |
all-contributors-auto-action | Fills in missing allcontributors entries for a repository. πͺ | Creator & maintainer | |
should-semantic-release | Checks whether a semantic release should be run for a commit. π | Creator & maintainer | |
are-docs-informative | Checks whether a documentation description introduces any new information. βΉοΈ | Creator & maintainer | |
tidelift-me-up | Finds your npm packages that are eligible for Tidelift funding. πΈ | Creator & maintainer | |
github-sponsors-to-markdown | Creates a Markdown table summarizing your GitHub sponsors. π° | Creator & maintainer | |
tidelift-me-up-site | Web app to find your npm packages eligible for Tidelift funding. πΈ | Creator & maintainer | |
sentences-per-line | Contributed markdownlint rule for limiting sentences per line. π | Creator & maintainer | |
all-contributors-for-repository | Generates an allcontributors list for an existing repository. π€ | Creator & maintainer | |
release-it-action | Runs release-it as a GitHub Action, with handling for semantic releases and protected branches. π€ | Creator & maintainer | |
sinon-timers-repeatable | A version of Sinon's `useFakeTimers` that you can call multiple times in a test. β±οΈ | Creator & maintainer | |
eslint-plugin-never-disable | ESLint plugin to completely ban disabling specific rules. π | Creator & maintainer |
Development
See .github/CONTRIBUTING.md
, then .github/DEVELOPMENT.md
.
Thanks! π
Contributors
Josh Goldberg π¨ π π» π§ π§ π |
π This package is templated with create-typescript-app.