yaaang
Joined 15 years ago
Joined 15 years ago
We’ve been working on this tool for several years now and got HN’d in the past (https://news.ycombinator.com/item?id=29563629), but we’ve just released it as an open source project.
It combines some seemingly disparate genres:
- Webflow, Wordpress and other page builders
- Retool and other tool builders
- Glide and no-code app builders
- Contentful and other CMSes
Today these are different tools to specialize in, but the line between, say, a website and an application is blurry (consider an ecommerce storefront with user logins). With the right foundations, we think these can be unified—Plasmic’s UI can adapt to different levels of control for different personas/tasks.
But more importantly, unlike existing tools, Plasmic integrates with codebases. This is critical to making low-code scale past the complexity ceiling that all such tools (including Plasmic) have. You can drag and drop existing complex React components, and you can visually create new UIs/components within traditionally-coded applications, seamlessly weaving code and no-code.
Main use cases we’ve seen:
- Content management: let marketing drag/drop your React components to build landing pages in your Next.js website, with design guardrails
- Applications: let developers and technical users quickly build internal tools, client portals, and business software
- Website builder and design tool that doesn’t limit you to some built-in ecommerce platform, CMS, or hosting
Check out some videos/demos of building:
- Twitter clone: https://youtu.be/rpdjrFuVMog (live app: https://twitter-staging.plasmic.run)
- Service desk app: https://youtu.be/rYqSpUEJSTw (live app: https://tickets.plasmic.run)
- Vercel marketing page: https://youtu.be/itvbmgLZvcM (live app: https://vercel-workflow.vercel.app)
- Shopify headless storefront: https://commerce.plasmic.run
- Apple.com: https://apple.plasmic.run
Plasmic has been in production deployment at companies big and small. But we think it can grow far beyond ourselves as an open source project. We’d love to see it taken in new unexplored directions! Community users have even started using it to build emails with React.Email and mobile screens in React Native—our permission not required.
Would love to hear what you think!
A very nice effect of this is cross-functional collaboration—once it's possible for the team's developers to provide the right components as building blocks, then the non-developers in operations, design, marketing and product functions can compose these into full pages.
So you can build within existing apps and use your own arbitrarily complex React components. This is what makes it suitable for complex production projects, because (as many others note) you'll invariably hit ceilings with typical low-code tools.
It focuses on both websites and applications, so it can be wielded as either a Webflow or Retool alternative.
Congrats on this release! We are actually open sourcing Plasmic soon, would love to discuss any possible ways to collaborate.
You register React components as building blocks, and compose them together into websites and web apps.
Indeed, I believe there's a lot of innovation to be had by page builders - Plasmic's approach is to blur the lines between the codebase and the visual editor, so we try to directly confront the myriad issues laid out by three OP.
https://plasmic.app experimented with bringing together design+code in this way, but we found it didn't take hold outside of small visual tweaks. We ended up taking a different approach to this specific problem - letting you build screens out of React components from your codebase (and have the screens rendered back into your app). This has worked out much better for us, as the surface area for coordination between the developer and non-developer is much narrower and less brittle as a workflow (and at the same time doesn't put an IDE in front of the non-developer).
Recently it started merging a chakra UI contrib as well: https://github.com/plasmicapp/plasmic/pull/51
Sure, you can encode whatever you want inside of data attributes, but that's just ignoring the problem. You still have to decide on a language to express all that within your data attributes.
React server components also does not is not trying to serialize this. Quite the opposite. We have an in-depth write up here: https://www.plasmic.app/blog/how-react-server-components-wor...
(Sise note: Plasmic's AST is in the open and has an API.)
I work on a no-code tool that checks those specific boxes (shameless plug: https://www.plasmic.app), but the use case is very different from Bubble. The key is that it explicitly doesn't try to replace all code, and was designed from the ground up to integrate deeply with existing codebases. I don't think we need be the only one, other tools can also do the same. But this aspect is by far the most complex part of building this product. That, and the pressure to create vendor lock-in is real.
I work on https://www.plasmic.app.