Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: I've been making JavaScript sandbox alone for 6 years (playcode.io)
397 points by ianberdin on July 31, 2022 | hide | past | favorite | 102 comments
Hi HN! Thanks for your attention to my post.

It was a big challenge to run most of Node.js packages in browser, fast moreover. Virtual File system, resolve import/export. I got cold many times, depressions, burned out, yet still alive and finished it.

Many guys helped me with an advice. Many users give a lot of positive feedback. There are 200,000 monthly unique users.

I work full time now because of the freemium business model. To be honest - I am happy after many years of hard work.




Great job!

I can sort of relate. I worked on an infrastructure system, almost entirely alone, for ten years, before it was finally taken over by a capable team, and I was able to step away, and it took on a life of its own. It is now a worldwide standard, used daily, by thousands.

I say “sort of,” because it was never something I planned to make money on. It filled a need. Also, and it’s a long story, I had to weather a fairly hefty level of abuse during that time. The demographics of the target user base were … challenging.

It’s all good, now.

One thing all that time brought me, was a really high-Quality product. Lots of time to squash bugs, and iterate the UX.


Insane. I wish you tell more, please! About the abuse: wooah, playcode had and has many abusers, carders , phishing pages. Playcode was banned for many times by hosting providers. A lot of reports from google, Microsoft, etc.

It is so incredible meet a man who run product also. Can we connect? Telegram @ ruslan_ianberdin


I don't do Telegram (nothing against it, but I don't really need it). You have options to get in touch w/me from my HN ID. Happy to chat!


Hey Chris, I tried emailing you @ Gmail before but never got a reply. Wrong address?


Oh. I just realized that I sent a follow up to the other chap.

Go to my Web site, and use the form.

I did try sending to what I think is your gmail address (I had to guess).

I don't have a gmail address. I did, but Google decided to lock it, and I couldn't get it unlocked, so it's basically just dead space.


I replied.

I just sent a second reply.

It will come from a mac.com address.


Wow, would you be willing to say which infrastructure system you had worked on?


Not in public (not going out of my way to take public credit for it is part of the deal).

However, it's not confidential, and I have no problem sharing it on a one-to-one (also, it isn't too hard to guess).


Nice project. I can relate in that I have my own personal hobby project that I have been working on for years and I would like to get many more users trying it out.

Mine is a new kind of data management system that can manage unstructured, structured, and semi-structured data. Think of it as a file system, database, and NoSql system all rolled into one. It is currently in open beta at https://didgets.com/

You say you have 'finished it'. Software is never finished, but if you have checked off all the feature items from your design, then close enough for now. With my project, the TODO list is still extremely long. It can do many things already, but I seem to put two more items on the list every time I cross one off.

It seems that every solo, multi-year project goes through the phases you describe (burn out, depression, questioning your sanity, etc.) and mine is no exception. It still feels very self-fulfilling every time I get a major piece working or I blow away the alternative in a speed test.


Very interesting. I saw the demo of the photos and it makes me wonder how you use didgets on your personal life and how it's a better UX than the alternatives. More programmable at the very least, I'm assuming.


I use the database features for analyzing data sets I download from the Internet. I use the file system features for organizing my photos. I can tag each photo with a set of meta-data tags. Then if I want to find every photo that I took at night in 2020 on vacation; I can search for photos with those tags. It also takes a SHA1 of the data stream and attaches it automatically to the photo. That way I can find all the photos that are duplicates, even if they were renamed and put in different folders.


OP, I've been working on a very similar thing for some years now, too. I could write a book about this at this point, but I will avoid gushing here.

Please let me share some pain.

Many developers/companies make this thing and none of them really know how to (or can) share. I'm happy to share my list.

The end result, as I see it, is a fragmented mess of either partially completed or fully completed and walled (and/or poorly modularized) software.

Take for example VS Code's tree view. Can a developer with a need for an explorer view just use VS Code's tree module? Not hardly. Go reinvent.

Contrast that with CodeMirror. If you look, you will see CodeMirror everywhere. This software truly empowers devs and it has resulted in pure awesomeness.

There's no shame in not open sourcing what you've created, I'm assuming you haven't. And I can't say anything about how you have modularized your components.

But it pains me that the next dev who gets an idea like yours will either give up or spend 6 years struggling to create the same thing (except the CodeMirror part).

Worse, Microsoft can afford to struggle and or throw people/money at this. They can pay people to work full time. They can give away their editor(and more) for free. That's a win from user's POV.

Are you aware that VS Code runs on GitHub and does the majority of this kind of thing? I think they could completely shut down all sandboxes or similar kinds of software from a financial perspective.

I said I wouldn't write a book.

Anyways, I strongly appreciate what you have done. It looks great.

I wish we lived in a world where we could work on the same team building this kind of thing.

My best wishes to you on getting paid to do it full time.


For sure. There are a lot of things to do:

- files tree,

- windows manager (it looks simple to implement, yet 2000 lines of code),

- tabs,

- better syntax highlighter,

- code bundler (3-4 years to research),

- transpilers,

- preview (service worker serve it with bidirectional request between bundler worker and service worker and another window preview also),

- console (it is pretty hard to describe every data type and make client-server between iframe and console to show nested structures dynamically)

And more...

Yeah, I do not think I can share source code. Thanks for your message.


It certainly is a lot of work.

Humble suggestion: please call out the open source software you have used in some sort of credits section.

Forgive me if this exists and I am missing it.


Great project! Love the focus on speed as well compared to other web IDE competitors out there.

However, that carefree plan 8 lines of code thing seems ridiculous, no? Most of the templates are already longer than 8 lines.. I think if you just removed many of the other "nice-to-have" features like publishing, npm packages, etc. but made it unlimited lines of code / time per day, the free plan would be much more compelling!

Also i agree with the other commentors that the logos on the homepage are a bit off-putting. I'd prefix it with "Used by engineers at...", as others have suggested as well.

All in all great job though!


Thanks for the honest feedback. That is valuable.

I agree, this limitation 8 lines and 20 minutes if over, sounds strange.

One user from Google suggested me to make just 30 min daily or feature limited. Both of them makes 3 times smaller conversion.

Still the same choice: let it be maximum Freemium or focus on paid users who really value the product because I need to work full-time on playcode? A thin line. I do not know. Maybe it is better to take seed round.

If anyone has better answer, I wish you tell me.


The best talk ever on self-funding (bootstrapping): https://youtu.be/otbnC2zE2rw - some of what he says should be immediately relevant to you.

> Maybe it is better to take seed round

I would be very cautious about that: 1. search likely to be distracting , 2. do you want to be your own boss, or not? 3. generally investors want you to become a gigadollar business which I would guess is not your goal.

Elsewhere you wrote: “I am pretty bad at B2B sales”

Perhaps join up with someone who complements your skills that you like working with? Not easy, but I think easier and more flexible than taking money.


This is actually incredible! The live view updates so fast. There more I look at this the more amazed I am. There's even a feature to publish the page with a custom domain? And there's versioning included. Great job!


Yup, you can publish a blog, a personal page, an app, a Single page application with custom domain and HTTPS :) it will be production ready with CDN.

Thank you for your feedback!


Impressive work!

> I work full time now because of the freemium business model.

Not sure, if i understand correctly. You're working fulltime on this project, because the freemium model earns enough to make you a living?


Exactly, I wish it is completely free, Ad free for years. However, full-time job takes energy and time from me and playcode also. So I had to figure out a way to make money to invest my time in PlayCode and its users.


> So I had to figure out a way to make money to invest my time in PlayCode and its users.

This is quite an impressive project, to which you've dedicated 6 years of hard work. If you really have users at Google, Microsoft, Amazon, etc., I would just ask them for money. These companies have tons of it and they certainly aren't giving their primary products away for free (don't be distracted by side projects like VSCode or GMail). Inform them that you'll be charging $39/month starting September 1.

> I wish it is completely free, Ad free

I get it, you have benefited from the open-source community and probably use a lot of free tools yourself, and you want to contribute or "give back." But your time, effort, intelligence and persistence are all valuable, don't dismiss that and don't assume you owe anybody stuff for free, especially trillion-dollar corporations.


Nice work! I wish I would have come across this sooner or I might not have started building https://webden.dev for the past year haha. PLAYCODE is definitely more robust as far as features (courses, virtual file system, pro version, users, node.js, transpiled projects, etc) but it's cool to see your big focus on speed. The rest of the ecosystem felt so heavy and bloated when I originally started looking.

Also, thanks for sharing your story! Very inspiring!


Does anyone have experience with the courses?

I'm trying to recommend material for learning to a friend and this looks like a great way to learn and see if there is interest without bogging someone down with environment configuration.

I'd love to hear people's experiences.


I’m amazed that you were single-handedly able to build such a complex utility working solo in your free-time. I’m impressed with all the features you’ve added and that the pro version only costs $4.99/mo. I hope you took notes about the progression of the project, as it would be an interesting story to tell one day on a blog or as a presentation.


Thank you for your kind. It is hard to forget problems, so I remember anyway :) As I said above: where to start a blog? What kind of subjects interesting for HN?


I wonder how you were able to manage your time and break down and implement such a significant project.


One word: sacrifice.

