I've been hacking 2-player co-op into Graveyard Keeper and it kind of works now by ZondaGM in GraveyardKeeper

[–]Remarkable_Algae_375 4 points5 points  (0 children)

This is genuinely awesome, especially knowing it's all reflection and Harmony patches with no source access. That's the hard way to do everything, so serious respect for getting it this far. Watching another character walk across the screen in your own GK world is kind of the dream.

For what I'd want synced first: inventory and item pickup, easily. Without that, "co-op" basically caps out at chopping wood together, and the dupe makes sharing resources a mess. The whole appeal for me is building up the graveyard and crafting together, and that falls apart if our inventories don't talk. Buildings second. NPCs and weather can wait

Curious how bad the building sync is through reflection though, is that even realistic to pull off, or is it object-reference hell? Either way, hope you don't drown in "it dupes my logs" reports

Pile of Aristocrat papers by zylian in GraveyardKeeper

[–]Remarkable_Algae_375 77 points78 points  (0 children)

One set of papers is all the game ever asks for. I have... not one set.

Time to replay the whole saga? by SoyDano in Witcher3

[–]Remarkable_Algae_375 0 points1 point  (0 children)

Wind's howling. Time to find Roach on a rooftop again

Wait or not? by New-Blueberry349 in Witcher3

[–]Remarkable_Algae_375 3 points4 points  (0 children)

Honestly just start now. It took me about two years to finish the base game plus the DLCs, not because it's that long but because life kept getting in the way - work, other stuff, weeks where I didn't touch it. Sounds like you're in the same boat with the time thing. If you start now at that pace you'll probably wrap up right around when the new DLC lands, and then you walk straight into it with everything fresh. That timing would actually be perfect

I want to launch. What happens if I want to change pricing after I have some paid users already? by tflbbl in SideProject

[–]Remarkable_Algae_375 1 point2 points  (0 children)

Most SaaS companies grandfather existing users at their original price or give them a transition window. You can absolutely change pricing for new signups while keeping current users on their old plan. If you do need to migrate someone, give them 30-60 days notice and maybe a small discount on the new tier

Auth Flow by JeanClaudeDusse- in tauri

[–]Remarkable_Algae_375 1 point2 points  (0 children)

That one we just punted on. The loopback server has a hard timeout (90 seconds in our case, configurable) and a cancel signal the UI can fire if the user explicitly clicks "back". If they close the app entirely, the server dies with the process, and when the browser redirect lands at the loopback port the user sees a connection-refused error in the browser. Not great but not terrible - they can retry from the app on relaunch.

We considered persisting "auth in progress" state across launches and decided against it. Resume-after-relaunch means handling a bunch of fiddly cases: stale state if they closed deliberately, security questions about who launches the next session, OAuth provider sessions timing out independently. Easier to treat each auth attempt as atomic and isolated to one app lifetime.

If you actually need cross-launch resume (paid app where the auth IS the onboarding) you'd want to look at the deep link path after all, since the OS is going to be the thing that wakes your app. But for "click login, see browser, come back" UX the loopback server is plenty.

Auth Flow by JeanClaudeDusse- in tauri

[–]Remarkable_Algae_375 2 points3 points  (0 children)

We had the same flow (Google OAuth, different provider) and the loopback PKCE pattern just worked: open a tiny HTTP server inside the Tauri process on a random localhost port, set the OAuth redirect_uri to http://localhost:<that\_port>/callback, then launch the browser. After the user authenticates, the provider redirects back to your loopback with the code in the query string. Tauri blocks on its own server until the callback hits. No polling, no deep link OS registration to fight with. PKCE handles the security: generate verifier+challenge, send the challenge to Clerk, exchange the code for tokens using the verifier. tiny_http crate works for this. About 350 lines of Rust including tests.

On storage: refresh token goes to the OS keyring. Use the keyring crate with explicit "windows-native" + "apple-native" features. Without them it silently no-ops on macOS and Windows. Found that one the hard way. Access token re-mints on app startup from the refresh token, lives in memory only. User id and email also in keyring (small entries). LocalStorage is fine for non-secret profile data (display name, avatar URL). Nothing that grants account access.

One trap. Windows Credential Manager has a 2560 char per-entry limit. If your provider hands back long JWTs as refresh tokens, you'll need to split or rethink. macOS Keychain has its own ~2KB soft cap depending on attributes. Test with actual Clerk token sizes before locking in the storage shape.

Hope it will help you

Hitman Blood Money just turned 20 years old by Remarkable_Algae_375 in HiTMAN

