Latest commit

History

378 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

CodeCafé: Code Together, Instantly.

BuildGitHub starsContributions WelcomeMIT License

A hyper-collaborative, real-time development environment right in your browser. CodeCafé makes pair programming, teaching, and building web projects together as fluid and instant as sharing a thought.

Try CodeCafé Live!

Untitled design (14)

Click here to watch the demo video!

Why CodeCafé?

We saw coding classes juggling tools built for essays, not engineers. Existing solutions felt clunky for the dynamic nature of real-time programming. CodeCafé was born from the need for a seamless, browser-based coding space designed from the ground up for true collaboration. Learn, teach, and build—together, instantly.

Core Features

  • Pixel-Perfect Live Preview: See your HTML, CSS, and JavaScript changes render instantly in an integrated Web View. What you code is what you see!
  • True Real-Time Collaboration: Powered by Operational Transformation, multiple users can type in the same files simultaneously, with conflicts resolved seamlessly.
  • VS Code Feel: Enjoy a familiar, rich editing experience (via Monaco Editor) with syntax highlighting, smart suggestions, and error checking.
  • Zero Setup: Dive straight into coding. Everything runs in the browser.

Tech Stack

  • Frontend: React, TypeScript, Zustand (State Management), Tailwind CSS, Monaco Editor, Xterm.js (Integrated Terminal), Framer Motion, Axios, WebSocket Client
  • Backend: Java Spring Boot, WebSocket API, Jackson (JSON Processing)
  • Real-time Collaboration: Custom Operational Transformation (OT) Implementation
  • State Management / Messaging: Redis (AWS ElastiCache) utilizing Lua Scripting for atomic operations
  • Hosting: AWS EC2 (Backend), Vercel (Frontend), AWS ElastiCache (Redis)

Real-Time Collaboration with Operational Transformation

At the heart of CodeCafé's seamless collaborative editing is our custom-built Operational Transformation (OT) system, implemented on both the frontend and backend.

What is Operational Transformation?

Operational Transformation is the technology that powers real-time collaborative editing in systems like Google Docs. It allows multiple users to simultaneously edit the same document by:

  1. Transforming operations (like insertions and deletions) to preserve user intentions
  2. Ensuring eventual consistency across all clients
  3. Resolving conflicts automatically when users edit the same regions of text

Our implementation handles the complex synchronization challenges of collaborative editing, including:

  • Managing concurrent edits from multiple users
  • Resolving edit conflicts deterministically
  • Maintaining document consistency across all connected clients
  • Preserving intention semantics of user operations

This enables truly fluid, Google Docs-like collaboration where everyone can type simultaneously without stepping on each other's toes.

Quick Start

Option 1: Using Docker (Recommended)

The easiest way to get started with CodeCafé is to use Docker:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start all services using Docker Compose
docker-compose up

Access the app in your browser at http://localhost:80

Option 2: Manual Setup

Prerequisites: Git, Java JDK 23+, Maven, Node.js 18+, npm 9+, Redis Server

Setup and Run:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start Redis (keep this running in a separate terminal or as a background service)
redis-server &# Create backend config file with Redis connection
mkdir -p backend/src/main/resources
echo"spring.redis.host=localhostspring.redis.port=6379"> backend/src/main/resources/application.properties
# Run the backendcd backend
./mvnw install
./mvnw spring-boot:run &# Create frontend config and runcd ../frontend
echo"VITE_BACKEND_URL=http://localhost:8080"> .env
npm install
npm run dev

Access the app in your browser at the URL shown in terminal (typically http://localhost:5173).

CI/CD Pipeline

CodeCafé uses GitHub Actions for continuous integration and deployment:

  • CI Pipeline: Automatically runs tests for both frontend and backend on every pull request and push to main/develop branches.
  • CD Pipeline: Automatically deploys:
    • Backend to AWS EC2 when pushing to the main branch
    • Frontend to Vercel when pushing to the main branch

Setting up CI/CD for your fork:

  1. For AWS deployment:

    • Add the following secrets to your GitHub repository:
      • AWS_ACCESS_KEY_ID
      • AWS_SECRET_ACCESS_KEY
      • AWS_REGION
  2. For Vercel deployment:

    • Add the following secrets to your GitHub repository:
      • VERCEL_TOKEN
      • VERCEL_ORG_ID
      • VERCEL_PROJECT_ID

On the Horizon

  • User authentication & persistent projects
  • Integrated voice/text chat
  • Session rewind & history playback
  • Expanded language support & tooling

License

CodeCafé is open-sourced under the MIT License.


Making collaborative coding magic accessible to everyone.

About

Real-time collaborative code editor built for the web

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

378 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

CodeCafé: Code Together, Instantly.

BuildGitHub starsContributions WelcomeMIT License

A hyper-collaborative, real-time development environment right in your browser. CodeCafé makes pair programming, teaching, and building web projects together as fluid and instant as sharing a thought.

Try CodeCafé Live!

Untitled design (14)

Click here to watch the demo video!

Why CodeCafé?

We saw coding classes juggling tools built for essays, not engineers. Existing solutions felt clunky for the dynamic nature of real-time programming. CodeCafé was born from the need for a seamless, browser-based coding space designed from the ground up for true collaboration. Learn, teach, and build—together, instantly.

Core Features

  • Pixel-Perfect Live Preview: See your HTML, CSS, and JavaScript changes render instantly in an integrated Web View. What you code is what you see!
  • True Real-Time Collaboration: Powered by Operational Transformation, multiple users can type in the same files simultaneously, with conflicts resolved seamlessly.
  • VS Code Feel: Enjoy a familiar, rich editing experience (via Monaco Editor) with syntax highlighting, smart suggestions, and error checking.
  • Zero Setup: Dive straight into coding. Everything runs in the browser.

Tech Stack

  • Frontend: React, TypeScript, Zustand (State Management), Tailwind CSS, Monaco Editor, Xterm.js (Integrated Terminal), Framer Motion, Axios, WebSocket Client
  • Backend: Java Spring Boot, WebSocket API, Jackson (JSON Processing)
  • Real-time Collaboration: Custom Operational Transformation (OT) Implementation
  • State Management / Messaging: Redis (AWS ElastiCache) utilizing Lua Scripting for atomic operations
  • Hosting: AWS EC2 (Backend), Vercel (Frontend), AWS ElastiCache (Redis)

Real-Time Collaboration with Operational Transformation

At the heart of CodeCafé's seamless collaborative editing is our custom-built Operational Transformation (OT) system, implemented on both the frontend and backend.

What is Operational Transformation?

Operational Transformation is the technology that powers real-time collaborative editing in systems like Google Docs. It allows multiple users to simultaneously edit the same document by:

  1. Transforming operations (like insertions and deletions) to preserve user intentions
  2. Ensuring eventual consistency across all clients
  3. Resolving conflicts automatically when users edit the same regions of text

Our implementation handles the complex synchronization challenges of collaborative editing, including:

  • Managing concurrent edits from multiple users
  • Resolving edit conflicts deterministically
  • Maintaining document consistency across all connected clients
  • Preserving intention semantics of user operations

This enables truly fluid, Google Docs-like collaboration where everyone can type simultaneously without stepping on each other's toes.

Quick Start

Option 1: Using Docker (Recommended)

The easiest way to get started with CodeCafé is to use Docker:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start all services using Docker Compose
docker-compose up

Access the app in your browser at http://localhost:80

Option 2: Manual Setup

Prerequisites: Git, Java JDK 23+, Maven, Node.js 18+, npm 9+, Redis Server

Setup and Run:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start Redis (keep this running in a separate terminal or as a background service)
redis-server &# Create backend config file with Redis connection
mkdir -p backend/src/main/resources
echo"spring.redis.host=localhostspring.redis.port=6379"> backend/src/main/resources/application.properties
# Run the backendcd backend
./mvnw install
./mvnw spring-boot:run &# Create frontend config and runcd ../frontend
echo"VITE_BACKEND_URL=http://localhost:8080"> .env
npm install
npm run dev

Access the app in your browser at the URL shown in terminal (typically http://localhost:5173).

CI/CD Pipeline

CodeCafé uses GitHub Actions for continuous integration and deployment:

  • CI Pipeline: Automatically runs tests for both frontend and backend on every pull request and push to main/develop branches.
  • CD Pipeline: Automatically deploys:
    • Backend to AWS EC2 when pushing to the main branch
    • Frontend to Vercel when pushing to the main branch

Setting up CI/CD for your fork:

  1. For AWS deployment:

    • Add the following secrets to your GitHub repository:
      • AWS_ACCESS_KEY_ID
      • AWS_SECRET_ACCESS_KEY
      • AWS_REGION
  2. For Vercel deployment:

    • Add the following secrets to your GitHub repository:
      • VERCEL_TOKEN
      • VERCEL_ORG_ID
      • VERCEL_PROJECT_ID

On the Horizon

  • User authentication & persistent projects
  • Integrated voice/text chat
  • Session rewind & history playback
  • Expanded language support & tooling

License

CodeCafé is open-sourced under the MIT License.


Making collaborative coding magic accessible to everyone.

About

Real-time collaborative code editor built for the web

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

378 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

CodeCafé: Code Together, Instantly.

BuildGitHub starsContributions WelcomeMIT License

A hyper-collaborative, real-time development environment right in your browser. CodeCafé makes pair programming, teaching, and building web projects together as fluid and instant as sharing a thought.

Try CodeCafé Live!

Untitled design (14)

Click here to watch the demo video!

Why CodeCafé?

We saw coding classes juggling tools built for essays, not engineers. Existing solutions felt clunky for the dynamic nature of real-time programming. CodeCafé was born from the need for a seamless, browser-based coding space designed from the ground up for true collaboration. Learn, teach, and build—together, instantly.

Core Features

  • Pixel-Perfect Live Preview: See your HTML, CSS, and JavaScript changes render instantly in an integrated Web View. What you code is what you see!
  • True Real-Time Collaboration: Powered by Operational Transformation, multiple users can type in the same files simultaneously, with conflicts resolved seamlessly.
  • VS Code Feel: Enjoy a familiar, rich editing experience (via Monaco Editor) with syntax highlighting, smart suggestions, and error checking.
  • Zero Setup: Dive straight into coding. Everything runs in the browser.

Tech Stack

  • Frontend: React, TypeScript, Zustand (State Management), Tailwind CSS, Monaco Editor, Xterm.js (Integrated Terminal), Framer Motion, Axios, WebSocket Client
  • Backend: Java Spring Boot, WebSocket API, Jackson (JSON Processing)
  • Real-time Collaboration: Custom Operational Transformation (OT) Implementation
  • State Management / Messaging: Redis (AWS ElastiCache) utilizing Lua Scripting for atomic operations
  • Hosting: AWS EC2 (Backend), Vercel (Frontend), AWS ElastiCache (Redis)

Real-Time Collaboration with Operational Transformation

At the heart of CodeCafé's seamless collaborative editing is our custom-built Operational Transformation (OT) system, implemented on both the frontend and backend.

What is Operational Transformation?

Operational Transformation is the technology that powers real-time collaborative editing in systems like Google Docs. It allows multiple users to simultaneously edit the same document by:

  1. Transforming operations (like insertions and deletions) to preserve user intentions
  2. Ensuring eventual consistency across all clients
  3. Resolving conflicts automatically when users edit the same regions of text

Our implementation handles the complex synchronization challenges of collaborative editing, including:

  • Managing concurrent edits from multiple users
  • Resolving edit conflicts deterministically
  • Maintaining document consistency across all connected clients
  • Preserving intention semantics of user operations

This enables truly fluid, Google Docs-like collaboration where everyone can type simultaneously without stepping on each other's toes.

Quick Start

Option 1: Using Docker (Recommended)

The easiest way to get started with CodeCafé is to use Docker:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start all services using Docker Compose
docker-compose up

Access the app in your browser at http://localhost:80

Option 2: Manual Setup

Prerequisites: Git, Java JDK 23+, Maven, Node.js 18+, npm 9+, Redis Server

Setup and Run:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start Redis (keep this running in a separate terminal or as a background service)
redis-server &# Create backend config file with Redis connection
mkdir -p backend/src/main/resources
echo"spring.redis.host=localhostspring.redis.port=6379"> backend/src/main/resources/application.properties
# Run the backendcd backend
./mvnw install
./mvnw spring-boot:run &# Create frontend config and runcd ../frontend
echo"VITE_BACKEND_URL=http://localhost:8080"> .env
npm install
npm run dev

Access the app in your browser at the URL shown in terminal (typically http://localhost:5173).

CI/CD Pipeline

CodeCafé uses GitHub Actions for continuous integration and deployment:

  • CI Pipeline: Automatically runs tests for both frontend and backend on every pull request and push to main/develop branches.
  • CD Pipeline: Automatically deploys:
    • Backend to AWS EC2 when pushing to the main branch
    • Frontend to Vercel when pushing to the main branch

Setting up CI/CD for your fork:

  1. For AWS deployment:

    • Add the following secrets to your GitHub repository:
      • AWS_ACCESS_KEY_ID
      • AWS_SECRET_ACCESS_KEY
      • AWS_REGION
  2. For Vercel deployment:

    • Add the following secrets to your GitHub repository:
      • VERCEL_TOKEN
      • VERCEL_ORG_ID
      • VERCEL_PROJECT_ID

On the Horizon

  • User authentication & persistent projects
  • Integrated voice/text chat
  • Session rewind & history playback
  • Expanded language support & tooling

License

CodeCafé is open-sourced under the MIT License.


Making collaborative coding magic accessible to everyone.

About

Real-time collaborative code editor built for the web

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

378 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

CodeCafé: Code Together, Instantly.

BuildGitHub starsContributions WelcomeMIT License

A hyper-collaborative, real-time development environment right in your browser. CodeCafé makes pair programming, teaching, and building web projects together as fluid and instant as sharing a thought.

Try CodeCafé Live!

Untitled design (14)

Click here to watch the demo video!

Why CodeCafé?

We saw coding classes juggling tools built for essays, not engineers. Existing solutions felt clunky for the dynamic nature of real-time programming. CodeCafé was born from the need for a seamless, browser-based coding space designed from the ground up for true collaboration. Learn, teach, and build—together, instantly.

Core Features

  • Pixel-Perfect Live Preview: See your HTML, CSS, and JavaScript changes render instantly in an integrated Web View. What you code is what you see!
  • True Real-Time Collaboration: Powered by Operational Transformation, multiple users can type in the same files simultaneously, with conflicts resolved seamlessly.
  • VS Code Feel: Enjoy a familiar, rich editing experience (via Monaco Editor) with syntax highlighting, smart suggestions, and error checking.
  • Zero Setup: Dive straight into coding. Everything runs in the browser.

Tech Stack

  • Frontend: React, TypeScript, Zustand (State Management), Tailwind CSS, Monaco Editor, Xterm.js (Integrated Terminal), Framer Motion, Axios, WebSocket Client
  • Backend: Java Spring Boot, WebSocket API, Jackson (JSON Processing)
  • Real-time Collaboration: Custom Operational Transformation (OT) Implementation
  • State Management / Messaging: Redis (AWS ElastiCache) utilizing Lua Scripting for atomic operations
  • Hosting: AWS EC2 (Backend), Vercel (Frontend), AWS ElastiCache (Redis)

Real-Time Collaboration with Operational Transformation

At the heart of CodeCafé's seamless collaborative editing is our custom-built Operational Transformation (OT) system, implemented on both the frontend and backend.

What is Operational Transformation?

Operational Transformation is the technology that powers real-time collaborative editing in systems like Google Docs. It allows multiple users to simultaneously edit the same document by:

  1. Transforming operations (like insertions and deletions) to preserve user intentions
  2. Ensuring eventual consistency across all clients
  3. Resolving conflicts automatically when users edit the same regions of text

Our implementation handles the complex synchronization challenges of collaborative editing, including:

  • Managing concurrent edits from multiple users
  • Resolving edit conflicts deterministically
  • Maintaining document consistency across all connected clients
  • Preserving intention semantics of user operations

This enables truly fluid, Google Docs-like collaboration where everyone can type simultaneously without stepping on each other's toes.

Quick Start

Option 1: Using Docker (Recommended)

The easiest way to get started with CodeCafé is to use Docker:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start all services using Docker Compose
docker-compose up

Access the app in your browser at http://localhost:80

Option 2: Manual Setup

Prerequisites: Git, Java JDK 23+, Maven, Node.js 18+, npm 9+, Redis Server

Setup and Run:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start Redis (keep this running in a separate terminal or as a background service)
redis-server &# Create backend config file with Redis connection
mkdir -p backend/src/main/resources
echo"spring.redis.host=localhostspring.redis.port=6379"> backend/src/main/resources/application.properties
# Run the backendcd backend
./mvnw install
./mvnw spring-boot:run &# Create frontend config and runcd ../frontend
echo"VITE_BACKEND_URL=http://localhost:8080"> .env
npm install
npm run dev

Access the app in your browser at the URL shown in terminal (typically http://localhost:5173).

CI/CD Pipeline

CodeCafé uses GitHub Actions for continuous integration and deployment:

  • CI Pipeline: Automatically runs tests for both frontend and backend on every pull request and push to main/develop branches.
  • CD Pipeline: Automatically deploys:
    • Backend to AWS EC2 when pushing to the main branch
    • Frontend to Vercel when pushing to the main branch

Setting up CI/CD for your fork:

  1. For AWS deployment:

    • Add the following secrets to your GitHub repository:
      • AWS_ACCESS_KEY_ID
      • AWS_SECRET_ACCESS_KEY
      • AWS_REGION
  2. For Vercel deployment:

    • Add the following secrets to your GitHub repository:
      • VERCEL_TOKEN
      • VERCEL_ORG_ID
      • VERCEL_PROJECT_ID

On the Horizon

  • User authentication & persistent projects
  • Integrated voice/text chat
  • Session rewind & history playback
  • Expanded language support & tooling

License

CodeCafé is open-sourced under the MIT License.


Making collaborative coding magic accessible to everyone.

About

Real-time collaborative code editor built for the web

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

378 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

CodeCafé: Code Together, Instantly.

BuildGitHub starsContributions WelcomeMIT License

A hyper-collaborative, real-time development environment right in your browser. CodeCafé makes pair programming, teaching, and building web projects together as fluid and instant as sharing a thought.

Try CodeCafé Live!

Untitled design (14)

Click here to watch the demo video!

Why CodeCafé?

We saw coding classes juggling tools built for essays, not engineers. Existing solutions felt clunky for the dynamic nature of real-time programming. CodeCafé was born from the need for a seamless, browser-based coding space designed from the ground up for true collaboration. Learn, teach, and build—together, instantly.

Core Features

  • Pixel-Perfect Live Preview: See your HTML, CSS, and JavaScript changes render instantly in an integrated Web View. What you code is what you see!
  • True Real-Time Collaboration: Powered by Operational Transformation, multiple users can type in the same files simultaneously, with conflicts resolved seamlessly.
  • VS Code Feel: Enjoy a familiar, rich editing experience (via Monaco Editor) with syntax highlighting, smart suggestions, and error checking.
  • Zero Setup: Dive straight into coding. Everything runs in the browser.

Tech Stack

  • Frontend: React, TypeScript, Zustand (State Management), Tailwind CSS, Monaco Editor, Xterm.js (Integrated Terminal), Framer Motion, Axios, WebSocket Client
  • Backend: Java Spring Boot, WebSocket API, Jackson (JSON Processing)
  • Real-time Collaboration: Custom Operational Transformation (OT) Implementation
  • State Management / Messaging: Redis (AWS ElastiCache) utilizing Lua Scripting for atomic operations
  • Hosting: AWS EC2 (Backend), Vercel (Frontend), AWS ElastiCache (Redis)

Real-Time Collaboration with Operational Transformation

At the heart of CodeCafé's seamless collaborative editing is our custom-built Operational Transformation (OT) system, implemented on both the frontend and backend.

What is Operational Transformation?

Operational Transformation is the technology that powers real-time collaborative editing in systems like Google Docs. It allows multiple users to simultaneously edit the same document by:

  1. Transforming operations (like insertions and deletions) to preserve user intentions
  2. Ensuring eventual consistency across all clients
  3. Resolving conflicts automatically when users edit the same regions of text

Our implementation handles the complex synchronization challenges of collaborative editing, including:

  • Managing concurrent edits from multiple users
  • Resolving edit conflicts deterministically
  • Maintaining document consistency across all connected clients
  • Preserving intention semantics of user operations

This enables truly fluid, Google Docs-like collaboration where everyone can type simultaneously without stepping on each other's toes.

Quick Start

Option 1: Using Docker (Recommended)

The easiest way to get started with CodeCafé is to use Docker:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start all services using Docker Compose
docker-compose up

Access the app in your browser at http://localhost:80

Option 2: Manual Setup

Prerequisites: Git, Java JDK 23+, Maven, Node.js 18+, npm 9+, Redis Server

Setup and Run:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start Redis (keep this running in a separate terminal or as a background service)
redis-server &# Create backend config file with Redis connection
mkdir -p backend/src/main/resources
echo"spring.redis.host=localhostspring.redis.port=6379"> backend/src/main/resources/application.properties
# Run the backendcd backend
./mvnw install
./mvnw spring-boot:run &# Create frontend config and runcd ../frontend
echo"VITE_BACKEND_URL=http://localhost:8080"> .env
npm install
npm run dev

Access the app in your browser at the URL shown in terminal (typically http://localhost:5173).

CI/CD Pipeline

CodeCafé uses GitHub Actions for continuous integration and deployment:

  • CI Pipeline: Automatically runs tests for both frontend and backend on every pull request and push to main/develop branches.
  • CD Pipeline: Automatically deploys:
    • Backend to AWS EC2 when pushing to the main branch
    • Frontend to Vercel when pushing to the main branch

Setting up CI/CD for your fork:

  1. For AWS deployment:

    • Add the following secrets to your GitHub repository:
      • AWS_ACCESS_KEY_ID
      • AWS_SECRET_ACCESS_KEY
      • AWS_REGION
  2. For Vercel deployment:

    • Add the following secrets to your GitHub repository:
      • VERCEL_TOKEN
      • VERCEL_ORG_ID
      • VERCEL_PROJECT_ID

On the Horizon

  • User authentication & persistent projects
  • Integrated voice/text chat
  • Session rewind & history playback
  • Expanded language support & tooling

License

CodeCafé is open-sourced under the MIT License.


Making collaborative coding magic accessible to everyone.

About

Real-time collaborative code editor built for the web

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

378 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

CodeCafé: Code Together, Instantly.

BuildGitHub starsContributions WelcomeMIT License

A hyper-collaborative, real-time development environment right in your browser. CodeCafé makes pair programming, teaching, and building web projects together as fluid and instant as sharing a thought.

Try CodeCafé Live!

Untitled design (14)

Click here to watch the demo video!

Why CodeCafé?

We saw coding classes juggling tools built for essays, not engineers. Existing solutions felt clunky for the dynamic nature of real-time programming. CodeCafé was born from the need for a seamless, browser-based coding space designed from the ground up for true collaboration. Learn, teach, and build—together, instantly.

Core Features

  • Pixel-Perfect Live Preview: See your HTML, CSS, and JavaScript changes render instantly in an integrated Web View. What you code is what you see!
  • True Real-Time Collaboration: Powered by Operational Transformation, multiple users can type in the same files simultaneously, with conflicts resolved seamlessly.
  • VS Code Feel: Enjoy a familiar, rich editing experience (via Monaco Editor) with syntax highlighting, smart suggestions, and error checking.
  • Zero Setup: Dive straight into coding. Everything runs in the browser.

Tech Stack

  • Frontend: React, TypeScript, Zustand (State Management), Tailwind CSS, Monaco Editor, Xterm.js (Integrated Terminal), Framer Motion, Axios, WebSocket Client
  • Backend: Java Spring Boot, WebSocket API, Jackson (JSON Processing)
  • Real-time Collaboration: Custom Operational Transformation (OT) Implementation
  • State Management / Messaging: Redis (AWS ElastiCache) utilizing Lua Scripting for atomic operations
  • Hosting: AWS EC2 (Backend), Vercel (Frontend), AWS ElastiCache (Redis)

Real-Time Collaboration with Operational Transformation

At the heart of CodeCafé's seamless collaborative editing is our custom-built Operational Transformation (OT) system, implemented on both the frontend and backend.

What is Operational Transformation?

Operational Transformation is the technology that powers real-time collaborative editing in systems like Google Docs. It allows multiple users to simultaneously edit the same document by:

  1. Transforming operations (like insertions and deletions) to preserve user intentions
  2. Ensuring eventual consistency across all clients
  3. Resolving conflicts automatically when users edit the same regions of text

Our implementation handles the complex synchronization challenges of collaborative editing, including:

  • Managing concurrent edits from multiple users
  • Resolving edit conflicts deterministically
  • Maintaining document consistency across all connected clients
  • Preserving intention semantics of user operations

This enables truly fluid, Google Docs-like collaboration where everyone can type simultaneously without stepping on each other's toes.

Quick Start

Option 1: Using Docker (Recommended)

The easiest way to get started with CodeCafé is to use Docker:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start all services using Docker Compose
docker-compose up

Access the app in your browser at http://localhost:80

Option 2: Manual Setup

Prerequisites: Git, Java JDK 23+, Maven, Node.js 18+, npm 9+, Redis Server

Setup and Run:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start Redis (keep this running in a separate terminal or as a background service)
redis-server &# Create backend config file with Redis connection
mkdir -p backend/src/main/resources
echo"spring.redis.host=localhostspring.redis.port=6379"> backend/src/main/resources/application.properties
# Run the backendcd backend
./mvnw install
./mvnw spring-boot:run &# Create frontend config and runcd ../frontend
echo"VITE_BACKEND_URL=http://localhost:8080"> .env
npm install
npm run dev

Access the app in your browser at the URL shown in terminal (typically http://localhost:5173).

CI/CD Pipeline

CodeCafé uses GitHub Actions for continuous integration and deployment:

  • CI Pipeline: Automatically runs tests for both frontend and backend on every pull request and push to main/develop branches.
  • CD Pipeline: Automatically deploys:
    • Backend to AWS EC2 when pushing to the main branch
    • Frontend to Vercel when pushing to the main branch

Setting up CI/CD for your fork:

  1. For AWS deployment:

    • Add the following secrets to your GitHub repository:
      • AWS_ACCESS_KEY_ID
      • AWS_SECRET_ACCESS_KEY
      • AWS_REGION
  2. For Vercel deployment:

    • Add the following secrets to your GitHub repository:
      • VERCEL_TOKEN
      • VERCEL_ORG_ID
      • VERCEL_PROJECT_ID

On the Horizon

  • User authentication & persistent projects
  • Integrated voice/text chat
  • Session rewind & history playback
  • Expanded language support & tooling

License

CodeCafé is open-sourced under the MIT License.


Making collaborative coding magic accessible to everyone.

About

Real-time collaborative code editor built for the web

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

378 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

CodeCafé: Code Together, Instantly.

BuildGitHub starsContributions WelcomeMIT License

A hyper-collaborative, real-time development environment right in your browser. CodeCafé makes pair programming, teaching, and building web projects together as fluid and instant as sharing a thought.

Try CodeCafé Live!

Untitled design (14)

Click here to watch the demo video!

Why CodeCafé?

We saw coding classes juggling tools built for essays, not engineers. Existing solutions felt clunky for the dynamic nature of real-time programming. CodeCafé was born from the need for a seamless, browser-based coding space designed from the ground up for true collaboration. Learn, teach, and build—together, instantly.

Core Features

  • Pixel-Perfect Live Preview: See your HTML, CSS, and JavaScript changes render instantly in an integrated Web View. What you code is what you see!
  • True Real-Time Collaboration: Powered by Operational Transformation, multiple users can type in the same files simultaneously, with conflicts resolved seamlessly.
  • VS Code Feel: Enjoy a familiar, rich editing experience (via Monaco Editor) with syntax highlighting, smart suggestions, and error checking.
  • Zero Setup: Dive straight into coding. Everything runs in the browser.

Tech Stack

  • Frontend: React, TypeScript, Zustand (State Management), Tailwind CSS, Monaco Editor, Xterm.js (Integrated Terminal), Framer Motion, Axios, WebSocket Client
  • Backend: Java Spring Boot, WebSocket API, Jackson (JSON Processing)
  • Real-time Collaboration: Custom Operational Transformation (OT) Implementation
  • State Management / Messaging: Redis (AWS ElastiCache) utilizing Lua Scripting for atomic operations
  • Hosting: AWS EC2 (Backend), Vercel (Frontend), AWS ElastiCache (Redis)

Real-Time Collaboration with Operational Transformation

At the heart of CodeCafé's seamless collaborative editing is our custom-built Operational Transformation (OT) system, implemented on both the frontend and backend.

What is Operational Transformation?

Operational Transformation is the technology that powers real-time collaborative editing in systems like Google Docs. It allows multiple users to simultaneously edit the same document by:

  1. Transforming operations (like insertions and deletions) to preserve user intentions
  2. Ensuring eventual consistency across all clients
  3. Resolving conflicts automatically when users edit the same regions of text

Our implementation handles the complex synchronization challenges of collaborative editing, including:

  • Managing concurrent edits from multiple users
  • Resolving edit conflicts deterministically
  • Maintaining document consistency across all connected clients
  • Preserving intention semantics of user operations

This enables truly fluid, Google Docs-like collaboration where everyone can type simultaneously without stepping on each other's toes.

Quick Start

Option 1: Using Docker (Recommended)

The easiest way to get started with CodeCafé is to use Docker:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start all services using Docker Compose
docker-compose up

Access the app in your browser at http://localhost:80

Option 2: Manual Setup

Prerequisites: Git, Java JDK 23+, Maven, Node.js 18+, npm 9+, Redis Server

Setup and Run:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start Redis (keep this running in a separate terminal or as a background service)
redis-server &# Create backend config file with Redis connection
mkdir -p backend/src/main/resources
echo"spring.redis.host=localhostspring.redis.port=6379"> backend/src/main/resources/application.properties
# Run the backendcd backend
./mvnw install
./mvnw spring-boot:run &# Create frontend config and runcd ../frontend
echo"VITE_BACKEND_URL=http://localhost:8080"> .env
npm install
npm run dev

Access the app in your browser at the URL shown in terminal (typically http://localhost:5173).

CI/CD Pipeline

CodeCafé uses GitHub Actions for continuous integration and deployment:

  • CI Pipeline: Automatically runs tests for both frontend and backend on every pull request and push to main/develop branches.
  • CD Pipeline: Automatically deploys:
    • Backend to AWS EC2 when pushing to the main branch
    • Frontend to Vercel when pushing to the main branch

Setting up CI/CD for your fork:

  1. For AWS deployment:

    • Add the following secrets to your GitHub repository:
      • AWS_ACCESS_KEY_ID
      • AWS_SECRET_ACCESS_KEY
      • AWS_REGION
  2. For Vercel deployment:

    • Add the following secrets to your GitHub repository:
      • VERCEL_TOKEN
      • VERCEL_ORG_ID
      • VERCEL_PROJECT_ID

On the Horizon

  • User authentication & persistent projects
  • Integrated voice/text chat
  • Session rewind & history playback
  • Expanded language support & tooling

License

CodeCafé is open-sourced under the MIT License.


Making collaborative coding magic accessible to everyone.

About

Real-time collaborative code editor built for the web

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

378 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

CodeCafé: Code Together, Instantly.

BuildGitHub starsContributions WelcomeMIT License

A hyper-collaborative, real-time development environment right in your browser. CodeCafé makes pair programming, teaching, and building web projects together as fluid and instant as sharing a thought.

Try CodeCafé Live!

Untitled design (14)

Click here to watch the demo video!

Why CodeCafé?

We saw coding classes juggling tools built for essays, not engineers. Existing solutions felt clunky for the dynamic nature of real-time programming. CodeCafé was born from the need for a seamless, browser-based coding space designed from the ground up for true collaboration. Learn, teach, and build—together, instantly.

Core Features

  • Pixel-Perfect Live Preview: See your HTML, CSS, and JavaScript changes render instantly in an integrated Web View. What you code is what you see!
  • True Real-Time Collaboration: Powered by Operational Transformation, multiple users can type in the same files simultaneously, with conflicts resolved seamlessly.
  • VS Code Feel: Enjoy a familiar, rich editing experience (via Monaco Editor) with syntax highlighting, smart suggestions, and error checking.
  • Zero Setup: Dive straight into coding. Everything runs in the browser.

Tech Stack

  • Frontend: React, TypeScript, Zustand (State Management), Tailwind CSS, Monaco Editor, Xterm.js (Integrated Terminal), Framer Motion, Axios, WebSocket Client
  • Backend: Java Spring Boot, WebSocket API, Jackson (JSON Processing)
  • Real-time Collaboration: Custom Operational Transformation (OT) Implementation
  • State Management / Messaging: Redis (AWS ElastiCache) utilizing Lua Scripting for atomic operations
  • Hosting: AWS EC2 (Backend), Vercel (Frontend), AWS ElastiCache (Redis)

Real-Time Collaboration with Operational Transformation

At the heart of CodeCafé's seamless collaborative editing is our custom-built Operational Transformation (OT) system, implemented on both the frontend and backend.

What is Operational Transformation?

Operational Transformation is the technology that powers real-time collaborative editing in systems like Google Docs. It allows multiple users to simultaneously edit the same document by:

  1. Transforming operations (like insertions and deletions) to preserve user intentions
  2. Ensuring eventual consistency across all clients
  3. Resolving conflicts automatically when users edit the same regions of text

Our implementation handles the complex synchronization challenges of collaborative editing, including:

  • Managing concurrent edits from multiple users
  • Resolving edit conflicts deterministically
  • Maintaining document consistency across all connected clients
  • Preserving intention semantics of user operations

This enables truly fluid, Google Docs-like collaboration where everyone can type simultaneously without stepping on each other's toes.

Quick Start

Option 1: Using Docker (Recommended)

The easiest way to get started with CodeCafé is to use Docker:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start all services using Docker Compose
docker-compose up

Access the app in your browser at http://localhost:80

Option 2: Manual Setup

Prerequisites: Git, Java JDK 23+, Maven, Node.js 18+, npm 9+, Redis Server

Setup and Run:

# Clone the repo
git clone https://github.com/mrktsm/codecafe.git
cd codecafe
# Start Redis (keep this running in a separate terminal or as a background service)
redis-server &# Create backend config file with Redis connection
mkdir -p backend/src/main/resources
echo"spring.redis.host=localhostspring.redis.port=6379"> backend/src/main/resources/application.properties
# Run the backendcd backend
./mvnw install
./mvnw spring-boot:run &# Create frontend config and runcd ../frontend
echo"VITE_BACKEND_URL=http://localhost:8080"> .env
npm install
npm run dev

Access the app in your browser at the URL shown in terminal (typically http://localhost:5173).

CI/CD Pipeline

CodeCafé uses GitHub Actions for continuous integration and deployment:

  • CI Pipeline: Automatically runs tests for both frontend and backend on every pull request and push to main/develop branches.
  • CD Pipeline: Automatically deploys:
    • Backend to AWS EC2 when pushing to the main branch
    • Frontend to Vercel when pushing to the main branch

Setting up CI/CD for your fork:

  1. For AWS deployment:

    • Add the following secrets to your GitHub repository:
      • AWS_ACCESS_KEY_ID
      • AWS_SECRET_ACCESS_KEY
      • AWS_REGION
  2. For Vercel deployment:

    • Add the following secrets to your GitHub repository:
      • VERCEL_TOKEN
      • VERCEL_ORG_ID
      • VERCEL_PROJECT_ID

On the Horizon

  • User authentication & persistent projects
  • Integrated voice/text chat
  • Session rewind & history playback
  • Expanded language support & tooling

License

CodeCafé is open-sourced under the MIT License.


Making collaborative coding magic accessible to everyone.

About

Real-time collaborative code editor built for the web

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages