Tidying up persistent rooms
Persistent rooms — the always-available spaces some integrations keep instead of a one-off scheduled call — could be created and edited through the integration API, but there was nothing behind…
What's new in CallSee.me
Persistent rooms — the always-available spaces some integrations keep instead of a one-off scheduled call — could be created and edited through the integration API, but there was nothing behind…
Persistent rooms — the always-available meeting spaces some integrations use instead of a one-off scheduled call — never sent a start or end signal to anything watching for one. The room itself worked…
v1.2.75 taught persistent rooms to record usage every quarter of an hour. It shipped, the interval ran on schedule, and every single run failed — quietly, in the background, for seventeen days. The…
Most meetings have the decency to finish. Someone says "right, I should go", the last person leaves, the room closes, and the platform writes down how long everybody was there. That final tidy-up is…
Every hour, the platform places a real video call to itself. Three browsers join a real meeting on the real service, look at each other, and file a report on how long it took before a face appeared.…
Some of the work behind a meeting happens after you are already in the room. Handing a seat its access to the shared notes, working out the fastest route between two people's browsers, noting when…
Housekeeping, and the second half of yesterday's clean-up. The previous release removed the reseller dashboard and everything that read from it; this one removes the leftover storage those features…
There has been a "Reseller" entry in the organisation sidebar for months. It opened a dashboard with customer counts, pricing plans and a revenue-share figure, and almost none of it did anything: the…
If you emailed support@callsee.me before today, nothing happened. The address looked real, the page said to use it, and mail sent to it bounced back — which is the polite version of the problem,…
Every meeting type now has a switch for what happens when a visitor opens their link: they either walk straight in, or they wait until someone already in the room lets them in. It sits with the rest…
A small one, in the same corner as the last two releases.
Two fixes, and the first one is the bigger of the two by a distance: CallSee.me can send email again.
Email delivery is being moved to a new sending path, and this release lands the plumbing for it: the platform can now send through either provider, chosen per environment rather than by whichever…
Write to our support address about something you can see and you will attach a picture of it. That is the whole reason people attach things: the sentence "the button does nothing" is a great deal more…
When someone writes to our support address, three things are supposed to happen: we keep the message, we raise it as something to work on, and we email a copy to every administrator so a person sees…
Every email this platform sends — sign-in links, meeting invitations, replies to support, the note that goes out when someone fills in the contact form — passed through one piece of code with a bad…
A test that can only ever come back green is decoration. Two of ours were closer to that than we were comfortable with, and this release fixes both.
Three small things you can see, and one that stops a stranger being left staring at a waiting screen.
Last release rebuilt the machinery behind our support address and added a check that asks it, in production, whether it is genuinely armed to accept a message. This release is what that check found,…
If you ever wrote to our support address and heard nothing back, you were not being ignored. Your message never arrived. Everything behind that address was built and waiting — it would have been…
Every meeting has a shared document in it — the panel where notes, decisions and signatures live, the one everybody in the room types into at once. For one person in one meeting after each time we…
Most video calls find a direct route between the two people on them. Some never can — a corporate firewall, a hotel network, a mobile carrier that refuses anything it did not initiate. For those we…
Four times a day, two browsers install our published SDK, join the same meeting from different starting points, and check that each one can actually see the other. It is the closest thing we have to…
Once an hour, a small fleet of real browsers dials into a real meeting on the live service, waits until everyone can see and hear everyone else, measures how long that took, and leaves. It is the same…
A call can fail in two ways that feel nothing alike. Either it never starts — you press join and land back where you were — or you were mid-conversation and it went away. The first invites you to try…
When another product opens a CallSee room from its own software, it hands us an identifier so it can find that room again later — a channel id, a UUID, whatever that product happens to key things by.…
If you have joined a call from a phone lately, the little picture of yourself in the bottom right was missing a piece. Not subtly: about a third of it, sliced off at the edge of the screen, taking the…
Every entry we have ever published here got read back this week — all eighty of them — and a good number were rewritten. Not because the facts were wrong. Because they were written for us. Module…
If your organisation uses webhooks — the callbacks we fire when a meeting starts, a decision is recorded, someone pins a note — you could tick fifteen boxes in settings but only register eight of them…
Every page of CallSee.me has been announcing itself as English while showing you Swedish. Sighted visitors never notice, because the words on screen are the words on screen. But a screen reader takes…
Every meeting room has a shared notes panel, and in production it has never once connected. Not slowly, not sometimes — never. Each person's browser has been politely trying to reach a door that was…
This one is housekeeping, and the good kind: a batch of routine library updates, plus a fix for something that had quietly stopped working behind the scenes.
If two of you were in a meeting and one wrote a note, the other did not see it. Not late, not sometimes — not at all, until they reloaded the page and the notes arrived in one lump. The same went for…
Our guide videos are filmed by a scripted run of the real product. It opens a browser, creates a meeting, invites someone, ends the call, and we publish the film. It is a nice way to make…
The Enterprise plan listed "custom domains" among its features. It should not have. There was nothing behind that line: no way to claim a hostname, no way to prove you own one, nothing to route it…
Per-hour billing has been rebuilt on Stripe's current usage metering. Nothing about that is visible on your statement, and that is rather the point: the part of the product that decides what you owe…
Every hour, whether anybody is using CallSee.me or not, we place a real call against the live service. Three participants, actual cameras, actual audio, one of them deliberately routed the long way…
Yesterday's release notes described a fix for people with no microphone getting no camera either. Everything in them was true except the part that mattered: nothing had been delivered. The version was…
If you dropped our embeddable meeting component into your app and the person using it had no microphone — a desktop with no headset, a borrowed machine, a browser that had quietly denied audio months…
Our embeddable meeting component has shown you every person in the call except yourself, for its entire existence. Not a regression, not a recent break — it simply never rendered your own camera.…
There are three reasons we might turn down an API key: we have never seen it, it is real but it is the wrong kind for the endpoint you called, or it is real and the right kind and simply lacks…
Every hour we place a real three-way video call into production and watch it the way a person would: did the picture arrive, is it still arriving a minute later. Seven times in the last four days it…
Asking us for a service key and asking us to replace one are two different intentions, and they deserve two different verbs. Now they have them.
If you build on our SDK, the API can tell you which version is current. Today it points at the one that actually exists, which sounds like it should never have been in question and is exactly the sort…
Nothing in this one changes what you see. It changes how a piece of the calling system looks after itself.
The last two releases chased participants who haunted a meeting after leaving. This one found out where most of the ghosts were actually coming from: us. Every browser joining a call was opening its…
The other half of the ghost problem. Last release stopped a departed participant haunting your meeting for its full length; this one stops most of them appearing in the first place.
If someone's connection dropped, the meeting could keep believing they were still in the room — and anyone joining shortly afterwards would quietly try to call them. That attempt never went anywhere…
If you build on our SDK, you can now check it yourself. One command puts two browsers into one of your own rooms, waits for video to genuinely flow between them, and tells you whether it worked —…
Nothing in this one changes what you see. It changes what we see.
Two fixes here, and they share a shape: something was configured correctly in one place, copied into a second place, and then the world moved and only the first copy noticed.
Yesterday's note described a call that connects and then shows nobody, and fixed the part where several of the ways we offer our relay were not working from outside. This is the other half, and it's…
Some of you have had a call fail in the most useless way possible: it connects, the meeting opens, and then nobody is there. No error, no explanation. Usually it happened at work, on a locked-down…
Partners who resell CallSee.me can now tell us one of their customers is gone, and mean it. DELETE the tenant and it enters a 72-hour window, then the whole thing is erased — meetings, recordings,…
We tell integrators to hold a single key: the one their own backend uses to mint join tokens for their users, which "also works everywhere the account key works". That sentence was true of everything…
Yesterday's release let a partner sign its own customers up, each getting a real, separate account. Which immediately raises the obvious question: what else can that key do? Today's answer is…
Some companies sell CallSee.me inside their own product. Their customer books a meeting in their app, and a call happens — no CallSee.me logo, no account with us, often no idea we exist. Lovely for…
Every hour, two browsers call each other on CallSee.me. They join a real room on the real live service, wave at each other, check the picture actually arrived, and hang up. If anything is wrong, we…
Some companies don't use CallSee.me directly — they build us into their own product, and their customers get video calls without ever hearing our name. We've had those arrangements for a while. What…
Every hour, an automated check places a real video call to the real service and confirms that it works. For a stretch it had been raising a full emergency about the same already-understood result, on…
Not long ago we found five separate features that were finished, deployed, and completely dead. Not broken the way a bug is broken — every one of them passed its tests, returned a healthy status, and…
Housekeeping with a real consequence. When somebody building on our toolkit asks us which version they should be on, we answer with a number — and until this release that number was the one released…
Another one for the companies building their own video product on top of ours, and it is the same person who kept disappearing — from a different direction. Last time the fix made their tile appear at…
This one is for the companies that build their own video product on top of ours. If somebody joined one of their calls with their camera switched off and then turned it on a minute later, they stayed…
Names on video tiles have been playing a quiet game of hide and seek. In a call, only one person on your screen was ever labelled: whichever tile your mouse happened to be resting on. Move the…
If you have ever been in a call and read the room code out loud to someone, we owe you an apology. The panel showed it in capitals, which looks tidy and was wrong: codes are case-sensitive, so the…
Last release added an alarm that places a real call on the live service every hour and checks that everybody can see and hear everybody else. It does that from two different places on the internet, on…
Last release fixed rooms that quietly got worse the more you used them, and it ended on a promise: a monitor that keeps checking the one thing a brand-new room can never show you. This is that…
A room you keep coming back to used to get worse the more you used it.
Last release put a proper media server behind CallSee.me. This one connects our own meeting room to it.
If you're building CallSee.me video into your own product, this is the release where that stops being fiddly. Until now, getting a working call through our SDK meant knowing that different ways of…
Group calls are peer-to-peer: in a room of three there are six one-way connections, and every one of them has to work. The trouble with that shape is that a single broken connection is invisible from…
White-label branding has been on the Pro list for a long time, and it is now a Pro feature in practice as well as on the pricing page: your logo, your colours, your typeface, on the plan that pays for…
The site went dark for a while, and it did it quietly: no crash, no error to point at, just nothing answering. The cause was an order-of-operations mistake. A batch of startup housekeeping ran before…
Meetings that matter usually end with something that needs a signature: a consent form, a contract, a witness statement, a closing note. Until now that meant stopping the call, opening another tool,…
This release is a round of small, high-signal upgrades to the parts of CallSee you touch most: the lobby, the dashboard, the login screen, and the trust page. The theme is polish with a purpose —…
If you're building on CallSee — running your own app and letting your members talk to each other through our video stack — you've been doing it with a token-passthrough integration: your backend holds…
Some meetings are products. Therapy hours, tutoring blocks, legal consultations, expert calls — sessions where the host's time is the thing being sold. Until today CallSee could host those meetings…
The 1.1 series is where CallSee stopped being just a place you visit for a meeting and became something you can build on. Looking back over the patches, three storylines dominate.
Free personal-room meetings have a 30-minute limit, and that limit is now written down the moment the meeting starts instead of merely remembered. The deadline belongs to the meeting itself, and it…
Private persistent rooms have a proper front door. Knocking is enforced on the server: when an org member knocks on a private always-on room, entry is granted deliberately, by someone already inside,…
Second security release of the day, and both halves are about being deliberate where we were previously merely reasonable.
This one is a slow walk around the building fitting better locks to doors that already have them. Magic links now work exactly once — the link in your inbox signs you in and is spent the moment it…
The headline is the v1 REST API. Notes, pins, and files all got proper public endpoints under /api/v1/meetings/:id/* — the three of them just missed v1.1.57, so this is the first build that exposes…
The headline is security. A full review of who may do what ran across the platform, and this release is the result: API routes answer to one shared permission gate instead of several near-identical…
v1.1.53 never actually shipped. A build-configuration regression blocked the previous release; corrected so the database connection loads correctly and the app starts cleanly.
0.2.2 renamed the built files so they matched what each package advertised, and corrected exactly half of the map. The require entry pointed at the right file. module and the import entry still…
A partner's very first npm install of @callsee/* walked straight into a packaging bug of the most annoying kind: the install itself succeeded. Each package's package.json advertised this —
Kiosk mode is for a screen you are not standing in front of: a reception desk you walk past, a display at the far end of a meeting room. The buttons were already built for that distance — large…
On the screen where you check your camera before joining, the "Gå med i mötet" card sits beside the preview — and it had been politely growing to match the preview's height. Its actual contents (a…
When a call is reconnecting, a badge appears in the middle of the screen to say so. It was a pale amber wash on a barely-there amber tint, which looks fine over a dark video tile and disappears…
Plenty of what happens around a meeting is quiet by design: the webhook that tells your own system a call ended, the status that flips when a meeting wraps up, the minute counts billing is built on.…
Some networks refuse to let live media through at all: corporate guest WiFi, hotels, conference centres — anywhere the rules were written by somebody who has never had to join a call from the lobby.…
The sibling to v1.1.44. A guest could knock at the lobby and wait longer than they should have, because the prompt asking someone inside to let them in didn't always reach the people who could answer…
There is a limit on how many live connections a single client can hold open at once. It is a number nobody having a normal meeting should ever meet; it exists so one runaway tab can't crowd out a room…
A partner's past-calls panel has been asking us "anything new?" on a timer, because there was no way for us to just tell them. The server side of that conversation (GET /api/v1/events/stream) has been…
A partner moving to the React component needed more of the meeting's life story than onLeave alone tells. Today a failed token is a silent black box, and the only way to learn that the meeting…
A partner is moving off the iframe embed to a React component, which means our SDK stops being a script tag and becomes a real dependency inside somebody else's build. We didn't want that dependency…
A partner got their embedded meeting loading properly after the v1.1.38 origin fix and immediately found the next thing: their own picture disappeared the moment they joined. Camera preview before…
The iframe embed allow-list shipped in v1.1.37 looked correct from every angle except the one that mattered: integration partners still got a white page. Partner iframes were still being blocked by a…
Some calls were quietly settling for a direct connection and then failing on the networks that don't permit one — office wifi, mobile data, hotel internet. Two faults were stacked on top of each…
Two webhook events — decision.recorded and pinboard.item.added — now actually fire. They had been published and subscribable for a while and delivered a flawless silence: everything looked wired,…
A tidy-up pass on legal and privacy surfaces. Billing UsageEvents now get purged after seven years — matching Swedish bookkeeping law retention without letting them linger forever. The ToS now carries…
The meeting UI is now fully responsive to the space it is given. Dropped into a 340x192 picture-in-picture panel — or any iframe narrower than 400px — it switches to a stripped-down layout: single…
Browsers have made cookies unreliable inside an iframe, which makes a cookie consent banner in an embedded meeting a banner asking permission for something that was never going to happen anyway. So in…
When a partner embeds a meeting inside their own product, the person clicking "join" has usually already signed in over there, said yes to that company's terms, and told it their name. The pre-join…
Two features in this release, both driven by an integration partner.
This one was a production incident fix. Roughly half of the real-time messages that keep a meeting agreeing with itself — someone arriving, someone muting, a hand going up — were being dropped in…
The big addition here is screen sharing through our media server. Until now a shared screen was sent person-to-person, one full copy per viewer, which held up beautifully at three people and fell…