Gambaran Umum
Ruang kerja kolaboratif real-time dengan editor rich-text, papan Kanban, presensi langsung, dan riwayat versi. Dibangun dengan replikasi bebas konflik CRDT menggunakan Yjs + ProseMirror sehingga banyak pengguna dapat mengedit secara bersamaan dengan resolusi konflik otomatis. Menampilkan fitur urungkan/ulangi multi-pemain, Kanban seret-dan-lepas dengan pengindeksan pecahan, riwayat versi berbasis jepretan, sistem undangan dengan peran editor/pelihat, otentikasi JWT memori dengan token penyegaran berputar dan deteksi penggunaan kembali.
Masalah
Tim remote dan hybrid kesulitan dengan fragmentasi alat — dokumen di Google Docs, tugas di Trello, komunikasi di Slack — menyebabkan perpindahan konteks, konflik versi, dan hilangnya riwayat pekerjaan. Editor kolaboratif yang ada tidak memiliki pengeditan real-time tanpa konflik yang sesungguhnya, dan sebagian besar alat Kanban tidak memiliki kesadaran kehadiran langsung. Tidak ada workspace ringan yang dapat di-host sendiri yang menyatukan pengeditan teks kaya, manajemen tugas, dan kolaborasi langsung dalam satu platform koheren tanpa vendor lock-in.
Solusi
Pulse adalah workspace kolaboratif real-time yang dibangun dengan Go dan Next.js yang menyatukan editor dokumen teks kaya, papan Kanban, dan sistem kehadiran langsung. Editor menggunakan Yjs CRDT (Conflict-Free Replicated Data Type) dengan ProseMirror untuk resolusi konflik otomatis — banyak pengguna mengedit secara bersamaan tanpa saling menimpa. Papan Kanban menggunakan fractional indexing dengan kontrol konkurensi optimistik untuk drag-and-drop yang mulus. Kehadiran langsung menampilkan kursor, seleksi, dan status online secara real-time. Autentikasi JWT in-memory dengan rotating refresh token dan deteksi reuse memberikan autentikasi stateless yang aman.
Fitur Unggulan
Editor Kolaboratif CRDT
Pengeditan teks kaya tanpa konflik berbasis Yjs dengan ProseMirror. Banyak pengguna mengedit secara bersamaan dengan resolusi konflik otomatis — tidak perlu merge manual. Mendukung heading, list, bold, italic, code block, dan lainnya.
Sistem Kehadiran Langsung
Indikator kursor dan seleksi real-time menampilkan posisi setiap pengguna dalam dokumen. Status online/offline, nama pengguna, dan warna kursor memberikan kesadaran tim penuh selama pengeditan kolaboratif.
Papan Kanban dengan Fractional Indexing
Drag-and-drop tugas antar kolom dengan fractional indexing untuk pengurutan yang efisien. Kontrol konkurensi optimistik mencegah konflik saat banyak pengguna memindahkan tugas secara bersamaan.
Riwayat Versi Berbasis Snapshot
Simpan snapshot dokumen secara otomatis dengan metadata pengguna dan timestamp. Kembalikan dokumen ke state sebelumnya dengan sekali klik. Riwayat lengkap dengan diff visual untuk setiap perubahan.
Sistem Undangan dengan RBAC
Bagikan workspace melalui link undangan yang aman. Tetapkan peran editor (baca-tulis) atau viewer (baca saja). Pemilik workspace dapat mengelola anggota dan mencabut akses kapan saja.
Autentikasi JWT dengan Rotating Token
Token refresh yang berputar dengan deteksi reuse mencegah serangan token theft. Session in-memory dengan Redis untuk pencabutan token instan. Logout di semua perangkat didukung melalui invalidasi token.
Arsitektur
Backend Go dengan Gorilla WebSocket untuk koneksi real-time. PostgreSQL (pgx) menyimpan dokumen, tugas, snapshot, dan pengguna. Redis menangani session, refresh token blacklist, dan rate limiting. Frontend Next.js 14 dengan App Router. Yjs CRDT library dengan ProseMirror untuk editor kolaboratif. TanStack Query untuk state management dan caching. Docker Compose untuk deployment dengan container Go, PostgreSQL, Redis, dan Next.js.
Cara Penggunaan
Daftar akun dan workspace default dibuat secara otomatis. Buat dokumen dalam workspace dan undang anggota tim melalui link undangan yang dapat dibagikan dengan peran editor atau viewer. Buka dokumen untuk memulai pengeditan kolaboratif — indikator kehadiran menampilkan kursor dan seleksi pengguna lain secara real-time. Gunakan papan Kanban untuk mengelola tugas dengan drag-and-drop antar kolom. Riwayat versi memungkinkan pemulihan berbasis snapshot dari setiap state dokumen. Pemilik workspace dapat mengelola peran anggota melalui panel anggota.
Dampak & Hasil
Mendemonstrasikan kolaborasi real-time tingkat produksi menggunakan teknologi CRDT yang menghilangkan konflik merge sepenuhnya. Undo/redo multiplayer per-pengguna memastikan pengeditan individual dapat dibalik tanpa memengaruhi pekerjaan rekan tim. Backend Go dengan pgx dan Redis mencapai konkurensi tinggi dengan jejak memori minimal. Deployment Docker Compose membuat self-hosting menjadi mudah. Sistem rotating refresh token dengan deteksi reuse mencegah serangan pencurian token. Throttling kehadiran WebSocket (20 msg/s klien, 50ms batch server) menjaga sinkronisasi real-time tetap efisien dalam skala besar.
