github_workflows_generator v0.1.4

github_workflows_generator version 0.1.4 was released with escript support, making it usable in projects without mix....
almirsarajcic

almirsarajcic

18 minutes ago

0

optimum_credo v0.2.0

We added 6 new Credo checks to optimum_credo: unused types, private function specs, verbose nil assertions, extractable spec types, module organizatio...
almirsarajcic

almirsarajcic

4 days ago

0

Structure context tests with `describe` blocks

Phoenix context test files grow fast. A single accounts_test.exs can easily reach 300+ lines, and without structure it becomes hard to find tests, spo...
almirsarajcic

almirsarajcic

6 days ago

0

`Phoenix.LiveView.JS` for client-side interactions

Not every click needs a server roundtrip. Toggling a dropdown, showing a modal, or hiding a deleted item are all pure UI operations — but they're ofte...
almirsarajcic

almirsarajcic

13 days ago

0

`Oban.insert_all/1` doesn't enforce unique job constraints unless you're on the pro license

Oban.insert_all/1 doesn't enforce unique job constraints Configured unique constraints on your Oban worker but still seeing duplicate jobs when using...
amos-kibet

amos-kibet

1 month ago

1

Mix.env() doesn't work in releases

Mix.env() doesn't exist in production releases. Your conditional routes will silently fail, and you won't know until deployment. Use Application.compi...
almirsarajcic

almirsarajcic

2 months ago

0

Add query params to Phoenix verified routes with `~p`

Phoenix verified routes handle query parameters with the same ~p sigil you use for paths. Pass a map or keyword list after ?#{} and get compile-time v...
almirsarajcic

almirsarajcic

2 months ago

0

`defguard` creates reusable guard expressions

Repeating the same guard logic across multiple functions? Define it once with defguard and use it everywhere - in function heads, case, cond, and with...
almirsarajcic

almirsarajcic

2 months ago

0

`tap/2` runs side effects in pipelines

Need to log, send a message, or cache a value mid-pipeline without breaking the flow? tap/2 executes a function for its side effect, ignores the retur...
almirsarajcic

almirsarajcic

3 months ago

0

Use `Ecto.Multi` for complex transactions in Phoenix contexts

Manual transaction management with nested operations becomes unreadable and error-prone. Ecto.Multi provides named operations, automatic rollback, and...
almirsarajcic

almirsarajcic

3 months ago

0

Live Sessions in Phoenix LiveView: Reducing navigation time between LiveViews

The main idea behind live sessions is to reduce navigation time when navigating a group of routes. Normally what happens when navigating between LiveV...
Deankinyua

Deankinyua

3 months ago

0

`File.stream!/1` processes large files with constant memory

File.read!/1 loads the entire file into memory. A 2GB log file? That's 2GB of RAM. Use File.stream!/1 to process files line-by-line with constant memo...
almirsarajcic

almirsarajcic

3 months ago

2

Stop using `Repo.preload` in loops - use `preload` in queries

Calling Repo.preload/2 inside Enum.map or comprehensions creates N+1 queries - one query to fetch the parent records, then one additional query for ea...
almirsarajcic

almirsarajcic

3 months ago

0

Use `Task.Supervisor` instead of bare `Task.async`

Bare Task.async creates linked tasks that can crash your process or leave zombie tasks running. Task.Supervisor provides supervised tasks with automat...
almirsarajcic

almirsarajcic

3 months ago

0

Prevent race conditions with `Ecto.Query.lock/2`

Two users buying the last item simultaneously can cause overselling. Use PostgreSQL row locks with lock: "FOR UPDATE" to prevent concurrent updates fr...
almirsarajcic

almirsarajcic

4 months ago

0