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
89m
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.6m (53%)
2.4.3
260k (09%)
2.8.8
246k (08%)
2.8.6
162k (05%)
2.7.2
96k (03%)
2.8.2
82k (03%)
0May 09159,779May 10497,161May 11519,375May 12521,497May 13478,451May 14453,724May 15173,619May 16173,810May 17509,392May 18532,300May 19555,224May 20550,183May 21473,860May 22174,989May 23174,205May 24353,642May 25493,702May 26546,340May 27528,948May 28464,166May 29196,211May 30182,057May 31533,899Jun 01561,730Jun 02543,932Jun 03548,553Jun 04469,526Jun 05177,562Jun 06180,011Jun 0711,727,848Last 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
16k
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
10 (21%)
2.2.0
5 (11%)
2.0.1
3 (06%)
4.0.0-beta.3
2 (04%)
4.0.0-beta.5
2 (04%)
0May 096May 101May 113May 120May 133May 141May 156May 160May 171May 180May 1910May 202May 215May 221May 230May 240May 256May 265May 270May 281May 292May 300May 313Jun 013Jun 0222Jun 030Jun 046Jun 054Jun 064Jun 0795Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
1.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
6.8k (84%)
1.3.0
669 (08%)
1.3.1
602 (07%)
1.1.1
3 (00%)
1.2.0
3 (00%)
271May 09275May 101,214May 111,434May 120May 131,000May 141,267May 15290May 16287May 171,266May 181,419May 191,298May 201,539May 211,313May 22213May 23561May 24865May 251,354May 261,900May 271,420May 281,344May 29311May 30274May 311,747Jun 011,727Jun 021,963Jun 031,235Jun 041,014Jun 05177Jun 06183Jun 0729,161Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

82
54k
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
295 (96%)
0.6.1
2 (01%)
1.0.2
2 (01%)
1.0.1
2 (01%)
0.5.0
1 (00%)
21May 0914May 1039May 1121May 120May 1356May 1452May 1527May 1619May 1792May 1819May 1925May 2018May 2199May 22148May 237May 2414May 2533May 2655May 2772May 288May 290May 3043May 3122Jun 0170Jun 0244Jun 033Jun 040Jun 050Jun 0626Jun 071,047Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

63
3.4m
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
71k (87%)
1.1.0
11k (13%)
1.0.1
9 (00%)
0.15.1
9 (00%)
0.12.0
8 (00%)
0May 092,997May 1011,241May 1114,321May 1212,912May 1311,690May 1413,805May 154,039May 163,031May 1710,402May 1812,604May 1913,389May 2011,563May 2110,688May 224,091May 235,724May 246,517May 2513,967May 2616,544May 2717,183May 2812,453May 293,894May 302,841May 3113,806Jun 0115,466Jun 0216,895Jun 0315,892Jun 0413,464Jun 053,608Jun 062,399Jun 07297,426Last 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
1k (98%)
1.0.0
8 (01%)
0.3.1
5 (00%)
0.3.2
4 (00%)
0.3.0
4 (00%)
194May 09257May 10348May 11274May 12404May 13419May 14254May 15131May 16250May 17297May 18237May 19306May 20208May 21130May 22183May 23276May 24194May 25273May 26189May 27280May 28203May 290May 30153May 31186Jun 01125Jun 02170Jun 03149Jun 040Jun 05132Jun 060Jun 076,222Last 30 days

Avatar for GitHub account 47ng47ng/env-alias

3
6k
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
15 (43%)
1.0.1
5 (14%)
1.0.3
3 (09%)
0.3.1
3 (09%)
1.0.2
2 (06%)
8May 094May 104May 111May 1214May 132May 1419May 158May 160May 170May 180May 197May 201May 211May 220May 230May 241May 251May 2610May 270May 280May 293May 300May 315Jun 012Jun 029Jun 030Jun 044Jun 059Jun 062Jun 07115Last 30 days

Avatar for GitHub account 47ng47ng/check-env

23
154k
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
1.4k (90%)
2.0.2
57 (04%)
2.1.1
51 (03%)
2.0.1
10 (01%)
1.5.0
6 (00%)
16May 0922May 10413May 11155May 12183May 1328May 14107May 154May 1613May 17172May 1851May 19156May 20206May 21144May 22104May 2320May 2454May 25128May 26272May 27184May 28253May 29134May 30142May 31426Jun 01354Jun 020Jun 03174Jun 04120Jun 055Jun 06102Jun 074,142Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
3.4m
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
78k (100%)
1.0.1
20 (00%)
0.5.0
9 (00%)
0.4.0
8 (00%)
0.3.1
6 (00%)
3,806May 092,988May 1010,622May 1113,328May 1211,935May 1311,147May 1413,461May 154,006May 163,056May 1710,380May 1812,382May 1913,031May 2011,226May 2110,543May 224,198May 235,728May 246,516May 2512,836May 2615,644May 2716,283May 2812,165May 293,845May 302,946May 3113,220Jun 0114,428Jun 0216,183Jun 030Jun 0412,797Jun 053,656Jun 062,395Jun 07274,751Last 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