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 is Next.js and Chakra UI.

Next.js makes it super easy to build static or dynamic webapps, depending on what is needed.

Chakra UI offers accessibility out of the box with great default styles, that are easy to override thanks to the styled-system approach.

47ng/chakra-next

Opinionated design system for React, based on Chakra UI + Next.js, written in TypeScript.
  • 198
  • 2
  • 11
  • v2.4.2
  • MIT License
@47ng/chakra-next

NPM Downloads

Last Week
56
Last Month
401
Last Year
6.1K
All Time
17K

Backend#

I like to use Fastify to build backend services in Node.js.

What I like about it:

47ng/fastify-micro

Opinionated Node.js microservices framework built on Fastify ⚡️
  • 36
  • 4
  • 11
  • v3.1.1
  • MIT License
fastify-micro

NPM Downloads

Last Week
117
Last Month
280
Last Year
2K
All Time
6.1K

47ng/fastify-cron

Run cron jobs alongside your Fastify server 👷
  • 28
  • 1
  • 9
  • v1.3.1
  • MIT License
fastify-cron

NPM Downloads

Last Week
2K
Last Month
8.4K
Last Year
81K
All Time
102K

Security & Encryption#

47ng/session-keystore

Secure cryptographic key storage in the browser and Node.js
  • 50
  • 1
  • 26
  • v1.0.3
  • MIT License
session-keystore

NPM Downloads

Last Week
52
Last Month
248
Last Year
4.4K
All Time
32K

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

How To Store End-to-End Encryption Keys In The Browser

13 December 2019

e2eesecurity
End-to-end encrypted applications use cryptographic keys that don't leave the client, so how do we store them securely in the browser ?

47ng/cloak

Serialized AES-GCM 256 encryption, decryption and key management in the browser & Node.js
  • 28
  • 1
  • 11
  • v1.1.0
  • MIT License
@47ng/cloak

NPM Downloads

Last Week
2.6K
Last Month
13K
Last Year
61K
All Time
68K

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:

47ng/redact-env

Redact values of critical environment variables in a string
  • 3
  • 0
  • 5
  • v1.0.0
  • MIT License
redact-env

NPM Downloads

Last Week
1.4K
Last Month
7.6K
Last Year
101K
All Time
1M

47ng/env-alias

Define aliases for environment variables and bind them at runtime
  • 2
  • 0
  • 5
  • v2.0.0
  • MIT License
env-alias

NPM Downloads

Last Week
10
Last Month
134
Last Year
1.2K
All Time
4.2K

47ng/check-env

Check that required environment variables are set for your app
  • 20
  • 0
  • 4
  • v3.0.0
  • MIT License
@47ng/check-env

NPM Downloads

Last Week
1.3K
Last Month
3.2K
Last Year
21K
All Time
57K

Miscellaneous#

47ng/codec

Universal conversion of Uint8Array from/into UTF-8, base64url and hex in the browser and Node.js
  • 3
  • 0
  • 10
  • v1.1.0
  • MIT License
@47ng/codec

NPM Downloads

Last Week
2.7K
Last Month
14K
Last Year
68K
All Time
98K

FortySevenEffects/arduino_midi_library

My longest-running open-source project: MIDI for Arduino.

I learned programming in C++ in 2008 with this project and discovered my passion for open-source software.

  • 1325
  • 43
  • 9
  • v5.0.2
  • MIT License