calcom/cal.com
By the numbers
Data collected on 2026-04-30, against main @ 44ccc72.
Size
The repo is dominated by TypeScript: roughly 70% of all source-line count is .ts + .tsx. The .json count is inflated by translation bundles under apps/web/public/static/locales/ and packages/i18n/locales/.
xychart-beta horizontal
title "Lines of code by language"
x-axis ["TypeScript (.ts)", "React (.tsx)", "JSON (i18n + config)", "Markdown", "CSS", "Prisma schema", "JavaScript"]
y-axis "Lines" 0 --> 200000
bar [163593, 131730, 196563, 24842, 14284, 2877, 1329]| File group | Files | Lines |
|---|---|---|
.ts (excluding generated, node_modules, .next) |
3,874 | 163,593 |
.tsx |
1,149 | 131,730 |
.md |
353 | 24,842 |
.json (incl. i18n) |
many | 196,563 |
.prisma |
1 main schema | 2,877 |
.css |
small | 14,284 |
.js |
minimal | 1,329 |
The Prisma schema alone is a single 2,877-line file with 100 models and 46 enums (packages/prisma/schema.prisma). The largest source file in the repo by line count is packages/features/bookings/lib/handleNewBooking/handleNewBooking.ts and its sibling modules.
Workspaces
apps/: 3 deployable apps (web,api/v2,docs) plus a thinapps/api/index.jsproxy entrypackages/: ~30 first-class workspaces, plus 111 sub-packages underpackages/app-store/*, plus several underpackages/embeds/*,packages/features/*,packages/platform/*example-apps/: example integrations__checks__/: Checkly synthetic checks
The single largest workspace by directory count is packages/app-store/ with 111 integration directories.
Activity
xychart-beta horizontal
title "Commits per month (last 12 months)"
x-axis ["2025-05", "2025-06", "2025-07", "2025-08", "2025-09", "2025-10", "2025-11", "2025-12", "2026-01", "2026-02", "2026-03", "2026-04"]
y-axis "Commits" 0 --> 700
bar [283, 206, 292, 289, 373, 274, 248, 493, 618, 306, 90, 68]Total commits to main: 16,429 since 2021-03-10. Unique authors across all of history: 937.
Churn hotspots (last 90 days)
| File | Touches |
|---|---|
apps/web/public/static/locales/en/common.json |
30 |
yarn.lock |
23 |
packages/i18n/locales/en/common.json |
17 |
packages/prisma/schema.prisma |
15 |
packages/features/bookings/repositories/BookingRepository.ts |
15 |
packages/features/bookings/lib/service/RegularBookingService.ts |
14 |
package.json |
14 |
docs/api-reference/v2/openapi.json |
13 |
apps/web/package.json |
13 |
The BookingRepository.ts and RegularBookingService.ts numbers are a clear "hot spot" — the booking service is being actively refactored (see features/bookings).
Bot-attributed commits
Cal.com uses several bots for routine maintenance:
- 1,690 commits include a
Co-authored-by:trailer pointing at a[bot]account (dependabot[bot],github-actions[bot],kodiak[bot], etc.). That is roughly 10.3% of total commits. - The
kodiak[bot]account in particular handles auto-merging based on.kodiak.toml. - No
factory-droid[bot]co-authorship is present in the history sampled.
Inline AI assistants (Copilot, Cursor, Claude in IDE) leave no trace in git history, so the actual share of AI-assisted work is necessarily higher than this lower bound.
Complexity signals
- Largest single Prisma table: the
Usermodel — the schema header for it is the busiest section ofpackages/prisma/schema.prismaand ties into nearly every domain. - Deepest import fan-in:
packages/lib/constants.ts, imported by hundreds of files. - Deepest service:
packages/features/bookings/lib/handleNewBooking/— the booking pipeline is split across dozens of small modules under one directory. - Test-to-code ratio: Vitest unit tests, Playwright E2E specs, and Jest specs in
apps/api/v2. Theapps/web/playwright/tree alone is large enough to deserve its own subsystem write-up.
Per-subsystem stats
For every domain page in this wiki you will find an "Active contributors" byline and a "Key source files" table that counts files, recent commits, and bus-factor (unique committers in the last 90 days). See [features/bookings](features/bookings.md) for an example.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.