witch-house / pronoun.is

Show people how to use pronouns!
http://pronoun.is
GNU Affero General Public License v3.0
929 stars 103 forks source link

I did a thing: reimplemented pronoun.is in svelte #149

Open lucasew opened 1 year ago

lucasew commented 1 year ago

As issues like #147 say, this site is down. I guess that it is because of the heroku rugpull.

Analyzing the scope of the project, that looked like something that could be done with a more static approach. The backend just crunches some data and doesn't store state, and the stuff it serves can be trivially processed on the frontend.

For the remake I choose to do with SvelteKit, it's a very cool tech, very straightforward to learn and iterate and has a routing scheme as powerful as frameworks like Next.js have.

I did it this night, it took a few hours, maybe less if not counting the procrastination, but here it is.

The repo is in my GitHub and I hosted that on my vercel account for free.

There are some polishing that I didn't work on yet, like the favicon and the SEO tags, but that shouldn't take much time.

I stole the CSS, so the site will look like a clone.

arimgibson commented 1 year ago

Super cool @lucasew ! Really smart to port to something that is static and a lot easier to host.

Lana-chan commented 1 year ago

unfortunately this is a misunderstanding about how pronoun island worked. it was not static at all. this for example doesn't work:

https://svelte-pronounisland.vercel.app/byte/byte/bytes/bytes/byteself

while on the original pronoun island it did work, if you gave it all 5 pronoun conjugations of a pronoun it did not have in its database, it would still display those properly. this requires a dynamic page.

from an archived copy of pronoun island:

Full usage: https://pronoun.is/subject-pronoun/object-pronoun/possessive-determiner/possessive-pronoun/reflexive displays examples of your pronouns.

This is a bit unwieldy. If we have a good guess we'll let you use just the first one or two.

lucasew commented 1 year ago

unfortunately this is a misunderstanding about how pronoun island worked. it was not static at all. this for example doesn't work:

https://svelte-pronounisland.vercel.app/byte/byte/bytes/bytes/byteself

while on the original pronoun island it did work, if you gave it all 5 pronoun conjugations of a pronoun it did not have in its database, it would still display those properly. this requires a dynamic page.

from an archived copy of pronoun island:

Full usage: https://pronoun.is/subject-pronoun/object-pronoun/possessive-determiner/possessive-pronoun/reflexive displays examples of your pronouns. This is a bit unwieldy. If we have a good guess we'll let you use just the first one or two.

Good catch. If length of the route is 5 then handle it as each word as a part.

Edit: just implemented and deployed the fix.