SerenityOS

SerenityOS/serenity

C++ BSD-2-Clause Dev Tools

The Serenity Operating System 🐞

33.6k stars
3.4k forks
active
GitHub +84 / week

33.6k

Stars

3.4k

Forks

732

Open issues

30

Contributors

AI Analysis

SerenityOS is a complete, self-contained graphical Unix-like operating system for 64-bit x86, ARM, and RISC-V architectures, featuring a custom kernel, browser with JavaScript/WebAssembly support, desktop environment, and integrated development tools. It is best suited for hobbyists, OS enthusiasts, and developers interested in learning operating system design and Unix philosophy implementation, rather than for production deployment or general-purpose computing. This project primarily benefit...

Dev Tools Application Discovery value: 3/10
Documentation 8/10
Activity 9/10
Community 9/10
Code quality 8/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

operating-system kernel-development unix-like browser-engine desktop-environment
Actively maintained Well documented Popular Niche/specialized use case Community favorite Beginner friendly
Deep Analysis · Based on README and public signals
2w ago

SerenityOS: A from-scratch Unix-like GUI OS built entirely by its open source community

SerenityOS is a complete, from-scratch operating system with a graphical shell, custom kernel, browser engine, JavaScript runtime, and hundreds of userland applications — all in a single repository with no external dependencies. It targets x86-64, Arm, and RISC-V. Its primary audience is systems programmers, OS enthusiasts, and contributors who want to learn or contribute to low-level software in a coherent, well-organized codebase. A notable spinoff, the Ladybird browser, has grown into a separate project. SerenityOS is not intended as a general-purpose daily driver but as an educational and engineering achievement.

Origin

Started in December 2018 by Andreas Kling as a personal recovery project after rehabilitation. Grew steadily through YouTube development livestreams and attracted hundreds of contributors. The Ladybird browser engine later spun out as an independent project in 2023.

Growth

Growth was driven largely by Andreas Kling's YouTube presence, the novelty of a from-scratch OS built live on camera, and the project's unusually high code quality and organization for a hobbyist OS. The Ladybird spinoff generated a second wave of attention. Current star growth (~45/week) is slow but steady, consistent with a mature project with a stable niche audience rather than viral growth.

In production

SerenityOS is explicitly not a production OS — it is a hobbyist and educational project. Adoption not verified in any enterprise or commercial deployment context. Community adoption exists in the form of hundreds of contributors and an active Discord server. The Ladybird browser spinoff has attracted separate commercial interest.

Code analysis
Architecture

Appears to follow a microkernel-influenced architecture with a modern 64-bit kernel, separate userland services communicating via IPC (WindowServer, AudioServer, etc.), and a rich standard library. All components — kernel, libc, GUI toolkit, browser, games — reside in a single monorepo. Based on README, the design philosophy strongly favors building from scratch over porting third-party components.

Tests

README references OSS-Fuzz integration for fuzzing, spec compliance test suites for JavaScript (test262), CSS, and WebAssembly, and CI via GitHub Actions. Formal unit test coverage metrics are not documented in README.

Maintenance

Last push was 2026-06-23, one day before the evaluation date, indicating active daily development. CI badges are present and passing. The project has sustained contributions for over 7 years, suggesting strong structural health. Maintenance appears robust rather than sporadic.

Honest verdict

ADOPT IF: you are a systems programmer, OS enthusiast, or student who wants to contribute to or learn from a well-organized, from-scratch OS codebase with high engineering discipline and an active community. AVOID IF: you need a production operating system, a stable daily driver, or hardware support beyond x86-64/Arm/RISC-V in emulation — SerenityOS is explicitly not built for general deployment. MONITOR IF: you are interested in the Ladybird browser engine's trajectory, as developments there often originate in or affect this codebase.

Independent dimensions

Mainstream potential

2/10

Technical importance

9/10

Adoption evidence

2/10

Risks
  • Project scope is enormous for a volunteer community — sustaining breadth across kernel, browser, GUI toolkit, and applications long-term depends on continued contributor enthusiasm.
  • No commercial backing for SerenityOS itself (Ladybird has separate funding); sustainability relies on community and creator motivation.
  • Hardware support is limited and real-metal booting remains secondary to QEMU-based development, which may limit contributor diversity.
  • The Ladybird spinoff may draw senior contributors away from the core OS over time, potentially slowing OS-specific development.
  • As a from-scratch OS, it faces a permanent bootstrapping challenge: attracting users requires software, but attracting software developers requires users — the project mitigates this by framing itself as an end in itself rather than a platform.
Prediction

SerenityOS will likely continue as a high-quality, slowly growing community project indefinitely. It is unlikely to become a mainstream OS but may remain one of the most technically impressive open source hobby OS projects for years. Its primary legacy may ultimately be Ladybird.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

C++
88.2%
JavaScript
4.4%
HTML
3.3%
Shell
0.8%
CMake
0.8%
C
0.8%
Objective-C++
0.5%
Game Maker Language
0.4%

Information

Language
C++
License
BSD-2-Clause
Last updated
1d ago
Created
93mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Recent releases

No releases published yet.

Similar repos

serenity-rs

serenity-rs/serenity

Serenity is a Rust library providing comprehensive bindings to the Discord API,...

5.5k Rust Dev Tools
pop-os

pop-os/cosmic-epoch

COSMIC is a complete desktop environment built by System76 for Linux, designed...

6.3k Just Productivity
hermit-os

hermit-os/kernel

Hermit is a lightweight unikernel written in Rust designed for cloud computing...

1.5k Rust DevOps
RIOT-OS

RIOT-OS/RIOT

RIOT is an open-source microcontroller operating system designed for IoT and...

5.8k C IoT
cfenollosa

cfenollosa/os-tutorial

A step-by-step tutorial teaching OS development from bare metal through...

30.6k C Education
vs. alternatives
LadybirdBrowser/ladybird

Direct spinoff of SerenityOS's browser engine. Ladybird now operates independently with separate funding and targets real-world browser deployment, while SerenityOS remains a self-contained OS project. They share lineage but serve different goals.

cfenollosa/os-tutorial

os-tutorial is a step-by-step educational guide for writing a simple OS, aimed at learners. SerenityOS is a fully functional OS — orders of magnitude larger in scope and not primarily tutorial-focused.

phil-opp/blog_os

blog_os is a Rust-based educational OS blog series. Like os-tutorial, it targets learners building minimal systems. SerenityOS targets contributors building a real, usable system with a GUI and applications.

servo/servo

Servo is a browser engine research project in Rust. SerenityOS built its own browser engine from scratch in C++ as one component of a full OS. The goals and governance are unrelated.

Linux (mainline)

Not a direct competitor. Linux is a production kernel used universally; SerenityOS is a from-scratch hobby OS. Comparison is useful only to highlight scope — SerenityOS intentionally avoids Linux compatibility at the kernel level while providing POSIX compatibility at the userland level.