bởi kestrel

Zulip is an open-source organized team chat platform with unique topic-based threading, designed for both live and asynchronous conversations. It is used by Fortune 500 companies, open-source projects, and thousands of organizations worldwide.
This block is the complete Zulip server monorepo: a Django/Python backend paired with a TypeScript/React-style frontend, build tooling, and configuration for a production-grade, topic-threaded team chat application. The typical buyer is a full-stack team that wants to self-host or extend Zulip, or an engineer integrating Zulip's frontend toolchain (ESLint, Prettier, Stylelint, Babel, webpack) into an existing project.
.claude/ - Claude AI skill definitions and project-level instructions for AI-assisted development.github/ - CI workflows (GitHub Actions), issue templates, and PR template.vscode/ - Recommended VS Code extensions for the projectanalytics/ - Analytics models, views, URL routing, and data-count libraryapi_docs/ - API reference documentation sourceconfirmation/ - Email confirmation token handlingcorporate/ - Billing, sponsorship, and Zulip Cloud corporate pagesdocs/ - Developer and administrator documentation (Sphinx/ReadTheDocs)locale/ - Translation files for all supported languagespgroonga/ - PGroonga full-text search integration for PostgreSQLpuppet/ - Server provisioning and configuration management manifestsscripts/ - Deployment, setup, and maintenance shell scriptsstarlight_help/ - Astro-based help center site sourcestatic/ - Static assets (fonts, images, generated bundles)templates/ - Django Jinja2/HTML templatestools/ - Developer tooling scripts (linting, testing, formatting)web/ - Frontend TypeScript/JavaScript source, CSS, and webpack configzerver/ - Core Django app: models, views, webhooks, email, testszilencer/ - Remote server analytics and push notification relayzproject/ - Django settings, URL routing, WSGI/ASGI entry pointseslint.config.js - Flat ESLint config with TypeScript, import, unicorn, formatjs rulesstylelint.config.js - Stylelint config enforcing Zulip CSS conventionsprettier.config.js - Prettier config with Astro and JSON5 overridesKhởi chạy sandbox cách ly và chạy phía máy chủ — không cần cài đặt cục bộ.
Tetrees AI Review cho phiên bản này
This TypeScript, Python, JavaScript library / package completed archive review with strong static results. Structure, dependency manifests, documentation, functional source, and common risk patterns were checked by the Tetrees verification pipeline; runtime phases are stated separately.
Deterministic AVCP artifact review
Quy trình avcp-2026-08-04.1 · SHA-256 3f0d3783026d4250…
This version-scoped review deterministically inspects the submitted archive for structure, dependencies, documentation, functional source, and common malicious or high-risk signals. Build and test phases are reported as passed only after an isolated sandbox audition. It is not a guarantee of perfect security.
Đã đánh giá 4 thg 8, 2026
Đưa sản phẩm này thẳng vào AI IDE, trình tạo web hoặc cloud IDE của bạn.
Kết nối Tetrees với AI IDE tương thích để liệt kê sản phẩm bạn sở hữu và nhận ZIP đã xác minh mà không cấp quyền tải lên của người bán.
Chưa có đánh giá.
Sign in to join the discussion
Loading discussion…
tsconfig.json - Root TypeScript compiler configurationpyproject.toml - Python tooling config (ruff, mypy, pytest)manage.py - Django management entry pointpackage.json - Node.js workspace root with all frontend dependenciespnpm-workspace.yaml - pnpm monorepo workspace definitionversion.py - Zulip server version stringnpm install @babel/core @babel/preset-env @babel/preset-typescript \
@date-fns/tz @fontsource-variable/open-sans @formatjs/intl \
@gfx/zopfli @koa/bodyparser @sentry/browser @sentry/core \
@sinonjs/fake-timers @types/postcss-import \
@uppy/core @uppy/dashboard @uppy/image-editor @uppy/tus @uppy/utils \
@zxcvbn-ts/core @zxcvbn-ts/language-common @zxcvbn-ts/language-en \
altcha autosize babel-loader babel-plugin-formatjs blueimp-md5
npm install --save-dev \
@eslint/eslintrc @eslint/js confusing-browser-globals eslint \
eslint-config-prettier eslint-plugin-astro eslint-plugin-formatjs \
eslint-plugin-import eslint-plugin-mdx eslint-plugin-no-jquery \
eslint-plugin-promise eslint-plugin-unicorn globals stylelint \
stylelint-config-standard stylelint-high-performance-animation \
prettier prettier-plugin-astro typescript typescript-eslint
Python (3.11+) environment:
pip install django psycopg2-binary boto3 pika stripe requests \
django-two-factor-auth django-scim2 orjson
# See requirements/ directory for the full pinned list
No native iOS/Android linking required. PGroonga requires a PostgreSQL extension installed at the OS level (sudo apt install postgresql-pgroonga).
source/ into your project root or a subdirectory, e.g. ./zulip-src/.corepack enable
pnpm install
tsconfig.json from the provided root config:
{
"extends": "./zulip-src/tsconfig.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {"~/*": ["./zulip-src/web/src/*"]}
}
}
// eslint.config.js in your project
import zulipConfig from "./zulip-src/eslint.config.js";
export default [...zulipConfig];
DJANGO_SETTINGS_MODULE=zproject.settings
SECRET_KEY=<random 50-char string>
DATABASE_URL=postgres://zulip:password@localhost/zulip
REDIS_URL=redis://localhost:6379
python manage.py migrate
python manage.py initialize_voyager_db # or dev setup script
python manage.py runserver
# In parallel: pnpm run dev (webpack watch)
import {defineConfig} from "eslint/config";
// Returns a flat ESLint config array combining all Zulip rule sets.
const config: ReturnType<typeof defineConfig> = defineConfig([...rules]);
Used when composing your project's ESLint flat config. Wraps the Zulip-opinionated rule set (TypeScript strict, unicorn, formatjs, no-jquery, promise) into a single exportable array. Extend or override individual rule objects after spreading.
import type {Config} from "prettier";
const prettierConfig: Config = {
bracketSpacing: false,
trailingComma: "all",
plugins: ["prettier-plugin-astro"],
overrides: [
{files: ["tsconfig.json"], options: {parser: "json5", quoteProps: "preserve"}},
{files: ["*.md"], options: {embeddedLanguageFormatting: "off"}},
{files: "*.astro", options: {parser: "astro"}},
],
};
export default prettierConfig;
Import or spread into your own prettier.config.js. The bracketSpacing: false and trailingComma: "all" settings are load-bearing for the existing codebase; override only if your project diverges.
import type {Config} from "stylelint";
const stylelintConfig: Config = {
extends: ["stylelint-config-standard"],
plugins: ["stylelint-high-performance-animation"],
rules: { /* color-no-hex, color-named: never, function-disallowed-list, ... */ },
};
export default stylelintConfig;
Enforces Zulip's CSS conventions: no hex colors, no named colors, no rgb(), no low-performance animations, and HSL-only color values. Use as a base and add project-specific overrides.
Drop the Zulip source alongside your project and extend its flat config, adding a project-specific rule override.
// eslint.config.js (your project root)
import {defineConfig} from "eslint/config";
import zulipBase from "./zulip-src/eslint.config.js";
export default defineConfig([
...zulipBase,
{
// Project-specific override: allow console in scripts
files: ["scripts/**/*.ts"],
rules: {
"no-console": "off",
"unicorn/no-process-exit": "off",
},
},
]);
Your project uses Astro components. Import Zulip's config to get consistent formatting including the prettier-plugin-astro override.
// prettier.config.js
import zulipPrettier from "./zulip-src/prettier.config.js";
import type {Config} from "prettier";
const config: Config = {
...zulipPrettier,
// Increase print width for your project
printWidth: 100,
};
export default config;
Run formatting:
npx prettier --config prettier.config.js --write "src/**/*.{ts,tsx,astro,md}"
Inherit Zulip's CSS lint rules (no hex, no rgb, performance animation guards) and add a project-specific selector pattern requirement.
// stylelint.config.js
import zulipStyle from "./zulip-src/stylelint.config.js";
export default {
...zulipStyle,
rules: {
...zulipStyle.rules,
// Enforce BEM-like class naming in this project
"selector-class-pattern": [
"^[a-z][a-z0-9]*(-[a-z0-9]+)*(__[a-z0-9]+(-[a-z0-9]+)*)?(--[a-z0-9]+(-[a-z0-9]+)*)?$",
{message: "Expected class selector to follow BEM naming"},
],
},
};
.claude/ - AI assistant skill definitions and project-level CLAUDE.md context for Claude-powered dev workflows..github/ - GitHub Actions CI pipelines (lint, test, deploy), issue/PR templates..vscode/ - VS Code extension recommendations for Python, TypeScript, and Prettier.analytics/ - Django app tracking server-side usage counts; exposes models and management commands.api_docs/ - OpenAPI-based Zulip REST API documentation source files.confirmation/ - Handles email confirmation links and token validation for account actions.corporate/ - Zulip Cloud billing, plan management, and sponsorship Django app.docs/ - Sphinx documentation for contributors and administrators, published to ReadTheDocs.locale/ - Gettext .po/.mo files for all translated languages.pgroonga/ - SQL migrations and helpers enabling PGroonga full-text search on PostgreSQL.puppet/ - Puppet manifests for automated server provisioning and configuration.scripts/ - Shell scripts for installation, upgrades, backups, and server maintenance.starlight_help/ - Astro/Starlight static site for the Zulip help center (zulip.com/help/).static/ - Committed static assets; webpack output lands in static/webpack-bundles/.templates/ - Django Jinja2 templates for email, server-rendered pages, and error pages.tools/ - Developer scripts: lint, test-backend, test-js-with-node, provision, etc.web/ - All frontend source: TypeScript modules, SCSS, Handlebars templates, webpack config.zerver/ - Core Zulip Django app: user/message/stream models, views, webhooks, tests.zilencer/ - Remote server stats collection and mobile push notification relay app.zproject/ - Django settings (dev/prod/test), root URL conf, WSGI/ASGI handlers.eslint.config.js - Flat ESLint config; single source of truth for all JS/TS lint rules.stylelint.config.js - Stylelint config enforcing Zulip's strict CSS conventions.prettier.config.js - Prettier formatting config with Astro and JSON5 support.manage.py - Standard Django management entry point.package.json - Root Node.js manifest declaring all frontend dependencies and scripts.pyproject.toml - Python tool config: ruff linter, mypy type checker, pytest settings.version.py - Single source of truth for the Zulip server version string.pnpm-workspace.yaml; running npm install at root silently misses workspace packages. Fix: corepack enable && pnpm install.eslint.config.js uses defineConfig from eslint/config which does not exist in ESLint 8. Fix: npm install eslint@^9.prettier-plugin-astro must be installed separately: It is listed as a plugin string, not auto-discovered. Fix: npm install --save-dev prettier-plugin-astro.stylelint-high-performance-animation version pin: Versions >=2.0 changed the plugin export format. Fix: pin to stylelint-high-performance-animation@^1 or verify the import shape matches.export default (ESM). If your project uses CJS ("type": "commonjs"), rename them to .mjs or set "type": "module" in package.json.package.json: The Django backend requirements live in requirements/ Python files, not in Node manifests. Fix: always run both pip install -r requirements/dev.txt and pnpm install during provisioning.I have dropped the Zulip server source into `./source/` in my project.
I also have USAGE.md describing the block.
Please help me integrate the Zulip toolchain (ESLint, Prettier, Stylelint,
TypeScript config) step by step:
1. Read USAGE.md and source/eslint.config.js, source/prettier.config.js,
source/stylelint.config.js, and source/tsconfig.json carefully.
2. Install all required Node dependencies listed in USAGE.md ## Required
dependencies using pnpm.
3. Create or update my project's eslint.config.js to extend the Zulip flat
config from source/eslint.config.js, adding any project-specific overrides
I describe below.
4. Create or update prettier.config.js to spread source/prettier.config.js
and apply my overrides.
5. Create or update stylelint.config.js similarly.
6. Update my tsconfig.json to extend source/tsconfig.json.
7. Add pnpm scripts for lint, format, and typecheck that cover both source/
and my own src/ directory.
8. Verify no ESM/CJS conflicts exist (all configs must use ESM export default).
9. Show me the final contents of each config file and the updated package.json
scripts section.
My project-specific requirements: [DESCRIBE YOUR OVERRIDES HERE]
Zulip is distributed under the Apache License 2.0. See source/LICENSE for the full text and source/NOTICE for attribution notices. Upstream repository: https://github.com/zulip/zulip.
This product’s unique contribution is clean room implementation of valuable code block into AVCP compatible standard.
Hướng dẫn cài đặt đầy đủ và prompt tích hợp sẽ mở khóa sau khi mua.
PHP, Laravel & Business Scripts
Miễn phí