sortedcord / sortedcord/bootstrap
Graduating Bootstrap from 'Collection of Scripts' to an 'Environment Manager'
@sortedcord is already working on this.
Since Jun 28, 2026.
- Dominant language
- Shell
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Contrary to how I started bootstrap, it has outgrown the scope of a project that's just "a collection of scripts"
With changes like #16 (Three strategy install model) and procedural rollback implementation and #5 in the future, bootstrap is taking shape of declarative, distro agnostic environment manager.
Like a personal package manager that installs and tracks CLI tools, runtimes and system packages that a user relies on all behind a single audited registry.
To achieve this, bootstrap needs to do the following:
-
#23
-
The CLI, planned async exec graph,
registry.jsonengine, the plugin runtime, and the auth server integration remains as the Bootstrap Core (b) -
The collection of base-only installers are yanked out of bootstrap into a Default Registry. These installers do not touch the
~/.configyet. -
Personal Overlays (Taps): Personal dotfiles, aliases, and specific configurations become a separate repository. This is added as a "tap" (Borrowing from homebrew). Taps work pretty straightforward
b tap add johndoe/bootstrapSo when a user runs
b install nvim, they get the base. If they want another person's exact setup they would need to add their tap and then install itb tap add johndoe/mybootstrap b johndoe/nvim-confThe specifics and UX is subject to revision.
-
-
#24
-
We standardize installers to expose Targets (or Phases).
-
An installer should be a standard bash file that defines specific, named function. Bootstrap's CLI then parses these and allows the user to invoke them directly as well.
b ware nvim:base|system-symlink
this would install the base and system-symlink targets.
-
-
#25
- Instead of using the old
installers/install_<toolname>.shstructure, use atools/<toolname>/tool.shscaffolding for registries. - Each tool gets its own namespace directory
- Allows for per-tool extras: patches, hooks, etc
- Instead of using the old
-
Structured Documentation and basic wiki
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.