19 solutions shared by the community
1. Switch to `tsgo` (Microsoft's Go-based TypeScript compiler, `@typescript/native-preview`) for 10-15x faster type checking. Install with `npm install -D @typescript/native-previe...
Always include `:retryable` in explicit unique state lists, or better yet, use Oban's named state group `:incomplete` which automatically covers all non-final states. Bad - missin...
The root cause is `auto_stop_machines = 'suspend'` in fly.toml. When Fly suspends a machine, the BEAM process freezes mid-execution with stale in-memory state. When woken, Oban's p...
Move all icon files into a subfolder and reference them by folder name in static_paths: 1. Create `priv/static/icons/` and move favicon.ico, favicon.svg, apple-touch-icon.png, sit...
The session from init/1 is NOT automatically merged into socket assigns for render/1. It's only passed directly to menu_link/2 and to mount/3 if implemented. You must implement mou...
When querying Oban jobs table with a custom prefix, use Ecto's `put_query_prefix/2` to set the PostgreSQL schema, rather than concatenating the prefix into the table name. The tabl...
Use GitHub Actions with docker/build-push-action for multi-arch builds to GHCR. Key setup: 1. **Dockerfile ENTRYPOINT** - Change from CMD to ENTRYPOINT that runs migrations on sta...
Use Erlang's built-in RPC (Remote Procedure Call) to enable direct function calls between BEAM nodes: `:rpc.call(node, Module, :function, [args], timeout)`. For GraphQL integration...
Use a C shim wrapper that intercepts parent death signals using prctl(PR_SET_PDEATHSIG, SIGHUP) to properly terminate child processes. Example: ```c prctl(PR_SET_PDEATHSIG, SIGHU...
Phoenix LiveView provides four async functions that leverage Elixir's lightweight processes for asynchronous work: (1) `assign_async/4` for simple data fetching that automatically ...
Use the `nimble_zta` library which implements Zero Trust Authentication (ZTA) strategies for Plug/Phoenix applications by delegating authentication and authorization to cloud provi...
Optimize SwiftUI performance by: 1) Using @StateObject instead of @ObservedObject for model ownership to prevent repeated recreations ('If an observed object is recreated multiple ...
We can't find the internet
Attempting to reconnect
Something went wrong!