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

9.3K
6.1M
2.8.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
14K (39%)
1.19.3
5.8K (16%)
1.17.1
5.4K (15%)
1.7.2
4.4K (12%)
1.17.8
1.8K (05%)
1.7.3
1.7K (05%)
6,21520 Oct021 Oct7,45622 Oct5,25723 Oct5,56024 Oct1,49825 Oct74126 Oct6,96327 Oct7,15728 Oct6,57829 Oct7,02830 Oct5,26431 Oct1,47101 Nov1,51302 Nov5,59903 Nov6,42104 Nov7,10205 Nov6,75306 Nov6,57707 Nov2,13508 Nov1,56709 Nov7,20710 Nov6,95611 Nov6,64612 Nov7,18413 Nov5,96914 Nov1,50915 Nov1,31216 Nov6,19217 Nov018 Nov141,830Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

9.3K
35M
2.8.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
232K (23%)
2.7.3
193K (19%)
2.7.2
156K (16%)
2.6.0
89K (09%)
2.7.1
49K (05%)
1.20.0
49K (05%)
170,09220 Oct195,93221 Oct196,04222 Oct182,84423 Oct156,72324 Oct42,39225 Oct47,32926 Oct186,30527 Oct193,13628 Oct184,87429 Oct186,07230 Oct154,21531 Oct44,66101 Nov43,55802 Nov180,19403 Nov187,81304 Nov181,77605 Nov179,05506 Nov168,68807 Nov49,29408 Nov51,28309 Nov181,92710 Nov169,36511 Nov187,71912 Nov186,55113 Nov170,43414 Nov44,71315 Nov49,63616 Nov186,19317 Nov018 Nov4,158,816Last 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

46
15K
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

4.0.0-beta.1
6 (21%)
3.1.1
6 (21%)
0.3.0
2 (07%)
0.0.1
2 (07%)
3.0.0-beta.1
2 (07%)
520 Oct4021 Oct522 Oct523 Oct724 Oct925 Oct526 Oct027 Oct128 Oct529 Oct030 Oct531 Oct101 Nov502 Nov003 Nov004 Nov405 Nov1206 Nov307 Nov708 Nov209 Nov810 Nov211 Nov212 Nov513 Nov214 Nov115 Nov016 Nov1617 Nov018 Nov157Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
930K
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.7K (66%)
1.3.0
1.1K (19%)
1.3.1
829 (15%)
1.4.0-beta.1
3 (00%)
1.1.1
1 (00%)
1,13820 Oct99821 Oct1,06222 Oct93823 Oct92324 Oct9425 Oct15126 Oct1,05427 Oct1,00928 Oct98529 Oct1,13830 Oct97331 Oct11601 Nov15102 Nov1,06703 Nov1,25604 Nov1,30205 Nov1,08406 Nov86307 Nov20708 Nov17309 Nov1,23710 Nov1,13511 Nov1,24412 Nov1,02213 Nov1,02314 Nov14715 Nov9916 Nov92817 Nov018 Nov23,517Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

79
50K
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
84 (99%)
1.0.0
1 (01%)
920 Oct1921 Oct422 Oct1023 Oct1524 Oct26225 Oct3126 Oct5627 Oct2928 Oct6829 Oct3330 Oct1631 Oct101 Nov202 Nov1103 Nov2304 Nov1805 Nov1506 Nov4207 Nov108 Nov809 Nov410 Nov1311 Nov2712 Nov813 Nov1114 Nov515 Nov716 Nov1417 Nov018 Nov762Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

63
2.1M
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
27K (89%)
1.1.0
3.4K (11%)
1.2.0-beta.1
2 (00%)
1.0.1
1 (00%)
0.15.1
1 (00%)
4,75920 Oct4,74521 Oct4,72222 Oct4,65523 Oct4,44324 Oct1,19625 Oct1,02126 Oct5,69127 Oct5,52728 Oct5,59229 Oct5,59330 Oct4,60831 Oct1,45301 Nov96302 Nov4,39403 Nov5,82304 Nov5,87105 Nov5,75806 Nov6,23007 Nov1,12008 Nov1,41909 Nov4,65810 Nov5,09011 Nov5,62112 Nov5,97213 Nov5,51414 Nov1,42315 Nov1,42416 Nov4,82417 Nov018 Nov120,109Last 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.2K (98%)
1.0.0
18 (02%)
0.3.2
3 (00%)
0.3.1
1 (00%)
37420 Oct48021 Oct48622 Oct41223 Oct94824 Oct69725 Oct16326 Oct16727 Oct17728 Oct13229 Oct15930 Oct7531 Oct5101 Nov4302 Nov8203 Nov12404 Nov11305 Nov13006 Nov11907 Nov12608 Nov17109 Nov21710 Nov19911 Nov17812 Nov14313 Nov21314 Nov3515 Nov15416 Nov26417 Nov018 Nov6,632Last 30 days

Avatar for GitHub account 47ng47ng/env-alias

3
5.7K
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

1.0.4
1 (33%)
2.0.0
1 (33%)
1.0.2
1 (33%)
020 Oct1121 Oct022 Oct023 Oct124 Oct025 Oct126 Oct027 Oct028 Oct029 Oct030 Oct231 Oct001 Nov102 Nov003 Nov004 Nov105 Nov106 Nov107 Nov108 Nov009 Nov010 Nov211 Nov112 Nov013 Nov014 Nov015 Nov016 Nov017 Nov018 Nov23Last 30 days

Avatar for GitHub account 47ng47ng/check-env

22
139K
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
120 (86%)
2.1.1
14 (10%)
2.1.0
5 (04%)
2.0.2
1 (01%)
2420 Oct021 Oct2422 Oct1623 Oct1924 Oct1825 Oct1126 Oct1627 Oct928 Oct2629 Oct2630 Oct2531 Oct801 Nov702 Nov1603 Nov3704 Nov4205 Nov6706 Nov3907 Nov11308 Nov1409 Nov5710 Nov8711 Nov1112 Nov1213 Nov1314 Nov415 Nov016 Nov1317 Nov018 Nov754Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
2.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
30K (100%)
1.0.1
15 (00%)
0.5.0
7 (00%)
0.3.1
1 (00%)
4,65620 Oct021 Oct4,60622 Oct4,61123 Oct4,41924 Oct1,47125 Oct1,05626 Oct5,73927 Oct5,49628 Oct5,55329 Oct5,57430 Oct4,56731 Oct1,45201 Nov96602 Nov4,31303 Nov5,76004 Nov5,89705 Nov5,69406 Nov6,23707 Nov1,09708 Nov1,44109 Nov4,66310 Nov5,08511 Nov5,54212 Nov5,92313 Nov5,49114 Nov1,42315 Nov1,41916 Nov4,80917 Nov018 Nov114,960Last 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