-

@ Arjen
2025-03-01 17:46:48
**A couple weeks with a little bit of everything, TollGate marketing, app stability improvements, and some personal matters that needed my attention. Let's get into it:**
## TollGate App
For starters, we worked hard to get an early version of the [TollGate](https://tollgate.me) website live. What do we want to communicate about the project, and to whom. We've identified three 'types' of visitor, each requiring its own 'customer journey' through the website. First there's the end-user, someone that just wants access to tollgate, but doesn't care about any of the technichalities. We try to guide those people to downloading our app as soon as possible. Currently that means downloading it straight from the website as an APK file. But we want to quickly move on to publishing it to the [ZapStore](https://zapstore.dev).
The past couple weeks I put some efforts into getting the app stable. It was hard to identify what was causing the seemingly random crashes and full reloads (of the web content). After getting some outside help we've identified that we were trying to interact with the android API's on the main thread. Which is bad practice. I first couldn't figure out how to make a web request without having to spawn a seperate thread in the kotlin code, that then we'd have to create some kind of system to bubble up the callback method's result. I then found there's a proper [Tauri (the framework) way](https://tauri.app/develop/plugins/develop-mobile/) of doing this using Kotlin Coroutines, which I wasn't familliar with. But it just executes the entire Tauri 'command' (function call) on a background thread. Problem solved. I haven't had any full app crashes since.
Which left me with the random page refreshes, the thing that was behind the demo-effect at Sat's and Facts. I noticed it happened around the moments I would go to settings to hit the 'sign in' button to dismiss the captive portal. That's where I had looked before, but I needed to zoom out. It had to do SOMETHING with moving the app to and from the background. Okay is it some kind of sleep issue? I don't remember where or how I found it but I saw a suggestion to run the Tauri dev build with a --no-watch flag. Which disables hot reloading of the app when I edit one of the TypeScript/HTML files. Somehow the reload would be triggered sometimes on app switching. Why? I don't know, but i'm glad I could pinpoint it.
So now the demo part seems stable, finally. Which means I can move on and properly implement the wallet logic and making the download on the website work.
## TollGateOS

The second customer group will be people interested in running a TollGate. We're trying to get them to download our custom build of OpenWRT that includes all the required packages. We 'baptized' this version to be called **TollGateOS** as we say in proper Dutch ;). I think it will help to have these clear distinct names. I really want any moderately technical person to be able to install TollGateOS on a supported router. My vision for this is to have some kind of web installer, akin to what GrapheneOS does with their web-installer. It seems to be possible to do SSH from the browser, but I'll kill that bird when I see it (is that a saying? I think it should be...)
By the way, in earlier docs/demo's we talked about a 'herald' module, which would do the advertising of the tollgate. But as we found that the crowsnest already interacts with the hardware antennas, which is needed for 'advertising' the tollgate, we thought it better to merge both of them into the Crowsnest.
## Developers
TollGate is fully open source, so anyone looking to either look at or fork the source code is welcome to do so. Developers interested at looking at the code are probably already interested to some degree. For this group we added easy links to navigate to the project's repositories
Currently our focus is publishing the Android version, but we're building the app in a cross-platform way. The only thing we have to customize are the system integrations, like scanning for wifi-networks and connecting to them.
## Gearing up for Sovereign Engineering
As i'm writing this piece for you i'm at 10km (that's 30.000ft for y'all Americans) in the air on my way to Sovereign Engineering edition #4, SEC-04. I feel ready to go kick ass once again and build beautiful things with a bunch of my favourite plebs!
## A bit of a focus shift
If you've been following me you might notice I haven't posted much about Epoxy recently. I found the momentum I see emerge on TollGate and GitHub Actions too good to let go to waste. So those will be my focus for a while, I'm hoping to circle back to Epoxy when these projects have a more steady pace.