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/next-usequerystate

10K
6.6M
2.8.9
MIT

Type-safe search params state manager for React frameworks - Like useState, but stored in the URL query string.

$ pnpm add next-usequerystate
$ yarn add next-usequerystate
$ npm install next-usequerystate

Version rolloutLast week

1.20.0
11K (29%)
1.17.1
10K (27%)
1.19.3
7.3K (19%)
1.7.2
4.2K (11%)
1.7.3
2.4K (06%)
1.17.8
1.1K (03%)
5,65530 Jan98531 Jan1,54301 Feb5,09302 Feb7,23003 Feb6,56204 Feb7,72905 Feb7,26606 Feb1,57907 Feb91808 Feb5,79709 Feb7,81110 Feb8,22011 Feb7,47512 Feb7,94813 Feb1,78114 Feb84015 Feb4,78816 Feb5,88917 Feb6,75818 Feb7,30619 Feb7,02420 Feb2,11021 Feb97122 Feb6,96323 Feb6,74824 Feb6,98925 Feb7,63426 Feb6,42527 Feb028 Feb154,037Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

10K
54M
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.8
584K (33%)
2.8.6
253K (14%)
2.4.3
220K (12%)
2.7.2
96K (05%)
2.8.5
69K (04%)
2.7.3
58K (03%)
280,35030 Jan89,35331 Jan87,79501 Feb272,95902 Feb326,35903 Feb312,93404 Feb314,96205 Feb291,04606 Feb102,51907 Feb96,20908 Feb278,45709 Feb319,03610 Feb304,17311 Feb303,97512 Feb258,06413 Feb80,31714 Feb80,11315 Feb221,52816 Feb270,25217 Feb296,69518 Feb293,01219 Feb267,43920 Feb95,61021 Feb91,40622 Feb290,56223 Feb333,00824 Feb340,97525 Feb326,55026 Feb301,03427 Feb028 Feb6,926,692Last 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.7
3 (09%)
2.2.0
3 (09%)
1.0.0
2 (06%)
3.1.1
2 (06%)
4.0.0-beta.6
1 (03%)
230 Jan031 Jan201 Feb1202 Feb703 Feb504 Feb405 Feb006 Feb007 Feb208 Feb309 Feb310 Feb211 Feb012 Feb013 Feb014 Feb515 Feb3516 Feb417 Feb318 Feb519 Feb420 Feb121 Feb222 Feb2823 Feb024 Feb025 Feb126 Feb227 Feb028 Feb132Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
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
5.5K (75%)
1.3.0
1.1K (15%)
1.3.1
688 (09%)
1.1.2
18 (00%)
1.1.1
2 (00%)
1,07030 Jan14331 Jan21901 Feb1,24002 Feb1,25803 Feb1,34604 Feb98505 Feb92606 Feb16907 Feb19108 Feb1,21609 Feb1,23310 Feb1,27711 Feb1,31012 Feb93313 Feb19714 Feb15015 Feb1,10016 Feb86717 Feb1,17118 Feb1,28919 Feb98020 Feb28521 Feb29522 Feb1,29623 Feb1,13724 Feb1,30625 Feb1,46326 Feb1,55127 Feb028 Feb26,603Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

81
51K
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 (99%)
0.6.1
1 (00%)
1.0.1
1 (00%)
430 Jan031 Jan301 Feb3602 Feb2503 Feb3104 Feb1405 Feb806 Feb107 Feb008 Feb4009 Feb610 Feb3711 Feb1512 Feb2513 Feb114 Feb115 Feb516 Feb1317 Feb2318 Feb4019 Feb2020 Feb221 Feb4322 Feb9823 Feb2924 Feb5525 Feb4826 Feb1227 Feb028 Feb635Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

66
2.6M
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
36K (91%)
1.1.0
3.6K (09%)
0.15.1
1 (00%)
0.11.0
1 (00%)
0.3.0
1 (00%)
7,88930 Jan1,98131 Jan1,78901 Feb6,05902 Feb7,65403 Feb7,01904 Feb7,78805 Feb6,96406 Feb1,40607 Feb2,98708 Feb5,54009 Feb7,72610 Feb6,63211 Feb8,40712 Feb6,57613 Feb3,44814 Feb2,02015 Feb5,69116 Feb7,85217 Feb7,18918 Feb7,50619 Feb6,55620 Feb1,73321 Feb1,82022 Feb5,10523 Feb9,18324 Feb8,00825 Feb7,49926 Feb6,26427 Feb028 Feb166,291Last 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 (98%)
1.0.0
20 (02%)
0.3.2
2 (00%)
0.3.0
1 (00%)
0.3.1
1 (00%)
9630 Jan4931 Jan12101 Feb27702 Feb17803 Feb23904 Feb24505 Feb10906 Feb12407 Feb15708 Feb25109 Feb23510 Feb20811 Feb20412 Feb14413 Feb9214 Feb18215 Feb26116 Feb17317 Feb23518 Feb30919 Feb18920 Feb9021 Feb12522 Feb27123 Feb21524 Feb32325 Feb16826 Feb12627 Feb028 Feb5,396Last 30 days

Avatar for GitHub account 47ng47ng/env-alias

3
5.7K
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.2
2 (33%)
1.0.1
2 (33%)
0.3.1
1 (17%)
1.0.0
1 (17%)
130 Jan031 Jan001 Feb002 Feb103 Feb204 Feb205 Feb006 Feb007 Feb008 Feb109 Feb010 Feb011 Feb012 Feb013 Feb014 Feb015 Feb1216 Feb117 Feb018 Feb119 Feb120 Feb021 Feb122 Feb023 Feb224 Feb125 Feb026 Feb227 Feb028 Feb28Last 30 days

Avatar for GitHub account 47ng47ng/check-env

23
143K
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
571 (94%)
2.0.2
21 (03%)
2.1.1
9 (01%)
2.0.1
2 (00%)
2.1.0
1 (00%)
8030 Jan1431 Jan1001 Feb9102 Feb5703 Feb9904 Feb3105 Feb13006 Feb2407 Feb1308 Feb11909 Feb6010 Feb16011 Feb14612 Feb24213 Feb314 Feb1815 Feb19216 Feb15617 Feb12018 Feb12419 Feb12220 Feb821 Feb622 Feb17123 Feb9724 Feb16225 Feb11526 Feb4627 Feb028 Feb2,616Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
2.7M
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
40K (100%)
1.0.1
9 (00%)
0.4.0
2 (00%)
0.5.0
2 (00%)
0.3.1
1 (00%)
7,84330 Jan1,96831 Jan1,79001 Feb6,09102 Feb7,64003 Feb7,03104 Feb7,80405 Feb6,96806 Feb1,40007 Feb2,98108 Feb5,56509 Feb7,70410 Feb6,65511 Feb8,47712 Feb6,64213 Feb3,45814 Feb2,01315 Feb5,69516 Feb7,78917 Feb7,19818 Feb7,57219 Feb6,57920 Feb1,72621 Feb1,86922 Feb5,20523 Feb9,29624 Feb8,01725 Feb7,60526 Feb6,27927 Feb028 Feb166,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