
Render PDFs in Elixir with the Typst NIF
· 6 mins
A Phoenix app renders its report PDFs inside the BEAM with the typst package's NIF. Why not headless Chrome or the Typst CLI, the checks a NIF has to pass, and a benchmark against the CLI.
No posts match.

· 6 mins
A Phoenix app renders its report PDFs inside the BEAM with the typst package's NIF. Why not headless Chrome or the Typst CLI, the checks a NIF has to pass, and a benchmark against the CLI.

· 3 mins
Pass Phoenix 1.8's Scope first to almost every public context function, and the context becomes one authorization layer for your LiveViews, controllers, APIs and MCP server.

· 4 mins
Why I stopped relaying work between Claude Design and Claude Code, and moved the design step into the app itself

· 5 mins
Phoenix contexts are a convention until something checks them. boundary makes a call from the web layer into a context's internals fail the build, even on an app that already breaks the rules.

· 5 mins
We wanted AI agents to work with our app. I built an MCP server with OAuth first, and REST only when a script that doesn't speak MCP needed the app too.

· 4 mins
Line coverage said our Phoenix app was 96% tested. Mutation testing with Muex, run only on a branch's changed lines and fast tests, found 17 changes no test caught.
· 3 mins
A record with its own primary key and an id from the upstream system that sent it. The upstream id usually belongs in the URI, when it passes three tests.
· 3 mins
PromEx's plug serves /metrics on the Phoenix app's public port. Why blocking it at the load balancer beats an ingress-nginx snippet, and when a separate metrics port is simpler.
· 1 min
A simple but frustrating issue with directory names containing spaces causing the Drata Agent to fail
· 4 mins
Troubleshooting Mise configuration issues when your global config is being ignored
· 2 mins
What NIST 800-63 section 5 says about passwords, where the AWS account password policy cannot follow it, and the Pulumi resource that sets what it can.
· 1 min
A k6 soak test dies with socket: too many open files. Raise the open file limit with ulimit -n.
· 11 mins
How to test your Elixir Phoenix LiveView apps with k6.