Craft, a lightweight build system designed to simplify C and C++ development, launched version 1.0 this week. Developer randerson112 built the tool after repeatedly spending "the first hour writing CMakeLists.txt, figuring out find_package, copying boilerplate from my last project, and googling why my library isn't linking" whenever starting new projects. The Show HN post reached 114 points with 105 comments on April 9, 2026.
Single Configuration File Replaces Complex CMake Boilerplate
Traditional C/C++ development involves wrestling with CMake configuration, managing build systems manually, and handling dependencies without standardized tooling. Craft eliminates this friction by providing a single craft.toml file that replaces complex CMake boilerplate. A basic project configuration requires just a few lines:
[project]
name = "my_app"
version = "0.1.0"
language = "c"
c_standard = 99
[build]
type = "executable"
Automatic Dependency Management Integrates Git Repositories
Craft provides automatic dependency management where Git repositories are cloned and integrated automatically. Developers can add dependencies with simple commands:
craft add --git https://github.com/raysan5/raylib --links raylib
craft add --path ../my_library
craft add sfml
The system supports local Craft projects, git repositories, and pinning to specific versions, offering flexibility while maintaining simplicity.
Modern CLI Interface Handles Common Development Workflows
Craft provides intuitive commands that cover the full development lifecycle:
- craft init - adopt an existing C/C++ project into Craft or initialize an empty directory
- craft build - generates CMakeLists.txt automatically and builds your project
- craft template - save any project structure as a template to be initialized later
- craft gen - generate header and source files with starter boilerplate code
- craft upgrade - keeps itself up to date
The tool includes both built-in templates (executable, static library, shared library, header-only) and support for custom reusable templates.
Acts as Abstraction Layer Above CMake Rather Than Replacement
Rather than replacing CMake entirely, Craft acts as an abstraction layer above it. The tool generates CMake files automatically, handling the verbose configuration that developers typically manage manually. This approach maintains CMake's power while reducing cognitive overhead for common development workflows. For edge cases, developers can use CMakeLists.extra.cmake for anything that Craft does not yet handle.
Craft works cross-platform on macOS, Linux, and Windows. The project can also initialize existing C/C++ projects, automatically detecting structure and generating corresponding configuration.
As the author noted in the submission: "I love C and C++, but setting up projects can sometimes be a pain... By the time the project was actually set up I'd lost all momentum. So, I built Craft."
Key Takeaways
- Craft v1.0 provides a Cargo-like build system for C/C++ that replaces complex CMake boilerplate with a single craft.toml configuration file
- The tool automatically generates CMakeLists.txt files and manages dependencies through Git repositories, local paths, and version pinning
- A modern CLI includes commands for initialization, building, templating, code generation, and self-updating
- Craft acts as an abstraction layer above CMake rather than a replacement, maintaining CMake's power while reducing setup friction
- The Show HN post reached 114 points with 105 comments, indicating strong developer interest in simplified C/C++ tooling