All Projects → TomaszRewak → TimeWriter

TomaszRewak / TimeWriter

Licence: MIT license
An online collaborative text editor based on event sourcing architecture.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to TimeWriter

Fortran-Tools
Fortran compilers, preprocessors, static analyzers, transpilers, IDEs, build systems, etc.
Stars: ✭ 31 (-24.39%)
Mutual labels:  text-editor
Learning.EventStore
A framework for CQRS, Eventsourcing, and messaging that uses Redis pub/sub for messaging and offers event persistence in Redis, SQL Server, or PostgreSQL.
Stars: ✭ 58 (+41.46%)
Mutual labels:  event-sourcing
ddes
JS/TypeScript framework for Distributed Event Sourcing & CQRS
Stars: ✭ 28 (-31.71%)
Mutual labels:  event-sourcing
go-eventually
Idiomatic Event Sourcing in Go
Stars: ✭ 76 (+85.37%)
Mutual labels:  event-sourcing
FreeText
Android 字体 文字 特效 动画效果
Stars: ✭ 140 (+241.46%)
Mutual labels:  text-editor
domain
A dependency-free package to help building a business domain layer
Stars: ✭ 33 (-19.51%)
Mutual labels:  event-sourcing
slack-community
Docs related to DDD-CQRS-ES Discord Community
Stars: ✭ 58 (+41.46%)
Mutual labels:  event-sourcing
lime-termbox
LimeText termbox frontend
Stars: ✭ 58 (+41.46%)
Mutual labels:  text-editor
counter-interview.dev
a collaborative collection of interview questions collected from both sides of the game: Interviewer(s) and Interviewee.
Stars: ✭ 102 (+148.78%)
Mutual labels:  collaborative
multitextor
Multiplatform command line text editor.
Stars: ✭ 27 (-34.15%)
Mutual labels:  text-editor
penme
Penme is a lightweight open source note taking app focused on privacy!
Stars: ✭ 25 (-39.02%)
Mutual labels:  text-editor
chronicle
An event sourced CQRS framework for Rust
Stars: ✭ 36 (-12.2%)
Mutual labels:  event-sourcing
es-emergency-call
Struggling with CQRS, A+ES, DDD? We can help you!
Stars: ✭ 26 (-36.59%)
Mutual labels:  event-sourcing
Acorn.jl
A pure julia text editor
Stars: ✭ 41 (+0%)
Mutual labels:  text-editor
SyncedStore
SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically.
Stars: ✭ 1,053 (+2468.29%)
Mutual labels:  collaborative
wolkenkit-todomvc
wolkenkit-todomvc is a todo application.
Stars: ✭ 15 (-63.41%)
Mutual labels:  event-sourcing
netcanv
A lightweight app for real-time online collaborative painting.
Stars: ✭ 23 (-43.9%)
Mutual labels:  collaborative
jamhub
low-latency jamming space for musicians
Stars: ✭ 29 (-29.27%)
Mutual labels:  collaborative
Pad
📓 An online, collaborative, real-time notepad built with WebSockets and NodeJS
Stars: ✭ 33 (-19.51%)
Mutual labels:  collaborative
redpanal
RedPanal web
Stars: ✭ 16 (-60.98%)
Mutual labels:  collaborative

Text sourcing

An online collaborative text editor based on event sourcing.

Working example can be found here: https://text-sourcing.tomasz-rewak.com/

A longer project description can be found here: https://blog.tomasz-rewak.com/text-sourcing/

Everything here is written from a scratch: including the text editor as well as the event sourcing logic on the server and the client sides.

About the project

This text editor enables multiple people to edit the same text file at the same time. All users should be even able to edit the same line without any input drops.

This app doesn't send the entire content of the file between users after each change is made, but rather just basic events. Base on those events and the initial state of the document each client should be able to recreate the current state of the document. Event management is not only limited to simple state transformations. Event history is also used for undo/redo operations. The order of events is synchronized based on the server's internal clock so that the impact of communication delay can be neutralized.

Technology

This project is created using javascript, socket.io (for the clinet-server communication) and react (a frontend framework).

Disclaimer

It's just a demo that I've created as a pet project. But if you've found any bugs, please, let me know.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].