DEV Community 👩‍💻👨‍💻

Cover image for Introducing Codux
Nadav Abrahami for Codux

Posted on

Introducing Codux

TL;DR - Introducing Codux, a new visual IDE for easing and accelerating the development of React projects. Learn more about it here, or join the conversation.

Hi, my name is Nadav Abrahami, and fifteen years ago I accidentally changed the web. I didn’t do it alone, and perhaps not all of it was unintended, but you may have heard of the result: the world’s first visual no-code website builder, Wix - the company that I co-founded.
Now, having been a developer for many years, I’m looking to change the web yet again. And again, not alone: with the help of a dedicated group and, most importantly, with you.

As Wix grew and advanced, utilizing new technologies, building a low code editor required a lot of, you guessed it, coding. Throughout the process, my feeling about web development grew to be quite similar to what I thought before creating Wix: it’s too messy, involving too many tools, too much repetitiveness, and too much effort. There has to be a better way of doing this!

And so we invented one.

“I Wish There Was a Button for That…”

As things stand now, the development process of a web application is a headache. Anyone who spent way too long switching contexts just to get a gradient right or struggling with a multilayered background knows exactly how time-consuming things can be. And many basic actions, like mocking complex data structures, wiring data to properties, or looking for the origin of a code definition, involve way too many steps. It’s repetitive and tedious. Whenever I encounter one of these cumbersome but necessary multi-step tasks, tasks which hold me from writing the real code, I find myself thinking: “I wish there was a button for that!”

In addition, as projects grow more complex, their code becomes more and more complex. Then I find myself switching between the IDE and the browser’s dev tools, just to find out what’s going on. This is especially true when considering the various states of internal components. Sometimes a clear view of the relevant part of the code I’m writing right now would save a lot of time and effort. I always wished there’d be a button for that.

When designers are involved, things can get even more frustrating, mainly because our means of communication are less than ideal: static designs and documents, or their own specialized tools. Whatever form the design spec is in, it’s not code. And so the developer must build the product, looks included, from scratch. The designer, meanwhile, has no way of being a part of the actual coding process, except for the occasional yell at the developer or a quiet sob in the corner. And so I find myself thinking: “Why not let them make the changes themselves? I wish there was a button for that!”

Unsurprisingly, it turned out I wasn’t the only one wishing. Far from it. And so my team started working on this wish list, and eventually created a new product. It’s the ultimate collection of buttons-for-that. It’s the place where all our wishes come true.

We call it Codux.

When You Wish Upon a Stack

Codux is a brand-new standalone tool from Wix designed to accelerate your development process, custom-made for developers and other related professionals. It’s a development environment that gives you a real-time visual rendering of your project, with numerous editing panels for quick modifications, and code editing where it’s relevant (or when you want to).

Codux analyzes your project to discover its UI components and general structure. It does so regardless of your code-writing style. When it makes changes - when you’ve changed a property, for example - it will write code the way you would write it. Codux is designed to be used alongside your favorite IDE. It works on React projects using TypeScript and when looking at the resulting code, you’d never know whether Codux was used or not.

The first thing you’ll notice when opening a project in Codux is the visual rendering stage. It shows how your components look in their various states. Every change you make will be reflected there in real time, whether it was done in Codux or elsewhere.

The stage also lets you quickly access the code related to any given component. By clicking on a component you can jump directly to its source, and quickly edit its content.

The second thing you’ll notice is the visual controls, the property, and the styling panels. Click on an element on stage, and the panels will reflect its properties. Changing styles, adding class names, and setting properties suddenly become easy and fast. No need to spend time looking for the relevant code. WYSIWYG galore!

The third thing is a visual representation of the render tree. It includes conditionals and data-bound repeaters. Keeping a mental model of your project - or someone else's project that you inherited - becomes much easier when you have a visual illustration to refer to. A map of the component.

Codux rendering a card component on stage

It’s also fully Git-integrated, providing a collaborative environment for developers and designers alike. Just imagine how great it is when a designer doesn't need to send you a list of issues, but rather just fixes those on their own, using the exact same environment that you, the developer, do. The current back and forth between you two is reduced to having an occasional lunch together. Which is, to me, the best back-and-forth there is.
But this is only the first step on the road leading to a revolution in the way web development is done.

Now Wait a Minute…

Just in case, let’s quickly dispense with what Codux isn’t. It’s not a no-code/low-code editor (like the Wix editor). Nor is it a replacement for your IDE. Currently, like most developers, I use an IDE of my own choice set up just the way I like it. I won’t quickly replace it with something else, and I wouldn’t expect you to do that either.

