DevelitDevelit Internal Docs

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:

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

package.json
nx.json
bun.lock

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-project

Configure 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