Figma OSS Alternative
penpot.app
penpot.app
Its just mostly about focus of the project and agency of people trying to make UX better.
Arguably it's more important to create software that solves a problem first so there is an incentive for people to keep using it. But the less people use it, the longer it will take for the UX to improve organically (see Blender and Inkscape).
Whatever caused it to succeed and catch enough attention to be continuously improved, I'm thankful for that. Same as with game engines like Godot and other similar FOSS projects, maybe even LibreOffice not dying like OpenOffice did, though that's a whole tale in of itself. Actually, I'll similarly celebrate improvements in proprietary software, too.
Then again, I still think that Inkscape and some of the other software that gets touted as good is actually not very usable, so I'm a bit opinionated.
Honestly, so many projects simply reap what they sow here.
(As far as this program is concerned, my general thoughts are — give it a few years. It took Figma years to supplant Sketch, it took Sketch years to supplant the Adobe suite. I think that the desire from the community is there, as there are really scummy business practices that the Figma team has put in place, and it’s squeezing departments/seats/licenses, which is stupid obvious artificial scarcity that they’re using to extract as much as they can before something useful and FOSS comes around and eats their lunch.)
It has its quirks and even some annoying bugs but where it excells its IMO way better than what any competing/proprietary design tool can do (vector and bitmap exporting, vector+bitmap combined layering, shape/colors/text layout, PDF editing/creating, vector pen tool, etc). I use it to create UI for games & apps and more generally to build sprawling UX scenarios and concept flowcharts.
In more recent builds its performance has become quite good which was a problem it had before. Granted, lots of room for improvement still particularly wish it had more natural flowcharting capability.
Disclaimer: I'm an engineer not a UX/UI designer, and I use Inkscape mostly for graphic designs and the odd super-simple CAD stuff where I don't think starting qcad is worth it. Still, I'm immensely happy that I can just get stuff done in Inkscape and that everything inside makes sense and is generally discoverable "solely by logic".
Is Inkscape good for svgs?
In this aspect, Blender is a very unique OSS project.
Figma is stupid expensive, especially when you onboard developers, so it seems like a GitLab esque play could be disruptive.
I wonder if over time a tool that blends the developer, product and design experience more seamlessly will catch on. Having reactive code that is driven by the underlying design in a cohesive way perhaps.
It's not like there aren't commercial design tools other than Figma either. People choose to use and pay for those tools instead of Figma. The idea that there's one 'industry standard' choice and everything else is wrong is obviously nonsense. Having an OSS option as well is only a good thing.
Because of the economics of software R&D. Professionals are not willing to stand around a tool that does not do what they need to make money themselves. They simply want to pay and use for a "finished" product, but never stop to consider that (a) software is never finished and (b) funding its development does not mean that you need to use it exclusively.
Companies/professionals would stand to benefit a lot if they funded FOSS alternatives, even if just as an hedge against their "main" tool. Imagine if every design agency got 5% of their "Adobe Tax" and donated to the devs of Penpot, Gimp and Inkscape. No strings attached, just with a "here, none of you need to worry about funding". In just a couple of years all these OSS tools would catch up, and the companies would be able to at the very least use the existence of FOSS alternative as a negotiation tactic when dealing with sales team from Adobe.
Uh, why? It's not magic. Sure, it's a problem that most OSS projects don't focus on UX and perf, but there's no intrinsic reason why they couldn't.
The only other web app I can think of doing the same thing is Google Docs, which uses it's own canvas based renderer with an svg overlay for accessibility. I feel it's telling that Google thought leaning on their own browser (through HTML/CSS) wasn't even good enough for typesetting.
https://workspaceupdates.googleblog.com/2021/05/Google-Docs-...
On Linux + Firefox, basic navigation, like panning and zooming around in a file, is painfully laggy. In FigJam, try using the marker to draw any curved line--it updates at like 2 frames per second, which makes it completely unusable for handwriting text or drawing diagrams. Excalidraw, on the other hand, in the same browser, is perfectly lag-free.
Every time a designer sends me a Figma I just ask for exported images because using the website is an exercise in frustration. And don't even get me started on the impossible, spaghetti-on-an-infinite-canvas UX requiring endless zooming and dragging...
I just tried using the marker in Figjam, and it works perfectly fine for me. I think you may be running into an incompatibility between your browser or settings and Figma.
As for the infinite canvas, this is very handy as a designer, it makes it much easier to work across multiple frames at once, such as quickly zooming out to look at the flow or building a prototype, all the while zooming in to fix issues.
I also happen to use Linux + Firefox and so I have to agree that it is definitely not a joy to use Figma, even for small projects.
* Penpot 2.0 Released https://news.ycombinator.com/item?id=39978781 (131 points | 21 days ago | 27 comments)
* Penpot: Open-source design and prototyping platform https://news.ycombinator.com/item?id=32851262 (1145 points | Sept 15, 2022 | 128 comments)
That being said, it's FOSS, anyone can help, they will never have a rugpull like almost getting bought by Adobe.
The license on GitHub is featured prominently as MPL-2.0
It's like we keep improving the brushes to please the artists but the pictures are crap.
Since the rise of web applications I mainly learned one thing: Waiting.
Downvote all you want bots , that is the truth. If you can try to come up with proper arguments.
Am I just holding it wrong?
On that axis it's bad, on the axis of designers and people who value visual tools like that it's productivity and ease of use is off the charts, the number of people who I know jump on and find using the tool frankly joyful surprises me at times.
It's executed very well for what it's doing, the fact that you can't export the outputs into code is in some sense incidental, because it's not a requirement that anyone I know who uses it cares much about.
It may sound crazy to a developer, but Figma is a design tool for designers whose features and workflows respond to the needs of, indeed, designers.
- out of all tools, I picked Figma as clearly the best for UI design
- I've used it enough that I run into multiple edge cases and limitations
- it's my job to identify such limitations and document how they might be addressed by changing the product.
Addressing the root comment, Figma is a design tool with basic prototyping offered, it's not not a prototyping or web publishing tool. It's why it's not judged as a Frontosge (or rather 25 years later, Webflow) alternative.
The problem isn't a skill issue on my end, I could build it cleanly, I just don't know why I would when the other 1200 engineers I work with don't have any incentive to do so.
Figma is a shit version of Dreamweaver, a html based WYSIWYG from the 00s.
The designer's job is to think creatively, on behalf of the user, through the entire system, the states, the transitions. Faffing around with reusable components gets in the way of the right kind of thought, IMHO. It's like the design version of big complex class hierarchies. Done too early, they will really slow you down.
Figma is a design tool. It is used by designers as a way to build the visual mocks of software. It's not building HTML under the hood. As a frontend engineer, I have to interpret the designs given to me and translate the layouts into something that will be responsive, cope with different data, etc. that part is the job of a frontend engineer, and so far there is no tooling that solves that.
The Figma dev mode helps shortcut some of that work, by providing easy copy-paste for attributes like background, border, fonts, spacing etc. it's a timesaver. But you should never copy the whole thing.
Maybe our designers just use it wrong, but I don't think tools like this is all that valuable if it can't tell you which pages are based on the same HTML template. E.g. telling the developers: There are three different layouts in this projects, these are the pages for each template and here are the elements that are identical in each.
This may also be wrong usage, but giving you sizes and spacing in pixels is weird. Telling me that a button needs to be 29px from the element above is kinda dumb.
It's probably just me being old, but the people doing the design should always be the same people who are responsible for delivering the HTML and CSS. Developers just gets the templates. But I'm also from the time of webdesigners and not webdevelopers.
But for us (at Kitemaker), we designed a bunch of parameterized components in Figma and then implemented them in code so that they match up. Then when there's a screen with a button, I can click the button in Figma, see the properties and convert it to React. It's pretty quick
If you're using flex for your layouts, it matches pretty well with Figma's auto-layout stuff. So you can click on a container and see that it's a flex row with some padding and justify-content center. When I start seeing components in a bunch of nested containers, I know I need to pay attention, because just doing the usual flex stuff will result in things that don't quite line up due to whatever.
You can define a bunch of colors in Figma and have them matchup in code. So when I see something is gray10, I know I use var(--gray10) in code. There are probably more things that I take for granted that I can't think of off the top of my head.
That being said, it's not a magic bullet. If the designs don't have reusable components, with standard colors and everything is laid out by hand with specific pixel values instead of auto layout, then it's probably the same as just designing from a PSD.
Fuck devmode though. I don't get it, as far as I can tell they just took functionality that existed before and split it into two tabs so I'm constantly clicking between them to find what I'm looking for. I get that there's some pricing thing or whatever, but I would honestly just rather pay more for the old interface.
tl;dr I like it, I think it's a step forward from the PSD days. Maybe your designer is holding it wrong, maybe you are holding it wrong or maybe it's just not for you.
Given the quality of many developer-designed UIs this can only be a good thing.
Developers often prioritize implementation expedience over user experience.
A lot of developers think that “clean code” is as important or more important than user experience. The job of a designer is to tell them that they’re wrong.
Many useless design elements drain the battery and take time to render.
Fortnite isn't a web app and I doubt that Figma was used by the game designers.
Developers sometimes also need to be forced to accept complexity that they don’t personally see the point of. For example animations and transitions may appear pointless to developers as they don’t have any function: no APIs are called. However for users, especially non-technical users, animations can be very useful to show the flow of how various UI modes are connected, and to communicate subliminally as many users don’t read text prompts.
If you let developers call the shots then they will choose whatever UI makes the code as simple as possible, because they spend more time looking at code than the actual product, in contrast to users who never see the code at all.
Custom mouse cursors, unaccessible images, non-obvious buttons, non-standard interactions, strobing lights, a million parallaxes.
A lot of designers think that "pretty" is the same as "usable".
Most devs I know, don't care about "clean code" itself, what they care about is _robustness_. If getting something to work requires thousands of lines of html, css, and javascript, then I can guarantee you that something is gonna look broken on some browser in some viewport size.
When designing you need to keep any mediums limitations in mind, be it paper or the web. The medium is the message. Browsers are buggy implementations of mediocre standards, if you design oblivious to their limitations things will inevitably be buggy, ugly and weird.
Designers can't just live in an ivory tower of auto-layouts that actually work, and have devs magically weave their dreams from garbage.
If we just replaced the web with figma (or if Figma had a runtime like Rive, to just run the entire thing with the web as the platform), I'd be more than happy, not being editor-first is the biggest flaw of the web, and figmas auto-layout is a lot less sucky. But until then, (good) designers have to learn the basics of the tech stack too, and figma does not help in that department.
For the record, I am a developer, always have been, and have been so for some time. I just don’t share these delusions of grandeur.
Too much design, too little value.
Things like auto layout, component variants, nested instances, global variables… are just fantastic to use. It's really well thought out and still incredibly performant.
The only other tool that was close is Sketch, but the Figma experience is just better in every sense. I only wish I could use it offline.