Skip to content
LogoLogo

Available Templates

All Templates

TemplateLanguage / Use CaseDescription
nixNixNix development environment with nixfmt, deadnix, and statix (default template)
nodeNode.js / JavaScript / TypeScriptNode.js development environment with Node.js, Bun, Deno, and ni
pythonPythonPython development environment with auto-configured Python version, ruff, and hatchling
rustRustRust development environment with cargo, rustc, clippy, rustfmt, and rust-analyzer source resolution
javaJava / JVMJava development environment with GraalVM JDK, Maven, and Gradle
kotlinKotlin / JVMKotlin development environment with GraalVM JDK, Kotlin compiler, and Gradle
latexLaTeXLaTeX document authoring environment with Nix formatters and pre-commit hooks
typstTypstTypst document authoring environment with Nix formatters and pre-commit hooks
nix-configNixOS / macOSNixOS, nix-darwin, and home-manager configuration with auto-discovered systems
colmena-configNixOS DeploymentNixOS Configuration with Colmena deployment and ISO/image builds
secretsSecrets ManagementEncrypted secrets management with agenix/ragenix and YubiKey support
purrpurr Frameworkpurr project template using mkFlake (standalone)
purr-flake-partspurr + flake-partspurr project template with flake-parts integration

Usage Examples

# Node.js
nix flake init -t beans#node
 
# Python
nix flake init -t beans#python
 
# Rust
nix flake init -t beans#rust
 
# Java
nix flake init -t beans#java
 
# Kotlin
nix flake init -t beans#kotlin
 
# LaTeX
nix flake init -t beans#latex
 
# Typst
nix flake init -t beans#typst
 
# Nix dev
nix flake init -t beans#nix
 
# NixOS config
nix flake init -t beans#nix-config
 
# Colmena config
nix flake init -t beans#colmena-config
 
# Secrets
nix flake init -t beans#secrets
 
# purr project
nix flake init -t beans#purr
 
# purr + flake-parts
nix flake init -t beans#purr-flake-parts

How Templates Work

Each template is defined as a thin default.nix wrapper:

# templates/node/default.nix
{ inputs, ... }:
{
  description = "Node.js development environment";
  path = "${inputs.templates-node}";
  welcomeText = ''
    # Node.js — Nix Development Environment
    Run `nix develop` to enter the dev shell.
  '';
}

The template content lives in a separate repository under nixcafe-develop and is pulled in as a flake input (flake = false). This keeps the templates flake lightweight while allowing each template to evolve independently.