We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track

Pattern matching on Bitstrings
Assume that you have a long string of text that you want to display to the user. You want to display a maximum of 60 characters and add an ellipsis if...

Fixing Wallaby's "Invalid Session ID" Error
When running Wallaby integration tests in your Phoenix application, you might encounter this cryptic error:...

Using the "Use" Elixir Macro
Suppose you have the following module directives in your current module:...

Offset-based pagination in Elixir
Pagination is a technique used to break a large dataset into manageable “pages” (chunks) of results. It’s essential for:
+ UI rendering (e.g., showin...

Testing Oban Workers
Background processing refers to the execution of tasks as separate, detached processes. Oban is a robust background job framework that is widely used ...

Reproducing failed CI tests locally with seeds
When tests fail in CI, you can use the test seed to reproduce the exact same test run locally. This is especially useful for debugging flaky tests or ...

Creating and hosting sitemaps in Elixir/Phoenix
Recently, we implemented sitemap generation for ElixirDrops, so I thought I'd share our approach.
Since we don't store sitemaps in git and hosting pr...

Ecto fragments for complex queries
Sometimes when writing Ecto queries, you might discover that the conventional approach doesn't quite cut it. This is where fragments come in, which ar...

Capturing Logs in Tests
Sometimes when you writing functions that may produce errors, you might want to log the error in the terminal :...

Temporarily changing app config in tests
When testing functionality that depends on application configuration, you can temporarily set specific config values and ensure they're restored after...

Multi-process collaboration in Mox
Mox enforces process-based verification, meaning only the process that defines expectations is allowed to call the mock by default. This can prove pro...

Gracefully handle 404s and other errors in Phoenix using Plug.ErrorHandler
Instead of letting your Phoenix app crash with ugly errors, add this clean error handler:...

Cleaning up after tests (on_exit)
When your tests create files, database records, or other side effects, you need to clean them up regardless of whether the test passes or fails.
Data...

Auto-disappearing flash messages in Phoenix LiveView
Use this LiveView hook to make flash messages automatically disappear after 5 seconds in your Phoenix app.
Create the JavaScript hook file:...

Enhanced missing gettext translations check in CI
Earlier I wrote about a check for strings that haven't been extracted yet to .pot and .po gettext files (link).
Still, extracting them is not enough....
copied to clipboard