Pinegrow Community Support Forum

Making websites is easy by Matjaz - where does flat-file cms fit in?

Hi, recently read Making Websites is Easy which echoed a lot of my sentiments about web design, and I was wondering where/if you think flat-file cms fits into the picture.
I’ve been in this business a while - started out with COBOL typed on to punched cards (don’t drop that pack!) - and remember when web design was fun, and simple. I’ve recently been playing around with Grav and I like the idea very much - back to basics.
Are there any flat-file systems you’d recommend? Does Pinegrow have any plans to add a flat-file cms to it’s repertoire?
Thanks
David

1 Like

I can recommend Kirby CMS a lot! Great docs and community, super flexible system and reduced nicely to the important stuff. Easy to update and maintain. Kirby version 3 is coming out soon, but even v2 has everything I’ve ever needed.

Thanks m-artin,

I’ve been looking at Kirby, Grav and Pico

Don’t have any experience, so appreciate the recommend.

Good question.

I also previously mentioned and hinted how it would be nice to integrate a few popular Flat File CMS systems directly into Pinegrow.

One such example of this could be BlocsApp (mac app), which makes it easy to develop for the CMS’s it supports by including the setups and hooks for the user to define the appropriate content for each CMS.

https://help.blocsapp.com/category/cms/
https://help.blocsapp.com/content-management-systems/

For many clients, using simple online editor controls as demonstrated and available from numerous Flat File CMS solutions offers a cleaner approach for clients to edit sites -vs- the integrated scaled back Pinegrow CMS option being offered as an app by Pinegrow.

A few integrated popular Flat File CMS options would be advantages for the app and marketing opportunities regarding CMS solutions and Pinegrow. I had considered putting forth a proper #feature-request thread in the past about it, but have rather given up on those both big and small.

:evergreen_tree::hearts:

I like Pinegrow’s strong focus on front-end design.
Perhaps a nice addition would be if Pinegrow’s ‘Smart Components’ could import files with markdown and image files and monitor any file changes in a certain folder.
That way, it could use the contents folder of different flat-file cms and close the gap between static and server-side templating.

Is there a way to integrate Kirby or any other CMS in Pinegrow other than the app based one?

Pinegrow has the wordpress version if you want to use WP.

My work flow is different than what is described in this thread. I only use Pinegrow for the front end stuff. I do all the integration of the backend CMS code with the templates, theme manually outside of Pinegrow.

Seems a lot of people go the other way and want to include the CMS backend into Pinegrow and monkey around with everything at once.

It’s interesting reading these different work flows.

Hi Terry. I tried that with Webflow and it was not easy as their code was proprietary. How do you handle design changes after using a Pinegrow site coded up with custom CMS? I am really liking the Kirby CMS and the PHP code can be added in Pinegrow. Trying to figure out how to get best flow with Pinegrow and Kirby. I can hand code but I find Pinegrow much faster and the code is good.

I have never heard of Kirby so I can not help you there. I personally code my own CMS based on the specific website, instead of using a one size fits all implementation of something like Wordpress or whatever.

I used to use open source and proprietary CMS, Forum, Membership Application but over time I just wanted too much freedom and customization options that the restricted done for you applications were not able to provide. I learned how to code and build what I need and eventually developed my own process that allows me to literally create from ground up applications that fit exactly with the project.

Most do not do this so I do not expect to be relatable in this work flow.

You are talking about Theme creation. Creating the look and feel of each page within Pinegrow then saving out into raw HTML.

I then take this html and break it apart into the required segments or parts and embed the CMS code if applicable.

It really depends how I designed the CMS. I use a common skeleton of HTML and CSS which automatically is injected with content from the CMS via Javascript.

So in this method the content and CMS code logic is completely separate. Include Javascript file(s) in the html header section and I am done.

I also use a wordpress like skeleton where content loops are included into the Theme pages at specific locations. It really depends how I design the site.

So either no breaking up of what comes out of Pinegrow and just include javascript files into the header which propagate content into the Div’s and or CSS classes and id’s.

This can only work when the html and css are created using a common naming convention to the site. The javascript then uses these CSS and HTML sections, div’s, id’s to embed and orient content.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>{-Page Title-}</title>
</head>
<body>
    <section>
        <h1>{-TITLE-}</h1>
        <p>{-Content-}</p>
        {-content-}
    </section>    
</body>
</html>

OR

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="cms.js"></script>
</head>
<body>      
</body>
</html>

OR

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="cms.js"></script>
</head>
<body>
    <nav></nav>
    <section>
        <div id="top"></div>
        <div id="content"></div>
        <div id="bottom"></div>
    </section>
    <div class="content_loop"></div>
    <footer></footer>
</body>
</html>

These are just made up examples I mocked up quickly by hand.

I am injecting content into the page via different methods, which method depends on the project.
I can do this either through javascript or including the template page into the CMS logic written in PHP and then output both without using Javascript, the page is generated dynamically via PHP.

Very nice setup. Thanks so much for the detailed explanation

Kirby might be a very good CMS. I have never used JOCMS, but it’s free and open-source far as I know.

I do not know if it phones home or what information is collected, or if it is GDPR compliant.

A quick read of the TOS/Privacy raised some questions in my mind. But it is open-source and someone who has time might fork it if there’s a problem.