Sitelet https://web.archive.org/web/20220628064942/https://github.com/sponsors/astoilkov
Skip to content
Become a sponsor to Antonio Stoilkov
@astoilkov

Antonio Stoilkov

astoilkov
EU › Bulgaria › Sofia

👋

I started doing open-source when I was 19 years old (12 years ago). I worked for 3 years non-stop on JSBlocks — it was a failure 😞. I was discouraged and I stopped doing open-source. Recently I decided to start all over.

Why sponsor me? 🤷

There are other people that have made a bigger impact on the open-source community, why sponsor me?

  • You use one of my libraries.
  • You like my writings and want to see more.
  • I try to follow some principles when doing open-source. Maybe you like them?
  • You like Nota (the app I'm building with @erusev) and what to support its development.
  • You want to support unpopular contributors because you don't like the "rich getting richer" situation, Power Law distribution, and the Pareto principle.

If you don't want to sponsor me, I keep a list of open-source contributors worth sponsoring that you can consider instead.

Also, I do consulting and per-project work (see One-time tiers).

What I am working on

I'm currently focusing on:

  • main-thread-scheduling — Consistently responsive apps while staying on the main thread. The library aims to bring innovation to how you make your apps responsive and performant.
  • use-local-storage-state. React hook that persists data in local storage. It has the same API as useState(). A small and easy-to-use library with more than 150k downloads per month.
  • use-session-storage-state. Same as above but for session storage.

Additionally, I have repositories that I've already written but still haven't open-sourced:

  • element-inspect — A tool that replaces DevTools Inspect Element.
  • eslint-config-strictest — An extremely strict ESLint configuration. However, it needs a lot more work to become usable by other people. This configuration is one of the reasons the production app I am building has close to zero runtime exceptions.
  • keyboard-shortcut — Work more easily with keyboard shortcuts. There are a lot of libraries that try to deal with keyboard shortcuts. Here are a few benefits of my approach:
    • Uses modern API-s KeyboardEvent.code and KeyboardEvent.key
    • Really small.
    • Modular. It creates an object KeyboardShortcut that has .code, .cmd .ctrl, .alt, .shift properties. You can extend from there (or use my other libraries):
      • check-shortcut — Check if the keydown event satisfies a predefined keyboard shortcut.
      • use-shortcut — The same as above but as a React hook.
      • pretty-shortcut — Print shortcut like macOS, or Windows, or Linux, or Electron would.
  • simple-spawn — A simple Promised based abstraction over spawn(). I previously used execa but these days it does so much more than just abstract the spawn() method. It has become heavy and complicated to understand what options you need to set.
  • react-queue — Inspired by Batching makes it difficult to perform imperative actions like focus · Issue #18402 · facebook/react. I have created a solution to the problem that I extensively use.
  • virtualized-virtual-list — A simple virtualized list. The benefit over react-window is that it's a lot smaller and with a lot simpler API — this also means it's more limited but it gets the job done in 90% of the cases with just 10% of the code.
  • infinite-loop-protection — An AST transformer that adds code in loops so that your app never freezes because of an infinite loop. Includes a Webpack plugin.
  • p-signal — I spend months of research to find the best way to cancel async functions. I think I found the most optimal solution. I have already been using it for a year and I like it a lot.
  • closure — With closure() I avoid using let statements. Since I discovered it, I have been using it almost every day. I will also write an article about it when I release this library.

1 sponsor is funding astoilkov’s work.

Featured work

  1. astoilkov/main-thread-scheduling

    Fast and consistently responsive apps using a single function call

    TypeScript 262
  2. astoilkov/use-local-storage-state

    React hook that persists data in localStorage

    TypeScript 736
  3. astoilkov/jsblocks

    Better MV-ish Framework

    JavaScript 2,786
  4. astoilkov/console.message

    Console messages for cool kids

    JavaScript 767

Select a tier

$ a month

Choose a custom amount.

$3 a month

Select

Consider me a friend — write to me at hello@astoilkov.com and I will answer like a friend would — thoroughly. Regardless if it's for a hard life situation or struggling with a work problem.

$6 a month

Select

Consider me a friend — write to me at hello@astoilkov.com and I will answer like a friend would — thoroughly. Regardless if it's for a hard life situation or struggling with a work problem.

$12 a month

Select

Consider me a friend — write to me at hello@astoilkov.com and I will answer like a friend would — thoroughly. Regardless if it's for a hard life situation or struggling with a work problem.

$24 a month

Select

Consider me a friend — write to me at hello@astoilkov.com and I will answer like a friend would — thoroughly. Regardless if it's for a hard life situation or struggling with a work problem.

$48 a month

Select

Consider me a friend — write to me at hello@astoilkov.com and I will answer like a friend would — thoroughly. Regardless if it's for a hard life situation or struggling with a work problem.