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

10K
6.7M
2.8.9
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
11K (34%)
1.17.1
10K (32%)
1.7.2
4.4K (14%)
1.7.3
1.9K (06%)
1.19.3
1.6K (05%)
1.17.8
1.2K (04%)
7,30619 Feb7,02420 Feb2,11021 Feb97122 Feb6,96323 Feb6,74824 Feb6,98925 Feb7,63426 Feb6,42527 Feb1,40628 Feb1,36901 Mar7,11602 Mar8,94003 Mar7,72404 Mar7,31405 Mar9,83506 Mar2,66607 Mar1,65508 Mar7,56409 Mar010 Mar7,58711 Mar6,73912 Mar6,84313 Mar2,06414 Mar1,67315 Mar7,49816 Mar017 Mar018 Mar019 Mar020 Mar140,163Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

10K
58M
2.8.9
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.8.9
422K (25%)
2.8.8
305K (18%)
2.4.3
173K (10%)
2.8.6
172K (10%)
2.8.5
75K (04%)
2.7.2
68K (04%)
293,01219 Feb267,43920 Feb95,61021 Feb91,40622 Feb290,56223 Feb333,00824 Feb340,97525 Feb326,55026 Feb301,03427 Feb101,87028 Feb112,47601 Mar324,00302 Mar340,53203 Mar350,19904 Mar332,45205 Mar313,42406 Mar135,14707 Mar124,99908 Mar356,04609 Mar010 Mar382,97211 Mar370,50912 Mar332,72613 Mar115,91114 Mar116,86415 Mar373,30216 Mar017 Mar018 Mar019 Mar020 Mar6,523,028Last 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.4
1 (33%)
3.1.1
1 (33%)
1.0.0
1 (33%)
519 Feb420 Feb121 Feb222 Feb2823 Feb024 Feb025 Feb126 Feb227 Feb028 Feb001 Mar002 Mar003 Mar004 Mar105 Mar006 Mar107 Mar408 Mar109 Mar010 Mar011 Mar112 Mar113 Mar014 Mar115 Mar016 Mar017 Mar018 Mar019 Mar020 Mar53Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
1M
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 (68%)
1.3.0
1K (19%)
1.3.1
691 (13%)
1.1.2
14 (00%)
1.2.0
4 (00%)
1,28919 Feb98020 Feb28521 Feb29522 Feb1,29623 Feb1,13724 Feb1,30625 Feb1,46326 Feb1,55127 Feb71228 Feb96201 Mar1,26402 Mar1,34303 Mar1,25604 Mar1,08605 Mar1,35006 Mar19207 Mar35308 Mar85909 Mar010 Mar1,17111 Mar1,37912 Mar1,16813 Mar25114 Mar18215 Mar1,25416 Mar017 Mar018 Mar019 Mar020 Mar24,384Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

81
51K
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
147 (95%)
1.0.0
1 (01%)
0.3.0
1 (01%)
0.6.0
1 (01%)
0.4.0
1 (01%)
4019 Feb2020 Feb221 Feb4322 Feb9823 Feb2924 Feb5525 Feb4826 Feb1227 Feb528 Feb501 Mar1102 Mar3703 Mar3904 Mar3605 Mar2906 Mar007 Mar108 Mar1609 Mar010 Mar4311 Mar1912 Mar1913 Mar1914 Mar1515 Mar4016 Mar017 Mar018 Mar019 Mar020 Mar681Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

65
2.7M
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
32K (93%)
1.1.0
2.3K (07%)
1.2.0-beta.1
5 (00%)
0.15.1
1 (00%)
7,50619 Feb6,55620 Feb1,73321 Feb1,82022 Feb5,10523 Feb9,18324 Feb8,00825 Feb7,49926 Feb6,26427 Feb1,80228 Feb2,85901 Mar7,51602 Mar8,74703 Mar10,75304 Mar8,00405 Mar7,48706 Mar3,14407 Mar3,08408 Mar6,74809 Mar010 Mar9,51011 Mar7,43012 Mar6,49413 Mar1,81614 Mar2,07215 Mar6,71316 Mar017 Mar018 Mar019 Mar020 Mar147,853Last 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.3M
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 (99%)
1.0.0
6 (00%)
0.3.2
4 (00%)
0.1.0
1 (00%)
0.3.1
1 (00%)
30919 Feb18920 Feb9021 Feb12522 Feb27123 Feb21524 Feb32325 Feb16826 Feb12627 Feb2528 Feb14101 Mar14702 Mar25203 Mar31904 Mar19305 Mar18306 Mar32407 Mar28508 Mar60609 Mar010 Mar23311 Mar39912 Mar14713 Mar3814 Mar19215 Mar23316 Mar017 Mar018 Mar019 Mar020 Mar5,533Last 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

2.0.0
3 (30%)
1.0.4
2 (20%)
0.3.1
2 (20%)
1.0.1
1 (10%)
1.0.0
1 (10%)
119 Feb120 Feb021 Feb122 Feb023 Feb224 Feb125 Feb026 Feb227 Feb028 Feb001 Mar002 Mar103 Mar004 Mar005 Mar006 Mar007 Mar008 Mar009 Mar010 Mar111 Mar012 Mar113 Mar114 Mar015 Mar716 Mar017 Mar018 Mar019 Mar020 Mar19Last 30 days

Avatar for GitHub account 47ng47ng/check-env

23
145K
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
690 (91%)
2.0.2
25 (03%)
2.1.1
20 (03%)
2.0.1
12 (02%)
1.5.0
3 (00%)
12419 Feb12220 Feb821 Feb622 Feb17123 Feb9724 Feb16225 Feb11526 Feb4627 Feb028 Feb001 Mar7302 Mar17903 Mar10004 Mar12605 Mar15506 Mar007 Mar2208 Mar30909 Mar010 Mar23211 Mar25512 Mar21313 Mar214 Mar415 Mar5616 Mar017 Mar018 Mar019 Mar020 Mar2,577Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
2.8M
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
34K (100%)
1.0.1
20 (00%)
0.5.0
6 (00%)
0.4.0
5 (00%)
7,57219 Feb6,57920 Feb1,72621 Feb1,86922 Feb5,20523 Feb9,29624 Feb8,01725 Feb7,60526 Feb6,27927 Feb1,81228 Feb2,86901 Mar7,54102 Mar8,82403 Mar10,79404 Mar8,10005 Mar7,55706 Mar3,13607 Mar3,08608 Mar6,78909 Mar010 Mar9,53111 Mar7,44412 Mar6,49213 Mar1,81914 Mar2,09515 Mar6,76416 Mar017 Mar018 Mar019 Mar020 Mar148,801Last 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