Yesterday I briefly mention that the first draft of FlyerFalcon’s feature page was done.
Created Image Assets
Picking up from there. Today, I spent several hours with my design cap on creating image assets to place alongside feature containers. They turned out better than I thought they would. Here’s the final product:
To be honest, the first section (flyer templates) stands out like a sore thumb. At some point I’ll swap it out for something better, but I’ll hold off until I have some better looking templates, as “premade flyer templates” are FlyerFalcon’s biggest selling point. I’d like to do it justice.
Fixed Meta Titles
Additionally, I noticed that FlyerFalcon currenly has 300+ duplicate title meta tags, most of which are programmatic SEO pages, but a few were top level pages that are essential for keyword ranking. I spent some extra time making these easier to manage with my HTML templating engine: HEEx: HTML Embedded Elixir.
There was a tiny bit of complexity, given some pages render via HTTP, and others render through a Phoenix LiveView websocket. But generally it was a simple update, ensuring that a :page title variable was set before render. HEEx makes this very straightforward, and relatively seamless accross both HTTP and a LiveView websocket.
Phoenix is all it’s cracked up to be
I’ve generally avoided talking about Phoenix (the Elixir web framework) since I started using it 6 months ago. Partly because I wanted time to explore it and see how it feels building a real world project. In short, it’s pragmatic, productive, and powerful.
I’ve had several starts and stops with various web frameworks over the years. Having spent a little bit of time with Rails, Django and Caveman2 (via the Common Lisp ecosystem), Phoenix is my favorite by far.
It toes that fragile line between “too much magic” and “too barebones”. It gets you started quickly with a fully fledged generator system (I actually wish there were more granular generator options, the existing ones generate a lot of boilerplate), then provides all the bells and whistles for deployment, authentication, routing, dynamic HTML rendering, static asset bundling, out of the box.
But I haven’t mentioned the best part: It’s fully loaded for _real time__ applications, and makes it laughably easy to build web apps with real-time features.
Jumping between serving a web page built with Phoenix LiveView and a traditional HTTP request is inconsequential, and the developer ergonomics of the framework are thoroughly designed to keep your mind on the server.
The ramifications of this I’m still coming to terms with, and can resoundingly say that it makes me far more productive. Heck, I haven’t even discussed how nice of a language Elixir is yet, and the lengths it goes to make parallel computing simple. But that’s for another day.