junior-dev-struggle-bus / junior-dev-struggle-blog

The JDSBlog, built in Gatsby.
https://juniordevstruggleblog.com
MIT License
1 stars 9 forks source link

Pinned/featured blog posts #70

Open Xoadra opened 4 years ago

Xoadra commented 4 years ago

I noticed that as articles continue to be added to the blog, particular high-value articles will be pushed down and become harder to find or even knowable (if you're brand new to the blog and aren't familiar with which topics have been written about). Some good examples of this are the An Introduction to the Junior Dev Struggle Blog and Getting Started With Contributing to an Open Source Project articles which share some key details on how to get started contributing to the community projects and open source generally.

My recommendation would be to add a pinned or featured blog post section near the top of the main page. This would help newcomers and regular visitors alike find the content they're looking for more rapidly and also potentially lower the barrier to contributing to some of the community projects.

I can think of a few ways this could be implemented, but I would start by simply adding some sort of post pinning feature to allow the blog admins to pin blog posts. This would allow pinned blog post titles and summaries accompanied by links to the posts themselves to appear in a new section near the top of the blog in a more condensed format.

This could be expanded upon in the future too depending on what analytics, if any, are available to feature posts that have the most views, or the posts that have the most votes if we wanted to implement a voting feature later on. I would start by making it an admin feature though, for simplicity.

AvianAnalyst commented 4 years ago

I agree this is important, but I think you may be touching what could/should be two separate issues.

I think 'intro' or 'newbie' materials are great and should be easy to find. Your examples are perfect but I'm not sure pinning them as posts individually is the best bet. We could end up, over time, with 20 new articles that would all be good candidates, and then we have to decide which gets to stay.

I think having a 'beginners' or 'new here' section linked at the top which would then provide a list of articles geared towards those subjects (contributing to OSS, beginners resources, new to the group, etc) would be a better solution.

Then having featured blog posts, maybe one a [appropriate time frame for posting frequency], or that is auto circulated by views/votes like you mentioned (if implemented) pinned at the top that can circulate.

If you want the BAREST beginner stuff like the intro to JDSB on the home page still, I think adding that into the sidebar would be a better answer since that would be a permanent fixture unlike, what i feel, 'pinned' as a feature suggests.

Xoadra commented 4 years ago

Longer-term I think having a more sophisticated content layout like you're suggesting is the ideal. My concern is trying to aim too high too early. We want to make sure we start small so that new contributors can make contributions easier with fewer barriers to entry. As the needs of the community and the blog site evolve, we can modify existing features to better suit the community's needs.

On the topic of beginner's content though, that's an area I've been thinking about in a larger context and have spoken to @bhurstGH and @nspilman a little bit about too. Ideally, we'll want better contributing documents and guides to go alongside the community projects we have. Once I've gotten a bit more acclimated to the existing community projects, I'll post an issue on the topic so that we can make contributing easier.

I also have plans to develop a community portal to streamline the contribution process for the JDSB community. The idea is very early in the works, but when it is ready, I'll share the idea with the organizers and if they approve, it'll help alleviate a lot of the problems you've mentioned. It'll also be another community project for people to contribute to like the site and blog currently.

AvianAnalyst commented 4 years ago

I'm not sure adding a page is really aiming that high? I agree the pinned posts based on views or something is more advanced and should be a 'down the road' thing. But just for the initial 'how do we keep new person materials easily accessible' i don't think the home page is the solution. I of course can't really respond to the community portal thing since I don't know any details.

Xoadra commented 4 years ago

Sorry, I didn't know you were talking about adding a page specifically.

While a new page doesn't necessarily have to be complex, it all comes down to what is on that page. Having a page for introductory content is great, but what content exactly will be on that page, and do we want the community to gradually add content to it over time or do we want it to remain relatively the same? It's a design decision that should be mulled over a bit before going forward with it.

I do think discussion on a new to the community/contributing page would be best suited within an issue of its own as opposed to this one since it's starting to veer into off-topic territory. While my examples happen to be related to introductory content, the feature I'm proposing here is technically content-agnostic and a way to make content on the blog more accessible generally, not just for newcomers.

bhurstGH commented 4 years ago

Love the discussion @Xoadra, @AvianAnalyst!

A couple things to consider while exploring this topic: there are a plethora of plugins for Gatsby, so it would be idiomatic to see if there is a plugin that fits the bill for any particular goal. That is how the elastic search was implemented, for instance. I'm not hardline against a home grown solution, just pointing out Gatsby's plugin ecosystem as an option.

We also have the ability to tag posts. If we had a tagging convention, we could leverage that was well. For example, a "Beginner", "New", or "Contributing" tag, and perhaps implement a button that filters the displayed results to show posts with that tag. This might already be possible by piggy backing off of the search bar API. It's been a while, but I recall that you could isolate tags as a search field for results.

Just food for thought on the subject!

bhurstGH commented 4 years ago

In addition: we already of some things pinned in the sidebar. One quick and easy solution could be a master introductory blog post pinned there that contains relevant links and it can be edited as necessary for new stuff.

AvianAnalyst commented 4 years ago

Ooh plugins are a good idea. why write code twice.

I think tagging posts should definitely be leveraged. I feel like having some featured tags (like new, contributing) listed at the top, and then supporting tags in the search features (i'm not sure how its being done right now).

A master post with links that can be updated is basically what I was suggesting for a 'newcomers' landing page.

bhurstGH commented 4 years ago

I would have to check the code, but I believe I setup the search to check title, body, and tags, so searching by tag should already be available for what it's worth. That is such a conglomerate of fields that a 2nd implementation (or refactoring?) for filtering by specific tabs would probably be more useful.

I stuck pretty close to the docs for the elastic search plugin and didn't tweak much, so there's probably a lot that could be done to customize.

Xoadra commented 4 years ago

All of this demonstrates that I need to familiarize myself a lot more with Gatsby.

nspilman commented 4 years ago

@bhurstGH , @Xoadra , @AvianAnalyst We could also keep it simple. If we have a "featured" boolean in the post metadata, we can then add a section of the homepage to pull "featured" posts.

Gatsby is basically just React with a different compiling process.