I'm gonna start copy/pasting this every time I see a new website builder pop up.
Look, at a high level no-code seems to make sense. But there's a serious issue with the value proposition when you start thinking critically about it. The supposed benefit is that, as the "no-code" moniker suggests, people without coding skills can build websites. Sounds great!
Except that just, like, look at the screenshot in the hero section webstudio's landing page. There's a visual sidebar with a flexbox configuration panel. The word "flex" is displayed as a dropdown, so I'd imagine that the menu list contains other options like "grid", "block", etc.
This means your target audience is people who (a) understand the difference between CSS display properties, and (b) think that this interface is easier and faster than writing the code directly. I genuinely do not understand who this audience is - if you understand code, code is dramatically faster than any UI and everyone who codes knows it.
I've worked with a non-technical CEO, and I once showed him Webflow to see if he could grasp it. It went as well as you'd imagine. That's not me making fun of him, it's me pointing out the reality that this shit is complex, and tossing a UI on top of it doesn't change that complexity.
Another point is that even if it helps speed up web development, it can only do so for very small websites with light interaction. If you're looking to do anything even remotely custom or sophisticated, these kinds of tools break down very fast. So there's a paradox here - the stuff you can speed up really doesn't take very long anyways, and the stuff you actually need to speed up, these tools don't help with.
There is a serious knowledge gap between what you just wrote and the actual reality out there. I don't want to convince you of anything, just share the knowledge of what's actually happening. Why tools like Webflow have $4bln valuation and why there are millions of webflow developers.
1. You are looking at it in black/white. Coder vs nocoder. That's not how it is in reality. There is a seriously big amount of people who understand enough of coding to use webflow comfortably but not enough to write code by hand and/or wanting to do so.
2. Designers are used to visual tools. They find their way when tool allows to experiment without first studying how to code and then gradually learn css/html basics if they need to.
3. Building layouts, styling, html structure etc is actually faster with webflow once you understand how it works and learn all the shortcuts.
If you actually care to learn about it, go talk to some pro webflow devs. Some of them will tell you they actualy know how to code, but its less efficient for a lot of use cases.
4. Handoff. A huge problem with building websites is wasted time between a designer and a developer. There is just too many things to consider and a static design in figma is never complete. Webstudio and Webflow aims at solving or at least reducing the handoff by either building directly in Webstudio/Webflow or by keeping figma design low-fidelity just for initial communication with the customer and then moving on to building.
5. This industry has come a long way and these days several tools are also integrating with git-based developer workflows. The goal is to let designers and visual developers to build visual components and design systems in the builder ui and provide those components to developers for further integration.
6. There is a clearly steep learning curve with Webflow. Lots of things are not easy to get. Its not a tool to build a website in 5 minutes, its a tool to learn html/css visually and become pro visual developer. Once you are there, the typical landing sites and marketing pages, even large one are built significantly faster and more presize from design perspective than with coding. I am saying this as an engineer who started building for the web in 2004.
This is not meant to start an argument. Just pointing out a lot of stuff that is understandably not clear to many.
Totally reasonable response, and thanks for taking the criticism well - I hope it didn't come off as too harsh. I mostly agree with everything you wrote, just one thing I'd say:
Designers may be used to visual tools, but IMO it's a hangup. It's like someone telling you that they find it easier to click File > Copy > File > Paste because they're not used to typing "ctrl c > ctrl v". I get the psychology of it, but it's objectively wrong - a keyboard shortcut will always be more efficient and everyone who learns them is better off for it. Code is like that but on steroids. If there's an efficiency gap then it's an issue with dev tooling (which IMO is 100% true in lots of cases), not inherently with code.
Pro webflow developers use keyboard a lot. In fact with Webstudio we took the keyboard accessibility very seriously, still A LOT to improve.
Visual development is a mixture of mouse and keyboard. Some things are faster with the mouse, some with the keyboard.
The reason some people prefer mouse is not just that they are used to, even though it is true. Its because they know how to be efficient with it very well.
"code is like that but on steroids" - again it can be true in certain use cases, but there is a massive amount of use cases where this is not actually true.
Most of them are around layouts, styling and configuring components.
Visual development is basically declarative programming - its configuring things.
We are actually thinking deeply about the gap between typing and visually manipulating stuff at Webstudio and the plan is to allow a lot of the same UX patterns that you have with text-based coding: copy/pasting things like styles, box shadows, gradients, instances of components etc.
Ability to paste gradients is already there, box shadows comes soon. Writing component code inline will most likely come at some point as well. Linked CSS editor - similar to chrome dev tools for css is also planned.
As you can see there are ways to close the gap and when needed write code.
The most frustrating thing with code is the build tools, compilers etc. These days nobody writes just simple html and css, things are complex. So the benefits of writing code are often completely destroyed by the amount of complexity to deploy the site.
Ha, I was back-and-forth on editing a response to my own comment with a caveat - there are indeed times when I've found UI editing to be more efficient. There are probably a lot of factors that go into it, but the main one I've noticed is when there are a lot of concrete values that are both numerous and difficult to know ahead of time.
An extreme example is a squiggly line in SVG. Click on a canvas and drag, super easy. Or try typing it out and discover your inner masochist.
So, I definitely see your perspective, thanks for sharing your thoughts!
I really enjoyed this back-and-forth -- so much that I agreed with all of the comments on both sides, as I read them! (Not an intellectually consistent position, I admit.)
Glad you enjoyed it - it's two people who are very passionate about the same topic. I didn't mention it beforehand but I've been working on my own solution to this problem - I've been going back and forth between drawing board and prototype for years and it's become an obsession for me. I love this problem.
Developing better HCI and UX is not a "hangup". Accessibility (in the broader sense) is incredibly lacking in technical spaces.
Also, your example is a poor one, because in your example, both a visual method and a quicker keyboard method exist. Very often, the visual method doesn't even exist. In your analogy, its more like there is no way to move text from one app to another except for ctrl-c / ctrl+v, so the guy trying to do this just gives up and can't do it because they only know how to use file - paste. It's not even about shaving off .5 seconds, its about not even accomplishing the thing they want to do.
Finally, no, there's no such thing as one method being "objectively" wrong. You're making the mistake to think that efficiency between navigating screens and work is all about being fast. It's not. There's a lot of people (actually the majority) who don't give a shit about being faster at keyboard shortcuts and shaving 2 seconds off whatever. If you're a copy-writer, you might copy-paste once or twice and then the rest literally never leave a word editor and email.
This attitude is one of the biggest problems in HCI and development today. The tinkerers and developers like ourselves who love doing this stuff are unable to understand how actual users and clients work with systems, and when told that our designs suck and are inaccessible we scoff and say "lol just learn linux".
Finally, I have no idea whether or not there's an audience for this, but I will actually say that I'm probably one of the audiences for it. HTML, CSS and even JS isn't actually all that complex. But guess what. The real annoying shit that I have no interest in dealing with is the insanity of web development these days which involve build/compile and webpacks and frameworks and blah blah blah.
If I had a platform that let me dip into CSS/HTML/JS but had security guardrails, deployment fully setup and had some basic capability to whip up a docs page, or a simple website that still looked good, I would absolutely use it in a heartbeat.
In fact, I'm currently using a dinky-ass no-code app builder (lmao, in ESRI's ArcGIS Enterprise no less) to make a simple CRUD app. Why am I using it? Because none of the shit is documented at my workplace for deployment, I'm not interested in learning to use kubernetes just for a simple-ass website, and I have zero interest in figuring out how to configure HTTPS and deal with JWT tokens and whatever. I'm a data analyst who works in jupyter notebooks, python and SQL.
"Should" I be making this god awful no-code app? Hell no. Do I want to? Hell no. But do I need it? Yes, very much so. Otherwise, the people I rely on to populate a referential / look-up table update their reference documents in word and the table only gets updated manually when someone bugs the DBAs to manually update it, so these tables are always out of date. I could go with a straight-face to our over-worked web devs and ask them to stop working on their enterprise-wide/big-client project, but they would either hate me forever (fair) or ignore me because they're doing way more important things. Or I could go to the policy people who update these tables who can stare at me with a blank face when I explain that even if they just make an Excel table instead of a Word table then it would improve so many things, but to them its "whats the difference? im putting text in one table or another."
Instead, we have this dumb thing that's a drag-n-drop Bootstrap page maker, and with it comes built in auth, login and even exposes a simple REST API.
If I narrowly focused down on whether or not making this app with a drag-n-drop tool vs just writing an SSG, ofcourse the latter would be easier and faster. But, just writing the code for an SSG is not the hard part here. It's everything else that web devs live and breath so they forget how stupid of a workflow it actually is to make a React-Nuxt-Next-Babel-Webpack-Vite-tailwindCSS-whatever monstrosity, when 90% of people's needs could be served with the equivalent of a web-deployed version of Excel with some neat animations.
It's the same reason why UX designers and shit like figma exist. We let developers be in charge of designing an app, and they built unironic versions of userinyerface[1] and when told their shit sucks, they shrug and say whatever, "it'd be faster if they wrote X in markdown anyways."
I love thoughtful pushback as well as a good rant, so thank you (really). I completely empathize with the use cases you listed. Only thing I'll point out is that I'm only quibbling about the mode of interaction (UI vs text), I'm definitely not advocating that designers or non-devs should know or care about react/webpack/tailwind/blah/blah. Agreed that a nicely integrated design tool would hide all incidental complexity.
As someone who transitioned from flash to webdev a decade ago, I wholeheartedly agree with this. A lot of folks who started their careers with current state of webdev workflows don't fully understand how amazing a fully integrated design solution that generates production ready artifacts (while retaining programmability) can be.
Thank you for succinctly summarizing this - I couldn't have done it better.
As a frontend dev, I have to disagree. The web is primarily a visual medium, and it's quite odd and inefficient that we have to code UI in declarative markup rather than a visual IDE. Visual Studio had better layout tools for WinForms... two decades ago.
Tweaking CSS and manually dragging the viewport around is not a great way to make responsive layouts. Flex and Grid are a nightmare of confusingly named properties (align self? justify content?) that would be much simpler to lay out with visual guides and snaps.
Dreamweaver had its uses back in the day, but sadly couldn't keep up with the pace of framework development (in CSS and Javascript) and became less useful over time.
These days I wish I could export Figma layouts to framework skeletons and go from there.
Of course there's stuff that's easier to just write in code (business logic, chiefly), but complex layouts that are ultimately rendered visually? I see no reason they shouldn't be laid out visually to begin with, InDesign style.
Just as designers might not understand the tooling of dev environments very well, maybe it's the case that some coders don't understand the power and benefits of visual design tooling? They certainly have their value, if you know how to integrate them into your workflow.
You must not have used the large amount of low-code tools in the past.
I remember a time when almost all business apps were written in a drag-n-drop environment.
There's a reason that they dominated so definitively, for so long.
In fact, a big reason they're not around anymore is because the vendors forcefully killed them off.
The web as a replacement for app development is a really poor substitute, but anyone who started coding after 2004 won't know this, as it's all they've ever seen.
In short, parent comment is so off-base it might as well come from an alternate reality in which VB, MS-Access, Delphi and C++ builder did not exist.
I used UIKit (iOS) for a couple of years back in 2015/2016. It was an interesting experience, I did enjoy laying out the architecture of my app visually, then dipping into code for the behavior and business logic.
> I used UIKit (iOS) for a couple of years back in 2015/2016. It was an interesting experience, I did enjoy laying out the architecture of my app visually, then dipping into code for the behavior and business logic.
I think you can expand your view on what is technically possible by simply downloading Lazarus and creating a simply application with it. Follow a tutorial.
Then compare that experience with mangling react or similar to get what you want using purely an IDE to build everything.
I’ll check it out, thanks. I remember doing a survey of lots of GUI tools a couple of years back (GTK, QT, etc). I don’t think I ever came across Lazarus but if it’s still available for download I’m interested to see what it can do.
There are a lot of people who understand what code does in isolation but struggle to understand the complexity of what happens when you build up layers of abstraction. Knowing what flex does is one thing, but know how the cascade works or what specificity rules are is another level. Technical visual tools help.
Its worth noting that the same is true for plenty of coders too. There's a good reason why people say things like recursion and pointers are hard.
Webflow actually helps with all those things. Webstudio doesn't have much yet accessibility features on canvas, because this comes next, but the performance - man it feels like a lifetime spent on optimizing it with the help of lots of different tools. we hit 100% on lighthouse score consistently, the webstudio.is landing is built with webstudio.
Look, at a high level no-code seems to make sense. But there's a serious issue with the value proposition when you start thinking critically about it. The supposed benefit is that, as the "no-code" moniker suggests, people without coding skills can build websites. Sounds great!
Except that just, like, look at the screenshot in the hero section webstudio's landing page. There's a visual sidebar with a flexbox configuration panel. The word "flex" is displayed as a dropdown, so I'd imagine that the menu list contains other options like "grid", "block", etc.
This means your target audience is people who (a) understand the difference between CSS display properties, and (b) think that this interface is easier and faster than writing the code directly. I genuinely do not understand who this audience is - if you understand code, code is dramatically faster than any UI and everyone who codes knows it.
I've worked with a non-technical CEO, and I once showed him Webflow to see if he could grasp it. It went as well as you'd imagine. That's not me making fun of him, it's me pointing out the reality that this shit is complex, and tossing a UI on top of it doesn't change that complexity.
Another point is that even if it helps speed up web development, it can only do so for very small websites with light interaction. If you're looking to do anything even remotely custom or sophisticated, these kinds of tools break down very fast. So there's a paradox here - the stuff you can speed up really doesn't take very long anyways, and the stuff you actually need to speed up, these tools don't help with.