# Chalarangelo/30-seconds-of-code: the snippets are CC-BY, the website is not

> A collection of short JavaScript and CSS articles that most developers meet through search results, built as an Astro site rather than a library. Two things in the README matter more than the snippets: new content contributions are not being accepted, and only the code snippets carry a CC-BY-4.0 grant, while the text, images, site source, logos, and trademarks require the owner's explicit consent.

**Chalarangelo/30-seconds-of-code** — GitHub describes it as Coding articles to level up your development skills. The repository metadata lists JavaScript as its primary language. The metadata lists the CC-BY-4.0 license. This article stays within the project description and details documented in the GitHub repository README.

- Repository: https://github.com/Chalarangelo/30-seconds-of-code
- Website: https://30secondsofcode.org/
- Stars: 129,282 · Forks: 12,486
- Language: JavaScript
- License: CC-BY-4.0
- Published: 2026-08-13 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/chalarangelo-30-seconds-of-code

## New content contributions are not being accepted

The contribute section is two lines and the first one is a refusal. New content contributions are not accepted at this time. The second line is the whole remaining door: you can report problems with the website or suggest improvements by opening an issue. Consequence: for a collection whose value is its breadth of one line answers, the archive is effectively closed to outside writers, so growth depends on one maintainer, who is named in the credits as Angelos Chalaris. Treat the site as a library you can read rather than a community you can join, and if you have a snippet worth adding, the only honest routes are an issue or your own page, not a pull request that will be declined before review.

## Three licence statements, and only one of them is the grant

The licensing is layered, and the layers do not agree. The repository is recorded as CC-BY-4.0, the manifest field in package.json says MIT, and the credits section narrows it further: all code snippets are licensed under the CC-BY-4.0 License unless explicitly stated otherwise, and any other material, including text content, images, the website source code, logos, names, and trademarks, are not to be used without the explicit consent of the owner. Consequence: a snippet is safe to reuse with attribution, and the explanation next to it, the screenshots, and the front end are not. A dependency scanner that reads MIT out of the manifest will give you a broader licence than the project actually grants, so check the file you are copying rather than the repository badge.

## The manifest says 13.0.0 and the newest tag is v14.0.0

The version numbers do not line up. The most recent releases are v12.1.0 with the codename boreal byte, v13.0.0 celestial compiler, and v14.0.0 dimensional debugger, while the version field in package.json is 13.0.0. The manifest also carries private set to true and an exports field pointing at ./index.js. Consequence: the manifest never moved to v14, so you cannot read the current version off the repository, and because the package is private there is nothing to install from a registry in the first place. The exports field is a shape a library would declare, but what it points to is a website build, which tells you the field is inherited tooling configuration rather than a public interface.

## Commits continue but the last tagged release is from 2025

Activity and releases have drifted apart. The last push landed on 2026-09-25 and the repository is not archived, so work is still landing, while the newest release is v14.0.0 dated 2025-05-07, with v13.0.0 on 2025-01-04 and v12.1.0 on 2024-08-02 before it. Consequence: anyone pinning to the latest tag gets a build from more than a year before the newest commit, and a reader has no in-repo way to tell which state of the content they are looking at. If you are reproducing the site, treat master as the live branch and the tags as historical markers, and read CHANGELOG material that exists in the repository rather than assuming the newest tag describes the current site.

## Content goes through bin/prepare before Astro builds it

The build is a two step pipeline, not a single Astro command. The scripts wrap a prepare binary: predev runs bin/prepare dev --fast-highlight before astro dev --port 8000, prestart runs bin/prepare dev, prebuild runs bin/prepare full before astro build, and preview serves through astro preview --port 9000. There are also watch and observe modes that run the dev server and bin/prepare watch together, plus create, create-component, and console entry points into the same binary, and test runs vitest. Consequence: content is managed by that prepare step rather than dropped into content/ by hand, and the development path and the shipped path are different modes of the same tool, which means a difference between what you preview and what gets published is a difference inside bin/prepare.

## It is a content directory behind a site, not an API

The tree explains the shape of the project. Articles live in content/, the site itself in src/ with astro.config.mjs, static assets in public/, and tests in spec/, which the package.json import map addresses as #src/ and #spec/ through Node subpath imports. Alongside sit bin/, consts.ts, globals.js, eslint.config.js, .prettierrc with a prettier-plugin-astro, .nvmrc, and .env.development and .env.production. The dependencies tell the same story: remark, rehype, unified, and shiki for the markdown pipeline, front-matter and js-yaml for metadata, sharp for images, sass for styles. Consequence: the collection is data inside a static site, not a service you can query, so tooling that wants these snippets has to read the repository or the pages.

## Search, tags, and collections exist only on the website

Everything the README offers points off the repository. It tells you to visit the website to view all articles, to search for articles and collections using the name, tags, language, or description, to browse all articles or the individual collections for each topic, and to click a card for the whole article with its code snippets, explanation, and examples. The front end is powered by Netlify, Astro, and GitHub, and the photography comes from Unsplash. Consequence: the taxonomy that makes the collection usable lives in a running site rather than in a file you can grep, so offline or archived use means cloning content/ and losing search, tags, and the collection grouping, and the front end depends on three outside services to render at all.

## Conclusion

Use it as a place to find a one line answer and to copy a snippet with attribution, which the CC-BY-4.0 grant covers, and do not use it as a base for your own site or a source of explanation text, because the README explicitly withholds consent for the prose, the images, the website source, the logos, and the names. Before you build on it, check three things. Whether the licence scanner you run sees CC-BY-4.0, the MIT string in package.json, or the narrower grant the README actually states, because those three disagree. Which version you are looking at, since the newest release is v14.0.0 from 2025-05-07 while package.json still says 13.0.0 and commits have continued since. And whether you planned to contribute a snippet, because that door is closed, and the only accepted input is an issue.

## FAQ

### Can I add my own snippet to 30 seconds of code?

Not at the moment. The README states that new content contributions are not accepted at this time, and that you can report problems with the website or suggest improvements by opening an issue.

### What licence covers 30 seconds of code snippets?

All code snippets are licensed under the CC-BY-4.0 License unless explicitly stated otherwise. Any other material, including text content, images, the website source code, logos, names, and trademarks, are not to be used without the explicit consent of the owner, even though package.json records MIT.

### How do I run the 30 seconds of code website locally?

It is an Astro project with a prepare step in front of it. Development runs bin/prepare dev --fast-highlight and then astro dev --port 8000, a production build runs bin/prepare full and then astro build, preview serves on port 9000, and the test script runs vitest.

### How do I search 30 seconds of code for articles?

On the website, where you can search articles and collections by name, tags, language, or description, and browse all articles or the collections for each topic. The repository itself offers no search interface, so offline you would read the content directory directly.

### What version is 30 seconds of code currently on?

The newest release tag is v14.0.0, dated 2025-05-07, while package.json still carries version 13.0.0, and the last push landed on 2026-09-25. The two version signals do not agree, so neither one alone tells you the state of the site.

## Sources

- [Official documentation](https://30secondsofcode.org/)
- [Official README](https://github.com/Chalarangelo/30-seconds-of-code#readme)
- [Project repository](https://github.com/Chalarangelo/30-seconds-of-code)
- [Release notes](https://github.com/Chalarangelo/30-seconds-of-code/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/chalarangelo-30-seconds-of-code
