(Photo by morgana pozzi)
So I’ve been working on something this past little while, and it’s getting to the point where it’s ready to see the light of day. RestlessIDE is entering its closed beta! If anyone is interested in checking it out during this early phase, offering feedback, suggestions, and maybe a few bug reports, I’d really appreciate it. Please just sign up on the site and I will follow up with you as beta slots become available.
What is RestlessIDE?
RestlessIDE is my take on a web-based Integrated Development Environment. For those that aren’t developers, an IDE is typically where a programmer does their coding. Most often this is done on their own (or their company/organization’s own) computers, but with RestlessIDE they can do it right in their web browser from any computer with internet access.
There are other web-base development environments out there; what makes RestlessIDE compelling?
1. A Great Code Editor
RestlessIDE uses OpenVSCode-Server as the core of its editing interface. This project takes the open-source VS Code editor we all know and love and makes it available inside a Docker container. You get the same day-to-day coding experience you’ve become accustomed to, with (most of) the same plugins and other add-ons, but inside a web browser. Pretty neat, huh?
Your code is available wherever you are. Throw your old Chromebook in your bag and log on from the train. Jump on your boyfriend’s parents’ computer during Thankgiving (sometime after the 2pm dinner and before the Lions game) and bang out some code. Do you have a NexDock and a Samsung Galaxy phone? Plug it in and get-a-codin’!
Each RestlessIDE workspace lets you customize your container to the needs of a specific project. Are you a freelancer or consultant who needs to jump between different codebases, each with separate infrastructure, libraries, etc? Just create separate workspaces, configure them as needed, and they’ll be there whenever you need them.
When configuring a new workspace, you can specify a git repository (even private ones!) and it will automatically get cloned into your workspace. You can also specify a language/platform and the workspace will install compilers and libraries for you to get you started faster. You can even have it install a local database right within your workspace, with MySQL, PostgreSQL and MongoDB supported at launch.
Because your workspace is already running in the cloud, you (and your clients) can easily see your work in progress just by going to a special port on your workspace’s domain. Each workspace can have up to two ports available (3000 and 3030) and they can be configured for HTTP/HTTPS (with automatic SSL certificates) or raw TCP connections, depending on your needs.
2. Your Dev Infrastructure, on the Web
Modern programming is a lot more than just editing code, though. You need to rely on lots of other tools and other infrastructure to get things done.
RestlessIDE offers a number of add-on Services that make it easier to work entirely on the web.
These include:
- PostgreSQL, MySQL and MongoDB, each bundled with their respective web-based administration tools. You can use these to set up development databases for the whole team, keeping data centralized and easy to access, while avoiding unnecessary costs from other cloud providers.
- Redis and Memcache, also bundled with web-based administration interfaces.
- Web-based Linux Virtual Desktops: Give your developers a full desktop for running any of the tools they need (including Podman, a tool similar to Docker that runs in non-root accounts, and Filezilla, a graphical SFTP client) that don’t work easily from within their workspaces.
- Collaboration tools, including Zulip and OpenProject.
The list of Services will grow over time based on community feedback, and are generally free, with the caveat that they need to be run on your organization’s private Hosts, described below.
3. Room to Grow
Your RestlessIDE account gives you up to 3 shared workspaces per user. What happens if you need more than that, or if you need something with a more powerful CPU, more disk space, more memory, or even GPU access?
You can get a Host!
These Hosts have various CPU, memory, disk and GPU configurations meant to meet your needs.
Do you have a bunch of different projects, but only really need to worry about a few at a time? You can get a small host with 4gb memory, fill it up with workspaces, and shut shut them down when they aren’t in use to limit memory usage.
Do you lead a larger organization with many different groups, each with their own dev databases, caches and separate OpenProject installs? Get a large server, create all of the infrastructure and let them have at it. If your needs change, you can just shut down the services you don’t use or add new ones, and your bill doesn’t change. You’re renting the box and you can use it how you want.
4. Built for Teams
RestlessIDE is made to help your team work more effectively together.
When adding new members to your account, you can use Groups to define your various teams, and assign Admins to lead them. Admins have the ability to join workspaces of their team members check out their code, offer advice and guidance, and help them get unstuck.
We also offer a growing number of open-source services to help your team collaborate more effectively, including:
- Zulip: A collaboration tool with features similar to Slack, including group and video chats, direct messages, mobile clients for your phone, etc.
- OpenProject: Project management software similar to Jira. Works with various project management paradigms, including classic, agile, and hybrid.
These can be configured to run right on your Hosts free of charge, perhaps even saving you some money over subscriptions to alternative services.
5. Predictable Pricing
I don’t know about you, but I’ve been burned by cloud pricing. It’s pitched as this thing where you “only pay for what you use!” which is technically true, but really only useful when the thing that you’re paying for is super-expensive and you want to be sure will only run for a short time.
For 90% of development infrastructure you’ll want it running indefinitely, and you don’t want surprises when the bill comes each month. If you use PostgreSQL on all your projects, and your company survives more than a month, won’t you want a PostgreSQL dev database running the whole time? And don’t get me started with the arbitrary limitations. With RDS, for example, if you start a small instance, AWS limits the number of connections you can have to the server. Go over that (like if you’re in a connection pool environment, and have multiple developers running local servers) things just start breaking in weird ways. Who needs that?
With RestlessIDE, you pay for 3 things:
- The monthly subscription.
- Each user you add to your account.
- Each Host you add to your account.
That’s it. If you’re a solo entrepreneur with no teammates or Hosts, you only pay for yourself. If you have a team of 3 and are fine with the 3 workspaces per person, you pay for yourself and two additional users. If you decide to get a host, you can add a bunch of services or additional workspaces to it, delete them, add more, whatever, and you just pay for the Host. No need to deliberate before making changes to your own host. Use it how you want.
Over time our selection of Services will only get better, and there will be more and more ways to get value out of your RestlessIDE account.
6. Not Going Anywhere
I made this product because I really believe in browser-based software development.
For several years I was a happy customer of Cloud9, an earlier web-based IDE, using it on my Chromebox and Chromebooks up until Amazon purchased it and (some time later) cut off access to the website, directing people into the bowels of AWS to run it from there. I tried. Believe me, I TRIED. They killed all of the things I loved about the service. Sure, you could still edit code in it, but if you wanted to see your running website? Set up Security Groups, and make sure your Egress and Ingress are set up right! Ugh.
I then switched to [redacted]. It was a pretty cool service, using the Eclipse-based Theia editor when I started using it; the prebuilt environments were nice and it felt like Cloud9 used to. Then I had an episode where the site was unavailable for almost a week, and the Twitter-based support wasn’t offering timelines for when it would be back. Then they changed the interface, and made you jump through some hoops if you still needed to access workspaces on the old version of the site (I had about 30). Nowadays it seems like they are trying to rebrand as an AI-based development environment, with pricing based on the number of hours you use the workspaces. When you’re crunching on a deadline, do you really want to watch your hours to make sure you don’t need to pay extra for your developer tools? I’m sympathetic to the challenges of a startup trying to find a workable business plan and needing to try to tailor the product to what will get them funding, but as a paying customer I was frustrated.
Since then I’ve previewed a few other services and found them all with weird limitations. Workspaces shut down after 30 minutes of activity regardless of what you tried to do to save them. Some services have different tiers of environments, with some being free and others (the ones with terminal access!) being very limited in terms of hours for the monthly price. Some of them used truly awesome technology; one I saw lets you clone workspaces almost instantaneously so that you can (I guess?) A-B test various ideas and solutions without delay. When I sat back and thought about it, though, it didn’t really match the way me and the teams I’ve been on worked. For a workspace that I intend to use for 3 months of work, I don’t really care if it takes 5 seconds or 30 seconds to initialize the first time I set it up.
RestlessIDE is different because it’s not searching for a business model. I built it for myself and others like me, and I use it every day with my consulting practice. There aren’t investors I need to satisfy or arbitrary milestones I need to hit to make my hockey stick take off. I want it to grow organically, with features prioritized by the needs of customers. And I want to charge a fair, sustainable price so I can make sure the service can thrive.
If you start using RestlessIDE today, you can be assured it will still be there tomorrow, serving up your code dutifully.
Now for the Fun Part
It’s about to get interesting. My baby is entering the world and it’ll likely get kicked around a bit, like all babies (?) do. Maybe our childhoods were different. Anyway, it’s exciting but also a little scary.
I hope you’ll join me for this journey. Please click the button below to sign up for our beta, and we’ll send you an email to try it out as soon as we have slots available. Everyone who participates in the beta will get a credit good for up to 2 months of free service!
Top comments (1)
I've enjoyed all of the research you've put into this project - it adds up