/mit-license

Hosted MIT License with details controlled through this repo

Primary LanguageCSSOtherNOASSERTION

A permalink for your MIT License

I always forget to add a LICENSE file to my projects, so I wanted to link to a single resource that would always be up to date and would always have my details online.

Why keep this to myself, there are two ways to create your own MIT license page:

  1. Use the generator tool (easiest)
  2. Make a request to the API (details below)
  3. Fork this project and send a pull request

Now I can always include https://rem.mit-license.org in all my projects which links rem (the CNAME) against my copyright holder name Remy Sharp - all stored in the users directory.

Requesting your own MIT license page

The simplest way to create your own MIT license page is to use the self-service generator found here.

You can fork this project, send me a pull request and wait for me to pull (which I'll do as quickly as possible) or if the user is still available you can do it yourself from the command line:

curl -d'{ "copyright": "Remy Sharp" }' https://rem.mit-license.org

If the rem user isn't taken already, then this will create the new user file on the fly and the URL will be immediately available.

You can send a full JSON file to the API, not just the copyright, so this works too:

curl -d'{ "copyright": "Remy Sharp", "url": "https://remysharp.com", "email": "me@mysite.com", "format": "txt" }' https://rem.mit-license.org

Whilst the command above sends the data as a string which will later be parsed, you can explicitly specify a JSON Content-Type:

curl -H 'Content-Type: application/json' -d'{ "copyright": "Remy Sharp", "url": "https://remysharp.com", "email": "me@mysite.com", "format": "txt" }' https://rem.mit-license.org

You can also encode the data as URL query parameters like so:

curl -X POST "https://rem.mit-license.org/?copyright=Remy%20Sharp&url=http%3A%2F%2Fremysharp.com&email=me%40mysite.com&format=txt"

If there are any problems in the automated creation, send me a pull request and it'll go live soon after.

Equally, if you need to update the user file to include more details that you didn't initially include (extra fields in the next section) you will need to send a pull request on that user.json file via GitHub.

The user.json file

The users directory contains a list of files, each representing a host on mit-license.org. The minimum requirement for the JSON is that it contains a copyright field - everything else is optional. Remember to ensure the user.json file is valid JSON.

Available fields:

  • copyright (required)
  • URL
  • email
  • format
  • gravatar
  • theme
  • license

copyright

Create a new file and give it the name of the CNAME you want (in my case it's rem.json). This file contains a JSON object containing at least a copyright property:

{
  "copyright": "Remy Sharp, https://remysharp.com"
}

Means I can now link to https://rem.mit-license.org and it will show my license name (note that the date will always show the current year).

You can also use an array to hold multiple copyright holders:

{
  "copyright": ["Remy Sharp", "Richie Bendall"]
}

Which will be formatted as:

Remy Sharp and Richie Bendall

If you additionally want to include a URL and email with each copyright holder, use objects in the array:

{
  "copyright": [
    {
      "name": "Remy Sharp, https://remysharp.com",
      "url": "https://remysharp.com",
      "email": "remy@remysharp.com"
    },
    {
      "name": "Richie Bendall, https://www.richie-bendall.ml",
      "url": "https://www.richie-bendall.ml",
      "email": "richiebendall@gmail.com"
    }
  ]
}

url

In addition to the copyright property, if you want to make a link from the copyright text, you can include a URL property:

{
  "copyright": "Remy Sharp, https://remysharp.com",
  "url": "https://remysharp.com"
}

email

You can also include a link to your email which is displayed after the copyright notice using the email property (note the mailto: is automatically added):

{
  "copyright": "Remy Sharp, https://remysharp.com",
  "url": "https://remysharp.com",
  "email": "me@mysite.com"
}

format

And if you want your license to appear as plain text, just add the format property (currently only txt and html are supported):

{
  "copyright": "Remy Sharp, https://remysharp.com",
  "url": "https://remysharp.com",
  "format": "txt"
}

gravatar

And if you want to show your gravatar, just add the gravatar boolean property:

{
  "copyright": "Remy Sharp, https://remysharp.com",
  "url": "https://remysharp.com",
  "email": "me@mysite.com",
  "gravatar": true
}

Note that the gravatar requires the email property. You also need to check the compatibility of the chosen theme. Currently, only the default theme supports Gravatar.

Themes

If you've got an eye for design (or like me: not): you can contribute a theme by adding a CSS file to the themes directory. You can use the latest CSS technologies since they are automatically polyfilled. The default theme is simple and clean, but you can add your own as you like.

To use a theme, add the theme property to your user.json file, for example:

{
  "copyright": "Remy Sharp, https://remysharp.com",
  "url": "https://remysharp.com",
  "theme": "flesch"
}

Current available themes:

Formats & URLs

The following types of requests can be made to this project:

The URL also supports including a start year:

You can also specify either the MIT or ISC license in the URL:

Finally, the URL also supports pinning the year

Ways to contribute

Aside from code contributions that make the project better, there are a few other specific ways that you can contribute to this project.

Development contributions from:

SSL and wildcard DNS is supported by CloudFlare - thank you 🙏💙

1. Donate domain years

I host the domain with namecheap.com and yearly renewal is $9.69 per year. If you want to contribute a year, send me a message and I'll add the years on.

Of course, I'll do my best to continue running the domain and hosting, but this is your chance to contribute to the community project.

Domain contributions:

Please note that the whois says 2021 as you can only have 10 active registered years with ICANN - but the domain is set to auto-renew, so it's all good :)

2. Hosting

For the first 5 years, mit-license.org was hosted on my own dedicated server, but I've now moved to Heroku and am paying a monthly fee. If you would like to donate please donate here include a message and I will add your name to the credit. Hosting currently costs $7 per month if you want to donate in months or years, it's gratefully received ❤

Hosting contributions:

3. A lick of paint

I'm a developer, I seem only capable of grey! If you're a designer and want to contribute a decent lick of paint on the project that would be super. Just create a new theme and send me a pull request.

License

And of course:

MIT: https://rem.mit-license.org