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

10k
0
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
1.4m (48%)
2.4.3
251k (09%)
2.8.8
229k (08%)
2.8.6
162k (06%)
2.7.2
114k (04%)
2.8.5
73k (03%)
410,476Apr 20447,935Apr 21459,311Apr 22446,240Apr 23445,664Apr 24168,668Apr 25183,062Apr 26487,677Apr 27472,108Apr 28476,701Apr 29448,246Apr 30316,615May 01140,382May 02134,874May 03403,259May 04452,967May 05475,329May 06498,609May 07434,480May 080May 09159,779May 10497,161May 11519,375May 12521,497May 13478,451May 14453,724May 15173,619May 16173,810May 17509,392May 18532,300May 1911,321,711Last 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
8 (19%)
0.4.1
4 (10%)
2.2.0
3 (07%)
0.1.1
2 (05%)
0.2.0
2 (05%)
0Apr 200Apr 210Apr 226Apr 2315Apr 240Apr 253Apr 263Apr 2720Apr 2859Apr 2912Apr 303May 010May 020May 030May 0438May 051May 060May 070May 080May 096May 101May 113May 120May 133May 141May 156May 160May 171May 180May 19181Last 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
4.9k (73%)
1.3.0
1.2k (18%)
1.3.1
555 (08%)
1.1.2
23 (00%)
1.1.1
10 (00%)
1,214Apr 201,358Apr 211,322Apr 221,225Apr 23922Apr 24247Apr 25193Apr 261,192Apr 271,081Apr 281,052Apr 291,555Apr 30682May 01316May 02362May 03838May 041,350May 051,487May 061,126May 07920May 08271May 09275May 101,214May 111,434May 120May 131,000May 141,267May 15290May 16287May 171,266May 181,419May 1927,165Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

82
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
285 (91%)
1.0.2
6 (02%)
0.2.0
5 (02%)
0.3.0
4 (01%)
0.5.0
3 (01%)
35Apr 2054Apr 2150Apr 2231Apr 230Apr 2477Apr 2516Apr 2698Apr 2742Apr 2882Apr 2914Apr 3024May 0120May 0213May 0327May 0445May 057May 0646May 0720May 0821May 0914May 1039May 1121May 120May 1356May 1452May 1527May 1619May 1792May 1819May 191,061Last 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
61k (90%)
1.1.0
7.1k (10%)
1.0.0
5 (00%)
0.4.0
3 (00%)
0.14.1
3 (00%)
9,015Apr 209,302Apr 218,208Apr 229,810Apr 230Apr 243,004Apr 252,748Apr 269,887Apr 279,354Apr 2810,832Apr 2910,563Apr 308,206May 012,439May 023,219May 038,599May 0412,519May 0510,174May 0612,840May 079,905May 080May 092,997May 1011,241May 1114,321May 1212,912May 1311,690May 1413,805May 154,039May 163,031May 1710,402May 1812,604May 19247,666Last 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.9k (97%)
1.0.0
42 (02%)
0.3.1
5 (00%)
0.3.2
5 (00%)
0.1.0
4 (00%)
217Apr 20161Apr 21138Apr 22134Apr 2376Apr 2440Apr 25110Apr 26239Apr 27310Apr 28397Apr 29439Apr 30413May 01232May 02283May 03414May 04410May 05484May 06218May 07138May 08194May 09257May 10348May 11274May 12404May 13419May 14254May 15131May 16250May 17297May 18237May 197,918Last 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 (14%)
1.0.4
5 (12%)
0.1.0
5 (12%)
0.2.0
4 (09%)
1.0.2
4 (09%)
0Apr 200Apr 215Apr 222Apr 232Apr 240Apr 250Apr 2612Apr 279Apr 2823Apr 292Apr 3011May 010May 021May 033May 040May 052May 061May 070May 088May 094May 104May 111May 1214May 132May 1419May 158May 160May 170May 180May 19133Last 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

3.0.0
397 (71%)
2.1.1
79 (14%)
2.0.2
71 (13%)
2.0.1
6 (01%)
2.1.0
5 (01%)
139Apr 20178Apr 21166Apr 22122Apr 23116Apr 2483Apr 2518Apr 2690Apr 27191Apr 2895Apr 29182Apr 3038May 0117May 0273May 0349May 04151May 0582May 0694May 07166May 0816May 0922May 10413May 11155May 12183May 1328May 14107May 154May 1613May 17172May 1851May 193,214Last 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
66k (100%)
1.0.1
17 (00%)
1.0.0
9 (00%)
0.4.0
5 (00%)
0.5.0
5 (00%)
9,146Apr 209,181Apr 218,245Apr 229,749Apr 238,487Apr 243,038Apr 252,670Apr 269,679Apr 279,235Apr 2810,179Apr 299,682Apr 307,661May 012,342May 023,188May 038,393May 0411,621May 059,372May 0611,550May 079,331May 083,806May 092,988May 1010,622May 1113,328May 1211,935May 1311,147May 1413,461May 154,006May 163,056May 1710,380May 1812,382May 19249,860Last 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