1. Inicio
Elixir Chile 🇨🇱 tiene el objetivo de crear artefactos de software, documentación y actividades para el fomento de la tecnología Elixir en el país.
1.1. Comunidad
1.1.1. Github
Nuestros Repositorios.
1.1.2. Discord
Unirse a Discord de Elixir Chile.
1.1.3. Github Wiki
La Wiki sirve para compartir pequeños snippets de códigos, como también tutoriales y otros tips.
1.1.4. Eventos
Los eventos, meetups y otros relacionados estarán en un tablero de proyectos de Github para su fácil organización.
1.2. Comunidades Amigas
1.2.1. Elixir Oficial
El chat oficial de Elixir. Quizás puedas visitar el canal #chile.
1.2.2. Elixir Japan
El canal de #autoraceex es un buen sitio para compartir el amor por Elixir.
1.2.3. Devs Chile
Comunidad de devs chilenos. No tiene canal de #elixir 💔.
1.2.4. JavaScript Chile
Otra comunidad de devs chilenos.
1.2.5. HackerSpaces
Hackerspace Santiago (HSS) es un espacio de enseñanza, aprendizaje y experimentación que tiene como fundamentos filosóficos y técnicos la cultura hacker y el software libre.
2. Estándares
En 🧙 Elixir Chile 🇨🇱 buscamos aumentar la cantidad de devs que sepan utilizar Elixir. Con el objetivo de brindar módulos de apoyo y de ejemplo, se debe confeccionar artefactos de software de alta calidad, utilizando las herramientas y buenas prácticas que se esperan de un producto que pueda ser usado en ambientes de producción.
Para esto deben cumplir con lo siguiente:
-
Correctamente documentados utilizando HexDocs y Asciidoc cuando HexDocs no sea apropiado.
-
Funciones con especificación y tipos Typespecs.
-
Seguir buenas prácticas de TDD y tener un buen puntaje de coverage.
-
Utilizar Credo para análisis de código estático.
-
Seguir las recomendaciones de DDD cuando sea prudente.
-
Utilizar la licencia Mozilla Public License v2.0 para el código y Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0) para los artefactos como documentación, imágenes u otros.
-
Soportar como mínimo, las últimas dos versiones del lenguaje.
-
Utilizar Romantic Versioning, partiendo desde la version 1.0.0.
-
Utilizar un Changelog.
-
Utilizar un archivo de
.editorconfig. -
Utilizar Trunk Based Development para las ramas. Siendo la rama principal llamada
main. -
Utilizar Conventional Commits al momento de hacer squash and merge del PR (leer traducido). También leer la guía https://www.freecodecamp.org/news/writing-good-commit-messages-a-practical-guide/.
-
Seguir, en lo posible, la filosofía Unix.
-
Seguir, de preferencia, la guía de estilo: Compass.
-
Utilizar la menor cantidad de dependencias externas posibles.
-
Utilizar el lenguaje inglés para el código, commits y documentación de artefactos de software.
-
Utilizar el namespace elixircl_<app> para el nombre de paquetes en hex y ElixirCL<app> como prefijo de los módulos. Ejemplo: elixircl_rut, ElixirCLRut.
2.1. Licencias
Las licencias utilizadas serán para documentos y para código fuente.
2.1.1. Documentos
A menos que se especifique lo contrario, Los documentos que no sean código estarán bajo la Licencia Creative Commons Atribución-No-Comercial-Compartir-Igual 4.0 Internacional
2.1.2. Código Fuente
A menos que se especifique lo contrario, todo el código fuente está bajo a licencia MPL v2.0 (Mozilla Public License Version 2.0).
Es una licencia que es fácil de cumplir. Puedes mezclar la licencia MPL v2.0 con cualquier otra licencia, propietaria u de otra índole. Siempre y cuando se cumplan las siguientes condiciones:
-
Si no modificas los componentes del artefacto de software, solo deberás mostrar un enlace al código fuente del artefacto, de preferencia en un lugar claramente visible dentro del software, por ejemplo el README o sección de autores.
-
Si modificas los componentes de este artefacto, debes solamente proporcionar libremente tus cambios al artefacto (no al proyecto en su totalidad).
2.2. Código de Conducta
Puedes leer el código completo acá: https://github.com/ElixirCL/code-of-conduct
En resumen:
Creemos en la amabilidad, respeto y buena onda en todos nuestras interacciones tanto online como presenciales. Por favor ser lo más buena onda posible con todos los participantes de la comunidad y fuera de esta.
3. Proyectos
Códigos que son un proyecto completo y funcional.
-
https://github.com/ElixirCL/rauversion-phx: Proyecto de Comunidad musical hecho con Elixir.
-
https://github.com/ElixirCL/mate: Un chatbot para Discord que le gusta dar Mates.
-
https://github.com/ElixirCL/rankmode: Un sistema para almacenar puntajes del juego Pump it Up.
-
https://github.com/ElixirCL/tololo: Ejemplo de sistema creado con Ash Framework.
3.1. Libros
Libros escritos por la comunidad.
-
Elixir Robotics: Cómo hacer robots con Elixir y AtomVM (ESP32).
-
Elixir FullStack: Conocimientos necesarios para aplicaciones fullstack con enfoque en Elixir.
3.2. Ejemplos
Códigos que resuelven una tarea específca y sirven de ejemplo o para ejercitar.
-
https://github.com/ElixirCL/surface-hackernews: Un ejemplo de MVVM con Phoenix y Surface.
-
https://github.com/ElixirCL/surface-practice: Prácticas de Phoenix con Surface.
-
https://github.com/ElixirCL/weekly-2022: Pequeños ejercicios resueltos con Livebook.
-
https://github.com/ElixirCL/msn-chatbot: Integración de ChatGPT con MSN Messenger.
-
https://github.com/ElixirCL/kombucha: Un lenguaje de programación con probióticos.
-
https://github.com/ElixirCL/placesfind: Ejemplo de uso de la Api de Places Find.
-
https://github.com/ElixirCL/chileanbirds: Llama a la API de aves chilenas.
-
https://github.com/ElixirCL/wren-livebook: Ejecuta el lenguaje de programación Wren en Livebook.
-
https://github.com/ElixirCL/transbank-elixir: Integración de Webpay con Elixir.
-
https://github.com/ElixirCL/telegraph: Exportador de telegra.ph
-
https://github.com/ElixirCL/rut: Validador de RUT con Elixir.
4. Empresas Internacionales
Empresas que utilizan Elixir en el mundo.
4.1. Consultoras Internacionales
Si se busca asesoría o consultoría en este lenguaje.
5. Empresas Nacionales
Empresas que utilizan Elixir en Chile. (Se aceptan PRs).
5.1. Consultoras Nacionales
Si se busca asesoría o consultoría en este lenguaje.
5.2. Startups
Empresas que utilizan Elixir dentro de sus sistemas y proyectos.
6. Aprendizaje
Hay un montón de recursos para aprender Elixir. Tanto de pago como gratuitos, aquí una fina selección.
6.1. ¿Dónde aprender?
Te recomendamos utilizar Exercism, resolviendo los problemas podrás aprender más el lenguaje.
6.2. Cursos Recomendados
6.3. Libros
-
https://altenwald.com/book/elixir: Elixir. Introducción para Alquimistas.
-
https://altenwald.com/book/phoenix-framework: Phoenix Framework 1.7. Proyecto de Red Social en 7 días.
-
https://altenwald.com/book/elixir-otp: Elixir/OTP. Alquimia con OTP.
-
https://altenwald.com/book/ecto: Ecto. Bases de Datos en Elixir.
-
https://www.manning.com/books/elixir-in-action-second-edition: Introducción al lenguaje. Altamente recomendado.
-
https://pragprog.com/titles/liveview/programming-phoenix-liveview/: Introducción a Phoenix y Liveview. Para los sistemas webs.
-
https://pragprog.com/titles/jgotp/designing-elixir-systems-with-otp/: Libro más avanzado, pero recomendado para el diseño de sistemas con Elixir.
-
https://dashbit.co/ebooks/the-little-ecto-cookbook: Libro gratuito sobre el uso de Ecto.
-
https://pragprog.com/titles/sgdpelixir/concurrent-data-processing-in-elixir/: Sobre procesamiento de datos en streaming. Explica muy bien los mecanismos de supervisión.
6.4. Artículos/Guías
-
https://damonvjanis.medium.com/optimizing-for-free-hosting-elixir-deployments-6bfc119a1f44
-
https://www.cogini.com/blog/deploying-your-phoenix-app-to-digital-ocean-for-beginners/
-
https://neiro.io/2018-04-28-elixir-code-quality-tools-and-checks.md.html
-
https://preslav.me/2020/09/06/elixir-is-not-ruby-elixir-is-erlang/
-
https://altenwald.com/2025/05/02/phoenix-18-novedades-y-cambios
-
https://altenwald.com/2023/06/13/phoenix-framework-17-ruptura-y-nuevos-conceptos
-
https://altenwald.com/2023/02/23/supervisores-apagado-elegante-sin-perder-datos
-
https://altenwald.com/2023/02/02/eventos-genevent-genstage-o-phoenixpubsub
-
https://altenwald.com/2023/01/14/buscaminas-de-servidor-a-mquina-de-estados
-
https://altenwald.com/2022/12/16/ets-genserver-agent-cuando-usarlas
7. Herramientas Recomendadas
-
https://www.phoenixframework.org/: Para desarrollo de aplicaciones web.
-
https://surface-ui.org/: Complemento de Phoenix para Renderizar HTML basado en Componentes (Similar a React.js).
-
https://www.ash-elixir.org/: DSL para la creación de APIS.
-
https://thinkingelixir.com/petal-stack-in-elixir/: Stack recomendado PETAL.
-
https://www.nerves-project.org/: Para desarrollo IoT.
-
https://github.com/elixir-desktop: Para aplicaciones de escritorio y mobile.
-
https://github.com/elixir-nx: Para desarrollo de Machine Learning.
-
https://www.grisp.org: Para plataformas de sistemas incrustados.
-
https://github.com/burrito-elixir/burrito: Distribución de aplicaciones.
-
https://www.membraneframework.org/: Para desarrollo de aplicaciones de Streaming multimedia.
-
https://glimesh.tv/: Para desarollo de live streaming.
-
https://github.com/alex-min/ex_platform: Boilerplate para Phoenix.
-
https://hexdocs.pm/rexbug/readme.html: Ayuda en el Debug de aplicaciones.
-
https://lambdapad.com: Generación de sitios web estáticos.
7.1. Hosting
-
VPS (Digital Ocean, Linode, Vultr).
