Open Source at Medium
This repository serves as the umbrella project to represent the various open source efforts at A Medium Corporation. Come here to get an overview of the various projects, to learn how to contribute to them, and to sign up as a contributor.
Table Of Contents
On this page:
Note to External Contributors
Hello, External Person!
We at Medium are eager to work with you. For small changes — little bugfixes, correcting typos, and the like — please just submit pull requests to any of our projects. For larger changes, though, we have to ask you to jump through a little hoop.
In particular, in order for us to accept any major patches from you, you will have to electronically sign a statement that indicates two things:
You are willingly licensing your contributions under the terms of the open source license of the project that you’re contributing to.
You are legally able to license your contributions as stated.
The reason we do this is to ensure, to the extent possible, that we don’t “taint” the projects we manage with contributions that turn out to be improper. This protects everyone who wants to use the projects, including you! If you want a longer explanation, then you can check out the CLA Rationale page.
Once you sign the Contributor License Agreement (the “CLA”), we will then be able to merge your contributions with a clear conscience and with only the friction that results from the usual technical back-and-forth of a vibrant open source project.
To get started with this process, visit the Sign the CLA page.
For reference, the standard open source license used by A Medium Corporation is the MIT License with a small clarifying preamble. Some projects created before March 6, 2014 use the Apache 2.0 License.
In addition to our CLA, we have a policy where we avoid owning code that we don’t intend to maintain through use. If your patch is not in-line with our intended use case at Medium we will not merge it into any of our trees. But don't be discouraged! If that’s the case, we encourage you to run your own fork. Email us with a link to it and we will consider linking to it from the main repo.
If you have any questions about any of this, please raise them by filing a bug on this project, since there’s a good chance that if you have a question then someone else has the same question too. If it is really and truly a private matter, then you can mail Medium’s official Open Sourceror privately, at email@example.com.
Thanks, and happy hacking!
Your friends at A Medium Corporation
List of Projects
These are Node modules that can be used pretty directly as libraries in applications.
- Bidar — Binary serialization and object iteration.
- Daemon Sauce — Making it easy to be a proper *nix daemon.
- Dynamite — A promise-based DynamoDB client.
- Falkor — HTTP Level Functional Testing Library.
- Kew — A lightweight promise library optimized for node.js
- Leb — Utilities for the LEB128 number representation.
- Matador — Application framework.
- Oid — Utilities for object identity.
- Pipette — Stream and pipe utilities.
- Shepherd — Asynchronous dependency injection for node.js.
- Typ — Type predicates and assertions.
- Variants — A variants (experiments, mods) system with dynamic flag evaluation.
Node Build Tools
These are build-time tools packaged as Node modules.
- PhantomJS — NPM wrapper for grabbing the right PhantomJS binary.
- Soynode — Integration of the Soy template system (part of Google Closure).
- Open Source Umbrella Project — This site.