Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Codebox - Open-source cloud and desktop IDE (github.com/friendcode)
136 points by SamyPesse on Jan 8, 2014 | hide | past | favorite | 65 comments


I'd love to see someone build an IDE that lives locally but syncs up to a cloud service so I can pull everything back down to a different machine and work there. I think you could actually do this with Docker, where your "IDE" would not be an editor, but a virtual system with the code, the database, a web server, the right version of Python/Ruby/foo, dependencies, etc., and you could use whatever editor you wanted. As you worked, the app would use Docker to save the state of the world and push it up to the server. It seems like this would get the benefits of cloud IDEs but still provide the low latency and flexibility of working locally. I don't have the time or expertise to build it, but I hope someone will!


Visual Studio 2013 lets me do this quite easily between my different machines.

http://msdn.microsoft.com/en-us/library/dn135229.aspx

One of the nice things about TFS is the whole shelving things, it doesn't pass the tests yet, but you want to switch machines, makes it a lot easier than having some personal branch / patch set etc.


Codebox will soon be distributed as a Desktop app as well (it can run perfectly well on Desktop right now but is not packaged).

That's a nice idea, and Codebox could do that, Codebox.io actually users Docker behind the scenes by the way. So those VMs could be moved to the desktop as well.

Open up and issue on GitHub and let's talk about this.


Ah you mean Smalltalk and Lisp Machines?


+1 to this suggestion! Something that feels as seamless as Dropbox would make my dreams come true. And even better if it could sync to different providers of my choosing, e.g. Dropbox, Google Drive, etc. etc.


Could you do this with some dropbox and symlink magic? I have my ST3 package and config folders in dropbox and it works really well


I sometimes wonder, can cloud IDE's will really be able to replace traditional code editors like Sublime Text, Vim, Emacs.

I really like the idea of cloud IDE's, but practically it's difficult to bring the entire development environment on cloud/browser, and even more difficult when switching from Vim.

Anyways, I really appreciate the efforts you are putting in this project. Congrats guys/gals, job well done.


> I really like the idea of cloud IDE's

What advantage do you see versus just the ability to edit remote files (which has been around for decades) or sync local files with a server (a.k.a. "cloud storage")? Why suffer the UI limitations (solvable), latency (not solvable), and unreliability (not solvable) of having your development environment sitting on a server somewhere?


So that you could work on glossy iPad, of course!


Well,

I find my self writing code in VIM via ssh using tmux and works fine. You can do pretty much everything on CLI, so I don't see how this is a substitute for VIM when all you need in order to write VIM/emcas code is a remote (secure) shell.

That said, vim is not an IDE, although many prefer (me included) prefer it over an IDE.


I have the same reservations. There are a few notable developers who have blogged in the past abut using Nitrous [1] as their primary development environment, so I'd like to say it's possible.

I wonder though if something like Vim.js [2] couldn't start to get closer to making this a practical tool for my workflow. Between that and having offline support / native app to use, there'd certainly be a lot of benefits. Ultimately though, I think the #1 thing it'd come down to is lag; if there's lag (like ever, including trying to launch the program, when I'm offline, or while I'm typing), it can't be my primary development environment without constant annoyance.

[1] https://www.nitrous.io/

[2] http://coolwanglu.github.io/vim.js/web/vim.html


Many have tried to make Vim in JS, but it never works because doesn't support plugins and all the subtle features of Vim.

The only way it will get done is using a true, automatable port, maybe using Native Client or asm.js.

Until then, I'm reluctantly sticking to Vim in a local shell.


Thank you, this IDE works also on desktop (Mac Application coming soon), here is a video of the result: https://www.youtube.com/watch?v=xvPEngyXA2A


Codebox will actually be released as a desktop app as well. And I think that's going to be pretty important to have a truly hybrid IDE that runs both on the desktop and in the cloud.

And what's particularly nice is that the cloud IDE and desktop IDE can share 95% of their codebox.

As a result you have an IDE built with web technologies (JS, HTML, CSS, NodeJS) that can run virtually anywhere (desktop, public/private cloud) and you can iterate quickly thanks to the nature of web technologies.


You could always use the JavaScript implementation of vim ;P


This project runs locally. Just npm install -g codebox


I was confused for a moment at the app name as I thought this referred to the excellent CodeBox application[1]; I thought maybe that app had been evolved into a full IDE.

[1] http://www.shpakovski.com/codebox/


Sorry about the confusion. Codebox (our IDE) will have a full desktop application soon on Mac/Linux (the IDE can run on the desktop).


How does this compare with Cloud9? https://github.com/ajaxorg/cloud9/


Codebox & Cloud9 share some similarities (IDE's built with web technologies).

However we have a big emphasis on modularity, ease of use. We have a Desktop app (linux/mac) coming in the pipes.

Our cloud version has offline support (so you can code even when the network cuts).

And a handful of other things. For example our hosting platform supports stacks (swappable VM images), that allow us to provide our clients with tailored environments to suit their needs (languages & frameworks they use).

Overall Codebox & Cloud9 are both interesting projects. And the Cloud9 team has definitely built some interesting stuff as well.


It might be worth noting that some of the key components used by Codebox are actually developped by Ajax.org (the Cloud9 team) like the ACE code editor component and the vfs system.

Thank you for keeping your source open. Interesting to poke around in the internals.


Cloud9 contributes to ace, but it's also a Mozilla project. Bespin was merged into Cloud9's editor, and now both contribute to Ace.


Bespin was merged into it, yes. But there have not been major contributions by Mozilla in recent times.


Signed up with codebox.io. When trying to create a "box" I get this:

Error creating this box

Error: undefined: <!DOCTYPE html> <html> <head> <style type="text/css"> html, body, iframe { margin: 0; padding: 0; height: 100%; } iframe { display: block; width: 100%; border: none; } </style> <title>Application Error</title> </head> <body> <iframe src="https://sx0z2mmmtv96.statuspage.io/heroku/error">

Application Error</p> </iframe> </body> </html>


Refresh and the box should be there.


True. But now it gives me an "Authorization Required" dialog.


Seems like a cool project, but you might want so consider changing the name, given that CodeBox has been around for years: http://www.shpakovski.com/codebox/


Seems to lack some form of 'package control'. I'd suggest checking the following before implementing tough: https://sublime.wbond.net/ http://batsov.com/articles/2012/02/19/package-management-in-...


I signed up at codebox.io and when I go to "Start editing" a test box that I created, I get a HTTPAuth login box. Not sure what to enter here, but my codebox.io password doesn't work.

I thought that maybe I had missed a dialog box with a user/pass, so I went to delete my test box and create a new one. But nothing happens when I click the delete button for my one box.


I'm running into an error.

1) I signed up via github oauth

2) I created a new "public" box with a python stack

3) Clicked "start editing"

The app says "PREPARING YOUR WORKSPACE" and then asks me for a password (via http auth.) If you're asking for my github password, you're not going to get it... Then again, you probably aren't, so I'm clueless as to what to put there.


Hey sorry, due to the Hacker News load a piece of our infrastructure is having some difficulties ...

I'm really sorry for the inconvenience, I'm on it now.

Check codebox.io in a few hours when I'll have had time to deal with the load issues.


yeah, same problem here, I'll check back on it later. Either way, nice idea, I like the idea of online/offline. it'll be tough to steal me away from emacs/evil mode though :)


Exactly what I was looking for yesterday researching an interactive programming tutorial I was thinking of putting together. Great timing!

Not sure if it's intentional but the license (apache2) link on GitHub goes to the docs folder rather than the license text/ definition.


Regarding interactive programming. I've got some things in a local branch, that provide some Light table like features.

I'll try to get working on those, when I've finished a few other things with a higher priority.

Maybe you could help contribute to that ?


Definitely interested in contributing, going to get this up on a VM tonight and try and get to grips with how it works. What's the best way to get in touch with you?


Shoot me an email at aaron DOT omullan AT gmail DOT com


Thank you, I just fixed this.


The service is currently going through some issues with the load from Hacker News. (We're in early Beta ...)

I'm doing my best to restore the service back as soon as possible, stay tuned I'll update this comment and follow our twitter feed @CodeboxIO


I'm getting Error: connect ECONNREFUSED when trying to create a new box @codebox.io


I've managed to create it out of a git repository, but when i try to start IDE, i'm getting some weird login request(dynobox.io)


Sorry guys, due to some load our datastore is having some issues coping ...

Sorry, the hosting service is still in beta, I'm actively working on improving it.


no problems ;) IDE looks nice


Trying to create a new box but got the error:

Error: HTTP ERROR 200: Error: connect ECONNREFUSED at errnoException (net.js:770:11) at Object.afterConnect [as oncomplete] (net.js:761:19) ERROR: Loadfire does not know how to handle that request


I like the idea of cloud IDE, but I just don't know if they are as flexible as I want them to be, like with adding tools and packages or connecting to staging databases via VPN.


