Show HN: Lightwave – 실시간 노트 앱, 3.5년간 직접 만든 JavaScript

발행: (2026년 2월 16일 오전 05:57 GMT+9)
4 분 소요

Source: Hacker News

Overview

Hi HN!
저는 약 3년 반 동안 Lightwave solo를 개발해 왔습니다. 새로운 프로젝트/노트 도구(Notion, Asana, Trello 등)를 계속 시도했지만 언제나 결국 일반 텍스트 파일로 돌아왔습니다. 처음 터치했을 때 텍스트 편집기 같은 느낌이면서 필요할 때는 실제 구조로 확장될 수 있는 무언가를 원했습니다.

https://lightwave.so – 위 링크에는 원클릭으로 테스트 계정을 만들 수 있는 버튼이 있습니다.

Tech Stack

  • Backend: Laravel, MySQL, Redis
  • Client: Hand‑rolled JavaScript (React/Vue 등 프레임워크 사용 안 함)
  • Legacy utilities: 전체 80k+ LOC 중 ~270줄의 jQuery (몇 가지 DOM 헬퍼용)
  • Local persistence: IndexedDB
  • Real‑time collaboration: 하이브리드 접근 – 복원력이 높은 작업을 위한 HTTP/2 POST + 실시간 커서, 존재감, 편집을 위한 Laravel Reverb 기반 WebSockets

Features

  • 마크다운을 붙여넣으면 네이티브 블록으로 변환; 블록을 복사하면 마크다운으로 되돌려줍니다.
  • 계층형 파일 관리자를 갖춘 계층형 문서 구조.
  • 공유 커서, 선택 영역, 존재감이 포함된 실시간 협업.
  • 구문 강조와 LaTeX 수식 블록을 지원하는 코드 블록.
  • 전체 데이터 내보내기: 마크다운, JSON, 첨부 파일(벤더 종속 없음).
  • 커서 복원을 포함한 완전한 undo/redo.

Known Rough Edges

  • 커서와 선택 영역 시스템을 처음부터 직접 구현했으며(VS Code와 유사, contenteditable 래퍼 아님) 그만큼 다루어야 할 부분이 많습니다.
  • 일부 키보드 단축키가 누락될 수 있습니다.
  • 데스크톱 전용; 접근성 지원은 아직 구현되지 않음.
  • 진행 중인 수정 사항이 실시간으로 배포되고 있습니다.

Feedback

앱 안에 “Submit Bug or Feedback” 버튼이 있어 문제가 발생하면 바로 전송할 수 있습니다. 아키텍처나 기타 사항에 대해 궁금한 점이 있으면 자유롭게 질문해 주세요.

Comments

Comments on Hacker News (Points: 4)


이것은 출시 전 스트레스 테스트이며, 정식 출시가 아닙니다. Lightwave는 유료 제품이 될 예정이며, 현재 진행 중인 오픈 테스트는 실제 사용자의 피드백을 수집하기 위한 것입니다.

0 조회
Back to Blog

관련 글

더 보기 »

미친 React key

tsx에서 map을 통한 렌더링 export function Parent { const array, setArray = useState(1, 2, 3, 4, 5); useEffect(() => { setTimeout(() => { setArray(prev => [6, 7, 8, 9, 10, ...prev]); ... }); }); }