adamu
What libraries do you pull in for a fresh project?
When starting a new project, do you have any go-to libraries you pull in out of habit/preference?
Most Liked
eahanson
I’m a co-author of Moar and I agree with your statement
… check out the very first line in its readme:
A dependency-free utility library containing 100+ useful functions. Add the library to your project, or just copy and paste the bits that you want.
The library was extracted from a bunch of code that I copied and pasted between projects (I’ve built 20+ Phoenix projects by now) and putting it in a public library is the easiest way to reuse it.
Moar and similar libraries probably have at least a few functions that are useful for others, so I’d recommend perusing the docs to see if anything jumps out at you, and then consider copying that code (and modifying it as needed), or adding the library to your project (Moar is dependency-free, and I assume most other utility libraries are). Moar’s docs have a short list of other utility libraries; if you are the author of such a library, feel free to add it to Moar’s docs.
sodapopcan
If you aren’t Ash’ing then Flop along with Flop.Phoenix along with Let Me covers all of pagination/filtering/sorting/authz in a pretty nice way. Ash was, in part, born out of not having these basic necessities but if you aren’t going to use Ash (which is of course totally fine) then these help a lot (and play nicely together). I really don’t like to ping but these libs are all by @woylie who has another very helpful one in ecto_nested_changeset. Really, I wish Phoenix had out-of-the-box solutions for all of these thing, even just as generators (a la phx_gen_auth) as it’s all stuff every project needs.
There’s also Sobelow.
To be a little catty and flip the question, I intentionally shun any type of “helper” libraries (I’ll pick on Moar as an example) and argue loudly against them in a team situation. At best they are unnecessary.
adamu
Thanks for the responses all, it’s useful to see what people find useful, there were a few in there that were new to me, and I’m sure this thread will be helpful for others starting new projects too ![]()
This one made me
- I usually try to remove Timex from legacy projects unless there is some specific functionality it’s providing that can’t easily be replaced by built-in functionality.
Last Post!
l3nz
I always add my little baby GitHub - l3nz/say_cheez_ex: Say Cheez! for Elixir · GitHub that lets me grab the build hash / build time / environment variables at compile time, plus lets me add graphs to the docs in an easy-peasy way.
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #hex









