Phoenix + Svelte + NimblePublisher

Hello again!

So I find myself a little overwhelmed and confused.

I don’t want to make a CRUD application, because, well, I’m not really doing much of CRUD operations outside of getting posts.

How I want to structure is

  1. I have posts to put on a site in say priv/posts
  2. Those posts will be processed with NimbePublisher
  3. What has been processed will inserted into the Ecto database
    • The schema will look sorta like (what I would be passing to mix phx.gen.scheme Blog Post posts)
      id:uuid
      date:date
      title:string
      description:string
      tags:array:string
      body:string
      
  4. The frontend will make a GET request for either all posts or a specific post
    • The frontend is in Svelte
    • It’d be nice to maybe make use of svelte-routing

There is this guide to using Svelte with Phoenix, and there’s this post as well. Though I’m not certain if this is the way you’re suppose to do this.

Also, in the Elixir School link for NimblePublisher there’s the use of --no-ecto, and I’m curious as to if that would be better in this situation. Though of course that changes how I get the data from the processed markdown.

Thanks for any advice you may give!

1 Like

I haven’t used NimblePublisher but it seems like it’s not meant to do what you are trying to do. It seems to transform .md files and show them as pages, with Phoenix’s templates convert them to Elixir data structures.

Just to clarify, are you going to use .md files to import your posts or is the user going to be submitting the posts themselves?

could you just send the markdown to svelte to render?

I’m going to be importing the posts.

Hmmm that is probably possible with mdsvex.

It doesn’t seem like you need a DB. You can save your posts as files and whenever a user GETs the posts, process the files with NimblePublisher and pass them back to the user as a JSON of posts. You can then process the JSON in Svelte however you like.

If you plan on serving the .mds as static files, you might not even need Elixir. You could use any object storage + a CDN, something along those lines.

Right, if there is no dynamic content, and the goal is to just host mark down files, there are much simpler static site builders.