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/nuqs

11k
0
2.10.2
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
1.6m (25%)
2.10.2
1.2m (18%)
2.10.1
915k (14%)
2.4.3
346k (05%)
2.8.8
329k (05%)
2.9.0
319k (05%)
1,145,150Sep 291,107,547Sep 301,109,126Oct 01907,654Oct 02432,188Oct 03515,581Oct 041,045,570Oct 050Oct 061,223,376Oct 071,219,143Oct 081,073,522Oct 09553,986Oct 10573,447Oct 111,101,343Oct 120Oct 130Oct 140Oct 151,157,048Oct 16485,394Oct 17543,120Oct 180Oct 190Oct 200Oct 211,398,587Oct 221,276,703Oct 23607,804Oct 24529,033Oct 251,344,450Oct 261,365,864Oct 270Oct 2820,715,636Last 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
0
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
9 (16%)
4.0.0-beta.4
6 (11%)
3.1.0
4 (07%)
4.0.0-beta.7
3 (05%)
4.0.0-beta.2
3 (05%)
10Sep 2913Sep 3018Oct 0118Oct 0216Oct 037Oct 0440Oct 050Oct 068Oct 0710Oct 0827Oct 0982Oct 1023Oct 115Oct 120Oct 130Oct 140Oct 1510Oct 163Oct 1711Oct 180Oct 190Oct 200Oct 219Oct 226Oct 230Oct 2434Oct 255Oct 263Oct 270Oct 28358Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
0
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
14k (89%)
1.3.0
939 (06%)
1.3.1
768 (05%)
1.1.2
18 (00%)
1.2.0
5 (00%)
2,882Sep 293,088Sep 303,476Oct 012,217Oct 02297Oct 03220Oct 042,309Oct 050Oct 062,666Oct 072,844Oct 084,372Oct 09450Oct 10455Oct 113,502Oct 120Oct 130Oct 140Oct 153,192Oct 16378Oct 17262Oct 180Oct 190Oct 200Oct 213,392Oct 224,068Oct 23703Oct 24512Oct 254,514Oct 262,495Oct 270Oct 2848,294Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

83
0
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
73 (90%)
1.0.0
4 (05%)
1.0.2
2 (02%)
0.6.1
1 (01%)
0.6.0
1 (01%)
10Sep 299Sep 3012Oct 017Oct 024Oct 035Oct 0426Oct 050Oct 066Oct 0713Oct 0822Oct 095Oct 109Oct 1117Oct 120Oct 130Oct 140Oct 1511Oct 1611Oct 1710Oct 180Oct 190Oct 200Oct 2119Oct 2223Oct 2310Oct 245Oct 2511Oct 2613Oct 270Oct 28258Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

63
0
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
98k (86%)
1.1.0
16k (14%)
1.0.1
5 (00%)
0.5.0
5 (00%)
1.0.0
4 (00%)
27,003Sep 2925,358Sep 3029,561Oct 0124,935Oct 028,441Oct 034,366Oct 0421,997Oct 050Oct 0627,210Oct 0724,074Oct 0823,648Oct 097,145Oct 105,473Oct 1117,839Oct 120Oct 130Oct 140Oct 1526,064Oct 164,907Oct 176,318Oct 180Oct 190Oct 200Oct 2126,134Oct 2223,543Oct 234,840Oct 245,425Oct 2526,488Oct 2627,644Oct 270Oct 28398,413Last 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
0
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.4k (98%)
1.0.0
19 (01%)
0.1.0
3 (00%)
0.3.1
2 (00%)
0.3.0
2 (00%)
405Sep 29264Sep 30336Oct 01241Oct 02161Oct 03290Oct 04354Oct 050Oct 06278Oct 07213Oct 08190Oct 09214Oct 10381Oct 11429Oct 120Oct 130Oct 140Oct 15145Oct 1682Oct 17288Oct 180Oct 190Oct 200Oct 21305Oct 22174Oct 23190Oct 24255Oct 25335Oct 26165Oct 270Oct 285,695Last 30 days

Avatar for GitHub account 47ng47ng/env-alias

3
0
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
6 (18%)
0.2.0
5 (15%)
0.0.1
5 (15%)
0.3.0
4 (12%)
1.0.2
3 (09%)
3Sep 292Sep 303Oct 019Oct 028Oct 039Oct 0413Oct 050Oct 068Oct 076Oct 0810Oct 094Oct 103Oct 113Oct 120Oct 130Oct 140Oct 153Oct 163Oct 172Oct 180Oct 190Oct 200Oct 210Oct 221Oct 2314Oct 244Oct 2510Oct 264Oct 270Oct 28122Last 30 days

Avatar for GitHub account 47ng47ng/check-env

23
0
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

2.1.1
46 (40%)
3.0.0
16 (14%)
2.0.2
14 (12%)
2.1.0
8 (07%)
2.0.1
8 (07%)
19Sep 2915Sep 3026Oct 0124Oct 0230Oct 0349Oct 0425Oct 050Oct 0616Oct 07148Oct 08191Oct 0991Oct 1016Oct 1136Oct 120Oct 130Oct 140Oct 1510Oct 1618Oct 1733Oct 180Oct 190Oct 200Oct 2117Oct 2222Oct 2315Oct 2416Oct 2513Oct 2633Oct 270Oct 28863Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
0
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
106k (100%)
1.0.1
20 (00%)
1.0.0
5 (00%)
0.2.0
3 (00%)
0.1.0
3 (00%)
26,172Sep 2924,255Sep 3028,110Oct 0123,723Oct 028,344Oct 034,326Oct 0420,894Oct 050Oct 0625,207Oct 0722,977Oct 0822,432Oct 096,952Oct 105,389Oct 1117,732Oct 120Oct 130Oct 140Oct 1523,292Oct 164,812Oct 175,798Oct 180Oct 190Oct 200Oct 2124,068Oct 2222,168Oct 234,760Oct 245,454Oct 2524,744Oct 2625,288Oct 270Oct 28376,897Last 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