Back to the Future

Eventually, Codux will become a one-stop shop for all stakeholders in a given project, covering everything from basic design to full deployment. It will support all frameworks - React, Vue, Svelte, Web Components, you name it - and all styling solutions. What we aim to make here is no less than the easiest, most comfortable, visual, and time-saving solution for writing web applications.

Yes, we know it’s a lot to do. But then, back when we originally created Wix, that seemed impossible as well. I think the results speak for themselves.

So What Now?

Right now, Codux can speed up your development process considerably. It works great with React, TypeScript, CSS, CSS/Sass Modules, and our very own Stylable. It’s also free of charge. So why not download it and give it a try? I’d love to hear your thoughts about it, either in a comment below or on our new Discord server.

In the eternal words of Doc Brown: “Roads? Where we’re going we don’t need roads.” Well, substitute “roads” for anything that holds back your development process right now - that’s where you and I are going.

Download Codux here.

Top comments (56)

Collapse
 
codenameone profile image
Shai Almog

Congratulations!

It's amazing how far back we regressed from the ease of visual basic. There's so much room to improve front end development. Good luck.

Collapse
 
seanmclem profile image
Seanmclem

Really puts the competition to shame. There must be a skill gap

Collapse
 
jesstelford profile image
Jess Telford • Edited on

Taking this one for a spin today! 😍

It's free right now, but are there any plans to open source it? Or will it eventually be a closed source paid product?

I have a use case where I'd like to embed the editor in a webpage: the resulting code would be written to the URL instead of the disk, similar to SEEK's Playroom - do you imagine this being a possibility in the future?

Collapse
 
jomarton profile image
Jonathan Marton

Would LOVE to hear your thoughts once you give it a go :)

It is free right now and will always be free for open source projects. At this stage we're not thinking monitization, but more interested in usecases like yours and what you plan on doing with Codux.

We are working on a fully online version of Codux, and pluggability/extendability system. It seems to me like the combination of the two would answer your usecaes and much more!

Collapse
 
jomarton profile image
Jonathan Marton

Regrading the open sourcing of Codux itself - We already have some of the tooling used to build Codux open sourced and will add to that in the future. We are not planning to open source the entire platform itself for now.

Collapse
 
codingjlu profile image
codingjlu

Fascinating idea. I'll be sure to try it out!

Collapse
 
alastairlangridge profile image
Alastair Langridge

Would be dope if you could allow this to use Tailwind to do the styling, potentially a minefield but for those of us that use it would be pretty amazing

Collapse
 
nadavab profile image
Nadav Abrahami

We're going to add support for tailwind CSS soon.
it's at the top of our list for the next CSS solution to support.

Collapse
 
seanmclem profile image
Seanmclem

Awesome. I don’t suppose you have time for styled components?

Thread Thread
 
nadavab profile image
Nadav Abrahami

CSS in JS is going to be more complex to support, it's supported for rendering but adding it to the style panel is going to take us more time,
it's on our list.

IMO our very own stylable.io is better for managing design systems. you should check it out.

Thread Thread
 
seanmclem profile image
Seanmclem

I thought that might be the case. So I was looking through the docs and was having trouble finding just examples of what the different styling options looked like, in use. It was a lot of set up and semantics. Did I miss the quick code samples?

Thread Thread
 
nadavab profile image
Nadav Abrahami

We currently support CSS and SASS. Both with or without css-modules, and our very own Stylable.

Would love to hear what you would have liked to see in the docs.

Let me know if you would agree to jump on a chat with us.
Thanks

Collapse
 
mrblightning profile image
MrBLightning

Sounds really cool. If I was still creating projects in React I would give a try for sure :)

Collapse
 
nadavab profile image
Nadav Abrahami

what are you creating projects in these days?

Collapse
 
mrblightning profile image
MrBLightning

I'm actually a DevRel these days so I have fewer chances to touch code directly and more chances to explain it to others :)

Collapse
 
knighttechwork profile image
Randy Knight

Codux is absolutely amazing! 🎉 Way to go folks, I wish you much success. 😎

Collapse
 
kkaosninja profile image
kkaosninja

Great article!

When I tried to access the website codux.com/, my security software(Bitdefender) blocked it citing "dangerous software"

Looking at VirusTotal two vendors classify your URL as malicious.

A bad domain reputation may cost you some users. Would recommend getting in touch with the vendors to have this fixed.

Collapse
 
jomarton profile image
Jonathan Marton

We managed to clear up the issue (I hope 🫣). Thanks again!

Collapse
 
jomarton profile image
Jonathan Marton

We really appreciate the heads up and taking care of this right now 🙏

Collapse
 
bhumit070 profile image
Bhoomit Ganatra

It says download node js even though I have already NodeJs installed in my device
I thought it was due to NVM so I put static path in my variable to NodeJS

but it still does not work can you please help me so I can try out this tool

I have m1 pro mac running mac os 13

and I gave path to NodeJS version 18

Collapse
 
thealmightycrumb profile image
Sagiv Dayan

Hi, I am Sagiv, a team member at Codux.
When using NVM I'd suggest running the following:
nvm alias default 18 in your terminal
Then restart Codux.

The nvm alias default command sets the specified version of Node.js as the default version to be used when a new terminal session is opened.

Please let me know if it helped you.
Also, I recommend opening a ticket so we can assist you further: Contact Us.
To help us better understand your issue, you can include screenshots, error logs, and other relevant details in your ticket.

Collapse
 
bhumit070 profile image
Bhoomit Ganatra • Edited on

I tried this but it did not work.

Thread Thread
 
thealmightycrumb profile image
Sagiv Dayan

It looks like the shell you are using may not be set as the default shell that Codux uses. It could explain why Codux is unable to find Node.
We are currently working on a solution to this issue, we invite you to open a ticket in which you can provide more information and we will be happy to reach out to you with any updates.

Collapse
 
carmela001 profile image
Carmen

Thank you very much, I'll try it :)

Collapse
 
redbar0n profile image
Magne

It shows how your components look in their various states.

the visual rendering stage. It shows how your components look in their various states.

How would Codux integrate with XState? It would be awesome to be able to run through the states, see changes in the UI, and make edits and create new states on the fly.

@davidkpiano

Collapse
 
nadavab profile image
Nadav Abrahami • Edited on

Shouldn't be a problem, Boards are essentially react components for wrapping your components, giving them properties and context.

Setting up a component with Xstate, is as easy as mocking it for a test, or showing it in a demo.

Collapse
 
redbar0n profile image
Magne

Cool! I'd be very intrigued to try Codux if there were a convincing example that integrates seamlessly with XState..!

Collapse
 
theluk profile image
Lukas Klinzing

So unfortunately I cannot sign up!

  1. The signup using oAuth is opening in a window where I cannot verify if I am really on a google/facebook domain. I cannot enter my password for this reason
  2. Sign up using email and password not working, because every time I get a captcha request that is endless. I cannot see a reason other than the fact that the login is not in a real browser which makes google think I am a spammer as I am trying to login with an automated electron app or something.

Just in case you wonder if people are not signing up :-)
I would consider a magic link authentication, or a normal oAuth where you get a login window in a real users browser, then get the oauth callback on a website of yours and then redirecting to a link which which can trigger to open the native application...

Good luck

Collapse
 
jomarton profile image
Jonathan Marton

hey @theluk ! Sorry for getting back to you so late...
This was a bug over at google's captcha mechanism. We managed to since fix this issue so you can give Codux a try now.

Apologies for that. Hope you're still willing to give Codux a shot :)

Collapse
 
hamatoyogi profile image
Yoav Ganbar

This sounds super cool!
Can't wait to give it a try.

For other frameworks, have you looked at Mitosis?

Happy to explore if it's a good fit for you.

CC @samijaber

Collapse
 
nadavab profile image
Nadav Abrahami

I can see a lot of advantages to supporting it. We'll add it to the list.

Collapse
 
obetomuniz profile image
Beto Muniz • Edited on

Would this be promoted as an web-first tool? I mean, UI Components run into Browsers, and should be executed in such a environment during development, like the demo in the website. Is it a thing that you will focus?

Collapse
 
jomarton profile image
Jonathan Marton

Absolutley. We're working on a compleley online version on Codux as we speak 😁

BTW, you can still render Codux Boards in a browser - just open the options menu in the editor and choose "Open in new window". Now you can see your code in the browser, debug with browser dev-tools and test different browsers

Image description

Collapse
 
lirantal profile image
Liran Tal

Really taking the whole lowcode to the next level. Nice work and congrats!

Collapse
 
jomarton profile image
Jonathan Marton

Hey @lirantal !
We like to say it isn't low code, it's YOUR code :)

18 Useful Github Repositories Every Developer Should Bookmark

>> Check out this classic DEV post <<