Skip to content

deholic/deck

Repository files navigation

Deck

오픈소스 페디버스 웹 클라이언트입니다. 여러 계정을 등록해 전환하면서 여러 타임라인 섹션을 동시에 확인하고, 스트리밍으로 실시간 반영합니다.

텍스트돈 라이트 모드 미리보기 텍스트돈 다크 모드 미리보기

시작하기

bun install
bun run dev

빌드

bun run build

빌드 결과물은 dist에 생성됩니다.

기능

  • 마스토돈/미스키 계정 등록 및 전환
  • 홈 타임라인 스트리밍 + 무한 스크롤
  • 여러 타임라인 섹션 + 섹션별 계정 선택
  • 섹션 추가/삭제 및 좌우 이동
  • 타임라인 보드 드래그 이동
  • 글/답글 작성 + 공개 범위 선택
  • 이미지 첨부 + 미리보기
  • 커스텀 이모지 팔레트 + 최근 이모지
  • 좋아요/부스트/리노트 토글
  • 내 글 삭제(확인 모달)
  • 공개 범위 아이콘 표시
  • 콘텐츠 경고 토글
  • 이미지 인라인 + 확대 뷰어
  • 링크 미리보기 카드
  • 커스텀 이모지 표시 옵션(설정에서 토글)
  • 리액션 표시 옵션(설정에서 토글)
  • 피드 프로필 이미지 표시 옵션(설정에서 토글)
  • 섹션 크기 설정(작게/중간/크게)
  • 테마 설정(기본/크리스마스/하늘핑크/모노톤)

프로젝트 구조

  • src/domain: 도메인 모델 정의
  • src/services: 추상 서비스 인터페이스
  • src/infra: Mastodon/Misskey API, 스트리밍 구현
  • src/ui: 화면 구성 및 상태 관리
  • src/ui/styles: base/layout/components/theme 분리

배포

배포는 사용하는 환경에 따라 달라질 수 있습니다.

  • 예시: GitHub Actions를 통해 develop은 beta(GitHub Pages), main은 production(Cloudflare Pages) 기준으로 자동 배포
  • 빌드 후 dist 정적 파일을 원하는 호스팅에 직접 배포할 수도 있습니다.

오픈소스

프로젝트에서 사용하는 주요 오픈소스는 다음과 같습니다.

  • React: UI 렌더링 라이브러리
  • Vite: 번들링 및 개발 서버
  • DOMPurify: 콘텐츠 렌더링 시 XSS 정화
  • emoji-datasource: 커스텀 이모지 메타데이터
  • Wrangler: Cloudflare 배포 도구

기여 방법

프로젝트 개선을 위한 PR을 환영합니다.

  1. 저장소를 포크한 뒤 develop 브랜치를 최신으로 맞춥니다.
  2. feature/{기능-이름} 브랜치를 생성해 작업합니다.
  3. bun install 후 변경 사항을 확인합니다.
  4. 변경 내용과 이유를 설명하는 PR을 develop 브랜치로 보냅니다.

About

오픈소스 페디버스 웹 클라이언트

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •