Skip to content

pranavmamatha/CodeShare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CodeShare

CodeShare Logo

Real-time collaborative code editor with auto-save functionality

πŸ‘‰ Live Preview πŸ‘ˆ

WebSocket Prisma PostgreSQL Express TypeScript Node.js



πŸš€ Why CodeShare?

Real-time collaboration. See changes instantly. Auto-saves.



⚑ How It Works

  1. Create Room β†’ Get unique room ID
  2. Join & Collaborate β†’ Multiple users connect via WebSocket
  3. Real-time Sync β†’ Changes broadcast instantly
  4. Auto-save β†’ Saves after 10 seconds of inactivity



✨ What Makes It Unique

  • Debounced Auto-save β†’ No data loss
  • Hybrid State β†’ Memory + database
  • Zero Config β†’ Generate rooms on-demand



πŸ“š What I Learned

  • WebSocket State Management β†’ Connection cleanup
  • Performance Optimization β†’ Memory vs database balance
  • Timeout Management β†’ Debounced auto-save
  • Real-time Architecture β†’ Data consistency



πŸ› οΈ Setup

npm install
npx prisma generate
npx prisma migrate dev
npm run dev



πŸ”Œ API

Create Room:

GET / β†’ { roomId: "abc12" }

WebSocket Events:

// Join room
{ type: "join", payload: { roomId: "abc12" } }

// Send code
{ type: "code", payload: { roomId: "abc12", code: "console.log('hello');" } }



πŸš€ Future Development

  • Better Error Handling β†’ Retry mechanisms
  • Read-only Mode β†’ Observer permissions
  • Permanent Storage β†’ Persistent repositories
  • User Cursors β†’ Real-time editing positions



πŸ’» Tech Stack

  • Backend β†’ Node.js + TypeScript + Express
  • Real-time β†’ WebSocket (ws library)
  • Database β†’ PostgreSQL + Prisma ORM

About

Real-time collaborative code editor with auto-save functionality

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published