Skip to content

Latest commit

 

History

149 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌙 Nook

Your focus crew for the next 50 minutes.

Show up, say what you're on, and get it done alongside a few other people. Rooms of up to four. No account, no downloads, no personal data saved. Inspired by Groove.

→ Open Nook


Nook home screen with a live directory of coworking rooms

What is this?

Working alone is hard. Nook gives you the quiet company of a few other people working at the same time: you can see each other, say what you're each trying to get done, then go heads-down together for a focused stretch. It's like sitting at a shared table in a library, not a video call.

A room holds four people, max. That's on purpose. Small enough that everyone's presence actually matters.

How a session works

A session moves through three short phases, together, on a shared timer:

Phase Cameras What happens
🟢 Greet On Say hi. Type what you're working on. Everyone shares in turn, then marks themselves ready.
🔵 Focus Off Heads-down. Just your to-do list and a shared countdown (50 min by default).
🟣 Regroup On See what got done. Run another round, or head out.

You control your own mic and camera at any time, and you can add, edit, check off, or delete tasks on your list mid-session. You can also flag a camera preference — "up for camera" 📷 or "camera-shy" 🙈 — so the group knows the vibe without it ever forcing your camera on or off.

A few gentle touches keep you in the flow: a soft chime when someone new joins, a 5-minute warning before focus ends, an optional mid-session check-in you can share to the chat, the countdown mirrored into your browser tab title, and a screen wake lock so a phone left open doesn't sleep.

Pick up where you left off. If your connection blips, you refresh, or even if everyone steps away and comes back later, the session is waiting exactly where it was — same phase, same countdown. It doesn't restart from the top.

Greet phase: two people, taking turns to share what they're working on
Greet: share what you're working on, in turn.
Focus phase: heads-down with a shared timer and a personal task list
Focus: heads-down with a shared timer and your list.

Join someone, or start your own

The home screen shows a live directory of open rooms: who's around, what they're working on, each session's focus length (e.g. "50m focus", shown on every card so you can see the time commitment before you join — even during greet, before the timer starts), and how long a session has left. Join anyone with a free seat, even mid-session — you'll drop into whatever phase they're in and wrap up together. Hosts can lock their room to keep it to the current group, or leave it open so latecomers can join.

Or start your own:

  • Open room — listed in the directory, anyone can join (up to 4).
  • Invite only — private and unlisted; share the link yourself.

There's a lightweight chat during the session, and one-tap Download list or Download chat if you want to keep anything.

Find someone to cowork

Add your name and you'll show up in the Around now list for anyone else on the home screen. See someone you'd like to work alongside? Ping them: it opens a room and sends them an invite they can join with one tap. You drop off the list the moment you're in a session.

Around now list showing who is around to cowork, each with a Ping button
See who's around and ping them.
An incoming cowork invite toast with Join and Dismiss
Get pinged, join with one tap.

Peek without leaving

In a session and curious what else is happening? Tap Home in the room header for a quick overlay — just who's coworking now and who's around — while your session keeps running underneath. You can even ping someone from there to pull them into the room you're already in. Close it and you're right back in.

The home screen open as an overlay over a running session

Your privacy

No account, no database, no analytics — and none of your personal data is stored.

  • Your name, to-do list, and chat live only in your browser and in the room's live memory. A copy of your list and chat is kept in your own browser tab so a refresh or a dropped connection can restore them; it never leaves your device and clears when you close the tab.
  • Chat is relayed live and is never stored on a server — the shared history disappears when the room does.
  • Video and audio run over an embedded Jitsi call (Jitsi as a Service), encrypted in transit and live-only. Recording is disabled in the token Nook issues — no one in the call can record it, and nothing is ever written to disk. The call exists only while the room does.
  • Two small pieces of state are kept on the server, and neither identifies you:
    • The room's own session state — its phase and countdown — so you can pick up a session where you left off. It holds no names, goals, or messages, and it's wiped after a room sits empty for a while.
    • If you ignore someone, an anonymous block record so it keeps holding on your next visit. It's a pair of random per-browser ids — no names, no accounts, nothing that says who either of you is.

FAQ

Do I need an account? No. Type a name and you're in.

Is my video recorded? No. Video and audio run over an embedded Jitsi call, encrypted in transit, and recording is disabled in the token Nook issues — no one in the call can record it, and nothing is ever written to disk. The call is live-only and gone the moment the room ends.

What if my camera won't connect? The Jitsi call handles device errors and NAT traversal itself, so it works across strict networks without any setup on your end. If your own camera won't start, Nook tells you why (blocked, no device, or in use by another app) instead of silently doing nothing. Even if video struggles, presence, the timer, chat, and your list keep working.

How does the video work? The call is an embedded Jitsi room (Jitsi as a Service). When you turn on your camera, Nook's Worker mints a short-lived, signed token so you join with no account and no moderator gate — you log into nothing. The room name is a hash of Nook's room id, so only people already in the (max-four) Nook room can get a token for it. Jitsi's own toolbar is hidden and Nook's Camera/Mic buttons drive the call, so it still looks and feels like Nook. Media is encrypted in transit, and recording is disabled in the token.

Can I stop seeing someone? Yes. Hit Ignore next to a person in "Around now" and neither of you shows up for the other there, and you can't pull each other into a room. It sticks across visits. Because there are no accounts it's tied to your browser, so someone determined can come back on another browser or device — it stops casual and repeat run-ins, not a hard block. Un-ignore anytime from the "Ignored" list on the home screen.

Can more than four people join? No — four is the cap, by design.

Is it really free? Yes. It runs entirely on free infrastructure — Cloudflare's free tiers, plus Jitsi as a Service, which is free up to 25,000 monthly active users. See docs/DEPLOYMENT.md if you want to run your own.

Run it yourself

Nook is open source (MIT). You can run it locally or deploy your own copy for free on Cloudflare.

  • Development guide — local setup, project layout, how to contribute.
  • Architecture — how it works, the signaling protocol, the data model.
  • Deployment guide — ship your own in one command, custom domains, setting up video via JaaS.

Quick start:

git clone https://github.com/gigikenneth/nook.git
cd nook
npm install && npm run dev            # signaling Worker on :8787
cd web && npm install && npm run dev  # web app on :5173

Open http://localhost:5173. (Both processes need to be running.)

Support Nook

Nook is free and runs on free infrastructure, and it stays that way. If it's useful to you, here are three ways to keep it going — all optional:

  • Star the repo — it's the cheapest way to help more people find Nook.
  • 👋 Bring someone — Nook is better with company. Send a friend the link and cowork together.
  • Buy me a coffee — if you'd like to chip in toward the time behind it.

No tier is gated, nothing unlocks. Nook stays login-free and free for everyone.

License

MIT. See LICENSE. Emoji art is Twemoji (CC-BY 4.0), vendored in web/public/twemoji/.

About

Quiet virtual coworking for up to four. Login-free, nothing stored, free to run on Cloudflare Workers + Durable Objects with a WebRTC mesh.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages