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.9K
5.9M
2.7.1
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
10K (30%)
1.17.1
7.4K (23%)
1.19.3
4.1K (12%)
1.7.2
3.1K (10%)
1.17.8
3K (09%)
1.7.3
2.7K (08%)
1,15607 Sep5,55608 Sep6,25909 Sep5,80210 Sep6,18411 Sep5,48712 Sep1,22213 Sep93914 Sep6,30215 Sep6,65116 Sep6,87117 Sep7,33218 Sep6,73419 Sep1,19220 Sep90921 Sep6,49222 Sep6,18323 Sep6,45524 Sep6,61925 Sep5,66626 Sep1,36527 Sep1,25428 Sep7,26429 Sep7,70230 Sep7,41001 Oct6,45202 Oct4,56003 Oct1,19104 Oct95005 Oct4,44206 Oct142,601Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

8.9K
29M
2.7.1
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
290K (32%)
2.6.0
176K (20%)
2.7.0
162K (18%)
1.20.0
66K (07%)
2.4.1
43K (05%)
2.5.2
28K (03%)
34,80107 Sep147,61608 Sep150,47809 Sep148,01810 Sep153,21611 Sep141,92112 Sep38,56013 Sep41,73914 Sep151,41315 Sep165,30316 Sep162,79017 Sep156,10018 Sep140,86419 Sep33,95120 Sep43,78621 Sep158,42122 Sep152,61023 Sep155,43624 Sep174,97425 Sep141,62226 Sep36,24927 Sep38,35128 Sep165,82129 Sep178,39230 Sep171,74801 Oct158,35002 Oct137,14703 Oct43,97704 Oct45,94305 Oct167,46906 Oct3,637,066Last 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

1.0.0
15 (05%)
0.1.0
14 (05%)
4.0.0-beta.1
14 (05%)
4.0.0-beta.6
13 (04%)
2.0.0
13 (04%)
207 Sep208 Sep209 Sep510 Sep211 Sep012 Sep013 Sep014 Sep1615 Sep1216 Sep017 Sep018 Sep1219 Sep020 Sep021 Sep222 Sep323 Sep024 Sep725 Sep126 Sep027 Sep128 Sep029 Sep030 Sep001 Oct102 Oct5303 Oct17704 Oct6205 Oct006 Oct360Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
897K
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
3.1K (56%)
1.3.1
1.3K (23%)
1.3.0
1.2K (21%)
1.1.2
4 (00%)
1.2.0
3 (00%)
10407 Sep1,30008 Sep1,11809 Sep1,14010 Sep1,10411 Sep98912 Sep9713 Sep12114 Sep1,19315 Sep96716 Sep1,06817 Sep1,04018 Sep1,19319 Sep11620 Sep8421 Sep1,06822 Sep94623 Sep1,06124 Sep1,04325 Sep1,03126 Sep14827 Sep16628 Sep1,05329 Sep1,30430 Sep1,23001 Oct1,02502 Oct86803 Oct11404 Oct10105 Oct99506 Oct23,787Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

79
49K
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
184 (99%)
1.0.1
2 (01%)
307 Sep908 Sep4109 Sep4010 Sep2511 Sep712 Sep313 Sep314 Sep1815 Sep1716 Sep3117 Sep1918 Sep5119 Sep320 Sep121 Sep3322 Sep3423 Sep2324 Sep1225 Sep1626 Sep327 Sep028 Sep2829 Sep630 Sep2101 Oct2602 Oct3403 Oct5004 Oct3405 Oct1506 Oct606Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

62
2M
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
24K (87%)
1.1.0
3.5K (13%)
0.1.0
8 (00%)
1.0.0
7 (00%)
0.13.0
5 (00%)
1,02307 Sep4,23008 Sep3,53509 Sep4,35410 Sep4,43211 Sep3,60712 Sep1,00313 Sep87814 Sep3,71315 Sep4,26616 Sep4,34817 Sep4,29518 Sep3,53619 Sep89220 Sep1,24421 Sep3,66622 Sep4,14223 Sep4,43924 Sep4,34625 Sep4,21126 Sep1,85827 Sep60628 Sep4,50329 Sep5,18530 Sep4,40201 Oct5,47102 Oct4,56403 Oct1,16504 Oct1,07505 Oct5,27606 Oct100,265Last 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
878 (99%)
1.0.0
4 (00%)
0.3.2
2 (00%)
17607 Sep17708 Sep44409 Sep31610 Sep27811 Sep19212 Sep5613 Sep10014 Sep27215 Sep21316 Sep38717 Sep17918 Sep8519 Sep6520 Sep8221 Sep10222 Sep9423 Sep8324 Sep19825 Sep10926 Sep10427 Sep11828 Sep25229 Sep19330 Sep11301 Oct24902 Oct7103 Oct5504 Oct6505 Oct13806 Oct4,966Last 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
2 (100%)
007 Sep108 Sep309 Sep810 Sep311 Sep012 Sep013 Sep214 Sep115 Sep616 Sep017 Sep018 Sep019 Sep220 Sep121 Sep022 Sep023 Sep024 Sep025 Sep026 Sep027 Sep028 Sep029 Sep030 Sep001 Oct002 Oct003 Oct004 Oct005 Oct206 Oct29Last 30 days

Avatar for GitHub account 47ng47ng/check-env

21
138K
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
128 (70%)
2.1.1
18 (10%)
2.0.2
16 (09%)
2.0.1
4 (02%)
1.1.0
2 (01%)
1707 Sep3208 Sep3009 Sep2310 Sep1811 Sep1812 Sep313 Sep414 Sep3215 Sep6816 Sep1217 Sep4118 Sep919 Sep1820 Sep1021 Sep1322 Sep1623 Sep3224 Sep2625 Sep1026 Sep327 Sep628 Sep1929 Sep3230 Sep5601 Oct4102 Oct2703 Oct1604 Oct105 Oct906 Oct642Last 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
27K (100%)
1.0.1
14 (00%)
0.5.0
4 (00%)
1.0.0
3 (00%)
0.3.1
2 (00%)
1,02307 Sep4,20908 Sep3,55909 Sep4,38610 Sep4,41811 Sep3,56412 Sep1,00513 Sep88214 Sep3,67115 Sep4,19316 Sep4,37017 Sep4,27118 Sep3,56219 Sep88820 Sep1,25521 Sep3,63522 Sep4,14423 Sep4,44624 Sep4,31325 Sep4,19526 Sep1,86327 Sep61328 Sep4,51129 Sep5,20330 Sep4,42101 Oct5,45602 Oct4,50103 Oct1,19304 Oct1,05105 Oct5,23606 Oct100,037Last 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