- Add Tailwind CSS v4 to Next.js template with zero-config setup
- Migrate both templates to ESLint flat config (eslint.config.mjs)
- Add proper .gitignore files to vanilla and nextjs templates
- Simplify root .gitignore to only Nix artifacts
- Update styling for consistent visual identity across templates
- Update README to reflect Tailwind inclusion and flat config
- Changed omnix template name from "default" to "vanilla" for clarity
- Updated flake descriptions to describe project type, not template repo
- Added {{package-name}} variable to vanilla/package.json for substitution
Ensures initialized projects have correct metadata and users see "vanilla"
and "nextjs" as template options during initialization.
Removed unnecessary packages and template metadata from initialized projects:
- Removed TypeScript from vanilla template (not used)
- Removed template.nix from both templates (only needed in repo, not projects)
- Updated flake.nix in templates to only import devshell.nix
Templates now provide minimal, focused development environments.
The root flake only defines templates. Each template (templates/vanilla/
and templates/nextjs/) contains its own complete Nix configuration with
devshell, so root-level development environment is unnecessary.
Moved template directories into templates/ subdirectory (templates/vanilla/
and templates/nextjs/) with complete Nix configuration in each. This ensures
initialized projects have the full development environment with Nix, Bun,
and all tooling out of the box.
Changes:
- Created templates/vanilla/ with flake.nix, nix/, .envrc, and all files
- Created templates/nextjs/ with flake.nix, nix/, .envrc, and all files
- Updated template paths in nix/modules/template.nix
Users will generate their own lockfile on first install. This avoids
binary file issues with omnix text substitution and ensures fresh
dependency resolution.
Prevents "stream did not contain valid UTF-8" errors during template
initialization. The binary lockfile doesn't need text substitution and
should be copied as-is.
Restructure project to support multiple templates via Nix flakes and omnix.
Users can now choose between vanilla JavaScript or Next.js TypeScript
templates during initialization.
- Move existing template to templates/vanilla/
- Add templates/nextjs/ with App Router, TypeScript, and React 19
- Update flake.nix for multi-template outputs
- Add TypeScript support to shared devshell
- Preserve FHS compatibility for both templates
- Update README with comprehensive template comparison and usage
- Add Node.js to devshell for mature, stable REPL
- Create .replrc.js with println() and dir() helpers
- Add 'just repl' command with auto-loaded helpers
- Add 'just add-dev' and 'just remove' for package management
- Update README with complete command reference and feature list
Features:
- Nix + Flakes for reproducible environments
- Bun (fast JavaScript runtime)
- Vite (development server & build tool)
- ESLint + Prettier (linting & formatting)
- Devshell commands via just
- Modular structure using flake-parts
- Omnix template support for initialization