Source: https://seerepo.com/compare/actualbudget/actual/vs/twentyhq/twenty
Markdown source: https://seerepo.com/compare/actualbudget/actual/vs/twentyhq/twenty.md
Description: actual and twenty share 11 technologies: Vite, React, Electron, Express, react-error-boundary, react-hotkeys-hook, react-grid-layout, react-markdown, remark-gfm, bcrypt, and openid-client. Both are written in TypeScript.

# actual vs twenty

actual and twenty share 11 technologies: Vite, React, Electron, Express, react-error-boundary, react-hotkeys-hook, react-grid-layout, react-markdown, remark-gfm, bcrypt, and openid-client. Both are written in TypeScript.

- [actualbudget/actual](https://seerepo.com/r/actualbudget/actual): A local-first personal finance app
- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty): The open alternative to Salesforce, designed for AI.

## What they share and what sets them apart

- In common: Vite, React, Electron, Express, react-error-boundary, react-hotkeys-hook, react-grid-layout, react-markdown, remark-gfm, bcrypt, openid-client
- Only in actual: React Router, lru-cache, @capacitor/core, @sqlite.org/sqlite-wasm, SQLite, Capacitor, CapacitorApp, CapacitorCordova, @emotion/css, react-aria-components, usehooks-ts, recharts, react-aria, react-spring, CodeMirror, react-joyride, react-virtualized-auto-sizer, @use-gesture/react, react-dnd, @lezer/highlight, @uiw/react-codemirror, cmdk, downshift, re-resizable, react-dnd-html5-backend, react-swipeable, hyperformula, rehype-external-links, @zumer/snapdom, csv-stringify, mdast-util-newline-to-break, handlebars, xml2js, csv-parse, appcompat, coordinatorlayout, core-splashscreen, workbox-precaching, argon2, jws, express-winston, winston
- Only in twenty: react-router-dom, idb-keyval, Sentry, Stripe, @nestjs/core, bullmq, Postgres, @nestjs/cache-manager, ClickHouse, Redis, aws-sdk, keyv, connect-redis, Google, AWS S3, Anthropic, MCP, OpenAI, NestJS, graphql-scalars, graphql-yoga, emotion, sharp, Zod, @emotion/styled, jose, @fontsource/inter, @tiptap/core, react-email, css-select, css-what, Base UI, tiptap, React Hook Form, Framer, xyflow, @dnd-kit/react, @floating-ui/react, react-intersection-observer, react-data-grid, react-imask, input-otp, monaco-editor, react-dropzone, react-textarea-autosize, linkify-react, @dagrejs/dagre, @graphiql/plugin-explorer, Scalar, country-flag-icons, ai, marked, react-qr-code, papaparse, @hookform/resolvers, TypeORM, @nestjs/typeorm, passport-google-oauth20, jsonwebtoken, @azure/msal-node, express-session, otplib, passport-jwt, passport-microsoft, @node-saml/passport-saml, Passport, ai-sdk, @e2b/code-interpreter, nodemailer, @aws-sdk/client-sesv2, node-ical, @react-pdf/renderer, dompurify, file-type, sanitize-html, html-to-text, class-validator, class-transformer, json-schema, @nestjs/terminus, @aws-sdk/client-lambda, Cloudflare, opentelemetry, entities, lightningcss, PostCSS, frimousse, @tabler/icons-react

## Side by side

| | actual | twenty |
|---|---|---|
| Size | 358,371 lines written, 1,773 code files | 2,785,537 lines written, 26,644 code files |
| Who writes it | 8.5% of its commits signed by AI. With Claude Code, CodeRabbit, Cursor, GitHub Copilot, and Gemini CLI | 1.9% of its commits signed by AI. With Claude Code, Cursor, GitHub Copilot, and Sweep |
| Activity | Last push November 7, 2026, 5,573 commits, 30,069 stars | Last push November 5, 2026, 17,869 commits, 60,472 stars |
| Tests | 426 test files. 18.3% of its code files have a test that imports them | 7,108 test files. 29% of its code files have a test that imports them |

- Size: Lines written by people and agents, without generated ones; code files, without tests.
- Who writes it: A commit counts as AI's when it carries its signature: a Co-Authored-By line, its author name or the merge of its branch.
- Activity: From GitHub and its history, on the day SeeRepo read it.
- Tests: The files that test the code, and the share of code files a test imports.

## Frequently asked questions

### Which is bigger, actual or twenty?

twenty, with 2,785,537 lines written; actual has 358,371.

The proof: [twentyhq/twenty's code at commit 8919279](https://github.com/twentyhq/twenty/tree/8919279eb61454c40b27b118d9b43ab0e7a3e040)

### Which has more GitHub stars, actual or twenty?

twenty, with 60,472 stars; actual has 30,069.

The proof: [twentyhq/twenty on GitHub](https://github.com/twentyhq/twenty)

### Which has more tests, actual or twenty?

twenty, with 7,108 test files; actual has 426.

The proof: [twentyhq/twenty's code at commit 8919279](https://github.com/twentyhq/twenty/tree/8919279eb61454c40b27b118d9b43ab0e7a3e040)

### Which was updated more recently, actual or twenty?

actual: its last push was on November 7, 2026, and twenty's on November 5, 2026.

The proof: [actualbudget/actual's commits on GitHub](https://github.com/actualbudget/actual/commits)

### Which has more commits signed by AI, actual or twenty?

actual: an AI signed 8.5% of its commits, with Claude Code, CodeRabbit, Cursor, GitHub Copilot, and Gemini CLI; in twenty, 1.9%.

The proof: [the commits each tool signed in actualbudget/actual](https://seerepo.com/r/actualbudget/actual/ai)

## Sources

- actualbudget/actual: Read on November 8, 2026, at commit 693973b (https://github.com/actualbudget/actual/tree/693973bb3b0c63615856de2b7ff71da44adb47de)
- twentyhq/twenty: Read on November 5, 2026, at commit 8919279 (https://github.com/twentyhq/twenty/tree/8919279eb61454c40b27b118d9b43ab0e7a3e040)

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
