> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jylhis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Jotain — a custom GNU Emacs configuration built from scratch

# Jotain

**Jotain** is a custom GNU Emacs configuration built from scratch. The name is Finnish for "something."

The project includes:

* A modular Emacs Lisp configuration organised by concern (`lisp/init-*.el`)
* A Nix expression (`emacs.nix`) for building GNU Emacs from source, with every upstream build flag exposed and `pkgs.emacs` (nixpkgs) binary-cache parity as an invariant; git-based variants come from [`nix-community/emacs-overlay`](https://github.com/nix-community/emacs-overlay)
* A distribution wrapper (`default.nix`) that ships Emacs together with all \~275 tree-sitter grammars from nixpkgs
* A development shell (`devenv.nix`) that provides the same Emacs to developers and tools
* A home-manager service (`module.nix`) for running Jotain as a user daemon with `emacsclient`
* A `Justfile` task runner covering check, build, run, pins, and cleanup

## Why Jotain?

Jotain takes a different approach from framework-based Emacs configurations like Doom or Spacemacs. Instead of layering on top of an opinionated framework, Jotain is built from scratch with:

* **Nix-based builds** — reproducible Emacs from source with precise control over compile options, and binary-cache parity with `pkgs.emacs` (nixpkgs) for the default configuration.
* **Modular Elisp** — one file per concern (`init-ui.el`, `init-completion.el`, `init-vc.el`, …). A package that only exists to enhance a built-in (e.g. `dirvish` → `dired`, `magit` → `vc`) lives in the same file as the built-in it enhances — there is no "builtins.el" / "third-party.el" split.
* **Modern Emacs** — targets Emacs 30+ (`emacs "30.1"`), with native compilation, tree-sitter modes, lexical binding throughout, and `use-package` built-in.
* **`setopt` by default** — user options (`defcustom`) are set via `setopt` so `:set` callbacks and type validation actually run.

## Source Code

Jotain is open source and available on [GitHub](https://github.com/Jylhis/jotain).
