Noureddine RAMDI / Inside the Huly Platform: Scaling a TypeScript monorepo with Rush and Docker

Created Mon, 04 May 2026 10:23:01 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

hcengineering/platform

Huly Platform tackles a common challenge in modern business software: combining multiple project management and collaboration tools into a unified, extensible framework. It brings together core features found in Linear, Jira, Slack, Notion, and Motion into a single open-source platform built with TypeScript. What sets it apart is its monorepo architecture managed by Microsoft Rush, combined with a Docker Compose-based local infrastructure, offering a robust environment for multi-application development and deployment.

a unified business application framework with a multi-app architecture

At its core, Huly Platform is an open-source business application framework written entirely in TypeScript. It powers an all-in-one project management suite that combines a range of tools: project management (PM), customer relationship management (CRM), human resource management (HRM), applicant tracking system (ATS), and chat functionalities. Each of these applications runs on top of a shared platform foundation.

The repo uses Microsoft Rush to handle its monorepo, allowing it to manage multiple packages and apps in a single repository with versioning and dependency graph awareness. The backend services rely on MongoDB for document storage, Elasticsearch for search capabilities, and MinIO as a self-hosted object storage solution. For the frontend, the platform employs Svelte, a modern reactive UI framework known for its lean runtime and compile-time optimizations.

Local development and testing are powered through Docker Compose, which orchestrates the stack of MongoDB, Elasticsearch, and MinIO containers. This setup ensures a consistent environment across developer machines and simplifies the bootstrapping of complex dependencies.

The platform targets contributors and developers who want to extend or modify the suite, while a separate project, huly-selfhost, provides a streamlined Docker-based deployment for users primarily interested in self-hosting without development overhead.

Versioning follows a dual-branch strategy: production releases are tagged with v* versions, while ongoing development uses s* (staging) versions. The branching model flows from develop to staging and then main for stable releases.

a Rush-managed monorepo with automated docker build pipelines

What distinguishes Huly Platform is its use of Microsoft Rush as the backbone of its monorepo management. Rush excels at handling large TypeScript repositories by orchestrating dependency installation, build orchestration, and incremental builds across many packages.

Under the hood, the build pipeline is automated and chained: starting from rush build to compile all packages, then bundling the output, packaging it, and finally triggering Docker image builds with docker:build scripts. This sequence ensures that all components are consistently built and packaged, reducing the risk of version mismatches or missing artifacts.

The codebase itself is surprisingly well-structured for its size. Shared utilities and platform-level abstractions minimize duplication across the various applications.

However, the tradeoff is complexity. Setting up the full development environment requires Node.js v20.11.0, Docker, and authentication for GitHub Packages due to private dependencies. The repo also relies on Git submodules for communication components, which adds an extra step to initialization.

The Docker Compose setup for local infrastructure is resource-intensive: a fully deployed local instance consumes over 35 GB of WSL virtual disk space, and the built application folder takes around 4.5 GB. This footprint is something to keep in mind when planning local dev environments.

The frontend uses Svelte, which is less common in large corporate monorepos compared to React or Vue, but it offers a leaner runtime and potentially better performance. This choice might require some ramp-up for teams not familiar with the Svelte ecosystem.

Overall, the platform balances modularity and scale, but it’s clearly designed for teams ready to invest in a complex stack and infrastructure.

quick start with rush and docker

Setting up a development environment for Huly Platform involves a few preparatory steps, mainly due to its monorepo architecture and private dependencies.

First, initialize and update the communication submodule:

git submodule init
git submodule update

Then you need to authenticate with GitHub Packages by generating a personal access token with read:packages scope and logging in via npm:

npm login --registry=https://npm.pkg.github.com

Install Microsoft Rush globally:

npm install -g @microsoft/rush

Finally, from the repository root, install dependencies and build the project:

rush install
rush build

Alternatively, a convenience script is provided:

sh ./scripts/presetup-rush.sh

To prepare test Docker containers and initialize the test database, run:

./prepare.sh

Be aware of the disk space requirements: running the full local deployment with Docker demands over 35 GB of WSL disk space.

who should consider the huly platform?

Huly Platform is best suited for teams and developers who need a comprehensive, extensible business application framework with multiple integrated modules. If you are building or customizing complex project management, CRM, HRM, or chat tools and want to avoid stitching together separate products, this repo offers a solid foundation.

The use of a Rush-managed TypeScript monorepo and automated Docker pipelines makes it a valuable case study for scaling large frontend-backend ecosystems in a single codebase. However, the complexity and resource requirements mean it’s not a lightweight option for casual developers or small projects.

The separate huly-selfhost project is recommended if you want to run the platform without engaging with the full dev setup.

In summary, Huly Platform is a robust, thoughtfully architected project that balances multi-app modularity with the realities of large-scale TypeScript monorepos. It’s worth understanding for anyone building similar all-in-one business suites or looking to learn from its build orchestration and Docker integration.


→ GitHub Repo: hcengineering/platform ⭐ 25,522 · TypeScript