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

9.1K
6M
2.7.2
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
15K (42%)
1.17.1
5.8K (17%)
1.7.2
3.7K (11%)
1.19.3
3.6K (10%)
1.17.8
2.4K (07%)
1.7.3
1.9K (06%)
7,26429 Sep7,70230 Sep7,41001 Oct6,45202 Oct4,56003 Oct1,19104 Oct95005 Oct4,44206 Oct6,24507 Oct5,98008 Oct7,03809 Oct5,63110 Oct83911 Oct67012 Oct4,52613 Oct5,51114 Oct6,37415 Oct7,64416 Oct6,48817 Oct1,56518 Oct1,68719 Oct6,21520 Oct021 Oct7,45622 Oct5,25723 Oct5,56024 Oct1,49825 Oct74126 Oct6,96327 Oct7,15728 Oct141,016Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

9.1K
32M
2.7.2
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.4.3
266K (26%)
2.7.2
260K (26%)
2.6.0
103K (10%)
2.7.1
68K (07%)
1.20.0
49K (05%)
2.7.0
49K (05%)
165,82129 Sep178,39230 Sep171,74801 Oct158,35002 Oct137,14703 Oct43,97704 Oct45,94305 Oct167,46906 Oct175,70807 Oct174,23008 Oct167,18209 Oct154,05710 Oct48,16111 Oct46,19112 Oct152,30013 Oct187,14214 Oct176,40015 Oct182,74016 Oct160,38217 Oct45,05518 Oct019 Oct170,09220 Oct195,93221 Oct196,04222 Oct182,84423 Oct156,72324 Oct42,39225 Oct47,32926 Oct186,30527 Oct193,13628 Oct4,109,190Last 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.1
27 (84%)
4.0.0-beta.4
4 (13%)
4.0.0-beta.5
1 (03%)
029 Sep030 Sep001 Oct102 Oct5303 Oct17704 Oct6205 Oct006 Oct707 Oct808 Oct509 Oct110 Oct011 Oct012 Oct013 Oct014 Oct115 Oct56216 Oct017 Oct10918 Oct019 Oct520 Oct4021 Oct522 Oct523 Oct724 Oct925 Oct526 Oct027 Oct128 Oct1,063Last 30 days

Avatar for GitHub account 47ng47ng/fastify-cron

50
914K
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
3.1K (60%)
1.3.1
1.2K (24%)
1.3.0
875 (17%)
1.2.0
5 (00%)
1.1.2
4 (00%)
1,05329 Sep1,30430 Sep1,23001 Oct1,02502 Oct86803 Oct11404 Oct10105 Oct99506 Oct1,29607 Oct1,31208 Oct1,00909 Oct1,20210 Oct16611 Oct13212 Oct96213 Oct1,44914 Oct1,12515 Oct016 Oct1,12317 Oct22518 Oct20519 Oct1,13820 Oct99821 Oct1,06222 Oct93823 Oct92324 Oct9425 Oct15126 Oct1,05427 Oct1,00928 Oct24,263Last 30 days

47ng/actions-clever-cloud

GitHub Action to deploy to Clever Cloud

Security & Encryption

Avatar for GitHub account 47ng47ng/session-keystore

79
49K
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
405 (100%)
0.1.0
1 (00%)
0.4.0
1 (00%)
2829 Sep630 Sep2101 Oct2602 Oct3403 Oct5004 Oct3405 Oct1506 Oct1407 Oct608 Oct409 Oct910 Oct4011 Oct1012 Oct513 Oct3614 Oct2415 Oct6816 Oct7117 Oct2518 Oct219 Oct920 Oct1921 Oct422 Oct1023 Oct1524 Oct26225 Oct3126 Oct5627 Oct2928 Oct963Last 30 days

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

Avatar for GitHub account 47ng47ng/cloak

63
2.1M
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
24K (89%)
1.1.0
3K (11%)
1.1.0-beta.2
5 (00%)
0.1.0
1 (00%)
4,50329 Sep5,18530 Sep4,40201 Oct5,47102 Oct4,56403 Oct1,16504 Oct1,07505 Oct5,27606 Oct5,92707 Oct5,13308 Oct4,33109 Oct4,07510 Oct1,19411 Oct80812 Oct4,79813 Oct5,75814 Oct5,53515 Oct5,05116 Oct5,03917 Oct1,18618 Oct019 Oct4,75920 Oct4,74521 Oct4,72222 Oct4,65523 Oct4,44324 Oct1,19625 Oct1,02126 Oct5,69127 Oct5,52728 Oct117,235Last 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.2M
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
3K (99%)
1.0.0
41 (01%)
0.1.0
1 (00%)
0.3.2
1 (00%)
0.3.1
1 (00%)
25229 Sep19330 Sep11301 Oct24902 Oct7103 Oct5504 Oct6505 Oct13806 Oct11907 Oct22108 Oct21209 Oct13110 Oct2711 Oct11612 Oct12813 Oct14414 Oct30915 Oct016 Oct35917 Oct30918 Oct27219 Oct37420 Oct48021 Oct48622 Oct41223 Oct94824 Oct69725 Oct16326 Oct16727 Oct17728 Oct7,387Last 30 days

Avatar for GitHub account 47ng47ng/env-alias

3
5.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
2 (100%)
029 Sep030 Sep001 Oct002 Oct003 Oct004 Oct005 Oct206 Oct007 Oct108 Oct009 Oct010 Oct011 Oct012 Oct113 Oct014 Oct415 Oct016 Oct017 Oct1118 Oct119 Oct020 Oct1121 Oct022 Oct023 Oct124 Oct025 Oct126 Oct027 Oct028 Oct33Last 30 days

Avatar for GitHub account 47ng47ng/check-env

21
138K
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
86 (76%)
2.1.1
22 (19%)
2.0.1
5 (04%)
1929 Sep3230 Sep5601 Oct4102 Oct2703 Oct1604 Oct105 Oct906 Oct2807 Oct1308 Oct709 Oct1710 Oct311 Oct1312 Oct2913 Oct714 Oct5315 Oct2316 Oct1617 Oct3718 Oct2219 Oct2420 Oct021 Oct2422 Oct1623 Oct1924 Oct1825 Oct1126 Oct1627 Oct928 Oct606Last 30 days

Miscellaneous

Avatar for GitHub account 47ng47ng/codec

6
2.1M
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
27K (100%)
0.5.0
18 (00%)
1.0.1
15 (00%)
1.0.0
2 (00%)
4,51129 Sep5,20330 Sep4,42101 Oct5,45602 Oct4,50103 Oct1,19304 Oct1,05105 Oct5,23606 Oct5,89107 Oct5,09408 Oct4,33509 Oct4,06610 Oct1,22911 Oct81812 Oct4,74813 Oct5,77614 Oct5,49815 Oct5,10616 Oct5,08017 Oct018 Oct1,38819 Oct4,65620 Oct021 Oct4,60622 Oct4,61123 Oct4,41924 Oct1,47125 Oct1,05626 Oct5,73927 Oct5,49628 Oct112,655Last 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