NexiBase는 Next.js 16 기반의 오픈소스 풀스택 CMS입니다. 게시판·카테고리·회원·쇼핑몰·FAQ 등 커뮤니티/콘텐츠 사이트에 필요한 기능을 플러그인 단위로 묶어 제공합니다.
기술 스택은 Next.js 16 App Router, React 19, Prisma + MySQL, Tailwind 4입니다.
커뮤니티 사이트, 정보 제공 사이트, 쇼핑몰, 사내 인트라넷 등 콘텐츠 중심의 웹사이트에 두루 쓸 수 있습니다. 기본 제공되는 게시판·폴·FAQ·쇼핑 플러그인을 조합하거나, 직접 플러그인을 추가해 확장할 수 있습니다.
네. MIT 라이선스로 공개되어 있어 상업적 사용을 포함해 자유롭게 쓸 수 있습니다. 저작권 고지만 유지하면 됩니다.
워드프레스가 PHP 기반의 성숙한 CMS라면, NexiBase는 Next.js 16 + React 19 + TypeScript 기반의 모던 스택을 씁니다. 다음 특징이 다릅니다:
GitHub 저장소에서 확인하실 수 있습니다: github.com/nexibase/nexibase
이슈·풀 리퀘스트 환영합니다.
최소 요구사항:
프로덕션에서는 PM2·Nginx 등으로 프로세스/리버스 프록시를 붙이는 걸 권장합니다.
다음 순서로 설치합니다:
첫 접속 시 설치 마법사가 열려 초기 관리자 계정과 사이트 설정을 안내합니다.
현재는 MySQL / MariaDB를 공식 지원합니다. Prisma를 통해 접근하므로 다른 DB로 이식 자체는 가능하지만, 마이그레이션·테스트가 추가로 필요합니다.
첫 배포 후 사이트에 접속하면 설치 마법사(/install)가 자동으로 열립니다. 관리자 이메일·비밀번호·사이트 이름을 입력하면 role=admin인 첫 계정이 생성됩니다.
기본적으로 GitHub에서 최신을 pull 받은 뒤 다음을 실행합니다:
NexiBase에서 플러그인은 한 폴더(src/plugins/<name>/) 안에 라우트·API·데이터 모델·관리자 UI·번역 파일을 모두 담은 독립 기능 단위입니다. 플러그인 하나를 추가/제거하면 사이트의 해당 기능이 통째로 켜지거나 꺼집니다.
현재 기본 번들:
관리자 페이지의 플러그인 관리 화면에서 각 플러그인을 켜거나 끌 수 있습니다. 비활성화하면 해당 플러그인의 라우트·위젯·관리 메뉴가 숨겨집니다.
코드 레벨에서 완전히 제거하려면 src/plugins/<name>/ 디렉토리를 삭제하고 다시 빌드하면 됩니다.
네. src/plugins/my-plugin/에 plugin.ts(메타 정보), 선택적으로 schema.prisma(DB 모델), routes/(공개 페이지), admin/(관리자 UI), api/(서버 API), locales/(번역)를 두면 빌드 스캐너가 자동으로 앱에 통합합니다.
자세한 구조는 기존 플러그인(예: faq-accordion) 소스를 참고하세요.
테마는 사이트의 색상·폰트·기본 스타일을 묶은 설정입니다. 기본 번들에는 다음이 포함됩니다:
테마는 src/themes/<name>/ 폴더에 정의되며, 새 테마도 동일한 방식으로 추가할 수 있습니다.
관리자 페이지의 사이트 설정 > 테마에서 전체 사이트의 기본 테마를 바꿀 수 있습니다. 변경 즉시 반영됩니다.
네. src/app/custom.css 파일을 편집하면 모든 페이지에 스타일이 주입됩니다. 테마 변수를 덮어쓰거나 특정 컴포넌트만 손볼 수 있습니다.
설치 직후에는 src/app/custom.example.css의 내용이 복사되어 있으며, 이후부터는 custom.css를 자유롭게 수정하세요.
위젯은 랜딩 페이지·서브 페이지 등 레이아웃의 특정 영역에 꽂아 넣을 수 있는 조립형 블록입니다. 예: 인기 게시글, 날씨, GitHub 통계, 카운트다운, 설문 결과 등.
플러그인이 자신의 위젯을 자동 등록하므로, 새 플러그인을 추가하면 사용 가능한 위젯 목록도 늘어납니다.
관리자 페이지의 레이아웃/페이지 편집에서 원하는 영역에 위젯을 선택해 추가하고 드래그로 순서를 조절합니다. 위젯마다 노출 설정(예: 표시할 개수, 카테고리)이 다를 수 있습니다.
/admin 경로로 접근합니다. role이 admin 또는 manager인 계정만 진입할 수 있습니다.
기본 세 등급이 있습니다:
각 플러그인은 자체적으로 회원 탈퇴 정책을 선언합니다. 데이터 성격에 따라 다르게 처리됩니다:
이 정책은 플러그인 코드에 명시되어 빌드 시 검증되므로, 누락된 처리가 있으면 빌드 자체가 실패합니다.
네. 관리자 설정에서 한국어(ko)와 영어(en) 중 UI 언어를 선택할 수 있습니다. 번역되지 않은 문자열은 기본 언어로 표시됩니다.
참고: UI 문자열만 번역되며, 작성된 게시글·FAQ 등의 콘텐츠는 언어별로 따로 저장되지 않습니다.
네. 각 플러그인의 locales/<언어코드>.json을 추가하거나 수정하면 해당 언어의 UI 문자열을 바꿀 수 있습니다. 빌드 시 자동으로 머지되어 적용됩니다.