Elixir Blog Posts

I wrote a tiny blog post about a custom helper function I use in almost every project: assert_eventually. It makes it easy to wait for an async process to complete in your test suite without using Process.sleep!

4 Likes

Hey community :wave:
I wrote a quick post on how to create Credo check to raise a warning if a Logger call is used as last return statement. A logger call (e.g. logger.error/2) returns :ok, which might be unexpected to new comers in Elixir.

Cheers :v:

8 Likes

Great title :innocent:

1 Like

I bought the Ash Framework book, and made some notes on the dev lifecycle and include some thoughts and welcome comments.

Ash Framework approaches the TCO (Total Cost of Ownership) argument implicit in LLM AI prompt or vibe coding from a different direction. Ash Framework promises to reduce TCO, with installers, generators, declaration and derivation. Ash gives the TCO of code gen with the precision of SDLC. So lets use the Ash Framework tools!

@zachdaniel

3 Likes

Does @AshFramework provide accelerated lean precision prompt engineering?

Lots of talk about prompts generating code. I like my code-gen “prompts” to be PRECISE and ACCELERATED and carefully considered.

sh <(curl 'https://ash-hq.org/new/store?install=phoenix') \
    && cd store && mix igniter.install ash_phoenix \
    ash_graphql ash_json_api ash_postgres ash_sqlite \
    ash_authentication ash_authentication_phoenix ash_money \
    ash_csv ash_admin ash_oban ash_state_machine \
    ash_double_entry ash_archival ash_paper_trail cloak \
    ash_cloak --auth-strategy password \
    --auth-strategy magic_link --yes && mix ash.setup
1 Like

It explains how to integrate AG Grid into LiveView projects, enabling features like real-time sorting, filtering, and pagination without full page reloads. The article also covers customizing cell data and implementing efficient updates to ensure a dynamic user experience.

1 Like

Wrote a new post on security best practices, enjoy!

5 Likes

I couldn’t find a complete tutorial for how to set up E2E tests with Cypress and LiveView using Ecto sandboxes. So I wrote on. Hope someone finds it useful!

3 Likes

Introduction to Contexted - an open-source lib I wrote some time ago that can help you keep the Phoenix Contexts maintainable and clean in long-term :slight_smile:

1 Like

I recently dove into processing large genetic datasets and I utilized a couple of cool tools like Flow and Burrito along the way. The article talks about the why, a bit of genetics background and some considerations I took for working with data this large locally :dna:

4 Likes

Internet is dark and full of strange creatures. Some of them impersonate Erlang nodes and may try to connect to your cluster. Who you gonna call if :AAAAAA@AAAAAAA show up? Hide Your Nodes, AAAAAA@AAAAAAA is Coming | Alex Martsinovich

6 Likes

How do you take care of the security in your projects, are you using available tools to their full potential?

We decided to explore security measures for Elixir and Phoenix: :right_arrow: Secure Web Development in Elixir & Phoenix: Key Security Practices | Curiosum

The article includes topics such as:
:white_check_mark: Defending against common threats like XSS, CSRF, and SQL Injection
:white_check_mark: Utilizing Phoenix’s built-in security capabilities effectively
:white_check_mark: Implementing authentication and authorization methods
:white_check_mark: Safing sensitive data to prevent leaks and breaches

1 Like

A deep dive into Elixir compiler compiling Elixir code :man_scientist:

2 Likes
1 Like
7 Likes
4 Likes

I recently wrote a blog post about creating software with AI. The blog post doesn’t go into what tech stack was used as I wanted to keep it more general, but I can mention that here. It was an Elixir/Phoenix/LiveView project. In that particular project, Claude Code generated nearly 25,000 lines of the initial implementation code. After some code formatting, fixing of compile errors, testing, linting, etc., it was a decent start of a functioning site. I had mix phx.new create a base set of code for Claude to implement on. After that initial implementation was complete, I had Claude dump some project stats. Here is a piece of that data:

Metric Count
Files in initial commit 25
New files created 143
Files modified 143
Lines added 24,859
Lines deleted 781
3 Likes

Elixir’s Advantage in the Era of AI

I’ve been exploring AI dev assistants (Super into Claude Code right now) and decided that if I want to make a difference I need to contribute to the conversation more. I love Cursor and the direction coding assistants are going is making me really optimistic. In particular, I think Elixir is in an amazing position to capitalize on AI dev. I love Elixir in general and many of the reasons I love it also are great contributors to why I think I’ve had such a positive experience with AI tooling. Here’s my post on why I think Elixir can shine. Also, first time posting blog content here, please give me feedback :smile:

4 Likes
4 Likes

I did a follow-up to my last post (:backhand_index_pointing_up: couple message up) about how great Elixir and AI have been for me. This one is specifically about how I’m using the Claude Code cli tool to make big changes to my current Liveview app. Let me know what you think!

2 Likes