Blog · Dev update 02
irl dev update 02: the promises, shipped
In dev update 01 we listed what we were building next. It’s all live now. Here’s what each piece does, and what it doesn’t.
A stronger Real Seal
Every loop was already signed on your phone, so edits show. This week the server stopped taking the phone’s word for what’s inside.
- The server watches the whole loop. When you share a loop, irl.ing decodes every frame of it on the server, with small WebAssembly decoders for AV1 and H.264 (dav1d and h264bsd). If the video doesn’t come out at the size and length its seal says, it’s refused.
- The server picks the frames for the safety check. Claude checks three frames against our community rules: the first one, and one picked at random from each half. They’re drawn fresh for every upload, so a modified app can’t choose them or guess them. The same frames become the loop’s poster and what our review team sees.
- Capture codes. While you’re signed in, the app gets a short-lived code from the server, signed, good for 24 hours and for one loop. It’s sealed into the loop when you start recording. When you share, the server checks it.
What a capture code proves: the loop was sealed after the code was issued, on a phone signed in to that account. What it doesn’t prove: when the camera started rolling. A modified app could seal old footage with a fresh code. We’d rather say that plainly than overclaim.
Loops made while signed out or offline still share. They’re labelled Time not confirmed while they play. We never re-seal a loop, because that would make old footage look new.
The limits, so nobody has to guess: it’s three frames, not every frame. Sound isn’t reviewed yet. Loops in VP9, which a few older phones make, can’t be decoded on the server yet, so they’re checked from the phone’s stills and always held for a person to look at.
Lifeboats for sending
Lifeboats already kept a loop playing through a bad connection. Now they keep it safe while it’s being sent.
- If your connection drops while you share a loop or send a video message, the whole loop is kept on your phone. You’ll see: “No connection. Your loop is saved on this phone and will be shared as soon as you’re back online.”
- It sends itself when you’re back online, or the next time you open irl.ing.
- It never arrives twice. Each loop is known by its Real Seal ID, so a retry is recognised as the same loop.
Fewer numbers
- Play counts are yours. Only the person who made a loop sees how many times it’s been played.
- Follower counts are the business’s. Only a business’s owner sees how many followers it has.
- The numbers aren’t just hidden on screen. They’re left out of what the server sends to everyone else.
Real people, still no ID checks
New accounts start with daily limits that grow over the first week. Real people rarely notice them. Bots can’t get going.
| Each day | First 24 hours | Rest of week 1 | After that |
|---|---|---|---|
| Friend requests | 20 | 50 | 200 |
| Invite links | 5 | 15 | 50 |
| Public loops | 3 | 10 | 30 |
| Comments | 50 | 150 | 300 |
| Video messages | 30 | 100 | 200 |
- Friend requests can’t be sprayed. At most 20 can wait for an answer in your first week, 50 after.
- No means no. After someone declines, you can’t ask them again for 30 days. Five declines in a day pauses new requests until tomorrow.
- Every limit says what it is and when it lifts, in plain words.
Also this week
- A full security pass. A strict content security policy and security headers on every page, stricter checks on every uploaded loop, daily caps on reports, and protected @names for the review team. Our dependency audit is at zero known vulnerabilities.
- Loops beyond irl.ing. A public loop’s link now plays as an embed on sites that support oEmbed. The Farcaster mini app is built and waits on one signature from our account.
- A press kit at irl.ing/press, with profile pictures, banners, posts and the facts about $IRLING.
- This blog, with an RSS feed.
- A smoother Rainbow theme: one soft gradient from peach to mint instead of stripes.
- Category pages now show their loops. A clash between two settings had left them empty.
- Your profile is one tap away. Tap your @name for View your profile or Edit profile.
What we’re building next
- Video messages that feel like talking. Reply with a loop from inside the conversation, start a new one in two taps, and stay in the thread after you send.
- Safety checks in their own lane. Moving the server’s video decoding to a separate worker, so one bad file can never slow anyone else down.
- Known-image matching for child safety on every shared loop, before launch.
- Native speakers reviewing our seven languages.
Coming up in this series
- 03: Featherweight, 11.11 seconds in about 100 KB
- 04: Honest Zoom, sharper without making things up
- 05: Real people without ID checks
Try it at irl.ing. Hold the red dot.