Repository
Essential considerations for reviewing existing repositories or creating new ones.
Naming
Repository names should clearly indicate the project they belong to. The complete name must follow kebab-case formatting.
Structure
Each project utilizes monorepo architecture which is being managed by Bun and Nx. A typical project monorepo is divided between three logical groups defined in the workspaces key of package.json:
{
"name": "project",
"version": "0.0.0",
"author": "Develit.io s.r.o.",
"type": "module",
"workspaces": [
"apps/*",
"packages/*",
"services/*"
]
}The workspaces key is native NPM feature that is fully supported by Bun.
Apps
Orchestrators and clients
Packages
Packages
Services
Services
Hosting
All repositories are hosted on the GitHub platform, either as public or private ones depending on the nature of each project. Typically, the majority are private and very few are public. Projects developed for partners are also most likely to be hosted under their specific organization, whereas internal tools are hosted under the develit-io organization.
New Repository
When setting up a new repository, follow these steps:
Create Empty Repository
Create a new repository on GitHub without initializing it with README, .gitignore, or license files. The repository should be completely empty.
Scaffold with Develit CLI
Use the Develit CLI to scaffold the project structure. Do not add files through GitHub's native initialization feature.
develit init my-projectConfigure Monorepo
Set up the monorepo structure with workspaces in package.json:
{
"workspaces": [
"apps/*",
"packages/*",
"services/*"
]
}Push to GitHub
Link your local repository to GitHub and push the initial commit:
git remote add origin https://github.com/your-org/your-repo.git
git push -u origin main