Show HN: I rewrote my Mac Electron app in Rust (app went from 1GB to 172MB)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SurveyJS - JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor
Keep full control over the data you collect and tailor the form builder’s entire look and feel to your users’ needs. SurveyJS works with React, Angular, Vue 3, and is compatible with any backend or auth system. Learn more.
surveyjs.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. napi-rs

    A framework for building compiled Node.js add-ons in Rust via Node-API

    Haven't touched Tauri because of the cross platform issues. The major appeal with Electron to me is the exact control over the browser. I'm curious about Rust integration though. I'm guessing they're doing something that provides better DX over something like https://github.com/napi-rs/napi-rs?

  2. SurveyJS

    JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor. Keep full control over the data you collect and tailor the form builder’s entire look and feel to your users’ needs. SurveyJS works with React, Angular, Vue 3, and is compatible with any backend or auth system. Learn more.

    SurveyJS logo
  3. typescript-go

    Staging repo for development of native port of TypeScript

    Beware the greenfield effect.

    I don’t want to comment on the technology choices specifically here, but in general the whole “we rewrote our app in X and now it’s better” is essentially a fact of life no matter the tech choices, at least for the first big rewrite.

    First, you’re going to make better technical choices overall. You know much better where the problems lie.

    Second, you’re rarely going to want to port over every bit of technical debt, bugs, or clunky UX decisions (with some exceptions [1]), so those things get fixed out of the gate.

    Finally, it’s simply invigorating to start from a (relatively) clean slate, so that added energy is going to feel good and leave you in a sort of freshly-mowed greenfield afterglow. This in turn will motivate you and improve your work.

    The greenfield effect happens even on smaller scales, especially when trying out a new language or framework, since you’re usually starting some new project with it.

    [1] A good example of the sort of rewrite that _does_ offer something like an apples-to-apples comparison is Microsoft’s rewrite of the TypeScript compiler (and type checker, and LSP implementation) from TypeScript to Go, since they are aiming for 1-to-1 compatibility, including bugs and quirks: https://github.com/microsoft/typescript-go

  4. candle

    Minimalist ML framework for Rust

  5. Kreya

    Kreya is a GUI client for REST and gRPC with innovative features for environments, authorizations and more.

    We are using system webviews for https://kreya.app (not Tauri, but a custom implementation) and the platform differences are seldom a problem...

    Polyfills fix most of the things and we are running automated end to end test on Linux, which catches most of the issues.

    IMO the most difficult thing is figuring out how far the users are behind with their webview version, mostly on Linux and macOS. Windows has done thinga right with their WebView2 implementation

  6. dupeguru

    Find duplicate files

  7. videoduplicatefinder

    Video Duplicate Finder - Crossplatform

  8. electron-release-server

    A fully featured, self-hosted release server for electron applications, compatible with auto-updater.

    I agree about dealing with Apple but having updates completely solved for us was a huge deal. We just didn't have the resources to solve this properly.

    This was an app offered for free to some customers of the company. If the app had been the main commercial product we would have obviously opted for a better solution than distributing through stores or using Squirrel.

    Back in 2018 we needed a server[1] that would notify Squirrel for the udpates. Squirrel worked ok on macOS but it was particularly bad on Windows. I don't remember the details... iirc Squirrel installed the actual executable in some weird folder and users would never be able to find the app if they deleted the link from the desktop.

    [1] https://github.com/ArekSredzki/electron-release-server

  9. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  10. web-to-desktop-framework-comparison

    An objective comparison of multiple frameworks that allow us to "transform" our web apps to desktop applications.

    https://github.com/Elanis/web-to-desktop-framework-compariso...

    Electron comes out looking impressive at runtime!

    Memory Usage - (Average of runs) Median of difference between system measured free memory before execution and during execution)

  11. https://github.com/Elanis/web-to-desktop-framework-compariso...

    Electron comes out looking impressive at runtime!

    Memory Usage - (Average of runs) Median of difference between system measured free memory before execution and during execution)

  12. cpmulator

    Z80-based CP/M emulator, in golang. Happily runs Zork, Microsoft BASIC, Turbo Pascal, Wordstar, etc.

    I wrote a summary of my issue on a github comment, and I guess I will try again

    https://github.com/skx/cpmulator/issues/234#issuecomment-291...

    But I'm not optimistic; all previous attempts at "identify the bug", "fix the bug", "highlight the area where the bug occurs" just turn into timesinks and failures.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Steamworks integration with TypeScript project

    1 project | /r/gamedev | 17 May 2023
  • A template project for putting an Electron game on Steam - dev server / packaging / Steamworks SDK / macOS notarisation

    2 projects | /r/gamedev | 15 May 2023
  • Steamworks.js - a modern HTML/JS/Nodejs implementation of Steamworks SDK

    2 projects | /r/gamedev | 7 May 2023
  • Steam Input and Steamworks plugin (RMMV/RMMZ)

    1 project | /r/theideaguy | 19 Sep 2022
  • Steamworks.js – Implementation of the Steamworks SDK for HTML/JS Based Apps

    1 project | news.ycombinator.com | 26 Jul 2022

Did you know that JavaScript is
the 3rd most popular programming language
based on number of references?