Create new pages(non blog) using admin portal

Hi Everyone,

I have been using kaldi then with netlify cms for about more than 3 months now.

I like how easy it is to create new blogpost using netlify cms. My only issue is when I want to create a new page. For some reason i dont see this option on the admin site. So what i do is i open my project and manually create the individual md file and necessary js files.

Is there a way i can setup netlify cms so that i can create new pages just by using the admin site.

My site is built using gatsby.

Hmm, should be in the UI. Ours has this button, outlined in pink:

You do have to click into a collection, to show the button (to make a new page in the collection); there is no top level button because where would the page go? :slight_smile:

1 Like

@fool
I only have 2 items on my Collection ( Blog, Pages)
the blog collect has a “New Blog” button but for the Pages collection I don’t see “New Pages”.
I was hoping to have a button to add new pages on the top level.
Currently my top level pages are saved under Pages folder on my project.
Is there a way to configure this? It saves a lot of time if page creation can be done with just a click of a button, instead of manually creating folders and md files.

I also notice that you have a Workflow feature. What does that do?

Ok so the two different collections you have are actually two different types of collections. The blog collection is a folder collection. Folder collections represent one or more files with the same format, fields, and configuration options, like authors, blog posts or products.

The pages collection is a file collection. Each item in a file collection has an explicitly set configuration, perfect for unique (mainly static) pages.

You could name your current files collection differently (like static), and make a new folder collection called ‘pages’. That way you’ll be able to create new entries from the CMS. You will have to adjust your front-end accordingly.

3 Likes

Thanks buddy. I didn’t know a website for netlifycms even existed.
I could use a lot of these resources.
These are very helpful.

1 Like

Hey Tom!

Just lurking here as I’m having the same issue as @fausty was. I get the difference between file and folder collections, but how would this allow us to add top-level pages? I’m using Hexo on Netlify CMS, and Hexo requires the editing of a config.yml file to updated what pages are top-level / appear in a nav menu for example.

If I do what you’re explaining here I’d be able to create new pages, but I’d have to go into the config.yml file still to add that page as a top-level page, right? My hope is to configure my hexo/netlifycms site so the client doesn’t need a developer to manage it for a while but it sounds like they won’t be able to make new pages that automatically appear where they want it to

Hi @branonconor and welcome to the community :slight_smile:
The CMS writes content to your repo and it is up to your build scripts/site generator to figure out what to do with it.
Not sure I completely understand your use case (could you share the structure of your repo/site?), but you could create a “Top Level Pages” collection in config.yml, use that to add new top level pages, and have Hexo process those files.
Do you think that will work?

Thanks so much man! :slight_smile:

Yes, I can configure the site how I want in the config.yml file, but that requires me (the developer) going in and working on the configuration.

My goal is to allow my clients to configure the site and its page tree structure from the CMS Admin Dashboard, or in other words, I’d like to be able to edit the site’s config.yml file from the NetlifyCMS Admin dash. That way if they want to add a page, and make it a top-level page that shows up in the main nav for example, they can do so.

I’ve tried a bunch of things but it doesn’t seem this is possible at the moment. NetlifyCMS has no problem picking up / creating new .md files when I configure the file collections correctly, but it’d be awesome if I could include the Hexo site’s config.yml file as a separate collection, and edit it from the UI. That way me/the client could simply go into the UI to add that new page we created as a top-level page, or maybe even a submenu nav item, etc.

I have lurked on Github as well and it looks like your Netlify engineers are considering this feature but it doesn’t look like too much progress is being made, as there are some higher-level features and issues they’re tackling. Maybe I’ll just have to be patient! Let me know your thoughts and thanks again for your help man.

Thanks @branonconor for making things clearer.
I think you might be able to achieve most of want you need using nested list widgets and variable types:
https://www.netlifycms.org/docs/beta-features/#list-widget-variable-types
Also see this thread: https://netlifycms.slack.com/archives/CPRR0PQ9E/p1583519454162900?thread_ts=1583518533.161500&cid=CPRR0PQ9E

I agree this is more convoluted than just editing the config.yml via the UI.
We have an issue for that:


And a community developed tool:

And a new community driven effort to improve the UX:

@branonconor
Disclaimer: Before I add my advice. Just letting you know that I am using Gatsby with NetlifyCMS. Also I am no expert on this subject. Just learning casually for fun.

Here is my tip. First you don’t necessarily need to update the config.yml to create new pages. If the new page that you are creating is for example just a content page. It just has a Title and Content body and that’s it. You probably already have similar page that has this format like your regular about us page, disclaimer page, basically any general purpose page. You can use 1 template for all these. For example we can call the template as general-page.

You only need to create this general-page template and add that in config.yml. You only need to update your config.yml 1 time only. When your done with that, you can create your md files and indicate general-page as your template.

example: if I was to create helloworld.md. Then the md file would look like

templateKey: general-page
title: Hello

Hello world

However this means that you would still have to create the md file manually because top level pages cannot be created from netlifycms admin site. Which also mean that a developer would be involved. The good thing creating md file is easy. it’s something that is easy enough to teach to a person with no programming background. As long as the client knows how to create md file manually then you dont need a developer anymore.

Once the md file is created, the client will be update to page through the netlifycms admin site anytime.

The only time you would need to update your config.yml is you where to create page that will be using a unique template like a products landing page, contacts page, the homepae, and other landing pages.