Open Source

This page lists some of the open source packages and repositories I have published or contribute to.

Most of them are published under my company 47ng.

Frontend

My tech stack of choice for server-rendered React apps is Next.js and TailwindCSS.

For client-heavy apps, I like to use Chakra-UI to quickly build beautiful and accessible interfaces.

Because of its CSS-in-JS approach, it’s a bit awkward to use with the new Next.js app router and server components, so I’m now letting Tailwind deal with styling. ChatGPT makes a perfect companion for refactoring one into the other anyway. 😄

Avatar for GitHub account 47ng47ng/next-usequerystate

8.6K
5.8M
2.6.0
MIT

Type-safe search params state manager for React frameworks - Like useState, but stored in the URL query string.

$ pnpm add next-usequerystate
$ yarn add next-usequerystate
$ npm install next-usequerystate

Version rolloutLast week

1.20.0
9K (28%)
1.17.1
6.6K (21%)
1.19.3
5.2K (16%)
1.7.2
3K (09%)
1.17.8
3K (09%)
1.7.3
2.4K (08%)
5,57918 Aug6,76119 Aug6,39820 Aug6,04221 Aug4,82422 Aug1,15223 Aug1,15224 Aug5,07825 Aug5,60126 Aug5,99627 Aug6,02228 Aug4,55829 Aug1,34130 Aug1,20231 Aug4,04601 Sep4,97702 Sep6,52003 Sep6,55504 Sep5,59305 Sep1,57606 Sep1,15607 Sep5,55608 Sep6,25909 Sep5,80210 Sep6,18411 Sep5,48712 Sep1,22213 Sep93914 Sep6,30215 Sep016 Sep129,880Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

8.6K
26M
2.6.0
MIT

Type-safe search params state manager for React frameworks - Like useState, but stored in the URL query string.

$ pnpm add nuqs
$ yarn add nuqs
$ npm install nuqs

Version rolloutLast week

2.4.3
326K (40%)
2.6.0
199K (24%)
1.20.0
65K (08%)
2.5.2
46K (06%)
2.4.1
45K (05%)
2.5.1
22K (03%)
122,79718 Aug136,04219 Aug135,54620 Aug135,23921 Aug123,94322 Aug29,97223 Aug32,35024 Aug133,21225 Aug146,47726 Aug158,31527 Aug147,83928 Aug126,22129 Aug41,43830 Aug38,14531 Aug110,31701 Sep139,46002 Sep143,04103 Sep151,18204 Sep129,05605 Sep41,06106 Sep34,80107 Sep147,61608 Sep150,47809 Sep148,01810 Sep153,21611 Sep141,92112 Sep38,56013 Sep41,73914 Sep151,41315 Sep016 Sep3,229,415Last 30 days

Backend

I like to use Fastify to build backend services in Node.js.

What I like about it:

Avatar for GitHub account 47ng47ng/fastify-micro

45
14K
3.1.1
MIT

Opinionated Node.js microservices framework built on Fastify ⚡️

$ pnpm add fastify-micro
$ yarn add fastify-micro
$ npm install fastify-micro

Version rolloutLast week

3.1.1
5 (20%)
4.0.0-beta.4
4 (16%)
2.2.0
1 (04%)
1.0.0
1 (04%)
0.1.0
1 (04%)
018 Aug719 Aug020 Aug221 Aug022 Aug223 Aug024 Aug025 Aug026 Aug027 Aug028 Aug229 Aug030 Aug1031 Aug001 Sep002 Sep003 Sep304 Sep005 Sep006 Sep207 Sep208 Sep209 Sep510 Sep211 Sep012 Sep013 Sep014 Sep1615 Sep016 Sep55Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
880K
1.4.0
MIT

Run cron jobs alongside your Fastify server 👷

$ pnpm add fastify-cron
$ yarn add fastify-cron
$ npm install fastify-cron

Version rolloutLast week

1.4.0
2.9K (50%)
1.3.1
1.9K (34%)
1.3.0
926 (16%)
1.1.2
15 (00%)
1.2.0
2 (00%)
90618 Aug1,14619 Aug92720 Aug1,12921 Aug91522 Aug8923 Aug8524 Aug96825 Aug1,13226 Aug93827 Aug87628 Aug82829 Aug14330 Aug12631 Aug71101 Sep1,17502 Sep1,00403 Sep1,11904 Sep94105 Sep23606 Sep10407 Sep1,30008 Sep1,11809 Sep1,14010 Sep1,10411 Sep98912 Sep9713 Sep12114 Sep1,19315 Sep016 Sep22,560Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

78
48K
1.0.3
MIT

Secure cryptographic key storage in the browser and Node.js

$ pnpm add session-keystore
$ yarn add session-keystore
$ npm install session-keystore

Version rolloutLast week

1.0.3
131 (96%)
1.0.1
1 (01%)
0.4.0
1 (01%)
1.0.2
1 (01%)
0.2.0
1 (01%)
1718 Aug1019 Aug2620 Aug621 Aug3322 Aug023 Aug424 Aug1225 Aug1826 Aug1427 Aug2328 Aug1629 Aug9430 Aug5231 Aug2101 Sep702 Sep203 Sep704 Sep2805 Sep306 Sep307 Sep908 Sep4109 Sep4010 Sep2511 Sep712 Sep313 Sep314 Sep1815 Sep016 Sep542Last 30 days

