π Welcome to the Universe Monorepo!
This is the central repository for all my development projects, including chat applications, microservices, documentation, personal tools, and more. By managing everything under one roof, this monorepo ensures better asset sharing, unified tooling, and streamlined CI/CD workflows.
- portfolio/ β Personal website (includes submodule d-a-s-h-o/d-a-s-h-o)
- chat/ β Real-time chat application
- droplets/ β Microservices for various tasks
- docs/ β Documentation and guides
- verify/ β Verification services
- sshchat/ β Secure chat platform
- dotfiles/ β Development environment configurations
- Shared assets & libraries β Centralized management of dependencies, icons, and configurations.
- Efficient versioning β All projects follow epoch-based semantic versioning.
- Modular development β Work on multiple projects simultaneously using sparse checkouts and worktrees.
- Automated CI/CD β Each project has its own GitHub Actions workflow for independent builds and deployments.
- Containerized environments β Uses GitHub Container Registry (GHCR) for project-specific container builds.
This repository includes a submodule for the portfolio project. To ensure it is initialized correctly, clone with:
git clone --recurse-submodules git@github.com:d-a-s-h-o/universe.git
If you have already cloned the repository, initialize and update submodules manually:
git submodule update --init --recursive
This repo is large, so use sparse checkout to download only the necessary projects.
git clone --filter=blob:none --no-checkout git@github.com:d-a-s-h-o/universe.git
cd universe
git sparse-checkout init --cone
git sparse-checkout set chat droplets docs
git checkout main
Use worktrees to keep separate working directories for different projects without switching branches.
# Create a worktree for chat
mkdir ../chat-worktree
cd ../chat-worktree
git worktree add . ../universe main:chat
To maintain consistency, use the following format:
[project] <emoji> type(scope): subject
Examples:
[chat] π feat(auth): add JWT authentication
[docs] π docs(readme): update installation guide
All projects follow an epoch-based semantic versioning system:
(EPOCH * 100 + Major).Minor.Patch
Example Versions:
101.2.3
β Epoch 1, Major 1, Minor 2, Patch 3200.0.1
β Epoch 2, Major 0, Minor 0, Patch 1
git tag chat-v101.2.3
git push origin chat-v101.2.3
Branches should be used sparingly:
- Main (
main
) β The stable, deployable version. - Feature branches (
feature/<project>-<name>
) β For new features. - Hotfix branches (
hotfix/<project>-<name>
) β For urgent fixes.
Each project has independent GitHub Actions workflows and container builds pushed to GHCR.
- CI/CD triggers only for relevant project changes.
- Containers are tagged with version numbers and latest.
- Security & Access β Use GitHub Actions Secrets for API keys.
- Rollback Strategy β Use
git revert
or checkout previous tags. - Performance Optimizations β Use
sparse-checkout
, prune branches, and avoid large binary files.
This repository follows an open-source but restricted use model. Check individual projects for specific licensing terms.
This monorepo is built for scalability, efficiency, and ease of use. Use sparse checkouts, worktrees, and modular CI/CD workflows to keep development streamlined. Checkout the MONOREPO.md file for more information on this monorepo and a detailed guide of how to use it.
For any questions, open an issue or ping @Dasho
. π