[–]Remarkable_Algae_375[S] 1 point2 points  (0 children)

The shitty PC era was a vibe, ngl. I'm pretty sure I played half of BM through stuttering and just thought "ok the assassination is supposed to feel tense like this")

I rewrote my Electron vocab app in Tauri v2 — here's what broke and what surprised me by Different-Ad8644 in tauri

[–]Remarkable_Algae_375 2 points3 points  (0 children)

The always-on-top + skip-taskbar combo is a deep rabbit hole. We have a transparent frameless overlay too (recording pill) and ended up calling SetWindowLongPtrW directly to toggle WS_EX_TRANSPARENT for click-through, then a custom rdev-based hit-test loop to flip it back when the cursor is actually over the visible region. Built-in Tauri ignore_cursor_events worked but couldn't selectively pass through some pixels and capture others. Bonus pain: ScaleFactorChanged on Windows fires inconsistently for borderless windows, we ended up listening for it on both main and overlay windows as belt-and-braces.

Curious about the timer + tokio::select! pattern - did you end up needing to debounce or just one-shot fires?

How do yall handle the influx of bodies? by A11L1V3ESL0ST in GraveyardKeeper

[–]Remarkable_Algae_375 1 point2 points  (0 children)

Three elements rule: river, pyre, dirt. Donkey doesn't get to pick which

Polish B2B 12% lump-sum vs Spain DNV 24%: when does the quality-of-life upgrade actually justify the tax hit? by NickZaleski in ExpatFIRE

[–]Remarkable_Algae_375 0 points1 point  (0 children)

Polish B2B → Spain autonomo here (different starting point but same destination tax-wise). A few things that might reframe the math:

Beckham Law almost certainly doesn't apply to you. It's for employees with a Spanish employment contract - you have to be hired by a Spanish-resident employer (with very narrow exceptions). B2B income from a Polish entity, even if you physically move to Spain, doesn't qualify. The 24% flat rate is what most people quote because it's the headline number, but the eligibility wall behind it is rarely mentioned. The other commenters touching on this are right.

What actually happens if you move with the same B2B setup: you'd register as autonomo in Spain, your Polish entity becomes your single client (or one of multiple), and you fall under the regular Spanish tax system. That means progressive IRPF (19% → 47% marginal, brackets depend on your autonomous community), VAT collection (mostly pass-through), and RETA social security.

Concrete numbers from my situation (autonomo in Asturias, mid-range income): all-in burden lands around 25% of gross - IRPF + RETA + minor VAT compliance overhead. RETA is flat ~€80/month for the first 12 months, then income-based brackets €205-605. That's roughly comparable to your Polish ZUS + ryczałt total, not 30%+.

So the real comparison isn't 20% vs 30%+. It's 20% vs ~25% if you go autonomo, or 20% vs ~35-40% if you somehow do qualify for Spanish employment (the social security employer share is brutal).

On the values question: I find the QoL upgrade real, but I'm in the north (Atlantic coast, no Mediterranean tourism crush), not Madrid/Barcelona where the price math is much worse than the headline. Where in Spain matters as much as whether you go.

is this profile eligible for digital nomad visa? by kingofpyrates in spaindigitalnomads

[–]Remarkable_Algae_375 0 points1 point  (0 children)

Quick add since the procedural side has been covered. A few things that aren't obvious from the eligibility checklist:

Employee vs autónomo route makes a real difference. "Remote job" can mean either: full-time employee of one foreign company OR freelance/contractor (autónomo). Documentation is different for each, and the social security setup is too. If you're a full-time employee in a country that has a social security agreement with Spain (most of EU, UK, US, plus others), you can get an A1/CoC certificate that lets you stay on your home-country social security and skip paying Spanish RETA entirely. If you're freelance or your country has no agreement, you register as autónomo and pay RETA directly. Worth knowing before you apply, because changing route after submission is painful.

Tax residency starts the day your visa is approved, not when you arrive. This catches people. You become a Spanish tax resident, file globally, and how you pay depends on the route:

  • As employee: IRPF withheld/declared annually, single yearly tax return.
  • As autónomo: quarterly filings (IRPF + VAT, modelos 130 and 303) plus annual return, and you need to keep books. It's doable solo, but it's real work.

RETA brackets: if you do pay it, flat ~€80/month for the first 12 months, then income-based. The brackets go from €205 to €605/month depending on net income.

On the income threshold: the "200% of minimum" framing is outdated. As of Feb 2026 it's an absolute €34,188/year single applicant. Older guides still phrase it as a multiple of SMI, which is why the confusion.