I wrote an article about how I came to build session-keystore:

Avatar for GitHub account 47ng47ng/cloak

62
1.9M
1.2.0
MIT

Serialized AES-GCM 256 encryption, decryption and key management in the browser & Node.js

$ pnpm add @47ng/cloak
$ yarn add @47ng/cloak
$ npm install @47ng/cloak

Version rolloutLast week

1.2.0
19K (86%)
1.1.0
3K (14%)
1.2.0-beta.1
6 (00%)
4,73918 Aug5,54519 Aug5,15520 Aug4,84921 Aug4,14322 Aug1,18223 Aug1,30424 Aug4,56625 Aug4,33626 Aug4,08727 Aug4,36328 Aug3,35529 Aug65630 Aug1,79631 Aug3,04401 Sep4,33702 Sep4,02803 Sep3,70804 Sep3,62005 Sep97206 Sep1,02307 Sep4,23008 Sep3,53509 Sep4,35410 Sep4,43211 Sep3,60712 Sep1,00313 Sep87814 Sep3,71315 Sep016 Sep96,560Last 30 days

SocialGouv/e2esdk

SDK to build end-to-end encrypted web applications

Environment Variables

The Twelve Factor App model uses environment variables extensively for configuration and passing runtime data to a web app.

However, there are things to look out for when working with environment variables, so I built a few packages to make their management easier and more secure:

Avatar for GitHub account 47ng47ng/redact-env

6
1.2M
1.0.0
MIT

Redact values of critical environment variables in a string

$ pnpm add redact-env
$ yarn add redact-env
$ npm install redact-env

Version rolloutLast week

0.2.0
1.6K (98%)
1.0.0
32 (02%)
0.3.2
4 (00%)
0.3.0
2 (00%)
0.3.1
1 (00%)
21718 Aug16919 Aug31020 Aug29621 Aug21522 Aug14423 Aug7024 Aug13225 Aug22226 Aug13927 Aug16128 Aug33229 Aug5330 Aug6831 Aug24201 Sep20002 Sep21803 Sep18904 Sep11405 Sep2706 Sep17607 Sep17708 Sep44409 Sep31610 Sep27811 Sep19212 Sep5613 Sep10014 Sep27215 Sep016 Sep5,529Last 30 days

Avatar for GitHub account 47ng47ng/env-alias

3
5.6K
2.0.0
MIT

Define aliases for environment variables and bind them at runtime

$ pnpm add env-alias
$ yarn add env-alias
$ npm install env-alias

Version rolloutLast week

2.0.0
12 (71%)
1.0.1
1 (06%)
0.1.0
1 (06%)
0.2.0
1 (06%)
1.0.0
1 (06%)
018 Aug019 Aug020 Aug021 Aug022 Aug023 Aug024 Aug025 Aug126 Aug1127 Aug028 Aug029 Aug030 Aug031 Aug001 Sep002 Sep003 Sep104 Sep005 Sep006 Sep007 Sep108 Sep309 Sep810 Sep311 Sep012 Sep013 Sep214 Sep115 Sep016 Sep31Last 30 days

Avatar for GitHub account 47ng47ng/check-env

21
137K
3.0.0
MIT

Check that required environment variables are set for your app

$ pnpm add @47ng/check-env
$ yarn add @47ng/check-env
$ npm install @47ng/check-env

Version rolloutLast week

3.0.0
111 (87%)
2.1.1
14 (11%)
1.5.0
2 (02%)
2.1.0
1 (01%)
4718 Aug2919 Aug6220 Aug2021 Aug3122 Aug123 Aug224 Aug1425 Aug3426 Aug1827 Aug3228 Aug1529 Aug530 Aug1131 Aug3201 Sep1402 Sep2203 Sep1704 Sep3105 Sep006 Sep1707 Sep3208 Sep3009 Sep2310 Sep1811 Sep1812 Sep313 Sep414 Sep3215 Sep016 Sep614Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
2M
1.1.0
MIT

Universal conversion of Uint8Array from/into UTF-8, base64url and hex in the browser and Node.js

$ pnpm add @47ng/codec
$ yarn add @47ng/codec
$ npm install @47ng/codec

Version rolloutLast week

1.1.0
21K (100%)
1.0.1
15 (00%)
1.0.0
2 (00%)
4,74818 Aug5,51719 Aug5,15020 Aug4,82021 Aug4,13622 Aug1,15423 Aug1,29924 Aug4,54625 Aug4,31626 Aug4,08927 Aug4,36428 Aug3,31929 Aug75130 Aug1,85531 Aug3,06701 Sep4,31602 Sep3,94903 Sep3,67804 Sep3,61405 Sep97206 Sep1,02307 Sep4,20908 Sep3,55909 Sep4,38610 Sep4,41811 Sep3,56412 Sep1,00513 Sep88214 Sep3,67115 Sep016 Sep96,377Last 30 days

My longest-running open-source project is the Arduino MIDI Library. I learned programming in C++ in 2008 with this project and discovered my passion for open-source software.

FortySevenEffects/arduino_midi_library

MIDI for Arduino

The source code for this website! Made with Next.js, TailwindCSS and MDX.

franky47/francoisbest.com

Homepage & blog