100 Lines of Code: a shelf of hundred-line mini-projects for first-time contributors
🚀 100+ mini-projects demonstrating the power of concise code. Perfect for learning, portfolio building, and first-time open source contributors. Under 100 lines each!
At a glance
- What is it?
- 100 Lines of Code is a community repository of more than a hundred small programs, each under a hundred lines, organised by category and contributed by beginners. The README is explicit about what the collection is for, teaches a beginner-friendly contribution path through labelled issues, and carries an unusual note at the top saying the repository is now actively maintained by the author's AI Friday.
- Who is it for?
- Use 100 Lines of Code as a source of small, readable implementations to learn from and as a place to make a first open source contribution. Do not adopt any individual project as a dependency, because these are teaching examples with no versioning, tests or support behind them.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 24, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What the repository is and the note at the top of it
100 Lines of Code is a community-driven repository showcasing that you do not need thousands of lines to build something meaningful, and the description calls it a collection of mini-projects demonstrating the power of concise code, aimed at learning, portfolio building and first-time open source contributors.
Each project demonstrates four things according to the README: simplicity, meaning clear and concise code under 100 lines; functionality, meaning real working applications and utilities; learning, described as perfect for understanding core concepts; and diversity, across multiple languages, frameworks and use cases.
The framing is aimed at two audiences at once. A beginner looking to learn, and an experienced developer seeking inspiration. The line about not needing thousands of lines is the pitch: the constraint is the pedagogical device, and the projects are short because they have to be.
The note at the very top of the README is worth reading carefully, because it is unusual. It says that 100LinesOfCode is now actively maintained by the author's AI Friday, with a link to that GitHub account. The project description in the repository metadata still credits the original author, and the last push was on 2026-10-18, so this is a recent change in how the repository is stewarded rather than a historical footnote.
That detail affects how you should read the rest of the document. It is a collection maintained on a large share of contributions from outside the maintainers, with beginner-friendly issue labels, first-timers-only labels, good-first-issue labels and a hacktoberfest topic, and the stewardship arrangement is part of the context for that intake.
The licence is GPL-3.0, the default branch is master, and the repository has no GitHub releases, so there is nothing to pin.
How the collection is organised
The repository is a flat directory of project folders, one per mini-project, with a name that matches the project. The listing at the top level runs to hundreds of entries and includes directories such as AES Encryptor-Decryptor, AI-Traffic-Detector, Amazon_Review_Scrapper, Audio-Transmission Sockets, Base Converter, Basic Terminal Emulator, Beautiful JS Clock, BirthdayGuesser, BlackJackGame, Bulk File Renamer, COVID19 Visualizer, CaesarCipher, Connect 4, Convert_Infix_to_Postfix, DnD-Character-Stats, Docker Volume S3 Backup, EBSVolumeBackup, Face_Detection, Factorial_Calculator, Fake_Data_Generator, File Server, FocusTrack-CLI, GameOfLife and Github-Follower-Bot. There are also several directories with trailing commas, which is a small sign of the collection having grown through many separate pull requests rather than being laid out by one person.
The README groups a curated selection into categories, and those categories are more useful than the flat listing because they show the range the collection covers.
Games and Entertainment holds Hangman, Rock Paper Scissors, Wordle, Connect 4, The Dinosaur Game, Black Jack, Russian Roulette and a Slot Machine. Web Development holds a Beautiful JS Clock, a To-Do List, a Cat App, a Currency Converter and a Color Matcher.
Utilities and Tools covers a File Organizer, a Password Generator, a QR Code Generator, a URL Shortener, an Encryption Tool, a Port Scanner and a MAC Address Changer. Data and Scraping holds an Amazon Review Scraper, a Reddit Politics Scraper, a Codeforces Scraper, a One Piece Scraper and a NodeJS Scraper template. Machine Learning and AI covers Face Detection, Drowsiness Detection, a Sentiment Analyzer and an OCR Tool.
Productivity has a Google Drive Organizer, a Notes GUI, a Personal Diary and a Documentation Generator. Fun and Creative covers a Shakespeare Insult Generator, a Fake Data Generator, Turtle Art, a Spinning Cube and a Unique Avatar Generator. Algorithms and Math has a Huffman Compressor, a Caesar Cipher, a Morse Code Translator, a Base Converter, a Factorial Calculator and a Mandelbrot Generator.
The featured table at the top names five popular entries: the Invisibility Cloak, an OpenCV-based Harry Potter invisibility effect; the GitHub Follower Bot for automating GitHub following; the Password Generator; a Tic Tac Toe implementation in JavaScript; and a Weather Forecast that gets data from APIs.
The contribution path, which is the repository's real product
The Getting Started section is the most detailed part of the document, and it is aimed squarely at somebody who has never opened a pull request.
There are six steps. You fork the repository. You clone your fork and change into the directory with a git clone and a cd. You create a project directory with mkdir and put your files in it:
mkdir "My Awesome Project"
cd "My Awesome Project"You add a README. You commit and push. And you open a pull request from your fork on GitHub by clicking New Pull Request and filling in the details.
The README template it asks for is short and has five headings: a title, a Description with a brief description of what the project does, Installation with steps to install dependencies, Usage with how to run the project, and Technologies listing the language or framework used.
The clone step in the README is a git clone of YOUR_USERNAME/100LinesOfCode.git followed by a cd into 100LinesOfCode.
That template is a small piece of pedagogy. A first-time contributor learns not just how to open a pull request but what a project's README is expected to contain, and the five headings are the same ones a professional project would use.
The reasons to contribute are listed separately and they are the reasons a repository like this actually needs contributors: it is a perfect first contribution, with beginner-friendly issues labelled good-first-issue and first-timers-only; you learn by doing, contributing small manageable projects in any language; you build your portfolio by showcasing your work in a popular open source repository; you join the community and connect with developers worldwide; and it is hacktoberfest ready, for the annual open source celebrations.
The commit convention in the example, git commit -m "Add: My Awesome Project", and the branch being master, are the other small signals of what the maintainers expect.
Limits: teaching examples are not libraries
The limits here are worth being blunt about, because the repository's own framing invites the wrong reading.
The first is that these are examples, not dependencies. There is no versioning per project, no release, no changelog and no support commitment for any individual entry. The repository as a whole has no GitHub releases. If you copy a project into your application, you own it entirely, including the parts that were sloppy, and nobody is going to fix an upstream bug for you.
The second is quality variance, and it follows from the intake model. The repository actively recruits beginner contributions, which is exactly what makes it valuable as a first contribution and exactly what makes the code uneven. A project tagged good-first-issue is a first contribution from somebody learning, not a reviewed implementation. Some entries are exercises, some are complete, and the README gives you no way to tell which before you read the code.
The third is that the hundred-line limit is a target, not a guarantee, and it pushes the code in a direction. A hundred lines leaves no room for error handling, for tests, for configuration or for the edge cases a real deployment needs. The Fake Data Generator and the Password Generator are the kind of project that fits comfortably; a URL Shortener or a Port Scanner in the same limit is necessarily a toy.
The fourth is the dependency story. Projects use whatever the contributor chose, and the collection is not tested as a unit. There is no CI that runs each project, so a project with a broken import path or a dependency that no longer installs sits there until somebody notices.
The fifth is that some entries do things worth being careful about copying. The list includes a Port Scanner and a MAC Address Changer among the utilities, and a set of scrapers aimed at Amazon, Reddit, Codeforces and One Piece. The scrapers are learning projects and their legality depends on the terms of the sites they target, and the port scanner is the sort of tool that only has legitimate uses on networks you own or have permission to test.
And the sixth is the maintenance arrangement at the top of the README, which changes how issues get triaged and who decides what lands.
This collection against a tutorial course and against a portfolio of your own
Two comparisons make the choice clearer.
The first is against a paid or structured tutorial course. A course gives you a sequence, exercises with feedback and a person to ask. This repository gives you breadth and a place to contribute, but no order and no feedback beyond the issue tracker. Its value is that the projects are small enough to read in one sitting and varied enough that you can find one that matches what you want to learn, which is a different pedagogical shape from a curriculum.
The second is against building your own portfolio of small projects. The README lists building your portfolio as one of the reasons to contribute, so it is worth being clear about the difference. Your own portfolio is smaller and more coherent, because it is about the things you are interested in, and it is evidence of what you chose to build rather than what you were asked to build. Contributing here gives you a public pull request against an established repository, which is a different kind of signal, and it puts your name in a list of contributors on something other people use.
Both are worth doing, and they are not substitutes for each other. A repository like this is at its best as a training ground where the stakes are low, because a reviewer who is looking for a hundred-line project is looking for something small, and a first-time contributor who makes a mistake gets a friendly correction rather than a design argument.
That is the case for the collection as it stands. What it is not is a source of production code, and the README's own four criteria, simplicity, functionality, learning and diversity, are a description of teaching material rather than a quality bar for a library.
Editorial conclusion
Use 100 Lines of Code as a source of small, readable implementations to learn from and as a place to make a first open source contribution. Do not adopt any individual project as a dependency, because these are teaching examples with no versioning, tests or support behind them. Verify first that the project you copy actually runs on your machine, since the collection has no CI per project, and that the licence at the repository root, GPL-3.0, suits what you intend to do with the code.
Frequently asked questions
What is the 100 Lines of Code repository for?
It is a community-driven collection of more than a hundred mini-projects, each under a hundred lines, meant to show that you do not need thousands of lines to build something meaningful. The README presents each project as demonstrating simplicity, real functionality, learning value and diversity across languages, and positions the collection for beginners learning and experienced developers looking for inspiration.
How do I contribute a project to 100 Lines of Code?
Fork the repository, clone your fork, create a directory for your project, add a README with the template the README specifies, commit and push to master, and open a pull request from your fork. The repository labels beginner-friendly issues as good-first-issue and first-timers-only, and is marked hacktoberfest ready.
Who maintains the 100 Lines of Code repository?
The README carries a note at the top stating that 100LinesOfCode is now actively maintained by the author's AI Friday, with a link to that GitHub account, while the repository description still credits the original author. The licence is GPL-3.0 and the repository has no GitHub releases.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/josharsh-100linesofcode)Was this useful?