# cristal
**Repository Path**: ace8/cristal
## Basic Information
- **Project Name**: cristal
- **Description**: No description available
- **Primary Language**: JavaScript
- **License**: LGPL-2.1
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-10-22
- **Last Updated**: 2025-10-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Cristal
## What's Cristal
* A new [xwiki.org](xwiki.org) project to provide a modern knowledge base front-end
* A wiki UI to rule them all: Provide a UI that can be plugged onto various content backends (XWiki, local file system,
GitHub, etc.)
* Usable in various forms:
* From a URL in your browser
* Executable locally on your computer (Electron application).
* Embeddable in backends. For example, the intent on the long run is to have Cristal be used by [XWiki](xwiki.org) as
its native UI
* Ability to work offline, reconnect, and sync content.
## Useful links
* [Roadmap](https://cristal.xwiki.org/xwiki/bin/view/Roadmaps/)
* [Architecture](https://cristal.xwiki.org/xwiki/bin/view/Architecture/)
* [Technological Choices](https://cristal.xwiki.org/xwiki/bin/view/TechnologicalChoices/)
* [Wireframes](https://cristal.xwiki.org/xwiki/bin/view/Wireframes/)
* [UI Components](https://cristal.xwiki.org/xwiki/bin/view/UIComponents/)
* [Backends](https://cristal.xwiki.org/xwiki/bin/view/Backends/)
* [GitHub repository](https://github.com/xwiki-contrib/cristal/)
* [Forum](https://forum.xwiki.org/c/cristal/)
## Project details
* Project Lead: [Manuel Leduc](https://www.xwiki.org/xwiki/bin/view/XWiki/mleduc)
* Documentation: [Documentation](https://cristal.xwiki.org/)
* Downloads:
* `@xwiki/cristal-*` on https://www.npmjs.com/org/xwiki
* binary artifacts on https://github.com/xwiki-contrib/cristal/releases
* [Issue Tracker](https://jira.xwiki.org/projects/CRISTAL/summary)
* Communication: [Forum](https://forum.xwiki.org/c/cristal/18)
* [Development Practices](https://dev.xwiki.org)
* [Supported backends](https://cristal.xwiki.org/xwiki/bin/view/Backends/)
* License: LGPL 2.1
* Translations: all components of https://l10n.xwiki.org/projects/xwiki-contrib/cristal/
* Sonar Dashboard: N/A
## Project Setup
```sh
pnpm install
```
### Starting the project
Starting on default port 9000.
```sh
pnpm run start
```
Starting on an arbitrary port (e.g., 9001)
```shell
HTTP_PORT=9001 pnpm run start
```
### Starting an electron instance
```shell
pnpm run start:electron
```
### Compile and Minify for Production
```sh
pnpm run build
```
### Run Unit Tests with [Vitest](https://vitest.dev/)
```sh
pnpm run test
```
## Run Functional Tests with [Playwright](https://playwright.dev/)
```sh
## Make sure to have the system dependencies and browsers up to date. By filtering
## on the web module we make sure the version of playwright that gets installed is
## the one specified in package.json
pnpm --filter ./web exec playwright install --with-deps
## Run the tests from the web module.
pnpm run --filter ./web test:e2e
## Or, if port 9000 is already used
HTTP_PORT=9001 pnpm run --filter ./web test:e2e
```
### Lint
```sh
pnpm lint
```
### Check for API changes
```sh
pnpm run api-extractor:local
# Produces reports in the `etc/` folder of each package.
# The changes in the Markdown files reflects changes in the public APIs of the packages and must be discussed
# collectively.
# The CI is configured to fail if the command produces unversioned changes.
```