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
123m
2.9.5
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.5m (36%)
2.9.5
362k (09%)
2.9.0
314k (07%)
2.8.8
302k (07%)
2.4.3
244k (06%)
2.9.4
240k (06%)
672,533Jul 15656,056Jul 16576,417Jul 17242,405Jul 18260,067Jul 19646,202Jul 20733,611Jul 21738,861Jul 22705,240Jul 23604,360Jul 24250,170Jul 25277,223Jul 26703,478Jul 27727,913Jul 28708,109Jul 29718,832Jul 30597,964Jul 31275,580Aug 01277,075Aug 02695,923Aug 03741,427Aug 04745,118Aug 05573,046Aug 06652,980Aug 07263,600Aug 08287,798Aug 09704,780Aug 10753,265Aug 11754,117Aug 12780,984Aug 1317,325,134Last 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

0.2.0
5 (06%)
0.1.1
5 (06%)
3.1.1
5 (06%)
2.0.1
5 (06%)
3.1.0
5 (06%)
0Jul 151Jul 160Jul 171Jul 182Jul 190Jul 203Jul 210Jul 221Jul 231Jul 2428Jul 251Jul 262Jul 274Jul 281Jul 292Jul 300Jul 310Aug 013Aug 020Aug 030Aug 042Aug 0520Aug 0651Aug 074Aug 081Aug 090Aug 100Aug 110Aug 121Aug 13129Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
1.2m
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
8.9k (85%)
1.3.0
982 (09%)
1.3.1
585 (06%)
1.1.2
17 (00%)
1.1.1
10 (00%)
1,362Jul 151,428Jul 161,356Jul 17254Jul 18350Jul 191,376Jul 201,309Jul 211,276Jul 221,198Jul 231,154Jul 24403Jul 25413Jul 261,528Jul 271,338Jul 281,508Jul 291,385Jul 301,054Jul 31349Aug 01240Aug 021,444Aug 031,757Aug 041,490Aug 051,167Aug 061,113Aug 07249Aug 08215Aug 091,489Aug 101,974Aug 112,772Aug 122,663Aug 1335,614Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

82
55k
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
95 (48%)
0.6.1
58 (29%)
0.6.0
7 (04%)
1.0.0
7 (04%)
0.4.0
5 (03%)
10Jul 156Jul 1612Jul 172Jul 187Jul 1913Jul 2017Jul 2133Jul 226Jul 2325Jul 240Jul 2512Jul 2626Jul 279Jul 2825Jul 295Jul 305Jul 314Aug 011Aug 026Aug 0310Aug 044Aug 0516Aug 0630Aug 070Aug 084Aug 0928Aug 1019Aug 1124Aug 1292Aug 13451Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

63
4.3m
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
105k (86%)
1.1.0
17k (14%)
1.1.0-beta.2
5 (00%)
0.12.0
4 (00%)
0.2.0
3 (00%)
20,465Jul 1521,280Jul 1616,931Jul 175,994Jul 183,719Jul 1917,525Jul 2024,115Jul 2124,405Jul 2223,154Jul 2319,155Jul 245,320Jul 253,951Jul 2617,713Jul 2720,629Jul 2819,959Jul 2920,809Jul 3016,712Jul 313,281Aug 013,469Aug 0214,844Aug 0320,280Aug 0421,125Aug 0514,089Aug 0622,509Aug 074,696Aug 084,491Aug 0922,023Aug 1024,046Aug 110Aug 1221,579Aug 13458,268Last 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.3k (93%)
1.0.0
46 (03%)
0.3.1
15 (01%)
0.3.2
15 (01%)
0.1.0
9 (01%)
298Jul 15386Jul 16303Jul 17222Jul 18358Jul 19224Jul 20235Jul 21228Jul 22115Jul 2354Jul 240Jul 25195Jul 26222Jul 27824Jul 28421Jul 29150Jul 30133Jul 3171Aug 01110Aug 02193Aug 03268Aug 04319Aug 05134Aug 060Aug 07104Aug 08168Aug 09158Aug 10246Aug 11323Aug 12241Aug 136,703Last 30 days

Avatar for GitHub account 47ng47ng/env-alias

3
6.1k
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
16 (23%)
0.3.1
9 (13%)
0.1.0
7 (10%)
1.0.0
7 (10%)
0.2.0
7 (10%)
0Jul 150Jul 160Jul 172Jul 184Jul 195Jul 204Jul 213Jul 220Jul 230Jul 2411Jul 251Jul 260Jul 271Jul 281Jul 290Jul 300Jul 310Aug 010Aug 020Aug 032Aug 040Aug 050Aug 0614Aug 072Aug 081Aug 090Aug 100Aug 119Aug 122Aug 1362Last 30 days

Avatar for GitHub account 47ng47ng/check-env

23
160k
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
36 (27%)
3.0.0
22 (17%)
2.0.2
20 (15%)
2.0.1
15 (11%)
1.1.0
11 (08%)
10Jul 1523Jul 1623Jul 1740Jul 1820Jul 1925Jul 2043Jul 2125Jul 227Jul 2328Jul 2426Jul 2516Jul 2611Jul 2767Jul 2825Jul 2922Jul 30114Jul 31149Aug 01105Aug 0296Aug 03109Aug 0443Aug 0513Aug 0622Aug 0716Aug 0814Aug 0930Aug 1028Aug 118Aug 1214Aug 131,172Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
4.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
115k (100%)
1.0.1
11 (00%)
0.5.0
6 (00%)
1.0.0
4 (00%)
0.3.0
3 (00%)
19,171Jul 1519,171Jul 1615,501Jul 175,824Jul 183,718Jul 1916,680Jul 2022,782Jul 2123,131Jul 2221,637Jul 2317,871Jul 244,809Jul 253,910Jul 2617,095Jul 2719,180Jul 2818,349Jul 2919,129Jul 3015,717Jul 313,119Aug 013,523Aug 0214,263Aug 0319,260Aug 0419,669Aug 0513,228Aug 0620,685Aug 074,523Aug 084,478Aug 0920,695Aug 1022,523Aug 110Aug 1220,637Aug 13430,278Last 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