Aporro

Aporro

Hi everyone,

I’m reaching out today for some guidance on setting up an Elixir development environment with an effective linter. I’m a university student trying out my hand on a side project that involves full-stack development, and I was particularly interested in exploring Elixir due to its potential for high concurrency, GraphQL subscriptions through Absinthe, and a light introduction to functional programming.

Initially, I was drawn to the Phoenix framework with its channel support for websockets and Absinthe for GraphQL. However, I’ve encountered some challenges in setting up the environment and getting started with Absinthe subscriptions.

Here’s what I’ve tried so far:

  • IDEs: Since I’m a JetBrains IDE user, I initially looked for a linter but the biggest elixir linter people suggested didnt (to my knowledge still doesnt) have support for the 2024 versions of the ides.
  • VS Code: I switched to VS Code with the Elixir Language Server extension. However, it warned me about potential bugs with Erlang 26 on Windows, and subsequent troubleshooting attempts weren’t successful.
  • Dev Containers: I explored using Dev Containers with GitHub Codespaces, but unfortunately, encountered different but similar issues (something about the elixir command not being found) which I also failed to debug
  • WSL Setup: Finally, I managed to set up a development environment within WSL, and while the linter seems to work for basic syntax errors, it doesn’t provide more comprehensive assistance like reference checking for non-existent modules or function signature validation. This lack of advanced features significantly impacts development speed for a newcomer to the language (i was also concernend to see code compiling just fine while referencing modules that dont exist, not sure if thats a quirk of the launguage).
  • Absinthe Subscriptions: Additionally, I struggled to achieve a minimum working example of Absinthe subscriptions using the provided documentation with the GitHub repository demo seeming dated (7 years), I understand that tutorials might also require some updates.

I understand that there might be a learning curve involved, and I’m more than willing to put in the work. However, I’ve never encountered such a frustrating setup process with any other development environment or launguage, i may be spoiled but i am used to this kind of tooling just working.

Truth is I am convinced it’s my fault, it just has to be since everything I’ve heard is about how newbie friendly and productive elixir is and how good the developer experience is and i genuinely wish someone is able to show me what horrible mistake I’ve made to go from that to this

My Questions:

  • Would anyone be willing to share their Elixir development environment setup that offers as much tooling as possible and how to set it up?
  • Are there any up to date resources or tutorials demonstrating how to implement Absinthe subscriptions or a working demo of some kind i can pick apart?

Any guidance or insights you can provide would be tremendously helpful because I am genuinely out of ideas!

Thank you,

Showing Posts 1 to 1

jmnda

jmnda

Hi, sorry that you didn’t get any response. I will try to answer some of the questions:

IDEs I would recommend VS Code, then install both the elixir-tools and Elixir LS extensions for better language server experience.

Dev Containers: There is a template configuration HERE for an Elixir Dev container environment with Phoenix, Node and PostgreSQL installed, which you could use and customize to your liking.

Absinthe Subscriptions: The only resource that comes to mind is this course by Pragmatic Studio. The course does have you might be looking for, although it’s paid. There also the book Craft GraphQL APIs in Elixir with Absinthe.

— All posts loaded —

Where Next? Top

Trending in Questions Top

Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
matt-savvy
Anyone here using Honeybadger? My Honeybadger account is being overwhelmed with noise from some bots. Seeing a lot of Bandit.HTTPError...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews