In partnership with

Free email without sacrificing your privacy

Gmail is free, but you pay with your data. Proton Mail is different.

We don’t scan your messages. We don’t sell your behavior. We don’t follow you across the internet.

Proton Mail gives you full-featured, private email without surveillance or creepy profiling. It’s email that respects your time, your attention, and your boundaries.

Email doesn’t have to cost your privacy.

I have maintained and contributed to Awesome Lists for years, and the more time I spend working with them, the more I find myself thinking about a deceptively simple question:

What actually makes an Awesome List awesome?

The obvious answer might be the resources it contains. A good Awesome List brings useful tools, projects, articles, datasets, libraries, communities, or other resources together in one place. It saves people time and helps them discover things they may not have found otherwise.

But I increasingly think that answer is incomplete.

An Awesome List is not valuable simply because it contains a lot of links. Its real value comes from the judgment exercised over which links are included, how they are organized, how their quality is evaluated and how the collection is maintained over time.

In other words, the value is in the curation.

That distinction has increasingly shaped how I approach the Awesome Lists I maintain. Rather than trying to build the largest possible collections, I want to build lists that people can have confidence in.

That means thinking about governance, structure, quality, maintenance, metadata and automation alongside the links themselves.

When “Awesome” Starts to Mean “Everything”

There is a natural tendency for curated lists to grow.

A repository begins with 20 resources. Contributors submit another 20. Then another 50. Over time, hundreds or even thousands of links can accumulate.

Growth itself is not necessarily a problem. Some subjects genuinely require large collections, and comprehensive directories can be extremely useful.

The problem emerges when quantity becomes an implicit measure of quality.

A list with 1,000 resources can appear more authoritative than one with 100. A repository with frequent pull requests can appear healthier than one where additions are relatively uncommon.

But neither tells us much about whether the collection is actually useful.

Consider two hypothetical lists covering the same subject.

One contains 800 links. Resources are generally accepted as long as they relate to the topic and the URL works.

The other contains 150 links. Resources are evaluated for relevance, documentation, usefulness, maintenance, quality, duplication and fit within the existing taxonomy.

Which is the better list?

There is no universal answer because they may serve different purposes. The first may be an excellent directory. The second may be a better curated collection.

That distinction matters.

A directory primarily asks: What resources exist?

A curated list asks: Which resources are worth someone's attention?

I am increasingly interested in the second question.

Curation Is an Editorial Function

Once we view an Awesome List as a curated collection rather than simply a Markdown file containing hyperlinks, maintaining one starts to look very different.

Every addition becomes an editorial decision.

When a maintainer accepts a resource, they are implicitly saying that it belongs within the collection. When they place it under a particular heading, they are making a decision about taxonomy. When they remove an abandoned project, reject a promotional submission, rewrite a description, or create a new category, they are shaping how readers understand the subject.

These decisions happen whether or not a project formally recognizes them.

That means Awesome Lists already have governance.

The question is whether that governance is intentional, consistent, transparent and maintainable.

For my own projects, I want the answer increasingly to be yes.

Quality Over Link Quantity

One principle has become particularly important to how I maintain my lists:

An Awesome List should not attempt to include everything.

The contribution guidelines in my current Awesome Lists template make this explicit:

This is a curated list, not a comprehensive directory.

That sentence is important because it changes the default assumption around contributions.

A submission is not automatically appropriate because:

  • the website works;

  • the project technically relates to the subject;

  • the project is new;

  • the contributor created it;

  • the project is popular;

  • another Awesome List includes it; or

  • adding it would make the collection larger.

Instead, I want inclusion to reflect several considerations.

Is the resource genuinely useful? Is it sufficiently relevant to the list? Is the project maintained? Is there clear documentation? Does it duplicate something already represented? Does it fit the existing taxonomy? Is the description objective? Does its inclusion strengthen the collection?

Most importantly:

Would I still want this resource in the list if increasing the number of links were not a goal?

That is a useful test.

Sometimes the correct maintenance decision is to merge categories, remove a resource, decline a pull request, or leave a section small.

A five-item category containing five excellent resources can be more useful than a 50-item category where readers have to perform the curation themselves.

Saying No Is Part of Maintaining Quality

Open source rightly encourages contribution. I want people to submit useful resources, identify gaps, report broken links, suggest improvements and challenge categorization decisions.

But accepting contributions and accepting every contribution are very different things.

If every valid submission must be accepted, the maintainer gradually stops being a curator and becomes an administrator of an expanding directory.

That is not necessarily wrong. It simply represents a different type of project.

For a curated collection, rejection has to remain a legitimate outcome.

My contribution guidelines therefore establish that inclusion is selective and can take into account long-term relevance, quality and structural fit. They also make clear that conceptual frameworks, personal methodologies, early-stage projects or resources submitted primarily for promotion may be declined.

This is particularly important because Awesome Lists can attract promotional submissions. Inclusion in a respected repository can provide traffic, backlinks, visibility and legitimacy. There is therefore an incentive for someone to treat an Awesome List as another distribution channel for their product.

A maintainer has a different responsibility.

The question should not be whether inclusion benefits the submitter.

The question should be whether inclusion benefits the reader and the collection.

That reader-first perspective is central to how I think Awesome List governance should work.

Governance Should Be Visible

Good curation should not depend entirely on undocumented decisions living in a maintainer's head.

That does not mean every Awesome List needs a constitution or a complicated governance model. These are often relatively small open source projects and governance should remain proportional to the project.

But some basic rules can make decisions considerably more consistent.

My current Awesome Lists template therefore establishes contribution criteria around areas such as:

  • relevance and usefulness;

  • project maintenance and documentation;

  • alignment with the scope of the list;

  • fit within the existing taxonomy;

  • short, objective descriptions;

  • duplicate prevention;

  • working and publicly accessible links; and

  • avoidance of low-quality or primarily promotional submissions.

The pull request process reinforces those expectations with a checklist.

This provides contributors with a better understanding of what is expected before they submit something, while giving maintainers a consistent framework for reviewing it.

It also makes rejection easier to explain.

Instead of an arbitrary “I don't think this belongs here,” a maintainer can point to the scope, taxonomy, quality expectations or contribution requirements of the project.

That is a small but meaningful improvement in governance.

Structure Is Part of Quality

There is another aspect of Awesome Lists that I think receives less attention than it deserves: information architecture.

A collection can contain excellent resources and still become difficult to use if its structure deteriorates.

Categories accumulate. Similar sections emerge under slightly different names. Resources end up in sections because there was nowhere better to put them. Descriptions gradually become inconsistent. Some categories contain dozens of items while others contain one.

Eventually, the list may technically contain valuable information while becoming harder to navigate.

That is why I consider taxonomy part of curation.

A new resource should not only be evaluated on its own merits. It should also make sense within the structure of the collection.

This changes the review question from:

“Is this a good resource?”

to:

“Is this a good resource for this collection, in this category, given what is already here?”

Those are not equivalent questions.

The second recognizes that a curated list is a system rather than a sequence of independent links.

Automation Can Support Human Judgment

Governance does not mean that every maintenance task should require manual review.

In fact, one of the goals of my current Awesome Lists structure is to automate the things machines are good at so that human attention can remain focused on the things that require judgment.

The template I am developing includes automated checks for several aspects of repository quality.

These include:

  • checking links when pull requests are submitted;

  • running scheduled checks for broken links;

  • detecting duplicate URLs;

  • linting the Awesome List for structural problems;

  • performing baseline repository-health checks; and

  • validating aspects of repository hygiene.

For example, a machine can determine whether the same URL appears twice far more reliably than I can while reviewing a large README.

It can test whether a URL responds.

It can check formatting conventions.

It can identify certain structural problems.

What it cannot reliably determine is whether a project is genuinely useful, whether its inclusion improves the collection, whether a description fairly represents it or whether a new category improves the taxonomy.

Those remain editorial decisions.

This produces a governance model I find much more compelling:

automate verification where possible, preserve human judgment where necessary.

Automation does not replace curation. It gives curators better infrastructure.

Introducing awesome-lists.json

One of the experiments I am particularly interested in is a small file I have introduced into my Awesome Lists template: awesome-lists.json.

At first glance, there is not much to it.

The current implementation can identify information such as:

  • the Awesome Lists template being used;

  • the version of that template;

  • whether contribution requirements are expected;

  • whether licensing requirements are expected; and

  • whether integrations such as Zenodo or CITATION.cff are being used.

That may seem like a modest addition.

It is.

But the larger idea is what interests me.

Most of the information about an Awesome List currently exists for humans inside files such as README.md, CONTRIBUTING.md, LICENSE, or workflow configurations.

What if some characteristics of the list could also be described in a predictable, machine-readable way?

That creates the beginnings of a metadata layer for curated repositories.

Instead of another tool having to inspect an entire repository and infer how it operates, it could potentially read a small structured file and understand certain declared characteristics of the project.

Today, awesome-lists.json is intentionally simple.

Over time, the concept could potentially support richer information about things such as governance, validation, taxonomy, maintenance expectations, archival status, citation support or compatibility with tooling.

I do not want to over-engineer it prematurely. A metadata standard that tries to describe everything before anyone uses it is not particularly useful.

I would rather begin with something small, understandable and practical, then see where the idea leads.

Machine-Readable Governance

The idea behind awesome-lists.json also points toward something broader that I find interesting: machine-readable governance.

Open source projects often explain how they operate through prose.

That will remain necessary. Humans need context, nuance, explanation and judgment.

But certain governance characteristics can also be expressed structurally.

Consider the difference between saying in documentation that a project requires contribution guidelines and declaring that expectation in structured metadata.

The first is primarily useful to a person.

The second can potentially be understood by people and software.

That opens interesting possibilities.

A future tool could inspect a collection of Awesome Lists and identify which ones use defined contribution standards. Another could determine which lists implement automated link validation. A repository template could determine whether its expected governance files are present. A maintenance dashboard could surface lists that have fallen out of compliance with their declared configuration.

None of this requires replacing human governance with software.

It simply means making parts of that governance legible to software.

That is a subtle distinction but I think it has considerable potential.

From a README to Curated Knowledge Infrastructure

This is where my thinking about Awesome Lists has changed the most.

The simplest model of an Awesome List looks something like this:

Maintainer → README → Links

That model works. It is one of the reasons Awesome Lists became so successful.

But I think there is room for another model:

Editorial policy → taxonomy → curated resources → structured metadata → automated validation → maintenance → provenance

Under that model, the README is still central. It remains the primary interface for the reader, but it sits within a larger maintenance system.

The contribution guidelines define expectations.

The taxonomy organizes knowledge.

The maintainer exercises editorial judgment.

Automated workflows verify what can be verified automatically.

Structured metadata describes characteristics of the repository.

A changelog can document the evolution of the project.

Citation metadata can make appropriate collections easier to reference.

Archival integrations can help preserve releases.

Together, these pieces begin to make an Awesome List look less like a page of bookmarks and more like a small piece of curated knowledge infrastructure.

I think that distinction matters.

Trust Is the Product

If someone opens an Awesome List containing hundreds of resources, they probably do not have time to independently evaluate every project.

That is part of the reason they are using the list.

They are delegating some portion of discovery and filtering to the curator.

The most valuable thing a maintainer provides, therefore, is not the hyperlink itself. Search engines, social networks, AI systems, package registries, directories and recommendation engines can all produce links.

The scarce resource is judgment.

A well-maintained curated list tells the reader:

  • Someone has thought about this collection;

  • Someone has considered what belongs here;

  • Someone has organized it;

  • Someone is removing things that no longer belong;

  • Someone is checking whether the structure still makes sense; and

  • Someone is maintaining standards even when accepting another contribution would be easier.

That creates trust.

And once I started thinking about Awesome Lists in those terms, link count became a much less interesting metric.

Maintenance Includes Removal

There is another consequence of treating Awesome Lists as infrastructure: maintenance cannot only mean adding things.

Healthy collections also need subtraction.

Projects disappear. Domains expire. Tools become abandoned. Companies change direction. Resources become obsolete. Categories that once made sense stop being useful.

Even perfectly functioning links may eventually stop deserving inclusion.

This means maintenance should include periodic questions such as:

  • Is this resource still active?

  • Is it still useful?

  • Does its description remain accurate?

  • Has a better resource superseded it?

  • Does it still fit the scope of the list?

  • Is this category still meaningful?

  • Are multiple entries solving essentially the same discovery problem?

  • Has the list accumulated unnecessary complexity?

That last question matters to me.

There is a tendency in digital projects to treat accumulation as progress. More features, more pages, more entries, more integrations.

Sometimes progress is removing something that no longer contributes enough value to justify its presence.

Curated knowledge should be allowed to become smaller.

Provenance and Citation Matter Too

Some Awesome Lists eventually become more than convenient GitHub repositories.

They can become long-lived reference collections within a field. They may be cited in articles, teaching materials, research, documentation, newsletters or other repositories.

That raises questions about provenance.

Who maintains the collection? Which version was consulted? When did a particular resource appear? Can a stable version of the collection be referenced later?

This is why I have also been exploring support for tools such as CITATION.cff, changelogs, versioning and Zenodo archiving within the broader template.

Not every Awesome List needs a DOI.

Not every list needs to be treated as a research output.

But providing the infrastructure makes those capabilities available when they are appropriate.

It also reinforces a broader principle: curated knowledge has a lifecycle.

It is created, revised, structured, reviewed, published, maintained and sometimes archived.

Treating that lifecycle explicitly can make these projects more durable.

A Template for a Different Kind of Awesome List

I have been consolidating these ideas into an Awesome Lists template that I can use across my own repositories.

The goal is not to make every list complicated.

Quite the opposite.

I want the governance and maintenance infrastructure to become reusable enough that maintainers can spend less time rebuilding it.

The template currently brings together elements such as contribution standards, pull request guidance, issue templates, automated link checking, duplicate detection, list linting, repository-health checks, citation support, changelog conventions and awesome-lists.json.

Individually, none of these ideas is revolutionary.

The value comes from treating them as parts of the same system.

A contributor sees clear expectations.

A maintainer has repeatable review criteria.

Automation handles routine verification.

Readers get a more consistent collection.

Software gets a small amount of structured metadata.

The repository becomes easier to maintain over time.

That is the direction I want to continue exploring.

Not Every List Needs to Work This Way

I also want to be careful not to suggest there is one correct model for Awesome Lists.

There isn't.

  • A massive community directory can be valuable.

  • A small personal collection can be valuable.

  • A highly specialized research bibliography can be valuable.

  • A frequently updated list of emerging projects can be valuable.

  • A deliberately conservative list containing only mature resources can be valuable.

The important thing is understanding what the collection is trying to be.

My own preference is increasingly toward selective, governed, maintainable collections.

I would rather maintain a smaller list where inclusion means something than a larger list where the primary criterion is topical relevance.

That is an editorial choice, not a universal rule.

But I think making that choice explicit produces better projects.

What I Want to Explore Next

I see the current work as an experiment rather than a finished standard.

awesome-lists.json is deliberately small.

The governance model can evolve.

The automated checks can improve.

The criteria for assessing repository health can become more sophisticated.

There are also larger questions worth exploring:

  • Could Awesome Lists expose interoperable metadata without becoming unnecessarily complicated?

  • Could common governance conventions make it easier to build tooling across multiple lists?

  • Could structured taxonomies eventually make curated resources more useful to search systems and AI tools?

  • Could provenance help distinguish actively governed collections from automatically generated link directories?

  • Could we develop useful measures of list health that do not reward raw size?

  • And perhaps most importantly, how do we preserve the simplicity that made Awesome Lists successful while improving the infrastructure underneath them?

Those are questions I intend to keep exploring through my own projects.

Awesome Should Mean Something

Awesome Lists work because they sit somewhere between search and recommendation.

They are not supposed to reproduce the entire web.

They are useful because someone has made choices.

That is why I think the future of high-quality Awesome Lists is not simply more links.

It is better curation. Better structure. Clearer governance. More reliable maintenance. Useful automation. And, where appropriate, machine-readable metadata and provenance.

The number of resources in a repository will always be easy to count.

The harder thing to measure is whether readers can trust the decisions that produced the collection.

For me, that is becoming the more important measure of quality.

The value of an Awesome List should not be measured by how many links it contains but by how much confidence a reader can place in the decisions behind those links.

If we treat Awesome Lists as curated knowledge rather than collections of URLs, then maintaining them becomes more than link management.

It becomes stewardship.