is there a way to run this on a local machine. from the root, I run "node index.js" and nothing happens. from /core/cb.server, I run "node main.js" and nothing happens.

I installed by cloning and cd into repo, ran npm install.

I did not do "npm install -g codebox" because I wanted all the files in a specific directory. Therefore, I'm not using the codebox command that is supplied in the readme. I wanted to start it by running 'node __somefile__'


You can probably start it by running codebox/bin/codebox.js directly. (It has the shebang line at the top, so no need to explicitly start node.)

https://github.com/FriendCode/codebox/blob/master/bin/codebo...


I have an issue installing this with npm. Here is the error : http://i.imgur.com/7NQo8US.png


Have you tried clearing your cache (with npm cache clear) ?

Codebox is on NPM, here : https://npmjs.org/package/codebox.

Try clearing your cache and give it another try, it seems to be some issue on NPM's side.


well, I installed npm just for that :p

Also Tried the cache clear, didn't do anything.

Nevermind, will pass on that. Seems to be a great work btw, will try again in a few months :)

Edit : I had to npm config set registry http://registry.npmjs.org/ and it's working now.


Great :)


Oops I think my system is too old to run that :p

npm ERR! Unsupported npm ERR! Not compatible with your version of node/npm: loadfire@1.3.4 npm ERR! Required: {"node":">=0.8.0"} npm ERR! Actual: {"npm":"1.1.4","node":"0.6.12"}

enjoyaol@serveur:~/codebox$ uname -a Linux serveur 3.2.0-55-generic #85-Ubuntu SMP Wed Oct 2 12:29:27 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux


The Node.js in Ubuntu's repositories is horrifically old. Try this PPA: https://launchpad.net/~chris-lea/+archive/node.js/


The idea of encapsulated VM boxes is intriguing.

What I couldn't find at first glance though is: what programming languages are supported by this IDE?


Hi Aaron from FriendCode speaking (Codebox author),

The IDE itself isn't tied to specific VMs, it can run on your own server, your own desktop/laptop or our cloud.

We provide stacks for our cloud solution https://www.codebox.io/.

We provide stacks and VMs for all common languages and frameworks (PHP, Java, Dart, Node.js, Python, Ruby, Go, C/C++, Lua) as of right now.

The community can also contribute new stacks providing support for other languages.

Hope this helps :)


Oh, that's pretty interesting. Going to try this out - maybe this will be the first usable C++ IDE under Linux for me :)

Oh, and Rust support would be awesome. But I guess that's too early.

/edit: I like that it runs cmatrix in my browser: http://i.imgur.com/ZDiJ5Tw.png ;)


I've played with Rust a bit as well (with Mozilla's servo engine) and it's pretty cool.

I don't think it's an overly common request, but I could definitely add a Rust stack (we already have a Go one).

cmatrix :)


Any plans for supporting LXC or similar container solutions. They're much cheaper on the server side if you want to host a solution like this.


A lot of things are being improved as we speak. We've got a Desktop bundled IDE in the works (Linux/Mac) and I've been working on some more advanced completion and language integration for C/C++, Java and .Net.

So expect this to evolve quickly over the next few weeks. And obviously now that it's open source anyone can help improve the project :)


It lets me create boxes with PHP, Java, Dart, Node.js, Python, Ruby, Go, C/C++ and Lua.


Hmmm, getting a "Error: connect ECONNREFUSED" when I'm trying to create a box.


    npm install -g 
I'm seeing this regularly in node.js projects. Why is it common to install globally and, well, crap up your system like that?

Are they running each app in a separate container/vm? This one seems to made for desktop though.


The only time I see this is when installing a command-line utility of some kind. For instance, if you install express with -g you can generate an app skeleton.

Installing libraries globally would be a problem, but it doesn't seem like this is what Codebox is doing.


The global install is only for when you're running it locally on your machine (it isn't fully packaged for the desktop yet, but will be soon).

On our cloud service (https://www.codebox.io) we do run each app in a seperate container/VM of course.


npm install -g is more like apt-get install

If you don't want global state you could use a VM?

It's global because it is not per project. For example, I don't want to install a tool in every folder that I might happen to use it in. (Or bother setting paths and symlinks)


I really tried to give this a shot but it fell down spectacularly.

1. NPM install failed.

2. Registering for an account with github failed the first time.

3 Creating a workspace failed.

4. 'Start Editing' is now asking for a password.

This is not a great first showing for a concept as critical as an IDE. I was genuinely excited to try this but cant trust this until it bakes for a few more months.




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

Search: