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.
A production-shaped team workspace: boards, chat, files, and schedules kept in sync over WebSockets, behind a NestJS API with Redis fan-out, BullMQ queues, and Postgres. Built solo, with a live demo.
ProductivityTypeScript · JavaScriptGitHub @JustTunyaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
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.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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) |