Twenty: AI 시대를 위한 오픈소스 CRM, 코드로 구축
Twenty는 GitHub 스타 5만 9천 개 이상을 받은 오픈소스 CRM입니다. Salesforce의 개방형 대안을 표방하며, 처음부터 AI를 염두에 두고 설계되었습니다. 객체, 뷰, 워크플로, 에이전트를 확장 가능한 기본 모듈로 제공해, 기술 팀이 다른 코드와 똑같이 CRM을 구축하고 배포하고 버전 관리할 수 있습니다. 개발자는 Twenty CLI와 twenty-sdk로 TypeScript 코드에서 객체, 필드, 뷰를 정의하고 명령어 한 줄로 워크스페이스에 배포합니다. 클라우드 서비스와 Docker Compose 기반 셀프 호스팅을 모두 지원하며, Claude Code, Codex, Cursor 같은 코딩 에이전트용 공식 스킬 팩도 제공합니다. 기술 스택은 TypeScript, Nx, NestJS, PostgreSQL, Redis, React입니다. 고객 관리 흐름을 깊이 맞춤화하고 데이터 주권과 엔지니어링 중심 납품을 중시하는 팀에 적합합니다.
배경
고객 관계 관리(CRM) 소프트웨어는 기업용 소프트웨어에서 가장 오래된 분야 중 하나입니다. Salesforce 같은 상용 업체가 오랫동안 시장을 이끌어 왔습니다. 기존 CRM의 불편은 익숙합니다. 필드와 프로세스를 관리자 화면에서 하나씩 클릭해 설정합니다. 그 설정은 코드 저장소에 들어가지 않으므로 검토도 어렵고 되돌리기도 어렵습니다. 업무가 바뀔 때마다 팀은 블랙박스 같은 화면을 반복해서 만져야 합니다.
Twenty는 바로 이 문제를 겨냥한 오픈소스 CRM입니다. GitHub 스타를 5만 9천 개 넘게 받았고, Salesforce의 개방형 대안을 표방하며, 처음부터 AI를 염두에 두고 설계되었다고 밝힙니다. 프로젝트의 핵심 주장은 단순합니다. 기술 팀에 필요한 것은 동작이 고정된 완성품이 아니라 직접 조립할 수 있는 구성 요소라는 것입니다. 공식 설명에 따르면 Twenty는 기술 스택의 다른 부분처럼 구축하고, 배포하고, 버전 관리하는 CRM입니다.
심층 분석
CRM을 코드로 구축한다는 것은 구체적으로 무엇을 뜻할까요? Twenty의 기본 모듈은 객체, 뷰, 워크플로, 에이전트입니다. 객체는 고객이나 거래 같은 업무 개체에 해당하고, 뷰는 데이터를 보여 주는 방식을 정합니다. 워크플로는 자동화를 맡고, 에이전트는 AI를 업무 흐름 안으로 직접 들여옵니다. 가장 눈에 띄는 점은 이 모듈들을 코드로 작성한다는 것입니다. README 예시에서는 twenty-sdk의 defineObject로 deal 객체를 선언합니다. 단수형과 복수형 이름, 표시 레이블, 그리고 이름, 금액, 예상 마감일 같은 필드를 지정합니다. 필드 유형은 텍스트, 통화, 날짜·시간입니다. 이 정의는 일반 TypeScript 파일이므로 Git에 두고 코드 리뷰를 거치며 버전과 함께 발전시킬 수 있습니다. 배포도 같은 논리를 따릅니다. app:publish 명령 한 줄로 애플리케이션을 비공개 앱으로 워크스페이스에 올립니다. 화면에서 항목을 하나씩 설정하는 방식과 달리, 변경을 추적하고 재현하고 자동화할 수 있습니다. 코딩 에이전트도 공식 지원합니다. Claude Code, Codex, Cursor, Pi 등 skills CLI가 지원하는 환경에서 쓰는 공식 Twenty app skills를 제공해, AI 도우미가 규칙에 맞게 앱을 만들도록 돕습니다. 기술 스택은 TypeScript와 Nx이고, 백엔드는 NestJS에 BullMQ, PostgreSQL, Redis를 쓰며, 프런트엔드는 React에 Jotai, Linaria, Lingui를 씁니다.
시작하는 길은 세 가지입니다. 가장 빠른 길은 twenty.com의 클라우드 워크스페이스입니다. 프로젝트는 1분 안에 시작할 수 있고 인프라 관리가 필요 없다고 설명합니다. 맞춤 개발은 npx create-twenty-app my-app으로 뼈대를 만든 뒤 코드로 객체, 필드, 뷰를 정의해 배포합니다. 데이터 위치나 규정 준수가 중요한 팀은 Docker Compose로 직접 서버에 셀프 호스팅할 수 있습니다.
산업 영향
Twenty의 의미는 또 하나의 오픈소스 CRM에 그치지 않습니다. 업무용 소프트웨어가 화면 설정에서 코드 정의로, 다시 AI 에이전트가 구축과 운영에 참여하는 방향으로 움직이고 있음을 보여 줍니다. 객체와 뷰가 코드일 때 코딩 에이전트가 이를 읽고 고칠 수 있습니다. 프로젝트가 Claude Code와 Cursor 같은 도구용 스킬 팩을 따로 내놓은 이유가 여기에 있습니다.
엔지니어링 팀은 코드로 정의한 CRM을 다른 시스템과 같은 배포 파이프라인에 올릴 수 있습니다. 버전 관리, 리뷰, 자동 배포를 그대로 누립니다. 규모가 작은 팀에게는 오픈소스와 셀프 호스팅이 특정 업체에 묶일 위험을 줄여 줍니다. 데이터 주권을 중시하는 팀에게도 의미 있는 선택지입니다.
다만 한계도 분명합니다. 코드 중심의 맞춤화는 진입 장벽을 개발자에게 넘기므로, 비개발 직군이 혼자 유지하기는 어려울 수 있습니다. 셀프 호스팅은 운영, 백업, 업그레이드 책임을 팀이 지는 일입니다. README는 agent-skills 브랜치가 첫 게시에 성공한 뒤에야 만들어진다고 적고 있어, 일부 부가 기능은 아직 다듬는 단계로 보입니다. 운영 환경에 쓰기 전에 최신 문서를 확인해야 합니다.
전망
앞으로 Twenty가 어디까지 갈지는 몇 가지 질문에 달려 있습니다. 첫째, 앱 생태계가 재사용 가능한 템플릿 시장으로 자랄 수 있을까요? 앱이 평범한 TypeScript 코드이므로 공유와 재사용은 기술적으로 쉽습니다. 그러나 실제로 풍부한 라이브러리가 생길지는 아직 확인되지 않았습니다.
둘째, 실제 영업 업무에서 에이전트가 얼마나 믿을 만할까요? 프로젝트는 에이전트와 코딩 에이전트 스킬을 위한 장치를 제공합니다. 하지만 README에는 측정된 성과가 나와 있지 않습니다. 고객 접점을 자동화에 맡기기 전에 자기 데이터로 먼저 시험해 보아야 합니다.
셋째, 대기업 요구에 얼마나 맞을지입니다. 제공된 자료는 기술 스택, 배포 방식, 개발 도구를 설명할 뿐 대규모 규정 준수나 거버넌스 기능은 다루지 않습니다. 이 부분은 문서에서 따로 확인해야 합니다. 이런 영역이 성숙하면 Twenty는 에이전트 시대의 오픈소스 기업용 소프트웨어를 대표하는 사례가 될 수 있습니다. 지금 가장 잘 맞는 팀은 고객 관리 흐름을 깊이 맞춤화하고 싶고, 데이터 주권을 중시하며, CRM을 엔지니어링 작업으로 다루는 데 익숙한 팀입니다.
Sources
FAQ
Twenty는 무엇이고 어떤 CRM인가요?
Twenty는 GitHub 스타 5만 9천 개 이상을 받은 오픈소스 CRM입니다. Salesforce의 개방형 대안을 표방하며 처음부터 AI를 염두에 두고 설계되었습니다. 객체, 뷰, 워크플로, 에이전트를 확장 가능한 모듈로 제공해, 기술 팀이 다른 코드처럼 CRM을 구축하고 배포하고 버전 관리할 수 있습니다.
CRM을 코드로 구축하는 것이 왜 중요한가요?
기존 CRM은 관리 화면에서 필드와 프로세스를 설정하기 때문에 코드 저장소에 들어가지 않고, 검토나 롤백도 어렵습니다. Twenty는 TypeScript로 객체, 필드, 뷰를 정의합니다. 변경 사항을 Git으로 관리하고 추적과 자동화가 가능하며, 코딩 에이전트도 읽고 수정할 수 있습니다.
Twenty 도입 전에 무엇을 살펴보고, 다음 단계는 무엇인가요?
Twenty의 코드 기반 맞춤화는 개발자에게 진입 장벽을 넘기므로 비기술 직원이 혼자 유지하기 어려울 수 있고, 셀프 호스팅은 운영, 백업, 업그레이드를 직접 책임져야 합니다. 기사에 따르면 일부 부가 기능은 아직 발전 중입니다. 클라우드 워크스페이스를 써 보거나 npx create-twenty-app을 실행하고 최신 문서를 확인하세요.