Fork me on GitHub
#biff
<
2022-05-04
>
chromalchemy23:05:33

I am excited for the direction you are taking with Platypub. I came into programming from front end design, and got into full-stack Clojure for want of a better publishing CMS and language than Wordpress + PHP (some years back). I like the idea that XTDB is fertile ground for a CMS too. And it seems you have done great work making a stack as powerful as this easy enough to configure and deploy and use across the client/server gap. Very cool! Will the CMS CRUD views/models/interactions be extensible too?

Jacob O'Bryant01:05:31

Thanks! For CMS extensibility, I'm open to pretty much anything. It's not (currently) a priority for my own use; I mainly just need lots of extensibility in the rendering step. I'd like to make the CMS as one-size-fits-all as possible. However if/when concrete use cases come up and if extensibility seems like a better option than adding stuff to the core, then I think that'd be worth doing. (Especially if you/someone else wants to take the lead on it! I'd like Platypub to become a community driven project.) I'd probably do something like this at a minimum: 1. Add a CRUD API 2. Add a plugin system for syncing posts/content from external services. e.g. you so you could write a plugin to import tweets from your account. 3. Make the models extensible, either by adding an optional :post/params key that could accept a map of anything, or let people add top-level, namespaced keys (e.g. :.jacobobryant/foo). Any particular use cases you have in mind?

zeitstein07:05:31

Several times a year, I'll take a job building websites for small businesses using Wordpress. Since coming to Clojure, I've been dreaming of being able to ditch WP. My wishlist is: • custom themes • page/post templates • extensible CMS (custom fields in WP): ability to define a set of fields/params for each page/post or page/post type/template. Beyond pages/posts, having free reign with DB would help with developing 'plugins' (think ecommerce stuff). • For sites that don't change often: ability to cache, or, better yet, regenerate the site as static pages. (Something like https://clojurians.slack.com/archives/C06MAR553/p1651495575282359?) • Handling images: ability to upload, delete, add alternate text and captions, automatic generation of multiple preregistered sizes + insertion into HTML, etc. • SEO helper - meta and sitemap generation. Another thing I'd like, but don't have a better way to describe it: imagine being able to edit text on the pages themselves. Doesn't have to go that far, but just presenting clients with a rough layout of the page, giving them the option to change text while giving me the ability to define CSS classes for that layout. (In WP this would be creating custom blocks, I think). Just having a bunch of custom fields/params would be close enough, I guess. Thanks for your work, @U7YNGKDHA!

🙂 1
Jacob O'Bryant09:05:20

That all sounds in scope to me. Not sure about implementation for editing stuff on the page, but I'm sure someone could figure it out. > For sites that don't change often: ability to cache, or, better yet, regenerate the site as static pages This is the default (and is a significant difference from WP and Ghost). Custom themes are defined as a script (e.g. babashka, but anything with fast startup time would work) which reads in all the posts etc. and then generates a directory of files, which are then uploaded to netlify as a static site. In the other direction--if you need something dynamic, it could be done either with JS on the frontend, or with https://www.netlify.com/products/functions/. (I'm planning to use netlify functions for handling newsletter subscribe form submissions.)

zeitstein13:05:55

Interesting approach. I just assumed it was going to be backed by a Clojure server.

Jacob O'Bryant02:05:50

yeah, it's basically a static site generator glued to a headless cms