First post here, and it’s one asking for a bit of guidance. I’m currently building a classifieds app for my local area. The basic premise is that people can list items they want to sell (for a small fee), search the local area for items they may want to buy, and then enquire about them through an internal messaging system.
My background is JS development (and I could build this in a snap using Meteor… but can’t for reasons I won’t bore you with). I’ve already built a working version of the app using Firebase, VueJS (v1) and Algolia (for the search) that is 80% complete.
However, I’m at the stage where I lack confidence in the resulting code. I’m finding the SPA nature a hinderance, and have implemented some working, but “hacky” solutions to not having a backend server (to handle payments and Firebase <-> Algolia syncing). I feel that I’ve created tech debt before I’ve even finished, which is never ideal!
I’d rather start over, and use Elixir (and Phoenix) for the project. I’ve been reading up on, and playing with both for many months now; but haven’t really got to grips with it because I haven’t actually built anything with it, which is how I usually learn.
I’m familiar with Phoenix and it’s current way of doing thing (lots of MVC), but also Rob Connery’s approach (lean on OTP, umbrella projects, separate apps, fewer models - much like Phoenix 1.3 from the sounds of it). I’d prefer the latter,
umbrella approach, but don’t feel I have the knowledge to stray too far from Phoenix’s well documented way of doing things.
I’d prefer server rendered markup for the most part, with progressive enhancement for the search (still via Algolia and a JS implementation of it) and the messaging (perhaps using Elm with Channels). I say this purely because the app won’t benefit hugely from the interactivity of an SPA (it’s basically CRUD with bells on!), and would rather not create another React app…
I’ve been spinning my wheels on this for a while now, struggling to actually get started. I feel that perhaps I need to build something following along with a tutorial, just so that I’ve got some experience under my belt before diving in. Could anyone recommend a tutorial, book, video course of series of blog posts that might help me along, and use similar methods and tools as I’d like to use?
Truthfully, I think my ambition (to use Elixir) has outstripped my ability, and know that the pragmatic solution is just to finish the VueJS version and manage/reduce the tech debt; but my gut tells me I’d regret it.