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
67m
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
772k (34%)
2.4.3
286k (13%)
2.8.8
254k (11%)
2.8.6
164k (07%)
2.8.2
93k (04%)
2.7.3
87k (04%)
332,726Mar 13115,911Mar 14116,864Mar 15373,302Mar 16389,880Mar 17394,126Mar 18383,598Mar 19332,380Mar 20123,848Mar 21112,816Mar 22364,439Mar 23385,714Mar 24380,241Mar 25376,947Mar 26344,367Mar 27127,543Mar 28120,883Mar 29370,101Mar 30392,279Mar 31402,176Apr 01389,318Apr 02287,613Apr 03128,657Apr 04118,063Apr 05309,665Apr 06432,341Apr 07426,002Apr 08425,644Apr 09392,620Apr 10137,595Apr 118,987,659Last 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
6 (16%)
3.1.1
5 (14%)
0.3.0
4 (11%)
4.0.0-beta.3
2 (05%)
0.0.1
2 (05%)
1Mar 130Mar 141Mar 150Mar 161Mar 170Mar 183Mar 190Mar 205Mar 210Mar 221Mar 236Mar 240Mar 250Mar 262Mar 2710Mar 2816Mar 2941Mar 300Mar 310Apr 010Apr 020Apr 0318Apr 040Apr 055Apr 062Apr 073Apr 086Apr 095Apr 1016Apr 11142Last 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
4.4k (71%)
1.3.0
1.1k (18%)
1.3.1
609 (10%)
1.1.2
22 (00%)
1.2.0
9 (00%)
1,168Mar 13251Mar 14182Mar 151,254Mar 161,021Mar 171,153Mar 181,182Mar 19944Mar 20181Mar 21182Mar 221,057Mar 231,258Mar 241,138Mar 251,012Mar 26974Mar 27118Mar 28196Mar 291,002Mar 301,393Mar 311,452Apr 011,201Apr 02630Apr 03374Apr 04205Apr 05820Apr 061,304Apr 071,275Apr 081,221Apr 091,007Apr 10320Apr 1125,475Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

82
52k
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
255 (91%)
0.6.0
6 (02%)
0.5.0
4 (01%)
0.6.1
4 (01%)
0.4.0
3 (01%)
19Mar 1319Mar 1415Mar 1540Mar 1652Mar 1736Mar 1816Mar 1916Mar 200Mar 2111Mar 229Mar 237Mar 2446Mar 2531Mar 2626Mar 2724Mar 285Mar 2919Mar 3022Mar 3121Apr 0134Apr 0230Apr 031Apr 0414Apr 0561Apr 0626Apr 0734Apr 0855Apr 0982Apr 107Apr 11778Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

63
2.9m
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
40k (93%)
1.1.0
3.1k (07%)
1.1.0-beta.2
7 (00%)
0.15.0
6 (00%)
0.8.0
5 (00%)
6,494Mar 131,816Mar 142,072Mar 156,713Mar 168,317Mar 177,512Mar 187,987Mar 196,624Mar 202,535Mar 212,371Mar 226,651Mar 238,465Mar 247,234Mar 257,423Mar 267,053Mar 272,433Mar 282,791Mar 298,985Mar 3010,201Mar 318,382Apr 017,607Apr 025,097Apr 031,793Apr 042,189Apr 056,848Apr 069,288Apr 077,682Apr 087,525Apr 097,012Apr 102,959Apr 11180,059Last 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.1k (98%)
1.0.0
14 (01%)
0.3.0
5 (00%)
0.3.2
1 (00%)
0.3.1
1 (00%)
147Mar 1338Mar 14192Mar 15233Mar 16261Mar 17274Mar 18120Mar 1993Mar 20116Mar 21354Mar 22642Mar 23366Mar 24214Mar 25136Mar 26193Mar 2761Mar 28187Mar 29442Mar 30205Mar 31178Apr 01152Apr 0289Apr 0383Apr 04155Apr 05178Apr 06145Apr 07146Apr 08291Apr 09122Apr 1066Apr 115,879Last 30 days

Avatar for GitHub account 47ng47ng/env-alias

3
5.8k
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.0
13 (59%)
1.0.1
6 (27%)
2.0.0
2 (09%)
0.3.1
1 (05%)
1Mar 131Mar 140Mar 157Mar 161Mar 170Mar 181Mar 190Mar 200Mar 212Mar 220Mar 230Mar 240Mar 251Mar 260Mar 276Mar 280Mar 291Mar 301Mar 310Apr 010Apr 020Apr 031Apr 040Apr 050Apr 060Apr 071Apr 0810Apr 090Apr 1011Apr 1145Last 30 days

Avatar for GitHub account 47ng47ng/check-env

23
147k
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
648 (82%)
2.1.1
69 (09%)
2.0.2
25 (03%)
2.0.1
23 (03%)
2.0.0
13 (02%)
213Mar 132Mar 144Mar 1556Mar 1619Mar 1787Mar 1841Mar 1954Mar 206Mar 215Mar 2290Mar 2378Mar 24155Mar 25150Mar 2674Mar 2718Mar 2829Mar 2931Mar 3011Mar 3136Apr 0135Apr 0232Apr 0326Apr 043Apr 0511Apr 06108Apr 07247Apr 08246Apr 09159Apr 1018Apr 112,044Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
3m
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
44k (100%)
1.0.1
18 (00%)
0.5.0
9 (00%)
0.3.0
7 (00%)
0.3.1
6 (00%)
6,492Mar 131,819Mar 142,095Mar 156,764Mar 168,447Mar 177,715Mar 188,019Mar 196,661Mar 202,562Mar 212,378Mar 226,755Mar 238,464Mar 247,367Mar 257,502Mar 267,150Mar 272,473Mar 282,795Mar 299,025Mar 3010,257Mar 318,438Apr 017,744Apr 025,089Apr 031,789Apr 042,206Apr 056,931Apr 069,410Apr 077,693Apr 087,561Apr 097,107Apr 102,906Apr 11181,614Last 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