Show HN: Pax – cross-platform GUIs with an integrated design tool
pax.devHey HN! We are Zack, Warfa, and Sam. After some human-years of building Pax, we're excited finally to enter Beta and to invite anyone to build with Pax for the first time.
What is Pax?
Pax is a tool for building native apps & websites, similar to SwiftUI or Flutter. Pax is driven by a declarative user interface description language that attaches to Rust application logic. Pax itself is built in Rust.
Pax ships with an integrated vector design tool. This design tool is a bidirectional view into any Pax codebase: open codebase with designer, make visual changes, edit pax-lang or Rust by hand with any code editor, and continue to switch back and forth between visual and written modes. [0]
Unlike most visual builders, Pax Designer has the tools, features, and conventions of a professional vector design tool (like Figma, Illustrator, or Flash.) This foundational goal required careful design of every aspect of Pax, from the grammar through the rendering engine, the layout system, and the standard library.
Try it out
You can try out Pax Designer right now on your machine and see the changes it makes to code in realtime: https://docs.pax.dev/get-started/
You can also run Pax Designer directly from our website, but you won't be able to see the code sync: https://www.pax.dev/
Pax Designer goes open source
Along with this Beta launch we are open-sourcing Pax Designer[1], Pax’s integrated vector design tool — which itself was built 100% in Pax.
That makes Pax Designer a solid reference example of Pax in production.
What's next?
We're working on a fully-featured hosted version of Pax Designer, which will become Pax Pro[4] — a team collaboration tool that enables non-developers to make visual contributions to GitHub repos hand-in-hand with developers.
We are also working on Pax JavaScript, bindings that will allow pax-lang to attach to JavaScript/TypeScript application logic as an alternative to Rust.
Other features and fixes will be a function of user feedback. Please take it for a spin, build something, and let us know what you think! See a partial list of current features on the GitHub README.[3]
Please reach out to our team with any questions, ideas, or feedback! This thread, GitHub issues, or Discord[5] are good ways to get in touch.
Pax today in Beta is far from perfect, but we're proud of how far it's come and excited about where it's headed. We hope some folks here will share our excitement, or even join us in our mission to make software creation more creative and accessible to more of humanity.
--
[0] How Pax Designer reads & writes code: https://docs.pax.dev/reference/designability
[1] Source code for Pax Designer, built in Pax: https://github.com/paxdotdev/pax/tree/dev/pax-designer
[2] Get started: https://docs.pax.dev/get-started/
[3] GitHub Repo + Readme: https://github.com/paxdotdev/pax
[4] Get early access to Pax Pro: https://airtable.com/appCUQtUS9g4kuQZL/pagGMVOPv9AH1cNJS/for...
[5] Discord: https://discord.com/invite/Eq8KWAUc6b This looks awesome! Many languages are missing visual UI editor, and also a good GUI framework. Are there any plans to add support for other languages besides javascript/typescript? is it possible with community contributions? Like go, zig, C#, C++, etc... ? Yes, supporting additional languages is straightforward; just need to write language-specific SDKs with bindings to the necessary Pax APIs, which are exposed through an ABI / FFI. (a major advantage of building at the systems level.) Major constraints for a given language will be runtime size and browser viability — it's fine to use e.g. C# and the CLR when deploying a desktop or (arguably) a mobile app, but it's a showstopper to bundle a several-hundred-MB wasm runtime to ship a C# app to the web. Zig and C++ don't share this problem, and JS gets a freebie because the browser already includes the JS runtime. Community contributions would be amazing in this regard. Likely our core team should ship JavaScript support first as a template, then Pax's language support should be roughly as extensible as e.g. Stripe's SDKs: https://github.com/stripe C# does have WASM flavour, and several hundred (the runtime is actually very light, it's the whole SDK installer that weights this much) turn into a couple megabytes. It's not perfect with Mono-WASM target still, so there's an experiment for NativeAOT-LLVM that builds on top of .NET's IL AOT Compiler that is significantly more size and performance efficient. That's great to hear! C# was my first love as a programming language, but it's been some years. We would love to support it with Pax. Pax.dev crashes on safari ios Thanks for this report! It seems one of the demo videos on the mobile site was too large; we have deployed a fix. Highly recommend trying out the site on desktop, where you will get an interactive preview of Pax Designer. I should’ve added - seems like an awesome concept! I’ll retry on desktop today :) you should be very proud of what you’ve built! I was in a grumpy mood and not softening my messages Honestly wish your team as Borat says “Great Success” seems like heaps of thought and planning has gone into it. And Rust is cool. One extra feedback id make is to have an image/gif/video at the very top of the GitHub read me as the first thing someone sees. That will hook more people (from experience) as it’s quite a technical project (can you condense the idea into a visual or a sub 10 second gif?) Have you tried posting on reddit? I’d imagine you’d get a lot of traction there, post on r/webdev at 8pm Thursday night NZ time Thank you for the follow up and suggestions! We did post on r/rust with solid reception[0] and I've added r/webdev to our channels list for the next push. Will also capture a GIF, makes a lot of sense; just gotta nail condensing the story. [0] https://www.reddit.com/r/rust/comments/1fdmjzl/pax_enters_be...