Hacker News new | ask | show | jobs
by enraged_camel 2540 days ago
My startup uses Phoenix, along with a Vue front-end. The combo is an absolute joy to use. The benefit that has had the most business impact for us so far is developer productivity.

A couple of months ago we met with a prospective client to discuss their use cases and conduct requirements gathering. They really liked what we showed them, but the CFO wanted a dashboard that displayed the data in the app in a specific way. We shook hands, told them we would contact them soon, and parted ways. It was around 9 AM when we stepped outside the client's office and got back in our cars.

By 5 PM that evening, we had a stunning, fully functional dashboard built and deployed to the demo environment. It utilized a few new database tables that aggregated data, some data processing done by Elixir, passing that data to the Vue front-end and displaying it using Charts.js and a few other UI libraries.

I sent a quick email to the CFO with the URL. He responded ten minutes later with, "holy cow, why didn't you show this during our meeting if you had it already?!" :)

We are meeting with them again later this month, hopefully to sign them on as a client.

(For reference, I've used Rails and ASP.NET with C# before Elixir, along with JQuery back in the day, and then a bit of React. Can't speak about other frameworks and languages.)

3 comments

Same experience here, it truly is an absolute joy. In the front-end, we are using TypeScript with vue-property-decorator [1], it made me like Vue even more. I wasn't much of a fan of developing frontends before, but I actually have been having fun using TypeScript + Vue + Tailwind CSS. I'd also like to try out Svelte in the future.

I'm also doing an startup -- we've been working on the product for only two weeks and we just released access for our first pilot customer, with an initial feature set we are very happy with. Apart from the productivity, it's been a long time since I loved programming. Keep in mind I was doing embedded C development for a few years, so my web-fu is a bit rusty lately.

The only thing I miss sometimes is types, especially when refactoring. Java with IntelliJ will spoil you, I guess. I was thinking about going with Kotlin because of this, but I was really digging the Phoenix project structure and I love Ecto.

All in all, a great experience.

[1]: https://github.com/kaorun343/vue-property-decorator

Great story, and best of luck! BTW, if you haven't tried it yet, the new Phoenix Live View makes those one-off dashboards a joy to make in my mind. Vue is fantastic but it still ends up with two layers which need data piping.
FWIW, I feel like I he this kind of productivity with server-side rendered ASP.NET Core web apps.

Something that is great about .NET is the available tooling - the debuggers in both Visual Studio and Rider are amazing, and it's difficult to imagine living without them.

AFAIK, you're relegated to rather primitive "println debugging" with Elixir - has this been an issue for you in practice?

> AFAIK, you're relegated to rather primitive "println debugging" with Elixir - has this been an issue for you in practice?

Not at all. The traditional BEAM way of debugging is the tracing modules. For little things an `IEx.pry()` is often good enough though.

> The traditional BEAM way of debugging is the tracing modules

Excuse my ignorance, but by "tracing modules", do you mean "println debugging"?

I had a quick look at IEx.pry(), which at a glace I think gives you a repl at a given breakpoint? It looks like it also requires you to instrument your code with breakpoints, which TBH feels a bit ugly (but could presumably be solved with the right IDE)