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.9M
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.19.3
12K (27%)
1.20.0
11K (25%)
1.17.1
11K (24%)
1.7.2
4.5K (10%)
1.7.3
2.9K (06%)
1.17.8
1.4K (03%)
7,58711 Mar6,73912 Mar6,84313 Mar2,06414 Mar1,67315 Mar7,49816 Mar7,95817 Mar8,82118 Mar7,79419 Mar6,20820 Mar1,67521 Mar1,13222 Mar6,61623 Mar6,68324 Mar6,51025 Mar6,93326 Mar8,21127 Mar2,02628 Mar1,51829 Mar9,83830 Mar8,69831 Mar8,08801 Apr7,74202 Apr5,01403 Apr1,67604 Apr2,11305 Apr7,52806 Apr10,69707 Apr9,33208 Apr009 Apr175,215Last 30 days

Avatar for GitHub account 47ng47ng/nuqs

10K
66M
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
714K (34%)
2.4.3
266K (13%)
2.8.8
244K (12%)
2.8.6
155K (07%)
2.8.2
81K (04%)
2.7.3
80K (04%)
382,97211 Mar370,50912 Mar332,72613 Mar115,91114 Mar116,86415 Mar373,30216 Mar389,88017 Mar394,12618 Mar383,59819 Mar332,38020 Mar123,84821 Mar112,81622 Mar364,43923 Mar385,71424 Mar380,24125 Mar376,94726 Mar344,36727 Mar127,54328 Mar120,88329 Mar370,10130 Mar392,27931 Mar402,17601 Apr389,31802 Apr287,61303 Apr128,65704 Apr118,06305 Apr309,66506 Apr432,34107 Apr426,00208 Apr009 Apr8,785,281Last 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
7 (25%)
3.1.1
4 (14%)
2.2.0
1 (04%)
4.0.0-beta.5
1 (04%)
4.0.0-beta.6
1 (04%)
011 Mar112 Mar113 Mar014 Mar115 Mar016 Mar117 Mar018 Mar319 Mar020 Mar521 Mar022 Mar123 Mar624 Mar025 Mar026 Mar227 Mar1028 Mar1629 Mar4130 Mar031 Mar001 Apr002 Apr003 Apr1804 Apr005 Apr506 Apr207 Apr308 Apr009 Apr116Last 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
4K (69%)
1.3.0
911 (16%)
1.3.1
853 (15%)
1.1.2
35 (01%)
1.2.0
7 (00%)
1,17111 Mar1,37912 Mar1,16813 Mar25114 Mar18215 Mar1,25416 Mar1,02117 Mar1,15318 Mar1,18219 Mar94420 Mar18121 Mar18222 Mar1,05723 Mar1,25824 Mar1,13825 Mar1,01226 Mar97427 Mar11828 Mar19629 Mar1,00230 Mar1,39331 Mar1,45201 Apr1,20102 Apr63003 Apr37404 Apr20505 Apr82006 Apr1,30407 Apr1,27508 Apr009 Apr25,477Last 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
189 (95%)
1.0.1
2 (01%)
0.2.0
1 (01%)
0.6.0
1 (01%)
0.1.0
1 (01%)
4311 Mar1912 Mar1913 Mar1914 Mar1515 Mar4016 Mar5217 Mar3618 Mar1619 Mar1620 Mar021 Mar1122 Mar923 Mar724 Mar4625 Mar3126 Mar2627 Mar2428 Mar529 Mar1930 Mar2231 Mar2101 Apr3402 Apr3003 Apr104 Apr1405 Apr6106 Apr2607 Apr3408 Apr009 Apr696Last 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
37K (92%)
1.1.0
3K (08%)
0.5.1
7 (00%)
0.8.0
7 (00%)
0.6.0
7 (00%)
9,51011 Mar7,43012 Mar6,49413 Mar1,81614 Mar2,07215 Mar6,71316 Mar8,31717 Mar7,51218 Mar7,98719 Mar6,62420 Mar2,53521 Mar2,37122 Mar6,65123 Mar8,46524 Mar7,23425 Mar7,42326 Mar7,05327 Mar2,43328 Mar2,79129 Mar8,98530 Mar10,20131 Mar8,38201 Apr7,60702 Apr5,09703 Apr1,79304 Apr2,18905 Apr6,84806 Apr9,28807 Apr7,68208 Apr009 Apr179,503Last 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
924 (97%)
1.0.0
21 (02%)
0.3.2
2 (00%)
0.3.1
1 (00%)
23311 Mar39912 Mar14713 Mar3814 Mar19215 Mar23316 Mar26117 Mar27418 Mar12019 Mar9320 Mar11621 Mar35422 Mar64223 Mar36624 Mar21425 Mar13626 Mar19327 Mar6128 Mar18729 Mar44230 Mar20531 Mar17801 Apr15202 Apr8903 Apr8304 Apr15505 Apr17806 Apr14507 Apr14608 Apr009 Apr6,032Last 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

2.0.0
2 (100%)
111 Mar012 Mar113 Mar114 Mar015 Mar716 Mar117 Mar018 Mar119 Mar020 Mar021 Mar222 Mar023 Mar024 Mar025 Mar126 Mar027 Mar628 Mar029 Mar130 Mar131 Mar001 Apr002 Apr003 Apr104 Apr005 Apr006 Apr007 Apr108 Apr009 Apr25Last 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
285 (62%)
2.1.1
101 (22%)
2.0.2
24 (05%)
2.0.1
16 (03%)
2.1.0
6 (01%)
23211 Mar25512 Mar21313 Mar214 Mar415 Mar5616 Mar1917 Mar8718 Mar4119 Mar5420 Mar621 Mar522 Mar9023 Mar7824 Mar15525 Mar15026 Mar7427 Mar1828 Mar2929 Mar3130 Mar1131 Mar3601 Apr3502 Apr3203 Apr2604 Apr305 Apr1106 Apr10807 Apr24708 Apr009 Apr2,108Last 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
41K (100%)
1.0.1
17 (00%)
0.1.0
7 (00%)
1.0.0
7 (00%)
0.0.1
7 (00%)
9,53111 Mar7,44412 Mar6,49213 Mar1,81914 Mar2,09515 Mar6,76416 Mar8,44717 Mar7,71518 Mar8,01919 Mar6,66120 Mar2,56221 Mar2,37822 Mar6,75523 Mar8,46424 Mar7,36725 Mar7,50226 Mar7,15027 Mar2,47328 Mar2,79529 Mar9,02530 Mar10,25731 Mar8,43801 Apr7,74402 Apr5,08903 Apr1,78904 Apr2,20605 Apr6,93106 Apr9,41007 Apr7,69308 Apr009 Apr181,015Last 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