Friends, sport, tv, family sometimes, good mood, work, money, everything except product.

I am focused on 9 hours sleep and work.

Unfortunately that is truth.


This is very impressive! I also admire that you stayed working on it for 6 years!

Here's a quote I stumbled upon just earlier today: "Genius is eternal patience". I think it applies here too.

Would be great to read a blog post about your journey with ups and downs. Do you plan to write something like that at some point?


Thank you, honestly I do not even know where to start, a lot of ups and downs. Yet, I am just in a middle of a way. If not a begining. I will try to write something, I promise.


I wish you had a blog detailing your journey! Perhaps I missed it - but would love to learn more about what got you into the project and how you kept going!


@ianberdin, there's a link to "Sign up." But it doesn't give a good indication of what signing up does. Does it give me access to additional features? Does it sign me up for marketing emails? Normally at the sign-up stage, users are presented with a Terms of Service link or something else that gives further details, but it looks like you only present this information after the user has entered their info. Would you consider adding something like this up-front so I know what I'm actually signing up for BEFORE I enter my info?



The free tier on that page says you get "8 lines of code". Is that a typo? Does the app really not let you write more than 8 lines of code? Of what use is that to anyone?


You can do a lot with 8 lines.


If I were to offer some feedback, the English on the homepage needs some tightening up. There's some bad grammar in there. That would definitely make it look a bit more professional :-)


It would be awesome if you can help. Do you use telegram? @ ruslan_ianberdin


Not OP, but here's a couple of quick fixes for you (honestly, your English is pretty good): "Play with any of 2 millions of NPM packages ..." -> "Play with any of 2 million NPM packages ..." "PlayCode is fastest coding experience ever." -> "PlayCode is the fastest coding experience ever." "It helps to avoid looking for a documentation ..." -> "It helps avoid looking for documentation ..."


Thank you for your time.


Also note, the section "Bug Finder" on the landingpage just contains the text of the "Emmet" section above it.

Cool project besides that :)


Interesting :) thanks.


wow this is bult by a single man? I am an avid user of this site. I thought it is a VC backed product or something. Neat work. Thanks for building this.

It used to be free without any time limitation. But now it only allows 30 minutes of free usage per day. Is this model actually working?


Thanks for your feedback. Unfortunately this model does not work.


So you are going back to the old model?


I actually used this as an online editor for my Javascript interview. I love the interface and the pure dark mode throughout the UI.


Wow really? Thank you. I had a pretty “dark” year when: I was unable to finish 3rd release with real-time collaboration, nested project folders, flexible permissions, workspaces, offline cache and many more as Notion has. And it was too much for myself. Just unable to merge it to production because of many changes. So that is sad. I wish to move some of this features to production. It will be nice to use in coding bootcamps, schools, finding interview, etc.


I love this. Could it be embedded for use in other software? Curious as we might have a use case if so.


Thank you for the feedback. Can you please tell me about the case? Here or at ruslan@ playcode.io


I’ll drop you a line :)


I was thinking the same! What’s your use-case for embedding?


Really love the interface. Very simple and easy to use. The themes are good as well.


Thank you! Really pleasant to hear that.


One reason for the love part of my love-hate relationship with JS is its low barrier to get from 0 to productive thanks to tools like this(and the console in the browser dev tools).

JS actually has a lot of buffer until you hit the bloat.


Absolutely. I was Golang/Python dev before. Node.js is so nice and simple compared. Love it.


How do you stay motivated to continue working on this alone for such a long time?


Thanks for the question. It is the biggest problem ever. I wanted to stop a million times. A super hard problem to solve and super taugh to get motivation to move forward.

There are few quotes which helps me in bad days: "I choose whether I will succeed or not.»


Care to share other similar quotes? I've been working on a passion project for a few months and I definitely have my downs in terms of motivation.


- "Defeat is a temporary thing."

- "Nothing could stop him."

- "One of the most common reasons for failure is the tendency to quit the game, faced with temporary defeats, and immediately give up."

- "Despite any difficulties, we must continue the work we have started"

All about the same :)


I’m a fan of this one:

  Never give up on a dream just because of the time it will take to accomplish it. The time will pass anyway.
  
  Earl Nightingale


Wow, love it! Thanks.


I use this quote as inspiration (don't remember where I adapted it from):

>Doing is often better than thinking of doing


Hey, what are you working on? :D


courses here have pro tier

https://playcode.io/learn/basic-javascript

to OP: the contact links on the page are not working, i wonder how much team pricing is ty


You charge money and it becomes your livelihood. No obvious pricing page, but uBlock Origin detects Stripe scripts


Right, it is not fully free. And it makes sense, right?


I can't tell from the landing page, what are the limitations of the free version / what do you get for subscribing? I always want to know this before I invest my time in anything.


There wasn't a link to this page I could find, but Google found this: https://playcode.io/pricing

If that's current, the free plan is limited to 8 lines of code. That kind of pushes the definition of "freemium".


Any chance you've open-sourced any of this? I've been looking for a way to run Node.js packages in-browser!


how is this different from other online editors,e.g.codepen etc


Thanks for the question. First of all it isn't a Pen :)

Codepen is a community first while having a pretty limited and slow editor without NPM modules, multiple files, rich console, etc.


so the key here is that you put node.js inside a browser, that anyone can use your platform directly to work in a nodejs system for frontend without local npm installation and node_modules/ hassles?


Absolutely. Zero setup coding environment with result view as you type.


Thanks, that's very impressive!


Hey I just recently used this to play with a package (`deep-diff`). Thanks for making this!


So I strongly suggest https://www.npmjs.com/package/@n1ru4l/json-patch-plus/v/0.1.... then. If you need diff and patch.


I really like the videos on the landing page. Straight to the point.


Thanks. Made them recently.


> I work full time now because of the freemium business model

Could you describe the model? I can't see any pricing on your site.


Software development is a lone business…


Yeah, it is. My friend is a computer and psychologist.


Great achievement just for delivering something after 6 years!!!


Is it? Thanks. My friend's product has 10M views/month and 100K MRR. :) Photopea


Ideas from a non-programmer: Perhaps you can cross-seed somehow, would it be possibly to use your sandbox to procedurally generate imagery in Photopea, for example? Can you pair Photopea up with something like processing.org's p5.js (I think that's what they call it) so people can do image processing use JS and outputting into Photopea?

Also, fwiw, I've read--and consider it useful to reflect on--the idea that one should avoid comparison with others and seek first to compare yourself with yourself: have you improved, are you nearer your goals, have you increase your fulfilment ...


You are absolutely right, thanks. It is better to compare to myself in the past.

I just forwarded your suggestion to him.


do you guys have a discord I can join


[deleted]


If I can offer one minor criticism when i see every major tech company listed as your users, I instantly get a sense of a distrust as people do this to inflate the legitimacy and popularity of their service. Why should we trust the statement that all these companies are using your product? I think it’s disingenuous to suggest that a lone employee uses it or even a collection without an actual commitment from those companies. Imagine if every company that ever had traffic from a Google IP put this on their homepage. I could add it to my blog.


My favorite use of brand name-dropping is the kind when a competitor of a seed-stage startup generated a news piece on their new partnership with Microsoft...

I was instantly concerned, at a sign of a huge player with major platform control entering our space.

Then I looked into it a bit, and it appeared all the competitor company had gotten is normal free startup cloud credits for Azure.


I find it dubious that employees from FAANGs would use a third -party coding environment when most have stringent policies about intellectual property and data sharing. A sandbox app like this would have to go through security review to be approved for corporate use. If available, the company would prefer to just host the app on prems.

Therefore I'm really curious how the author can tell it's used by FAANG employees. Corporate emails?


Yep, I understand your feelings. I have Developers from these companies. Not a company itself, I am pretty bad at B2B sales.


Those company-legitimacy boxes are useful for b2b sales when you're trying to sell a product that the companies in question actually pay for. This doesn't seem to be what you're trying to do so IMO I agree with the GP and you're better off removing it.

Look at the ReactJS homepage (https://reactjs.org/), it's the same as yours minus b2b fluff, and heaven knows they could list some companies in there :)


For what it’s worth, as an individual dev, if I can trust the logos, I think it does add social proof. “Trusted by developers at…” can be a way to contextualize it.


Who’s to say that person is right? If anything test it. That person may have a personal and incorrect feeling about the logos. They may be worse at b2b sales than you.


Make sure you are authorized to use their logos. I know Intel would request removal from sites like this when I worked there.


lots of companies put a logo up without permission and just wait for a takedown request, there usually aren’t consequences as long as you comply


As a counterpoint, I don’t think it’s disingenuous and I have zero problems with it. I would only find it disingenuous if the statement made was false (trusted by developers at). Comparing traffic alone with actual usage of a product is weird. Obviously two very different things.


Resubmit with "Show HN" in the title? Then it will be visible in https://news.ycombinator.com/shownew and https://news.ycombinator.co.m/show


We've added it now.


@dang ? Sometimes the mod will show up when tagged, although officially there isn't any user tagging here.


Thanks, I just tried, yet HN do not allow to submit multiple times.


Send an email to the contact at the bottom of each page. They are very helpful.


Sent, still no response. Maybe he is at weekend.


Thanks @dang. You are awesome.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: