Link Roundup: Technology
Starting projects, Beaker Browser, ginnx, async-collection and exa

Link Roundup: Technology

Starting projects, Beaker Browser, ginnx, async-collection and exa

Bi-weekly we collect some technology related links to share with you. These will often mirror work we are currently engaged in, or tools we are using to improve our workflow. Our hope is that at least one might help you enhance your technology stack, or reduce friction in your daily work.

getting started

Starting a new project or package often involves a lot of boilerplate and repeated actions. I typically start with a simple npm init -y regardless of if I intend to publish my project to npm. The npm CLI tool has great conventions around semantic versioning. There are a lot of options out there for generators, and I am pretty fond of module-init in most cases, though I do end up modifying its output a lot.

You might like to start minimally and give yourself a chance to rethink every choice. Even if you want to stay lean, and not use a project generator, there are some standard files you likely want in every new repository.

README.md

Perhaps the most important file in your project, a good README goes a long way to improving adoption. I like to develop the Usage section early. This helps me define what it is I want to build. Once you have docs on how to use the package, you are ready to dive in on that index.js.

generator-standard-readme

Scaffold out a Standard Readme

The Standard Readme project provides a great skeleton to make sure you logically include useful details. The prompts are a bit verbose, and I wish it took advantage of reading an existing package.json or ~/.npmrc to skip defaults, but still a great utility as-is.

alias standard-readme='npx -p generator-standard-readme -p yo yo standard-readme'

.gitignore

You already ran git init, right? Seriously, use version control everywhere!

goops

A CLI tool that automagically adds or recommends the best .gitignore for your project

joe by karan

🏃 A .gitignore magician in your command line

CONTRIBUTING.md and code-of-conduct.md

Helping users of your project convert into contributors should be a goal, and these files set the stage for how you like your project to be run.

contribs

Generate boilerplate open source contributing guidelines.

conduct

🖖 Generate a Code of Conduct for your project

LICENSE

If you start at GitHub, you are probably used to this file just being there. But I’m often several commits in and ready to push before I realize I need to grab a license file from another local project.

lice

An open source license generator and license viewer.

more p2p please

Here is a follow-up tutorial from the last link roundup that walks you thru building a decentralized, peer-to-peer Photos app with Beaker and Dat. Additionally, Beaker has a few tutorials in their docs worth checking out.

interesting projects

ginnx

🎗 Generate Nginx configuration files based on the user input

If you aren’t dockerizing all the things, this seems like an excellent way to deal with a rather tedious routine.

async-collection

Collection of async functions

I use several of these packages on nearly every module I create. This is a great solution for a slimmer async.

exa

Replacement for ‘ls’ written in Rust.

I’m not ready to completely replace ls, but I have updated my standard aliases to take advantage of the improved colors and formatting from this binary.

alias l='exa -la'
    alias ll='exa -l'

Express Gateway

A microservices API Gateway built on top of ExpressJS

Another project that turns a simple manifest file into a robust service, looking forward to playing with this in more depth soon.