Ask HN: Why React developers don't want to use UI builder?

26 points by ipselon ↗ HN
I'm the author of Structor, it's really handy tool for creating UI for Web application with React components. In this article I made some introduction for Structor https://medium.com/@alex_pustovalov/structor-as-a-playground-for-react-applications-49accf4544b8#.n75e4q571

Also, I created something like a market for React components, it is convenient service which is integrated with Structor. Through this market developer can install any component into his project in form of source code generator - just like a big repository for components.

Till that time no one has tried to publish even the simplest component.

I'm really wondering, it so needless for developers to exchange with components quickly?

18 comments

[ 4.8 ms ] story [ 71.3 ms ] thread
I searched your Medium article for a link to an online demo for Structor and couldn't find one, perhaps that is letting you down.

Certainly looks like a promising and very comprehensive project. I'm not using React right now but I've definitely bookmarked this to come back to. Good luck!

Marketplaces classically suffer from the chicken and egg problem. No point in distributing via marketplace if no one is buying there, no point in trying to buy there if no one is distributing (this is true even if "buying" is free).

For open-source stuff, npm is pretty much the One True Way to distribute JS libraries these days. If I'm looking for a component, I'll expect to find it by google and install it from npm.

(As far as Structor itself, I'm not at all clear on what it's supposed to do for me. The article is very long and covers too much ground. I don't see myself as likely to use a UI builder in any case, though. My current React work is all with bespoke UI controls, look of which is given to me by a designer.)

You are totally right that every one used to workflow: google, npm, reading docs, trying to setup new component into project.

The goal of Structor is to give a simpler way - open project, and if you want component try to install it through the market for 10 seconds. The problem - to have big amount of such components. For this I made convenient mechanism for publishing components generator.

BTW, generator can generate only the glue code (which you writing every time after you installed npm) and has the ability to install dependencies from npm automatically.

Just one data point: I never heard of it or honestly thought to look for such a thing. Might just be a marketing issue?

BTW, I _have_ heard of React Storybook (https://github.com/kadirahq/react-storybook) and happened to find OverReact (http://www.overreact.io/) which look similar at first glance. Can you give us a quick comparison?

Thanks for creating/introducing me to Structor... I'll look at it for new components. :)

React Storybook is really similar thing. Although, it acts only for simple components - it seems that you can test presentational components.

Actually, Storybook is a lot simpler because Structor has convenient visual component composer. And of course, Structor uses source code generators with predefined boilerplates for Redux, Redux Saga.

Navigation between pages in Structor works with React Router. And you can export all pages with routes.

The main thing that is not liked by others is that Structor works with its own seed projects. But this is done only because Structor compile whole project.

I've seen you post links to Structor on HN and Reddit several times over the past few months. For whatever reason, none of the threads seem to have gotten any attention at all. Not sure why.

As for looking for React components, my go-to site is generally https://js.coach, and sometimes searching on NPM.

Right, and my goal to create a global repository with React components which you can install immediately to your project.
I don't have a lot of interest in relying on some random component I downloaded on a whim. Not even for personal projects.

And for my own components, I can't see how it'll be faster than just implementing them in my own project, or React Storybook.

On top of that, my experience with UI builders in the past has been that they're rather hard to work with and typing out the HTML myself is not only faster, but also more flexible and more likely to end up doing what I actually want... And probably with less code.

Don't you use something like a DateTimePicker or React Select component?
It seems that "UI builder" words totally disqualify any tool which was named so.
Biggest challenge for UI Builders is that programming unfortunately has the accepted meaning of typing cryptic colorful ASCII text into an editor. Stuff that makes programming easy is mainly for users who don't know how to program.

Not that I think it should be that way, that's just the psychology of programmers. Of course many don't realize that or won't admit it.

Also some programmers really haven't got the idea of code reuse through components. They don't understand how useful it is. But sometimes it also is in the first category of something that makes programming too easy so they don't want to be associated with that because they want to be known as an engineer that does hard things.

Also, even though people sometimes try new things on purpose, they usually do most things just because a lot of people are already doing that. So even if someone likes your system unless they perceive it as being popular already they may not use it.

I think most developers are fine just plucking the most active and "starred" repositories on github.

I tried Structor briefly and while I liked the idea in principle, my tooling and requirements are changing too quickly and I do a better job keeping my dependencies up to date. I feel that adding an extra layer of complexity between or adjacent to my application and the dependencies I'm probably already pulling from npm/github is going to be viewed by many as needless when importing components from modules is painless enough as it is.

Still, I like your project and it has a lot of potential.

You are essentially building a marketplace so you'll need both suppliers and consumers. This is hard because one side relies heavily upon another. Typically, you need to boost one side first and then the other side might catch up. In other words, you need to build up either 1) the consumer side (say, if you can make this app so easily to use that people will love it despite a poor supply of UI components) or 2) the supplier side (for example, if you can somehow import 20k React components from npm or github to your marketplace)
Thanks, that is exactly what I'm thinking about. I made the first part, but not many developers like it so far. That's why I will start making the next part - importing components.
That's awesome! You might also want to rethink what your market is. Is your users going to be engineers who build web app for their company, engineers who build their side projects, some developer-designers or maybe some technical product managers/product engineers? You can still catch all of them eventually, but in the beginning focusing on one or two groups might help quickly get more users and also help on morale.
Yes, you are quite right. And I already decided the following. Acting as market we will be focusing on engineers who build web apps and freelancers. And as a company with own product we will provide development teams with something like component generator service (installed on internal server) for Structor - this is for enterprise customers.