This is a monorepo that contains all dicedb related tools and applications that make it fun and easy to use in the real world.
A monorepo is a single repository that contains multiple projects. This allows us to manage all the projects in a single repository, making it easier to share code and manage dependencies across projects.
This repository is an amalgamation of all the tools and applications that make DiceDB fun and easy to use in the real world. The name is a nod to this amalgamation, and inspired by the alloy.
This monorepo includes the following packages/apps:
@dicedb/playground-web
@ ./apps/playground-web: an interactive platform designed to let users experiment with DiceDB commands in a live environment, similar to the Go Playground@dicedb/ui
@ ./packages/ui: common UI components for alloy apps packaged into a internal package
@dicedb/eslint-config
:eslint
configurations (includeseslint-config-next
andeslint-config-prettier
)@dicedb/typescript-config
:tsconfig.json
s used throughout the monorepo@dicedb/tailwind-config
:tailwind.config.js
s used throughout the monorepo
Ensure you have the following installed:
- node.js (v18.17.0 or later)
- pnpm (v9.10.0 or later)
nvm install 18.17.0
nvm use 18.17.0
npm install -g [email protected]
If you're unfamiliar with pnpm, it’s an alternative package manager that is faster and more efficient than npm. Learn more about pnpm here.
Clone the repository and install the dependencies:
git clone <repository-url>
cd alloy
pnpm install
Note
Please go through the README of each package/app to understand how to run and develop them. The READMEs are located in the respective package/app directories. The information below is a quick reference to get you started common for all packages/apps.
To build all apps and packages, run the following command:
cd alloy
pnpm build
To build a specific package/app, run the following command:
cd alloy
pnpm build --filter @dicedb/playground-web
These commands will not only build the package requested but also build all the dependencies of the package requested.
We also have a
pnpm build:playground
alias that does the same thing aspnpm build --filter @dicedb/playground-web
for convenience.
To develop all apps and packages, run the following command:
cd alloy
pnpm dev
To develop a specific package/app, run the following command:
cd alloy
pnpm dev --filter @dicedb/playground-web
These commands will not only start the development server for the package requested but also start the development server for all the dependencies of the package requested.
We also have a
pnpm dev:playground
alias that does the same thing aspnpm dev --filter @dicedb/playground-web
for convenience.
To run tests for all apps and packages, run the following command:
cd alloy
pnpm test
To run tests in watch mode for all apps and packages, run the following command:
cd alloy
pnpm test:watch
To format all apps and packages, run the following command:
cd alloy
pnpm format
To lint all apps and packages, run the following command:
cd alloy
pnpm lint
The monorepo is divided into 3 main directories:
apps
: contains all the applications i.e. deployable unitspackages
: contains all the packages i.e. reusable code across the appstooling
: contains all the configurations and tooling used across the monorepo
The Code Contribution Guidelines are published at CONTRIBUTING.md; please read them before you start making any changes. This will ensure a consistent standard of coding practices and developer experience.
Contributors can join the Discord Server for quick collaboration.