TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Full real-time collaborative workspace platform — live project boards, drag-and-drop task sync, and modular workspaces, backed by a NestJS API with Socket.IO realtime, BullMQ queues, and JWT session auth.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
An enterprise-grade collaborative workspace, engineered end to end — public portal, authenticated dashboard, and a horizontally scalable real-time backend keeping tasks, files, and distributed teams in perfect sync. Portfolio project.查看完整 README ↗
Boards, chat, files, and schedules in one place, live in every open tab, with optional Claude-powered summaries, digests, task drafts, and stand-up notes.
Early access · built by Tunya Lénárd-Sándor · Join the waitlist · a shared demo with sample data is available from the site
Small teams often run work across a task tracker, a chat app, and a file drive, and lose context moving between them. crwsync keeps boards, chat, files, and schedules in one workspace, and uses Claude to keep long threads and busy boards readable.
Optional, off by default, server-side only, and member-triggered. See AI features for configuration and data handling.
Planned, not yet built: free early access today, a paid tier for larger teams, and a hosted product with a documented self-host path. No prices are set. Commercial licensing or partnership: [email protected].
crwsync is a shared workspace for small teams and crews that run work from boards, chat, and files. A team signs in, organizes work into projects, moves tasks around a shared board, and watches teammates' changes land instantly, while a decoupled backend enforces auth, queues background work, and fans out real-time state over WebSockets.
The architecture reflects deliberate separation of concerns rather than a single monolith: three independently deployable services — a public marketing portal, an authenticated dashboard, and a NestJS API — share one root domain via subdomains in production, isolating public traffic from authenticated workloads, and run together locally through a unified Turborepo pipeline.
dash.crwsync.xyz)@dnd-kit-powered drag-and-drop task board with
optimistic reordering that reconciles against the API and patches other
clients' caches over the socket the moment a card moves.@crwsync/i18n package (English/Spanish shipped) instead of being
hardcoded per component.@crwsync/backend) — a strict, modular NestJS service
on Node, exposing REST endpoints and a Socket.IO gateway behind one
well-structured process, organized into focused modules (auth, workspace,
board, chat, files, search, statistics, notification, storage, contact).stack.yml for Docker Swarm with rolling updates and per-service
resource limits built in from day one.| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (App Router), React 19 |
| Backend | NestJS 11 on Node.js |
| Language | TypeScript |
| Styling / motion | Tailwind CSS v4, Radix UI, Framer Motion |
| State / Data | Zustand, TanStack Query |
| Data / ORM | PostgreSQL 16, Prisma 7 |
| Realtime | Socket.IO + Redis adapter |
| Queues | BullMQ |
| Auth | Passport.js (JWT/Local), bcrypt, HTTP-only cookies |
| Object storage | S3-compatible (MinIO dev / Cloudflare R2 prod), presigned uploads |
| Rich editing / DnD | Tiptap, dnd-kit |
| Observability |
pnpm install
docker-compose -f docker-compose.dev.yml up -d # local Postgres + Redis
pnpm --filter @crwsync/backend run prisma:generate
pnpm --filter @crwsync/backend run prisma:migrate:dev
pnpm run dev
http://localhost:3000http://localhost:3001http://localhost:8080Create a .env in each of apps/frontend/web, apps/frontend/dash, and
apps/backend and fill in:
| Variable | Where it comes from |
|---|---|
NEXT_PUBLIC_API_URL, NEXT_PUBLIC_WEB_URL, NEXT_PUBLIC_DASH_URL | local dev URLs of the three services |
DATABASE_URL | docker-compose.dev.yml credentials against local Postgres |
REDIS_HOST, REDIS_PORT, REDIS_KEY_PREFIX | docker-compose.dev.yml local Redis |
JWT_ACCESS_TOKEN_SECRET, JWT_REFRESH_TOKEN_SECRET, COOKIE_SECRET | any string — sign local sessions and cookies |
MAIL_HOST, MAIL_PORT, MAIL_USER, MAIL_PASS | an SMTP provider (e.g. Zoho Mail), for transactional email |
CORS_ORIGIN, APP_URL, ACCESS_COOKIE_DOMAIN, REFRESH_COOKIE_DOMAIN | localhost for local dev |
STORAGE_ENDPOINT, STORAGE_BUCKET, STORAGE_ACCESS_KEY, STORAGE_SECRET_KEY, STORAGE_REGION | docker-compose.dev.yml MinIO credentials locally; an S3-compatible bucket (e.g. Cloudflare R2) in production |
CONTACT_EMAIL (backend), NEXT_PUBLIC_CONTACT_EMAIL (web) | the inbox that receives contact-form messages and the address shown on the site and in legal pages; the committed default is a placeholder |
AI_ENABLED, ANTHROPIC_API_KEY, ANTHROPIC_MODEL, AI_DAILY_LIMIT_PER_USER, AI_MAX_INPUT_MESSAGES | optional AI features, see below |
SENTRY_DSN / NEXT_PUBLIC_SENTRY_DSN, SENTRY_ENVIRONMENT, SENTRY_TRACES_SAMPLE_RATE | optional — leave blank to run without error monitoring locally |
The API can call Claude for four features: a chat-room summary, a board
digest, task drafts from selected messages, and a per-member stand-up. They
are off unless AI_ENABLED=true; with it off, every AI endpoint answers 404
and the dashboard hides the buttons. All calls are made server-side through
a BullMQ ai queue and the browser polls a job-status endpoint, so the key
never reaches a client.
| Variable | Meaning |
|---|---|
AI_ENABLED | true to enable. The API refuses to start if this is true and the key or model is missing. |
ANTHROPIC_API_KEY | Anthropic API key. Set it in your deployment secrets, never in the repo. |
ANTHROPIC_MODEL | Model ID used for every request. Not hardcoded; pick a current ID from the Anthropic docs. |
AI_DAILY_LIMIT_PER_USER | Requests per user per UTC day (default 20). Over the limit the API answers 429. |
AI_MAX_INPUT_MESSAGES | Most chat messages sent in one request (default 200). |
Only the fields a feature needs (author display name, timestamp, text, task titles and dates) are sent to Anthropic. Request metadata (user, workspace, feature, token counts, latency) is logged; message content and model output are not.
apps/frontend/web — the public marketing portalapps/frontend/dash — the authenticated dashboard: home, board, chat,
files, schedules, statistics, search, and settings (Next.js App Router)apps/backend — NestJS API, Socket.IO gateway, BullMQ workers, modularized
by domain (auth, workspace, board, chat, files, search,
statistics, notification, storage, contact, waitlist, ai, …)packages/types — shared domain types and operation-result shapes used by
both frontends and the backendpackages/styles — shared Tailwind design tokens/configpackages/templates — transactional email templatespackages/i18n — shared localization strings/hooks (English, Spanish)stack.yml — production Docker Swarm deployment definitionSource-available under the Functional Source License 1.1, Apache 2.0 future license (FSL-1.1-ALv2). You can read, study, and use the code for any purpose except offering a competing product or service; each release converts to Apache 2.0 two years after publication. Commercial licensing: [email protected].
| Sentry (backend + dashboard) |
| i18n | @crwsync/i18n (English, Spanish) |
| Testing | Vitest (frontend), Jest (backend) |
| Monorepo | Turborepo, pnpm |
| CI/CD | GitHub Actions, Dependabot |
| Deployment | Docker, Docker Swarm (stack.yml) |