Hello, [yoe]
After years of maintaining and shipping products with the Yoe Distribution, we kept running into the same friction — much of it inherited from how embedded Linux has historically been built. We started fresh, kept the lessons that mattered most, and built the tool we always wanted to use.
What we kept
- Machine abstraction and image composition. Yocto got a lot right here.
- Module composition. Pulling units directly from GitHub URLs scales naturally to vendor BSPs.
- Tracking upstream closely. The cloud has been doing this for a decade.
What we dropped
- Cross-compilation as the default. Modern ARM and RISC-V boards build natively at full speed. Cloud CI runs arm64 cheaper than ever. QEMU user-mode emulation covers the rest.
- The SDK boundary. One Go binary builds the kernel, the rootfs, and the application — no frozen sysroot, no drift between teams, one shared view of the build.
- Reinventing dependency resolution. Cargo, Go modules, pip, and npm
already solved this.
[yoe]composes with them instead of replacing them. - Generated shell scripts. When something fails, you read the code you wrote — not a stack trace deep in machine-generated output.
What we’re betting on
- AI as a first-class interface. Starlark units, queryable graphs, structured logs. An assistant that understands the system can take the cognitive load of “which knob, and why” off the developer.
- One tool, three interfaces. AI conversation, interactive TUI, traditional CLI — same engine, same commands. Use whichever fits the moment.
- Functional equivalence over bit-for-bit reproducibility. Hermetic builds and content-addressed input hashing, without the years-long effort required for bit-perfect reproducibility.
[yoe] is pre-1.0 and moving fast. Take it for a spin and let us know how it
goes — we’d love to hear what works for you and what doesn’t.
The opportunity is here … come build the future of embedded Linux with us.
— Cliff Brake