I am a beginning designer and programmer working on designing my personal website. I found Sage and love the structure and logic it brings to my WordPress development workflow.
My site will essentially be a way to highlight the various projects I am working on or have completed. Basically a fancy resume, or a portfolio with multiple sections. Since I have multiple interests, I was planning on writing a top level page for each of my main areas of interest. My design would encourage users to browse through these pages and see what I do in each area. I am going to put a lot of effort into writing and designing these pages till they looked perfect, since they will be people’s first impressions of me.
Beneath these top level pages, I will also have pages that document individual projects in more detail and provide resources or in depth-notes. I also host project source files on a GitLab instance.
Then I started thinking. I had been reading in the Sage docs about DRY. But it’s hardly DRY if when I publish the code for a new project (on my GitLab), I have to add a project page on my website and update the top level page for that category of projects (I want my site to show that I’m active). Then if I want people to know about it, I’d have to publish a blog post about the project as well!
So now every project has to be described in four places. Not fun. An idea started to form.
What if I could distil those top level pages I though I’d have to hand write into logical groupings of similar content? The page might have some static content at the top, but each section of content could be pulled from my blog based on the category and tag. Then I could update my site simply by making a post and tagging it properly. The top-level pages would rarely need to be edited.
An example: one category of things I do is web design (why I’m on this forum). The /web page on my site might have some static content about my design philosophy, but then it also should have a list of projects (sites I have designed). This list could be automatically generated by pulling the content from blog posts tagged “web” and in the category “client work” (I use tags for subject matter and category for general post types, though I’m also not sure if that is a logical organization system). If I ever write WordPress plugins, I could add a new section that pulls in the text from posts tagged “web” and in the category “wordpress plugins.” And so on. To eliminate the project pages, I am also thinking about using GitLab’s wiki’s (or just files in the repo) to host my project notes alongside the project files, instead of having them on separate sites.
Doing all this would mean that to share a new project I would only have to 1) publish the code and documentation on my GitLab and 2) write a blog post with the correct category/tags.
While I think this all might work, and it sure sounds like a lot less work in the long run, I’d like others’ opinions. Being that I’m a novice at all of this, I don’t want to try to build something that doesn’t make sense conceptually. Also I’m not sure of the best way to implement this logically in my Sage-based theme. Right now I’m thinking of using custom shortcodes that would pull content from my blog into the top level pages. There will probably be a lot of work to get the posts to pull into the top-level pages and format as nicely as if I had written the entire thing by hand.
I curious if anyone has designed a site like this or has any advice for how to proceed. Any comments would be appreciated.