init system, without which you’d be left with only one program running at a time
some programs are written in interpreted language (e.g python, shell, perl), so the interpreter would also be required
C library, without which none of the above would function (yes, even if all the programs are statically compiled, it still has that library included with each executable)
this one is not necessary for the runtime, but is needed for creating a working system: toolchain – preprocessor, compiler, linker, assembler – all the stuff for transforming the source code into executables
Another comment mentioned Linux From Scratch, I’d totally recommend that, but it would take so much of your time manually building stuff (which is why it is so educational). If you don’t have the time, you may want to opt with Gentoo instead.