Melkeydev / astrostation

https://astrostation.me
MIT License
209 stars 42 forks source link

Discrete Area for SEO Copy #218

Closed emalineg closed 1 year ago

emalineg commented 1 year ago

I have copy for SEO purposes written and need an area for it. Ideally, copy would be on home page, but looking for a way to implement this without taking away from the aesthetics of the app.

This could be a toggle that makes content visible that was by default not visible, a second page that can be linked to, or some other creative solution. If adding a second page, isBackground & settings should be passed through props (and then back again) so users can easily return to their dashboard without having to set it back up.

DM Emzra#3910 with questions.

royanger commented 1 year ago

I'm thinking of two options for this:

  1. An About page with a link side-by-side with the with the Donate button in the bottom right, which could open a new page. The draw back to a new page is that we would need to add routing of some sort. If we went that way I would suggest something lightweight like wouter instead of react-router or react-location. If using a router we shouldn't need to pass stuff through props (I haven't explicitly looked at that part to be clear), as we should be able to access the store from any page in the SPA.
  2. As About modal with a button to open the modal side-by-side with the Donate button. We can display with a modal (or maybe a clever tab option that create one tab for the main dashboard and a second for the SEO data).

I would lean to the second option. I think that works fine with this situation. Thoughts @Melkeydev?

emalineg commented 1 year ago

@royanger The first option would be preferable SEO-wise.

royanger commented 1 year ago

Any particular reasons? I've seen stuff from Googlers confirming the indexer looks at hidden content, so it should be indexed as a hidden modal. Though maybe that is out of date? Or is there a benefit from having a second page?

emalineg commented 1 year ago

Google can access content that is hidden, but it does not like when core content (that should affect SEO) is hidden, and will weigh it less (possibly negatively) than if it were visible on a second page.

Scenarios ranked for seo

  1. content on homepage - could be done similar to pomofocus.io / pomofocus.io/app
  2. content on a second page - immediately visible
  3. content hidden on first page, but broken up into multiple modals
  4. content hidden on first page, but in 1 modal

Note: It's unclear 3/4 will negatively affect SEO

royanger commented 1 year ago

I actually like what pomofocus.io did, including being able to include how to use, how to contribute, etc because it is a longer page/content area. I'm not sure if we need the astrostation.me/app variant. I think we could achieve the same by doing the following:

Thoughts @emalineg and @Melkeydev?

emalineg commented 1 year ago

Sounds great, as long as it's visible by default, that's a great work around.

Just needs the @Melkeydev write off.

Melkeydev commented 1 year ago

I am not sure how i feel about the below fold for astrostation.me home page. I definitely do not want a /app page.

I would definitely love to see a PR for it. Not totally against the idea but if it is executed correctly than I am game.

eraychumak commented 1 year ago

If you guys are going to follow a similar layout to pomofocus, I suggest maybe adding some resistance to the scroll (snapping feature) to prevent accidental scroll-downs, which can impact the immersiveness of the app.

emalineg commented 1 year ago

Just an update:

Currently on my own fork of the project. Will implement the rest & PR tomorrow.

emalineg commented 1 year ago

@eraychumak It looks like scrollsnap doesn't work with the overflow css property. Do you happen to know of a work around or alternative implementation?

eraychumak commented 1 year ago

@emalineg I managed to make it work by giving the parent component containing Toaster, SideNav, Astrostation, InfoSection components in the App.tsx file a snap-y snap-mandatory, the Astrostation component a h-screen snap-center, and the InfoSection component a snap-center h-screen overflow-y-scroll.

However, it ends up with two scrollbars for the InfoSection part, which isn't really feasible I guess. I'll keep trying but hopefully maybe that gives you something to debug further with.