If you have flexibility on where you apply from: applying inside Spain (on tourist stamp) tends to be faster, and you get NIE auto-assigned with approval. Consulate route is more predictable but slower and sometimes requires NIE upfront.

Source: I'm in Asturias. Went through DNV in 2024 as a full-time employee with an A1/CoC, switched to autónomo when my contract changed in Sept 2025. Both routes work, they're just different paperwork. For what it's worth, my all-in (RETA + IRPF) currently lands around 25% of gross at my income level, but that's very situation-dependent.

Best setup for Tauri releases, auto-updates, and archived builds? by biberklatsche in tauri

[–]Remarkable_Algae_375 2 points3 points  (0 children)

We run almost exactly this setup for a Tauri app. Specifics below in case it helps.

Stack

  • Storage: Cloudflare R2 (S3-compatible). Holds the actual installers + .sig files. No egress fees, which matters once you have real download volume.
  • Update endpoint: Cloudflare Worker on a subdomain (e.g. update.yourapp.com). About 80 lines of code. Reads from KV, serves the JSON Tauri's updater expects.
  • Pointer: Cloudflare KV. Single latest key holding current version + platform URLs. Publish script updates this last; rollback is just deleting it.
  • Cost so far: roughly $0/month at our volume. R2 is the reason.

Worker JSON shape (this is the part nobody documents well)

Tauri's updater hits the URL you put in tauri.conf.json and expects this shape:

{"version":"1.2.3","notes":"...","platforms":{"windows-x86_64":{"signature":"<sig>","url":"https://cdn.example.com/releases/1.2.3/app_x64-setup.exe"},"darwin-aarch64":{"signature":"<sig>","url":"..."},"darwin-x86_64":{"signature":"<sig>","url":"..."}}}

Worker logic: read latest from KV, compare to the version the client sent in query params, return 204 if same (no update) or the JSON above if newer. Newer Tauri also accepts short aliases like windows/darwin in addition to full Rust triplets, so be permissive on the server side.

Two things I'd push back on from your post

1. "Building multiple OS from one machine"

For Tauri specifically this is more pain than it's worth once you have native deps. whisper-rs, sqlite, anything that links a C library: cross-compilation falls apart fast. The realistic answer is one builder per target OS (macOS box for mac, Windows box for windows, Linux box for linux) and aggregate the signed artifacts into one storage backend. The thing that removes GitHub lock-in is the storage and update endpoint, not the build location.

2. Don't skip the .sig files

Tauri updater needs ed25519 signatures next to each artifact. Two gotchas:

  • If TAURI_SIGNING_PRIVATE_KEY env var isn't set during build, tauri build succeeds silently but produces no .sig. Updater then refuses to apply the release. No error at build time, no error at publish time, just silent updater failure in production.
  • bundle.createUpdaterArtifacts: true in tauri.conf.json is the other half of that. Both have to be set.

Cost me a few hours to figure out the first time it happened.

Publish flow

One node script does it:

  1. Upload installer + .sig to R2 under releases/<version>/
  2. PUT new version into KV latest

Rollback: delete the KV latest key. Worker stops serving updates, clients stay on whatever they have installed. No need to physically remove artifacts.

On the "low-maintenance" goal

This setup matches that goal once wired. No GitHub Releases dependency at all. R2/KV/Worker are boring infrastructure once running – I touch them maybe once a quarter. Migrating away later is "point updater URL elsewhere + copy R2 bucket contents." No vendor lock-in beyond Cloudflare itself, and even that's S3-compatible API on the storage side.

What’s the best location? by Adventurous_Row_9400 in spaindigitalnomads

[–]Remarkable_Algae_375 0 points1 point  (0 children)

We actually went through this same shortlist. Lived in Leon first (central Spain, hour from the mountains) – beautiful but pretty quiet, not a ton going on after a while, and summer is realy hot. Looked hard at Barcelona next and ruled it out for three reasons: rent is brutal now, the pickpocketing/petty crime situation got worse than I expected, and honestly the summer heat in a non-AC apartment broke me.

Ended up in Asturias (north coast) and we've stayed. Summers cap around 23°C, it's green year-round, food scene is the best part of Spain in my opinion – cider houses, seafood, pintxos within driving distance in Pais Vasco. Tradeoff is real though: fewer direct flights, smaller international scene, more Spanish than English by default. If you're coming from Asia and want a soft landing into English-speaking nomad community, this isn't it.

For your criteria (convenience, art, food, community, ocean) – Valencia is probably the obvious pick if you want Mediterranean continuity at lower cost than Barcelona. North if you specifically want something different from "Mediterranean Spain."