- TypeScript 88.7%
- CSS 10.1%
- HTML 1.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .mono | ||
| .vscode | ||
| flows | ||
| static | ||
| .editorconfig | ||
| .env.example | ||
| .example.mono.env.ts | ||
| .example.mono.ts | ||
| .gitattributes | ||
| .gitignore | ||
| .markdownlint.jsonc | ||
| biome.jsonc | ||
| bun.lock | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| SECURITY.md | ||
| tsconfig.json | ||
howionlabsmono
Howion's custom (hence quite opinionated) monorepo to manage all of its (public and private) @howionlabs repositories and/or packages.
Motivation
None of the existing monorepo tools or structures were good enough and always resulted writing custom scripts. Google's Bazel seemed like a solid choice but the complexity and management of it wasn't worth it. Therefore, hereby we represent our custom monorepo (skeleton) by us for us.
This monorepo is intended to be used with Visual Studio Code, however it is not a necessity, just possible lack of DX features.
Dependencies
In order to work under this monorepo structure, make sure bun and git are installed.
Moreover, existence of fundamental unix commands such as rm, cp and mkdir are assumed.
Addons
$author(author: MonoPerson | MonoFormattedPersonText)$biomejs()$bun()$contributor(contributor: MonoPerson | MonoFormattedPersonText)$disableTelemetry()Not implemented yet.$env(...variables: string[])$git(uri: MonoGitURI)$go()Not implemented yet.$keys()Not implemented yet.$license(id: MonoLicenseId)$markdownlint()$npm(name: string)$python(name: string)Not implemented yet.$static(from: string, to?: string, alwaysOverwrite = false)$vercel()Not implemented yet.$vscode()
Mono CLI
remold
Best Practices
- This monorepo supports single branch for managing it's git-tracked entries. By default it uses the current branch of the root (mono) and throws if tracked entries are on different branch.
- Each entry must be independent repository in a way that they should be standalone developable assuming access to possibly private packages. Therefore, assume each entry is its own repository and avoid relative file access outside the entry. Note that this monorepo supports monorepo dependencies via Bun workspaces.
Tech Stack
Roadmap
- More verbose output on
remoldfor addons, and possibly even more verbose with--verbose? - Write a proper documentation both in code and as markdown. Add diagrams as well maybe?
- Git branch management.
- Better tracking reporting both by mono and git for all workspace directories.
- Consider adding
.exampleto mono env schema/builder for.env.example. bun mono pushsafety checks.- Better key management via
keysaddon. - Add skills and so on so that AI and their IDEs know about the mono sturcture. Maybe introduce opinionated skills/MCPs as well?
- Add flows for custom flows.
- Gitleaks or Betterleaks?
- Add cache for faster remold?
- Maybe support multiple git remotes? Will probably be abandoned as many git providers provide mirroring.
Contributor Code of Conduct
However you choose to contribute, please abide by our Contributor Covenant 3.0 Code of Conduct to keep our community a healthy and welcoming place.
License
The code related to the monorepo skeleton (which excludes ./zones that contain proprietary code) is licensed under the MIT License.