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.4m (27%)
2.10.1
1.4m (26%)
2.8.8
470k (09%)
2.4.3
263k (05%)
2.9.0
204k (04%)
2.8.6
187k (04%)
937,962Sep 09930,986Sep 10840,699Sep 11362,161Sep 12337,896Sep 13901,198Sep 140Sep 15929,965Sep 16944,284Sep 17848,377Sep 18356,586Sep 19357,408Sep 20848,450Sep 21979,072Sep 221,021,934Sep 231,039,197Sep 24970,094Sep 25449,423Sep 26422,088Sep 271,012,279Sep 281,145,150Sep 291,107,547Sep 301,109,126Oct 01907,654Oct 02432,188Oct 03515,581Oct 041,045,570Oct 050Oct 061,223,376Oct 070Oct 0821,976,251Last 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

2.2.0
11 (10%)
3.1.1
10 (09%)
4.0.0-beta.4
10 (09%)
2.0.0
9 (08%)
0.2.0
6 (06%)
0Sep 091Sep 101Sep 114Sep 1229Sep 133Sep 140Sep 157Sep 166Sep 177Sep 183Sep 192Sep 203Sep 211Sep 224Sep 233Sep 247Sep 2523Sep 268Sep 2716Sep 2810Sep 2913Sep 3018Oct 0118Oct 0216Oct 037Oct 0440Oct 050Oct 068Oct 070Oct 08258Last 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
9k (80%)
1.3.0
1.5k (13%)
1.3.1
705 (06%)
1.1.2
14 (00%)
0.1.0
5 (00%)
2,241Sep 091,747Sep 102,275Sep 11555Sep 12295Sep 132,235Sep 140Sep 153,031Sep 161,909Sep 172,285Sep 18255Sep 19328Sep 202,768Sep 212,331Sep 222,763Sep 232,914Sep 241,941Sep 25218Sep 26299Sep 271,954Sep 282,882Sep 293,088Sep 303,476Oct 012,217Oct 02297Oct 03220Oct 042,309Oct 050Oct 062,666Oct 070Oct 0849,499Last 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
44 (73%)
0.6.1
5 (08%)
1.0.0
3 (05%)
0.2.0
1 (02%)
0.3.0
1 (02%)
18Sep 0918Sep 106Sep 112Sep 1213Sep 137Sep 140Sep 159Sep 1614Sep 1712Sep 182Sep 194Sep 2012Sep 214Sep 2223Sep 2313Sep 2422Sep 259Sep 264Sep 275Sep 2810Sep 299Sep 3012Oct 017Oct 024Oct 035Oct 0426Oct 050Oct 066Oct 070Oct 08276Last 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
103k (89%)
1.1.0
13k (11%)
1.1.0-beta.2
12 (00%)
0.5.1
11 (00%)
0.15.0
10 (00%)
27,271Sep 0930,790Sep 1023,441Sep 118,119Sep 124,832Sep 1315,352Sep 140Sep 1520,762Sep 1629,560Sep 1716,964Sep 185,077Sep 193,388Sep 2017,070Sep 2122,132Sep 2221,426Sep 2325,330Sep 2423,957Sep 257,345Sep 265,958Sep 2723,086Sep 2827,003Sep 2925,358Sep 3029,561Oct 0124,935Oct 028,441Oct 034,366Oct 0421,997Oct 050Oct 0627,210Oct 070Oct 08500,731Last 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.6k (97%)
1.0.0
24 (01%)
0.3.2
10 (01%)
0.3.1
7 (00%)
0.1.0
5 (00%)
117Sep 09276Sep 10111Sep 1168Sep 12161Sep 13397Sep 140Sep 15251Sep 16167Sep 17167Sep 18213Sep 19231Sep 2083Sep 21146Sep 22344Sep 23292Sep 24172Sep 25782Sep 26491Sep 27630Sep 28405Sep 29264Sep 30336Oct 01241Oct 02161Oct 03290Oct 04354Oct 050Oct 06278Oct 070Oct 087,428Last 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

1.0.4
8 (16%)
2.0.0
8 (16%)
0.2.0
6 (12%)
1.0.2
6 (12%)
1.0.1
4 (08%)
0Sep 091Sep 100Sep 112Sep 1211Sep 130Sep 140Sep 153Sep 163Sep 172Sep 180Sep 193Sep 201Sep 214Sep 221Sep 232Sep 243Sep 252Sep 264Sep 270Sep 283Sep 292Sep 303Oct 019Oct 028Oct 039Oct 0413Oct 050Oct 068Oct 070Oct 0897Last 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
50 (29%)
3.0.0
28 (16%)
2.0.2
19 (11%)
2.0.1
13 (08%)
2.1.0
12 (07%)
11Sep 0967Sep 1022Sep 1131Sep 1211Sep 1325Sep 140Sep 159Sep 1652Sep 1775Sep 1849Sep 19204Sep 20127Sep 2121Sep 2211Sep 2317Sep 2416Sep 257Sep 268Sep 2717Sep 2819Sep 2915Sep 3026Oct 0124Oct 0230Oct 0349Oct 0425Oct 050Oct 0616Oct 070Oct 08984Last 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
111k (100%)
1.0.1
18 (00%)
1.0.0
9 (00%)
0.5.0
9 (00%)
0.1.0
8 (00%)
26,349Sep 0929,467Sep 1022,569Sep 118,041Sep 124,890Sep 1315,322Sep 140Sep 1520,769Sep 1629,572Sep 1716,964Sep 185,169Sep 193,400Sep 2016,490Sep 2121,411Sep 2220,562Sep 2323,433Sep 2421,772Sep 257,090Sep 265,912Sep 2722,252Sep 2826,172Sep 2924,255Sep 3028,110Oct 0123,723Oct 028,344Oct 034,326Oct 0420,894Oct 050Oct 0625,207Oct 070Oct 08482,465Last 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