Apparently CodePen 2.0 sends data to their servers as you type

92 pointsposted 6 hours ago
by maxim-fin

Item id: 49596976

36 Comments

giancarlostoro

3 hours ago

Pretty sure it always autosaved so this makes sense to me? I always assume it would send my data over to their backend, its code that ends up there regardless?

maxim-fin

3 hours ago

Yes, that is for autosave and for rendering

Edit: The point is that any secrets typed/pasted in there should be considered compromized

giancarlostoro

2 hours ago

I don't know why anyone would paste or type secrets into codepen which is public by default... But it always seemed like it auto-saved / sent your code over to the back-end, going back ten years roughly?

traviswingo

2 hours ago

Copy -> paste -> redact secrets

That flow would be considered unsafe, and probably common.

giancarlostoro

2 hours ago

If you are pasting secrets into codepen you are probably really terrible at all other basic security practices.

maxim-fin

2 hours ago

This is exactly the scenario I pictured

tvink

6 hours ago

You're gonna be shocked how many input fields do this for various UX features :)

nusl

5 hours ago

Shopify does this. If you ever go to purchase a product on a Shopify 'site, and enter eg your e-mail address, it'll save it even if you decide to cancel and close the tab. Sometimes you receive spam from companies along the lines of marketing or "we noticed you didn't complete your purchase" type crap. Shit is rly invasive.

davidmurdoch

3 hours ago

They can only send the marketing emails if you have the "send me marketing emails" checkbox checked when you type in your email address. Dark pattern, yeah.

weezing

4 hours ago

Simplelogin is a godsend for this cancer

Boss0565

4 hours ago

Have you checked to see if it’s stored in localstorage

masfuerte

4 hours ago

If they are sending you emails the address is not just in localstorage.

embedding-shape

6 hours ago

HotJar and similar services are (were?) popular as well, and those record your mouse pointer movements and clicks as well, then displays that as an overlay over the application, so it's essentially a "screen recording" of your session of the application.

maxim-fin

4 hours ago

Not sure if they are still popular but in the past they may have really slowed down the site

glub

4 hours ago

Now it's an entire industry. They call it "bot protection"

maxim-fin

4 hours ago

Yes, but codepen is for frontend devs. And devs are more likely to accidentally leak secrets because, well, they have them

Edit: accidantlay -> accidentally

maxim-fin

4 hours ago

CodePen does not disclose this in neither ToS nor in Privacy Policy, only in Builds documentation they say: “As you work on CodePen, your Pens are constantly running through the CodePen Compiler”

midnitewarrior

4 hours ago

Look into https://www.fullstory.com/ , many major websites use this, it's basically a real-time video view of the user's browser screen. You can see where they move their mouse, how quickly they are typing, each character one at a time.

I worked for a company that would have phone support for users, and we'd be watching their screens giving gentle suggestions to them as they were using our app for how to do what they needed to do. We never offered up what we were doing, but given users' poor descriptions of what they were doing, FullStory was an amazing customer service tool.

VoidWhisperer

4 hours ago

Something like this would've been incredibly useful at my previous job - we often had to put together how a user triggered an issue using a combination of logs and analytics to track what actions they took..

giancarlostoro

3 hours ago

Elastic has something like this too, as does Splunk iirc. Idk how all three compare I just know they can track DOM events type of stuff and recreate a flow video.

pdyc

6 hours ago

i made my own html playground that is browser only and shares preview via url hash because of these useless shenanigans of codepen, its not as featureful but i mostly use it for sharing single page html files

https://easyanalytica.com/tools/html-playground/

bashy

6 hours ago

Sent to them to render the preview pane. Same as pasting secrets anywhere on a browser.

Wait until you find out copying content on a computer might sent it over Wi-Fi/Bluetooth for sharing on other devices.

maxim-fin

5 hours ago

Yes, that is for rendering Edit: and as "kypro" pointed out also for saving the current work but if you you quit (or crash) without saving the pen there is no way to recover unsaved work regardless

kypro

4 hours ago

This is so it can restore any unsaved changes.

I take no opinion on whether this is good or bad, but I can see how from a UX perspective it's nice not to lose 10 minutes of work because your browser crashes or something.

maxim-fin

4 hours ago

Yes, absolutely, there are good reasons for that. The point is that any secrets typed/pasted in there should be considered compromized

Edit: but then if you you quit (or crash) without saving the pen first there is no way to recover unsaved work regardless. That is, the pen must be saved manually at least once for the user to benefit from the autosave.

phyzome

an hour ago

Secrets pasted into any web page should be considered compromised.

keepo404

6 hours ago

because this is how autocomplete logic works i guess? Frontend cannot guess language and completions for you

giancarlostoro

3 hours ago

Yeah I remember CodePen refreshing for me plenty of times.

maxim-fin

5 hours ago

No autocomplete involved there.

embedding-shape

6 hours ago

Well, except for the cases when you happen to have the entire VM for your language running in the same tab where you program lives, and they both are all JS.

Probably harder, and wouldn't work equally well for everyone, but it would be possible to have "guess language and autocomplete" entirely client-side, especially when it comes to JavaScript of all languages.

odo1242

4 hours ago

It seems like the main disadvantage would be that you have to load all the autocomplete data / model weights on the client-side and your webpage might be CPU/memory limited

embedding-shape

4 hours ago

> main disadvantage would be that you have to load all the autocomplete data / model weights on the client-side

Not sure what "model weights" you're talking about, but yes, that is the trade-off. Although complete autocomplete data for the entirely of the JavaScript APIs would be what, in an efficient format, easily below 1MB at least.