home.social

#wails — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #wails, aggregated by home.social.

  1. SD Studio: свой Midjourney на своей видеокарте с LLM-помощником

    Сперва — откуда взялась идея? Мы с женой делаем текстовую игру по её фэнтези-вселенной. Что-то вроде совместного хобби: ей интересно писать, мне нравится программировать. Но суть не в этом. Рисовать никто из нас не умеет, а картинки в тексте нужны. Сейчас это не проблема — нейросетей куча, особенно для генерации изображений. Но есть минусы: на платных сервисах можно хорошо так разориться, особенно для пет-проекта. Есть решение — Stable Diffusion, генерировать на своей видеокарте. Первые шаги с Stable Diffusion Для работы с локальным SD есть несколько инструментов. Взял первый и, наверное, самый популярный — Automatic1111. Сгенерировал — получил полную фигню. Начал читать, что пишут. Оказывается, уже создано огромное количество предобученных моделей и LoRA для добавления тех функций, что модель не умеет. Результат стал сильно лучше. Дальше — промпты, то есть текстовое описание того, что мы должны получить на итоговом изображении. Там тоже есть свои рекомендации. Модель не читает мысли пользователя, ей нужно более точно и в понятном ей виде предоставить описание. Дополнительно разбираемся с настройками генерации — samplers, steps и т.д. Всё осуществимо, но получаем другую проблему: для генерации одной картинки мы очень долго подбираем все эти значения и тексты. Первая автоматизация Чтобы упростить процесс, я сделал следующее. Для наполнения контента в игре есть админка — обычный CRUD на Symfony. Дополнительно в отдельной папке лежат файлы со всем лором книги/игры. В итоге я создал два провайдера. Первый — для общения с локальной LLM, которая по нужному запросу берёт необходимый контент из папки с лором и составляет корректный промпт для SD. Второй — для SD, где заданы предварительные настройки: используемая модель, LoRA и вместе с промптом всё это отправляется в SD, и мы получаем итоговую картинку. Несколько попыток, потому что с первого раза вряд ли получим нужное. Получаем более-менее адекватный результат и идём в Photoshop — убрать лишнее, сжать и т.п.

    habr.com/ru/articles/1030628/

    #stable_diffusion #llm #десктопное_приложение #генерация_изображений #open_source #golang #wails #ollama

  2. Also on the topic of #hytale : that flatpak shit they've thrown at us linux users is just bad. Not only didn't it install for me until I ran the flatpak command myself in an terminal bc it needs some random ass dependencies, no, it also contains just an plain #golang blob, compiled with #wails and #vuejs ; where all assets are INSIDE the binary.

    Also for those out of the know: golang typically compiles statically so no dependencies, and wails is pretty-much dependency free and can use your systems browser to do all the displaying stuff for you.

    Also also: why tf do you NEED access to my home dir while aparently downloading everything in an just-fine flatpak-managed storage place? Even your downloads are placed there! I can't even fucking CHANGE THE DOWNLOAD FOLDER. I have an SEPERATE LVM DISK for my damn games, I want them to be there! But nope: flatpak is shitty and wants to live either in /var or ~/.var, and hytale dosn't care.

    Why can't we just all agree to use appimage? So much nicer to use.

    #rant #sorrybutnotsorry #linux #archlinux #pleaserespectmysystem

  3. Happy New Year! 🎉

    Today I published “Gleaming Wails: Idiomatic Gleam & Lustre Msg naming with nice refactor | Always Developing #253” to my YouTube channel.

    In this session I switch to using more conventional names for the app’s Lustre Msg types, which turns out awesome as it helps me see where I was going wrong, could remove some messages, and simplify the update function!

    youtube.com/watch?v=FPZw6538QOY

  4. Happy New Year! 🎉

    Today I published “Gleaming Wails: Idiomatic Gleam & Lustre Msg naming with nice refactor | Always Developing #253” to my YouTube channel.

    In this session I switch to using more conventional names for the app’s Lustre Msg types, which turns out awesome as it helps me see where I was going wrong, could remove some messages, and simplify the update function!

    youtube.com/watch?v=FPZw6538QOY

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

  5. Happy New Year! 🎉

    Today I published “Gleaming Wails: Idiomatic Gleam & Lustre Msg naming with nice refactor | Always Developing #253” to my YouTube channel.

    In this session I switch to using more conventional names for the app’s Lustre Msg types, which turns out awesome as it helps me see where I was going wrong, could remove some messages, and simplify the update function!

    youtube.com/watch?v=FPZw6538QOY

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

  6. Happy New Year! 🎉
    Today I published “Gleaming Wails: Idiomatic Gleam & Lustre Msg naming with nice refactor | Always Developing #253” to my YouTube channel.
    In this session I switch to using more conventional names for the app’s Lustre Msg types, which turns out awesome as it helps me see where I was going wrong, could remove some messages, and sim

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

    ianmjones.com/2026/01/154/

  7. Happy New Year! 🎉

    Today I published “Gleaming Wails: Idiomatic Gleam & Lustre Msg naming with nice refactor | Always Developing #253” to my YouTube channel.

    In this session I switch to using more conventional names for the app’s Lustre Msg types, which turns out awesome as it helps me see where I was going wrong, could remove some messages, and simplify the update function!

    youtube.com/watch?v=FPZw6538QOY

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

  8. Today I published the 256th video on my YouTube channel.
    It’s only my 251st full Always Developing video, there’s been a handful of quick catchup “.1” videos, and my very first video was nothing related to coding.
    However, I still think it’s pretty neat to have hit this milestone.
    Merry Christmas nerds! 🎄😀
    youtu.be/5ftjNvbdOps

    ianmjones.com/2025/12/152/

  9. Today I published the 256th video on my YouTube channel.
    It’s only my 251st full Always Developing video, there’s been a handful of quick catchup “.1” videos, and my very first video was nothing related to coding.
    However, I still think it’s pretty neat to have hit this milestone.
    Merry Christmas nerds! 🎄😀
    youtu.be/5ftjNvbdOps

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

    ianmjones.com/2025/12/152/

  10. Today I published the 256th video on my YouTube channel.
    It’s only my 251st full Always Developing video, there’s been a handful of quick catchup “.1” videos, and my very first video was nothing related to coding.
    However, I still think it’s pretty neat to have hit this milestone.
    Merry Christmas nerds! 🎄😀
    youtu.be/5ftjNvbdOps

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

    ianmjones.com/2025/12/152/

  11. Today I published the 256th video on my YouTube channel.
    It’s only my 251st full Always Developing video, there’s been a handful of quick catchup “.1” videos, and my very first video was nothing related to coding.
    However, I still think it’s pretty neat to have hit this milestone.
    Merry Christmas nerds! 🎄😀
    youtu.be/5ftjNvbdOps

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

    ianmjones.com/2025/12/152/

  12. Today I published the 256th video on my YouTube channel.
    It’s only my 251st full Always Developing video, there’s been a handful of quick catchup “.1” videos, and my very first video was nothing related to coding.
    However, I still think it’s pretty neat to have hit this milestone.
    Merry Christmas nerds! 🎄😀
    youtu.be/5ftjNvbdOps

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

    ianmjones.com/2025/12/152/

  13. Gleaming Wails: A new series of live coding videos

    I’ve just published the first video in a new series of live coding sessions where I’m developing with Gleam and Lustre to build the front end for a desktop app built with Go and Wails.

    ianmjones.com/2025/11/gleaming

  14. Gleaming Wails: A new series of live coding videos

    I’ve just published the first video in a new series of live coding sessions where I’m developing with Gleam and Lustre to build the front end for a desktop app built with Go and Wails.

    ianmjones.com/2025/11/gleaming

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

  15. Gleaming Wails: A new series of live coding videos

    I’ve just published the first video in a new series of live coding sessions where I’m developing with Gleam and Lustre to build the front end for a desktop app built with Go and Wails.

    ianmjones.com/2025/11/gleaming

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

  16. Gleaming Wails: A new series of live coding videos

    I’ve just published the first video in a new series of live coding sessions where I’m developing with Gleam and Lustre to build the front end for a desktop app built with Go and Wails.

    ianmjones.com/2025/11/gleaming

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

  17. Gleaming Wails: A new series of live coding videos

    I’ve just published the first video in a new series of live coding sessions where I’m developing with Gleam and Lustre to build the front end for a desktop app built with Go and Wails.

    ianmjones.com/2025/11/gleaming

    #alwaysdeveloping #coding #gleam #live #lustre #snippetexpander #wails #youtube

  18. Now back to hacking away at a #go #wails desktop app that I originally wrote in C# because..... why not? 😃

  19. Десктопное кросс-платформенное приложение на Wails (Golang + Vue.js). Как мы делали Tuna Desktop

    Wails - это легковесный фреймворк, предназначенный для создания кросс-платформенных GUI приложений рабочего стола на golang и стандартных веб технологиях (Svelte, React, Preact, Vue, Lit, Vanilla JS). Ближайшие аналоги это естественно Electron (JS), Tauri (Rust), хочется добавить Qt (С++), но это уже другой уровень. Сразу скажу, что Wails не идеален , имеет множество ограничений и в целом не подойдёт для чего-то крупного, Tauri к примеру более зрелый проект, больше функций, быстрее развивается, больше и живее сообщество, но это уже на rust, а это не наш стэк.

    habr.com/ru/companies/tuna/art

    #wails #golang #vue #crossplatform #desktop #gui

  20. I've got a concept of a portable desktop widget system I've started working on; a (hopefully) small bit of platform code, hosting widgets that you make in HTML/CSS/JavaScript.

    Rather than using Electron, I'm trying things that use the platforms HTML widget:

    * Tauri - tauri.app/ (Rust)
    * Wails - wails.io/ (Go)

    If I could find one that's Python I'd be done already. ;-)

    "Hello world" binary is 8-12MB vs 100+MB for Electron.

    #tauri #wails #python #go #rust #golang

  21. @dolanor tu as un langage de prédiction ? Perso je fais tout en Go donc ça limite pas mal le choix pour du desktop.. Donc j'hésite entre #wails qui certes embarque webkit ou #gotk4 mais qui est plutôt jeune et à voir aussi la question de la portabilité sur les autres OS.
    https://github.com/diamondburned/gotk4

  22. @dolanor en fait le front c'est pas du gtk ou du qt en effet ou comme https://fyne.io/ .
    Mais tu as peut être raison c'est peut être du semi natif. Cependant le gros soucis avec electron est le back-end web nodejs qui embarque chrome ce qui en fait une app web.
    J'en dirai plus une fois que j'aurai un POC en #wails

  23. One-shot промптинг. Как я начал вайбкодить в 10? раз быстрее

    Вообще, я менеджер. Но когда-то писал код и всегда любил это занятие. Серьезно прогал мобильные приложения, и даже заработал за один из ответов на SO больше 100 звездочек. Но с тех пор прошла куча времени. И последнее время меня вновь увлекла эта тема. А как она может увлечь современного человека, измученного миллиардом фреймворков и отставшего от прогресса лет на 15? Конечно-же курсором и вайб-кодингом. И я начал кодить. Собрал несколько ботов, потом замахнулся на CMS. Сейчас даже делаю свою тулзу для запуска LLM-пайплайнов с импортом их из n8n. Но в процессе всего этого неизменно сталкивался с двумя проблемами 1) Cursor (и брат его Windsurf) паршивейшим образом обходится с нетипизированными и слабо-типизированными языками. Изобретает названия переменных, меняет их по ходу, и вообще, забивает на это огромный и толстый... За пределами этого кодит он неплохо. Но данная штука лично у меня порождает 90% багов. 2)...

    habr.com/ru/articles/908750/

    #ЛЛМ #вайбкодинг #вайбкодинг #go #golang #wails #vue #vuejs #gemini

  24. I dunno about you guys, but managing screenshots and screen recordings on Steam Deck is a mess imo.

    Often it forgets my scroll position, sharing images is hard, you can't easily multi select or export, and accessing the file browser takes several clicks.

    So - I'm making a utility app for managing Steam media, and game/save data.

    Is this something you would like to see?

    Do you have any ideas on things you would like to see in such an app?

  25. This took so much more time than I thought... But... It works! 😍🤩

  26. #Wails est une excellente alternative aux applications Electron (élec-étron). Il permet d'avoir une application desktop multi-OS avec un backend en Go et un front en HTML/JS/CSS.
    Exemple #resticity une app front à #restic github.com/ad-on-is/resticity
    Ou bien le superbe #AlbyHub github.com/getalby/hub
    L'équivalent en #Rust est #Tauri
    wails.io/
    tauri.app/

  27. #Wails est une excellente alternative aux applications Electron (élec-étron). Il permet d'avoir une application desktop multi-OS avec un backend en Go et un front en HTML/JS/CSS.
    Exemple #resticity une app front à #restic github.com/ad-on-is/resticity
    Ou bien le superbe #AlbyHub github.com/getalby/hub
    L'équivalent en #Rust est #Tauri
    wails.io/
    tauri.app/

  28. #Wails est une excellente alternative aux applications Electron (élec-étron). Il permet d'avoir une application desktop multi-OS avec un backend en Go et un front en HTML/JS/CSS.
    Exemple #resticity une app front à #restic github.com/ad-on-is/resticity
    Ou bien le superbe #AlbyHub github.com/getalby/hub
    L'équivalent en #Rust est #Tauri
    wails.io/
    tauri.app/

  29. #Wails est une excellente alternative aux applications Electron (élec-étron). Il permet d'avoir une application desktop multi-OS avec un backend en Go et un front en HTML/JS/CSS.
    Exemple #resticity une app front à #restic github.com/ad-on-is/resticity
    Ou bien le superbe #AlbyHub github.com/getalby/hub
    L'équivalent en #Rust est #Tauri
    wails.io/
    tauri.app/

  30. #Wails est une excellente alternative aux applications Electron (élec-étron). Il permet d'avoir une application desktop multi-OS avec un backend en Go et un front en HTML/JS/CSS.
    Exemple #resticity une app front à #restic github.com/ad-on-is/resticity
    Ou bien le superbe #AlbyHub github.com/getalby/hub
    L'équivalent en #Rust est #Tauri
    wails.io/
    tauri.app/

  31. J'ai mis en place un #albyHub auto-hébergé sur mon NUC et connecté à mon serveur #LND. Il permet de piloter en web son serveur LND, ouvrir des channels, afficher des QRCode pour faire des virement #BTC etc.
    albyHub fonctionne aussi en mode desktop, grâce à #wails et Go. Dans ce mode il embarque son propre serveur #lightningnetwork , mais il vaut mieux dans ce cas que le PC soit allumé H24.
    C'est propre, joli,léger, rapide.
    #bitcoin #Alby #getAlby
    albyhub.com/
    wails.io/

  32. J'ai mis en place un #albyHub auto-hébergé sur mon NUC et connecté à mon serveur #LND. Il permet de piloter en web son serveur LND, ouvrir des channels, afficher des QRCode pour faire des virement #BTC etc.
    albyHub fonctionne aussi en mode desktop, grâce à #wails et Go. Dans ce mode il embarque son propre serveur #lightningnetwork , mais il vaut mieux dans ce cas que le PC soit allumé H24.
    C'est propre, léger, rapide.
    #bitcoin #Alby #getAlby
    albyhub.com/
    wails.io/

  33. Little progress with #camca - now it shows sensor sizes in the center. And it will be renamed to sensor sizes and Framelines will be a new subitem of menu.

    #golang #wails #typescript #camera #calculator #photography

  34. @klimpong I'm not sure if this would do what you're looking for, but I'd recommend checking out project!

    It's an excellent Electron alternative for Gophers to create desktop GUI applications using and that I've used to build a few PoC apps.

    It converts backend Go functions and objects to Typescript definitions that can be imported and called from the front end.

    It may or may not help get you where you need to go... 🙃 :gopher:

    wails.io

  35. Wails: Coding in Harmony, Not in Distress!

    The WPEs are b a c k!

    We’re going to be doing a bit with the Wails project this year, so let’s start off nice and slow with a small project to get our feet wet before diving in head first.

    Type your email…

    Subscribe

    Wails…who dis?

    Wails is a project that enables you to write desktop applications using Go and web technologies. It’s a lightweight and fast Electron alternative for Go, allowing you to build applications with the flexibility and power of Go, combined with a rich, modern frontend. Wails uses a purpose-built library for handling native elements such as WindowMenus, Dialogs, etc., so you can build good-looking, feature-rich desktop applications.

    The amount of Go and JavaScript required is minimal, at first, and you can 100% get by with Kagi, Perplexity, or just some keen internet searches (and poking through the Drop history for Go and JavaScript resources). I’ll prove this with the app you’re going to modify.

    Wails use of these technologies means you can (for the most part) turn any web app you make into something that you can distribute as an actual app to folks. While I’m more of a fan of native apps, this can save a ton of time and reduce cognitive load…something I think we’ll all need this year.

    Getting Started with Wails

    To start with Wails, you need to install it first. You can install Wails using the Go install command:

    $ go install github.com/wailsapp/wails/v2/cmd/wails@latest

    After that install finishes, you can validate it with:

    $ wails doctor

    In the wall of output you should see “SUCCESS” near the end.

    Now, we can initialize a new project!

    For this tutorial, we will use the Lit template:

    $ wails init -n wails-tutorial -t lit

    As longtime Drop readers know, Lit provides a very lightweight and sane wrapper over standard Web Components.

    Now, do:

    $ cd wails-tutorial$ wails dev

    A bunch of text will scroll by and you should see an app screen that lets you enter in some text that will be parroted back at you.

    The directory structure looks like this:

    wails-tutorial├── README.md├── app.go├── build│   ├── README.md│   ├── appicon.png│   ├── darwin│   │   ├── Info.dev.plist│   │   └── Info.plist│   └── windows│       ├── icon.ico│       ├── info.json│       ├── installer│       │   ├── project.nsi│       │   └── wails_tools.nsh│       └── wails.exe.manifest├── frontend│   ├── dist│   │   └── gitkeep│   ├── index.html│   ├── package.json│   ├── src│   │   ├── assets│   │   │   ├── fonts│   │   │   │   ├── OFL.txt│   │   │   │   └── nunito-v16-latin-regular.woff2│   │   │   └── images│   │   │       └── logo-universal.png│   │   ├── my-element.js│   │   └── style.css│   ├── vite.config.js│   └── wailsjs│       ├── go│       │   └── main│       │       ├── App.d.ts│       │       └── App.js│       └── runtime│           ├── package.json│           ├── runtime.d.ts│           └── runtime.js├── go.mod├── go.sum├── main.go└── wails.json

    Here are the core files we’ll be tweaking:

    • app.go contains the Go back end functions we’ll be exposing to the JavaScript front end
    • frontend/index.html is the entry point for the app
    • my-element.js is the Lit web component that handles the interactivity (we’ll be renaming this).

    In the default app, Greet in app.go is called by my-element.js. Here’s what that function looks like:

    func (a *App) Greet(name string) string {  return fmt.Sprintf("Hello %s, It's show time!", name)}

    The func (a *App) Greet(name string) string is a function signature the Wails dev tools looks for. It will automagically generate glue code for the JavaScript parts, and you can use complex function parameters and return values. This one takes in a string, surrounds it with some basic text, then returns it.

    You should take some time to change what’s in the Sprintf, rename Greet (and use the new imported name in the my-element.js) and tweak what the render() returns in my-element.js before continuing. It might also be a good idea to read through the official walkthrough.

    Making A “Real” App

    Rather than blather a bunch (it is your WPE, after all), I’m going to link you to Codeberg where there’s a modified version of this template project that:

    • uses a third-party Go module for fetching OpenGraph tags from a website
    • displays parts of those tags using Tachyons for the CSS framework.

    The core change to app.go is this function:

    func (a *App) FetchOpenGraphTags(postURL string) (map[string]string, error) {fmt.Println("FOGT:", postURL)og, err := opengraph.Fetch(postURL)fmt.Printf("OpenGraph: %+v\nError: %v\n", og, err)return map[string]string{"title":       og.Title,"description": og.Description,"url":         og.URL.String(),}, err}

    I added some printing in there so you can see messages appear in the terminal console while the app is running.

    When you run wails dev the glue code is, again, automagically generated so the JavaScript side can call that function via:

    async fetchOG() {  let thisURL = this.shadowRoot.querySelector('input#url').value  console.log("fetchOG")  FetchOpenGraphTags(thisURL).then(result => {    console.log('fetch opengraph tags:', result)    this.tags = result;    this.requestUpdate();  });}// I’m showing this here, but we’ll talk about it in the next WPEasync connectedCallback() {  super.connectedCallback();}

    The fetchOG function is called in render() when the button is pressed:

    <button @click=${this.fetchOG} class="btn">Render</button>

    You can use Developer Tools from the running app to watch the console messages go by (very useful for debugging).

    Your Mission

    Your goal is to (a) successfully get this modified app running and (b) utilize more OG tag fields and display the entire set of OG tags in a much nicer way. Extra points for adding another Golang back end function that you need to call from the JS side.

    FIN

    Today’s WPE sets a solid foundation for future ones, and we’ll be having tons of fun with it as we layer in DuckDB, SQLite, WebR, Pyodide, and more over the coming weeks/months. Give a shout-out or reply to this post if you have any questions/issues.

    The first Bonus Drop goes out this weekend to paid subscribers! (The refunds from the transition from Nazistack should be out soon…I keep checking on the status and will follow up next week if there’s a delay.)

    Remember, you can follow and interact with the full text of The Daily Drop’s free posts on Mastodon via @[email protected] ☮️

    https://dailydrop.hrbrmstr.dev/2024/01/05/drop-399-2024-01-05-weekend-project-edition/

    #go #golang #javascript #lit #litElement #wails

  36. Con #Wails puedes crear aplicaciones de escritorio utilizando #Golang wails.io/

  37. Whenever I start a project using for desktop applications I’d find myself banging my head against; CommonJS vs ESM, binary bundling, Mac ARM support, packaging.

    I saw devs vendor `better-sqlite` because of a change in the way uses their own binary format breaking compatibility.

    Nope from now on I’ll only be using

    wails.io/

  38. Been playing around with Wails + Svelte stack for a desktop application. Working pretty well, got OSC working in VRChat!

    #vrchat #indiedev #wails #svelte #sveltekit

  39. BEHOLD! ADVANCE UI!!!

    Kinda proud of this one. In short, it is simulating #VRChat avatar parameters being sent to my own program (written in Go with Wails) which then emits it forward to the frontend (written in TypeScript with Svelte).

    Pretty rough code, but it's working! Hardest part was getting the OSC architecture to behave.

    #webdev #desktopdev #wails #svelte #vrchat #indiedev

    oh the simulating program is TouchOSC too. VRC provided a example file.

  40. My gf frequently takes the bus, and wished she had some kind of simple thing to just tell her the time until the upcoming departures from our nearest bus stops. I saw this as an opportunity to play around with making a desktop GUI App with Wails: wails.io/ 🤓

    #wails #golang #vue