ARIN UPADHYAY | Embedded Systems & Low-Level C Developer
HOME | PROJECTS | BLOG | OTHER
17-11-2025
NCT
The C ecosystem is a little hypocritical.
We write our applications in a language that gives us precise control but then surrender control of our build process to inefficient DSLs and shell scripts.
A build script is a program like any other. Why not write it in C.
NCT (NiCeTy or Nice C Tea) is a lightweight command-line project manager designed to bring a standardized and convenient workflow to C development and C-based builed recipes.
NCT addresses the common need for a simple, cross-platform way to initialize, build, and test C projects.
Why use NCT
It is important to clarify that NCT is a project manager, not a build system.
Its purpose is to standardize the workflow around the build process.
The core reasoning for NCT is based on four principles:
- Standardization: Provides a consistent project structure and command set, eliminating the need to decipher custom build instructions for each new C project.
- Convenience: Offers a complete workflow from initialization to compilation, with built-in utilities to simplify common tasks.
- Cross-Platform: Delivers a uniform command-line experience on both Windows and Unix, addressing the fact that tools like make are not standard on all platforms.
- Flexibility: NCT provides a powerful utility header build.h to handle common tasks like incremental compilation and dependency fetching. However, you are never locked in. The C-based recipes allow for the use of any library or toolchain. You can use standard libraries, write helper functions, and manage complexity with the same tools you use for your main application. The system can be extended with more advanced build libraries like nob.h or configured to use any compiler.
NCT aims to bring a simple, "one command" experience to the C ecosystem without sacrificing the power and flexibility that C developers expect.