Papercups
changelog.com
Papercups | changelog.com | |
---|---|---|
19 | 12 | |
5,637 | 2,669 | |
0.7% | 0.3% | |
0.0 | 9.4 | |
3 months ago | about 20 hours ago | |
Elixir | Elixir | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Papercups
-
Linen.dev – Building a chat app with Elixir and NextJS
The best language for the task at hand, when presented with time constraints, is the one that you already know well. OP said in the article that they authored Papercups [1]. Adopting Elixir for a websocket-push service makes a lot of sense, then. However, why don't you learn Elixir, some OTP, and then reconsider that question? You could be missing out.
[1] https://github.com/papercups-io/papercups
-
What Phoenix Elixir Tutorial do you want to see?
https://github.com/papercups-io/papercups - 5.2k stars, uses Phoenix 1.6
-
Complete, Production-Ready Phoenix Reference Applications
Papercups
- Looking for recommendation of OS phoenix app to look at
- Example of an elixir CRUD app in production
- Show HN: Open-source live customer chat
-
Lessons from answering 800 customer support queries in last 2 yrs as a founder
Shameless plug here if anyone is interested in an open source live chat tool check out https://github.com/papercups-io/papercups
- Create a conversation with Elixir with real code examples
-
Ask HN: What novel tools are you using to write web sites/apps?
Phoneix - Elixir
We're a live message tool and it is basically what Elixir is built for https://github.com/papercups-io/papercups.
The Elixir community has been great and incredibly friendly. I originally was worried about the size of the community but that hasn't been an issue the community has been super helpful. I also think the annual stackoverflow usage surveys are very misleading because most of the community's questions get asked in ElixirForum and not on Stackoverflow.
Phoneix is the web framework of Elixir which is very similar to Rails but minus a lot of the magic has been very helpful for our productivity as well.
If I had to built another service that is websocket heavy I would definitely use Elixir. Even if it was a standard crud app I would still most likely choose Elixir.
- Papercups – open-source live customer chat in Elixir
changelog.com
-
Ask HN: How does your CI/CD stack look like today?
Another https://dagger.io fan here. Have been using it since late 2021 to continuously deploy a Phoenix app to Fly.io: https://github.com/thechangelog/changelog.com/pull/395. Every commit goes into production.
This is what the GHA workflow currently looks like: https://github.com/thechangelog/changelog.com/blob/c7b8a57b2...
FWIW, you can see how everything fits together in this architecture diagram: https://github.com/thechangelog/changelog.com/blob/master/IN...
-
Fly.io Postgres cluster went down for 3 days, no word from them about it
I really like the work that you're doing Thomas, this is the right approach. FWIW, https://fly.io/blog/carving-the-scheduler-out-of-our-orchest... is one of my favourite posts on your blog.
For everyone else reading this, we have been running https://changelog.com on Fly.io since April 2022. This is what our architecture currently looks like: https://github.com/thechangelog/changelog.com/blob/master/IN...
After 15 months & more than 100 million requests served by our Phoenix + PostgreSQL app running on Fly.io, I would be hard pressed to find a reason to complain.
- What Phoenix Elixir Tutorial do you want to see?
- Any good and updated open source phoenix project
- Code repositories that help you to become a better Elixir programmer
-
Complete, Production-Ready Phoenix Reference Applications
Changelog.com
- Looking for recommendation of OS phoenix app to look at
-
Metaprogramming in Elixir
I see this criticism a lot but I don't think it has anything to do with macros specifically and more so to do with lack of familiarity with Elixir. I've felt the same way about Django being magic because I had trouble following the class hierarchy. It makes a lot more sense now because I'm more familiar with Python and Django. But even today I'll be looking deeper at something and ask WTF it's doing. In that respect, Elixir codebases are easier to me. The module depth seems "shallower" and I don't have to disambiguate between what behavior is caused by class inheritance or an imported function.
When I first tried to use Elixir several years ago Ecto.Schema [0] seemed complex and magical, but then I came to realize it's just converting module attributes to runtime code. There is not really that much complex macro logic going on.
>This also leads to cryptic errors where you get an error in non existant lines of code.
When was the last time you used Elixir? This isn't a problem I can recall having in the last 4 years or so of using Elixir.
>following the control flow in Phoenix is like a maze because of all the macro substitutions.
Can you clarify what you mean by this? A specific case as to where this happened for you would help. Phoenix's use of macros is actually pretty light [1] except for some very low level stuff. You can even see how frequently a developer will use macros in Phoenix by searching `__using__` in the codebase [2]. It's not used as much as people think. The majority is for views and controllers and only to provide a very thin layer of support on top of your regular use of code. As an example, the "macro magic" in Phoenix.Controller is just handling some basics for giving a layout and view to Plug and handling fallback actions for exceptions. You could do the plug calls manually and I think it would be safe to not use any macros in your controller code.
Another familiarity issue with the language (and any language really) is understanding what is meaningful in a stack trace and what isn't. And the likely cause of the error in the first place. Is it syntax? Is it mistyping a variable? Is a function just used improperly? (wtf is init_p_do_apply and why does it show up in every stacktrace?) You're juggling all these different issues - learning a new paradigm, a new syntax, not knowing how to extend things. It's obviously going to be a little overwhelming and, if not strictly required, we might just pick a different language that we're more familiar with.
[0]: https://github.com/elixir-ecto/ecto/blob/master/lib/ecto/sch...
[1]: https://github.com/thechangelog/changelog.com/blob/master/li... (not mine, I just go here to show the most frequent use of macros in Phoenix)
[2]: https://github.com/phoenixframework/phoenix/search?q=__using...
-
The new changelog.com setup for 2020
changelog.com used to be WordPress, then became a Phoenix app because it needed features that were hacky to implement & then manage in WP. It's more of a podcasting platform these days rather than a CMS.
The code in this repo tells the truth about what it is, and even shows how it works: https://github.com/thechangelog/changelog.com
What are some alternatives?
chatwoot - Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬
phoenix-liveview-counter-tutorial - 🤯 beginners tutorial building a real time counter in Phoenix 1.7.7 + LiveView 0.19 ⚡️ Learn the fundamentals from first principals so you can make something amazing! 🚀
SvelteKit - web development, streamlined
phoenix-chat-example - 💬 The Step-by-Step Beginners Tutorial for Building, Testing & Deploying a Chat app in Phoenix 1.7 [Latest] 🚀
Gotify - A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)
ex_chain - Simple Markov Chain written in Elixir
LeapChat - Ephemeral, encrypted, in-browser chat rooms
hexpm - API server and website for Hex
LibreNews - A free and open breaking news notification platform
feedx - Generic feed adding social features to current applications.
PushBits - A simple server for push notifications via Matrix (and a minimalistic alternative to Pushover and Gotify) 🚀📯
stranger - Chat anonymously with a randomly chosen stranger