由 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 overrides启动隔离沙箱并在服务器端直接运行 — 无需本地配置。
此版本的 Tetrees AI Review
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
管道 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.
审查日期 2026年8月4日
将此产品直接导入你的 AI IDE、网页构建器或云端 IDE。
将 Tetrees 连接到兼容的 AI IDE,列出你拥有的产品并获取已验证 ZIP,同时不会开放卖家上传权限。
暂无评价。
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.
完整安装指南与集成提示词将在购买后解锁。
PHP, Laravel & Business Scripts
免费