Show HN: TownSquare, a tiny presence layer for websites

245 points by cauenapier a day ago on hackernews | 133 comments

vitorbaptistaa | 23 hours ago

This is amazing! Congratulations on the launch. Repository link somewhere?

SpyCoder77 | 22 hours ago

sourcegrift | 23 hours ago

First saw this on lobste.rs . Great idea, perhaps allow for a little customisation? I'd like minimal animation, just a counter of present people and a green dot that vibrates when someone is typing. Clicking either opens a chat box with last 20 minutes.

loloquwowndueo | 23 hours ago

> NOTE: This project has been mostly vibe-coded

I deeply appreciate the honesty here. I’ll pass based on the vibecodedness of it but perhaps it won’t be a dealbreaker for others.

lolptdr | 22 hours ago

Is it the philosophical reason you refuse to engage or is it because you don’t trust the security of this project?

brody_hamer | 22 hours ago

Easy come, easy go. I find most vibe coded projects are abandonware.

Also, in this context, security.

purple-leafy | 18 hours ago

Yeah. I also don’t like the fact the dev posts the link and doesn’t interact with anyone here at all, so the link posting is effectively spray and pray abandonware too. Easy come easy go like they say

fragmede | 2 hours ago

https://news.ycombinator.com/threads?id=cauenapier shows a bunch of comments from the dev.

melvinczyk | 23 hours ago

I like the idea of this like a town square for websites. Nice job

monkeymeister | 22 hours ago

Neat idea! It's simple but very effective - and I really enjoy the detail of the benches and the tree. Very nice.

I wouldn't add it to any of my sites due to the unmoderated nature of it - seeing some fairly unsavory things in your demo - but that's just a little tweak, I'm sure!

sourcegrift | 22 hours ago

If your website attracts such elements perhaps there's a reason?

DougN7 | 21 hours ago

The demo is attracting the HN crowd and it’s getting… well, let’s just say this crowd is about as good as it gets online.

sourcegrift | 16 hours ago

You clearly haven't visited any Buddhist forums, or generally non-islamic religious forums

Planktonne | 13 hours ago

I think the HN crowd might be the worst commentariat on a site that isn't explicitly focused on antisocial behaviour.

chipsrafferty | 30 minutes ago

The HN crowd is about as worst as it gets. The people here are really bad.

wahnfrieden | 22 hours ago

openai has a free moderation endpoint. no reason to not use it.

edit: downvoters either know something I don't about its unsuitability, or have outdated info on it and think it's against terms to use it for reasons unrelated to GPT. it's not against terms.

[OP] cauenapier | 12 hours ago

Actually, there is moderation. The problem is that the page came to HN before I added the moderation keywords or implemented more things :P But overall, it's possible.

On the details like benches and trees, you can also customize it. YOu can add as many props as you want, wherever you want, and style them accordingly. :)

tamimio | 2 hours ago

Love the idea, I added to my site!

I know it might be too much to ask for, but it would be great to have the ability to add your own props, like an icon and how to animate it. I would love to add maybe cats or drones icons that also move around!

cyanydeez | 22 hours ago

would make more sense with webrtc.

lellow | 22 hours ago

haha nice project! I stayed there for a couple of minutes and had such a good time!
Not really a square if it's 1D - everyone ends up on top of each other.

Wolfbeta | 20 hours ago

Not really a highway if it's a series of tubes.

lambdaone | 22 hours ago

I just took a look at the page's own 'town square'. At the moment, it's largely full of people saying offensive things for the sake of it.

dools | 21 hours ago

So it’s a twitter plugin?

trollbridge | 21 hours ago

Within about 300ms I thought “moderation is going to be a problem”.

wwind123 | 19 hours ago

Yeah, I had exactly the same thought.

childintime | 15 hours ago

Why? Messages disappear after a few seconds. So all messages are self moderating!

jumbo1111 | 39 minutes ago

AI can moderate given specific instructions to prevent anything that can damaged the brand's image.

Mtinie | 18 hours ago

After having been a moderator for a number of communities over the years—BBCs in the 90s, niche forums during the 00s & 10s, Reddit boards in the 20s—I’ve come to believe that running shadow services where disruptive individuals can comingle may be the best way to handle this.

The advent of LLMs really opens the door to shunting off these “community members “ who’d rather contribute in misanthropic ways for the lulz than either leave or not contribute at all. They can take part in an interactive echo chamber that gives just as well as they can. You don’t even need a powerful model so the overall costs to the community are probably lower than the alternatives of trying to coexist with community-arsonists.

I spent years trying to find ways to bring people productively “into the fold” but eventually realized that it is futile in some cases because there’s zero value to the individual or the community to find a middle ground. They want to see things burn, and the community simply wants them out.

fragmede | 18 hours ago

But why not kick them out? Why bother with a shadow site for them?

sneak | 18 hours ago

The same reason people get shadowbanned. If they know they are banned they will attempt to work around it.

SubiculumCode | 16 hours ago

One day I'll find out that I've been shadow banned from HN, and all of you were bots all along, lolz

childintime | 15 hours ago

That defines planet earth nicely. Everybody here is shadow banned and has issues to sort out.

metamet | 18 hours ago

If they don't know they're being quarantined, there's no reason for them to find a way around their block. They'll eventually tucker themselves out and move on to whatever their internet equivalent of burning ants with a magnifying glass is.

hopfog | 15 hours ago

I used to run a small MMORPG. I only had to ban a player once but when I did they made it their life's mission to get around it and spam profanities. They went through every proxy in existence and I had to resort to banning whole IP ranges to keep them out.

nkrisc | 2 hours ago

If they believe they’re still trolling people they will keep doing so and won’t make an alternative account and will keep harassing bots instead of real people.

purple-leafy | 18 hours ago

Yes this is the way, give no affordance that they are banned

paytonjjones | 10 hours ago

[flagged]

Mtinie | 9 hours ago

A slur is rarely the problem. Trolls can (sometimes) add flavor to a community and keep things interesting. Mostly they can be an annoyance.

I’m specifically referring to people who have seemingly made it their sole purpose to create as much indiscriminate damage as possible.

You can ban them, block routes for them to attempt to Sybil themselves back to having accounts, etc. but even with great moderation tools and systems, it’s extremely difficult to set up a strong enough set of controls which don’t adversely impact everyone else who you want to have participate in the community.

Yes, a shadow environment is dystopian. It’s not my nature to want to even consider using one.

But we’re talking about privately run communities which also deserve to exist to serve their purposes.

So given the choice between anarchy which drives away people who contribute to make the community what it is and a shadow option for those actively working against its interests, I’ll consider the community first.

You may have misinterpreted my comment. I’m not suggesting you use LLMs as moderators. I’m talking about using LLMs as participant “members” of this shadow board to interact with someone whose account was flagged by a human moderator.

chipsrafferty | 35 minutes ago

If someone is able to get around a ton of banning techniques, they will definitely notice they're shadowbanned.
Edit: Welcome to Hacker News btw! https://news.ycombinator.com/item?id=48618488 looks like a great project and I put it in the second-chance pool (explained at https://news.ycombinator.com/item?id=26998309).

---

Can you please edit out swipes like "Do you hear yourself?". This is in the site guidelines: https://news.ycombinator.com/newsguidelines.html.

If you wouldn't mind reviewing the other guidelines too, we'd appreciate it. Note this one, for example:

"Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith."

paytonjjones | 2 hours ago

I would be happy to edit but I don't think I yet have the ability. Cheers.
Normally I'd say not to bother, but since your GP post got some interesting replies, I think it's a good idea so I've re-opened it for editing.

If you do that, let me know and I'll unflag the post and collapse the moderation bits ;)

paytonjjones | 35 minutes ago

Appreciated! It's edited.

nkrisc | 2 hours ago

There’s a difference between someone who is occasionally abrasive and mentally ill people want to destroy things other people enjoy.

lifeformed | 18 hours ago

Maybe a really lightweight fast LLM could moderate messages in realtime. Not sure how pricey that would get though.

michaelmrose | 17 hours ago

Extremely if not behind substantially cheaper anti spam measures.

Further it may still make sense to use human reports to gate some automation even if it slows response.

Jolter | 13 hours ago

No matter how cheap per request, someone will figure out a way to DoS that endpoint, and it will be extremely pricy unless you have effective rate limiting.
The OpenAI moderation endpoint is free and it doesn't count toward the usage limit.

oraziorillo | 22 hours ago

I love the idea! The next step is to add role play games in town squares.

Procrastes | 19 hours ago

I was thinking the same thing, or even just little minigames and Easter eggs for people to find.

patcon | 21 hours ago

I've been playing with presence too...! I def am thinking about using it more for real-time motion communication (which is largely missing from web) rather than text (which is very overrepresented, and where most moderation comes in).

I was toying with the idea of making a little crowd representation sticky at the bottom, like watching a screen together :)

Regardless, I love concepts like this. Thanks!

amatecha | 21 hours ago

Oh what the heck? That's super cool! Awesome idea. Possible future enhancement: some basic day/night (or even weather?) design elements that match the timezone of the person whose site it is? Still, doesn't even need it, it's really cool as-is!

I could see it being used as some avenue for saying toxic stuff, so I'm suddenly feeling like the only allowed actions should be ones that can never be harmful (like text interactions are just choosing from a pre-set list)..

vitorbaptistaa | 19 hours ago

Nintendo does this on Mario Kart, just allowing text from a pre-set list. It's very limited, but works.

[OP] cauenapier | 12 hours ago

Thaaanks! I've thought about weather , but I loved the idea for day/night! I'll definately implement that soon!

It already has block/ban and block word list, but unfortunatelly I haven't added them in the settings for the landing page before HN made it front page.. Opsy

mirkofr | 21 hours ago

Maybe adding rooms will be a good move

zhxiaoliang | 20 hours ago

I enjoyed the design.

[OP] cauenapier | 12 hours ago

Thaaanks :D

hallman76 | 20 hours ago

I've always wondered if we could find a way to add content website's content without it turning into a shitshow. MLS listings / Zillow is an interesting use-case. A realtor might describe something as "sun-filled" but omit that the home is next to a 24/7 dump truck repair warehouse.
There was a thing from the 90s kind of like this called Third Voice. It was a cool idea, but I remember there being a lot of backlash from brands.

https://en.wikipedia.org/wiki/Third_Voice

ArcaneMoose | 20 hours ago

Really cool but should limit # of people shown when there are too many. Currently it gets really laggy

winddude | 20 hours ago

interesting. i'm appearing as a grey guy not the orange guy like your blog says

[OP] cauenapier | 12 hours ago

You can change your color by clicking in the pencil icon.

simondanerd | 20 hours ago

Love the idea. Could use some filters and stale (sleeping) clients could get removed quicker.

Also, it seemed to be disconnecting quite often, maybe a hug of death thing.

[OP] cauenapier | 12 hours ago

Yeah, I'll definatelly improve that! I wasn't expecting HN crowd :sweat

freakynit | 19 hours ago

I made something similar last year: A p2p chat popup (that sits on bottom right of the page as a bubble) that allows all visitors to chat with each other. It had simple keyword based moderation in-built (can be easily bypassed though).

Was planning to add github oauth to get a known identity and persistent messaging so visitors can chat with each other across sites.

Instead of a webmaster adding script to their site, it was a browser extension.

The intent was two folds:

1. Get to know other people having similar interests,

2. Try something on the lines of a decentralized chat/messaging system.

goobatrooba | 16 hours ago

It sounds like a nice idea, but probably only one of those things that work only once at scale - with hundreds of millions of pages, you will only meet others on the most common ones unless the extension is already very popular?

freakynit | 15 hours ago

That's true.

Site-local chat was meant to be the default way. But, was not restricted to that. People could keep whitelisted list of sites that they are open to get pings/DM's from.

I was still not able to figure out the privacy-focused, and local, interest matching part since it was meant to be p2p (without any server storage), and local storage can easily be tweaked.

If this was solved, my plan then was to automatically suggest people who may have similar interests depending on the sites they browse, for how long, and the messages they generally send.

Kinda like tinder, but, you don't have to sign-up and install no app.

cr125rider | 8 hours ago

The network effect is HARD

Procrastes | 19 hours ago

This is great! Thank you for sharing it. Fun to use and already customizable.

ameon | 19 hours ago

this is a very clever concept. I'll keep it in mind for the future - when my app site has persistent amount of visitors. Are there some rules/settings for stop words to prevent some types of abuse? Or is it planned?

[OP] cauenapier | 12 hours ago

Thanks!! :D Yes there is already rules/settings to stop words and ban people. I'm also improving overall moderation and banning mechanisms.

purple-leafy | 19 hours ago

Moderation moderation moderation . It’s a big problem

I have similar moderation concerns in my browser game/engine but I only ban offensive slurs not swears, but I give no visual affordance that the word is not allowed

The only surface where players see the input content is in a share card, and if they finish a game and get to the share card they will find the offensive word has been REDACTED lol

So it’s a long feedback loop just to find out your hijinks lead nowhere

sneak | 18 hours ago

…or you could just let people talk? People who engage with social features generally do so because they want to talk to other people. That carries some inherent risks.

ncallaway | 18 hours ago

Nah, drive those horrible people out of social spaces. I want to talk to other people without racist assholes bumbling around.

Being a racist asshole carries some inherent risks too, like people choosing not to let you enter their spaces.

toofy | 9 hours ago

more than anything it’s just signal to noise ratios.

i’m so sick of people just adding dipshit noise to every single place they can and making it impossible to have normal ass conversation.

at the end of the day, these people need to realize the simple shit we realize in like 1st grade: if you’re an asshole to everyone around you, no one will want to be around you.

it really is that simple. but for some reason some of these people struggle to understand basic ass things little kids learn easily.

voidfunc | 8 hours ago

Unlike a playground assholes on the internet realize a couple things:

1. Theres a near endless supply of assholes

2. If youre loud enough and an asshole enough you'll find other assholes.

3. Your new found group of assholes can then go off and terrorize other people while attracting more assholes.

TheCapeGreek | 6 hours ago

In a small local scene with several whatsapp groups, I put "don't be an edgelord" as a catch-all rule rule when I started a discord in the community.

Lo and behold, the EXACT person I had in mind when making the rule, moaned about it.

Works as intended.

purple-leafy | 18 hours ago

No? Especially not in my case where it’s a share artefact that is intended to be shared with others on various platforms.

Having my game aesthetic + slur on a sharing artefact is a great way for people to think my game encourages that crap and to “cancel” the game.

Not that I agree with, or care about, cancel culture - but I don’t want people in general associating my game with slurs.

I’m all for swearing and saying funny things that are not pc, but I draw the line at harmful offensive content.

Do what you wish but do no harm unto others.

I get the desire to moderate your game, but how are words 'harmful' exactly? Especially random, throwaway internet spew. Harmful to your game's reputation, maybe. But to the people?

petee | 10 hours ago

Clearly you haven't been exposed to much of the underbelly of the internet. Words can translate to physical harm and actions in the real world, and do regularly

Larrikin | 8 hours ago

This sounds like a disingenuous argument to actually try to argue for more racism. Every kid in the world has been called stupid by a classmate and knows that words aren't meaningless.
Who said that words are meaningless?

Larrikin | 4 hours ago

https://news.ycombinator.com/item?id=48620564

>> if words had no power, we wouldn’t fight so hard to protect them from government abuse.

>People fight hard for all kinds of nonsense.

https://www.merriam-webster.com/thesaurus/nonsense

I think you've failed to understand the words in question, rather than them being meaningless

chipsrafferty | 31 minutes ago

I think you're a troll who should be banned from this site for wasting everyone's time.
I grew up on the internet, I doubt there's any level of textual depravity I haven't seen.

toofy | 9 hours ago

[flagged]
> call your wife a fat sow everyday in earnest for a year and see if she isn’t granted a divorce for maltreatment.

Is this an appeal to the law or something? It's not a very good argument. Many things which are harmful are not illegal. Many things which are illegal are not harmful.

Also, that's not even how divorce works!

> no one is claiming words are physically harmful

"speech is violence" is a position that some people hold.

> if words had no power, we wouldn’t fight so hard to protect them from government abuse.

People fight hard for all kinds of nonsense. Historically, people have fought hard for things that didn't matter at all.

starkparker | 17 hours ago

The demo widget right now is botted with people spamming nonsense to the point of breaking browsers, much less the intended use. "let people talk" is not the same as "give disruptive people the tools to prevent others from talking"

febusravenga | 15 hours ago

when I entered site, all bubbles contained dicks/balls and combination of these... so... someone found words that are not banned, but still abused forum in most primitive way ..

you're wrong, moderation is needed in ventures like this

herval | 8 hours ago

Yea I think this was somewhat true back in 2001. With bots composing half the traffic of the internet, governments controlling massive social botnets and the polarization of politics everywhere, the internet became a full scale spam/hate fest

subscribed | 3 hours ago

I don't think horrible people (eg racist, xenophobic, bigots) have the right to share space with good, kind people.

They have the privilege they forfeit the moment they try to hurt others. If they don't behave like cunts I don't care, but if they do, I'll use any tool I have at my disposal to bar them from the space they don't respect. They can talk to their kind in the nasty spaces anyway, so it's not like they're in the solitary confinement.

tasuki | 10 hours ago

What is the difference between slurs and swears?

flexagoon | 10 hours ago

Slurs are targeted towards specific groups of people (or I guess just anyone? "Clanker" is considered a slur, and you can probably come up with plenty of slurs for animals, they just won't be considered offensive and socially unacceptable like the ones for humans)
This was actually a lot of fun. Not as much trolling as I anticipated. Surprising amount of normal chit chat.

[OP] cauenapier | 12 hours ago

When you go to a nice website and encounter people with similar interests reading the same thing, the experience is awesome!

figbert | 18 hours ago

Matt Webb made a version of this (and wrote about it) a while back—Cursor Party: https://interconnected.org/home/2024/09/05/cursor-party

I contemplated implementing it on my site for a while but decided I didn’t want to add the JavaScript. Still find it a really cute concept.

aetherspawn | 18 hours ago

Make a MapleStory-like one where each website can design their own room, and you can kill mobs and bosses and stuff. It would be neat if the characters and items persisted between.

Edit: a super smash brothers-like would be fun too. Maybe the page itself could be the platforms.

tonyrice | 18 hours ago

rather interesting, except the spamming of the inappropriate messages.

dawie | 18 hours ago

I love the idea, but it’s a real shame how people are using it. I wonder if AI can moderate it for offensiveness and spam prevention

[OP] cauenapier | 12 hours ago

Well, this is the behaviour of the crowd. Before HN, or even if you go to other websites that are using TownSquare, it can be quite fun.

A hade a lot of very funny and meaningful interaction with people visiting the sites

thatguysaguy | 18 hours ago

The contrast between the example screenshots and the standard internet behavior in the live demo is hilarious

NitpickLawyer | 16 hours ago

To paraphrase, there's no scheme for moderation / censoring / filtering that survives contact with the Internet. It simply can't be done. People take it as a challenge, and you can't design a system that handles it while remaining useful.

If you ban words, people will introduce typos / different spelling. If you ban concepts people will change the concepts (see the "unalive" thing that's popular now). If people want to be miserable, they will be miserable. And they'll invent new words, or use euphemisms to get their point across.

blooalien | 18 hours ago

Neat idea, but there seems to be zero defense against spammer scum. One jerk with a bot script seems able to make it totally useless for everyone else there.

[OP] cauenapier | 12 hours ago

Actually, there was. But I haven't added all of them to the landing page. I wasn't expecing making HN front page :sweat (opooops) But there is already some basic moderation and ban/kick functionalities.

However, there is still lots of room for improvement.

thih9 | 17 hours ago

> A problem repeatedly occurred on https://cauenapier.com/

People are flooding the channel with messages, causing the widget to use too many resources on ios; and the website is being endlessly reloaded.

Any idea how to fix this? Bonus points for user friendly non technical solutions, ie is there a way to design an online social space where people want to collaborate and their first thought isn’t trolling?

purple-leafy | 17 hours ago

I’m not on pc so can’t inspect it, but make it a sandboxes iframe so it can’t interact with the parent site.

Is there a way to throttle iframe cpu usage ?

You could probably queue messages, cull old messages, cap concurrent connections. That may be the issue is too many peers

ljcoco | 17 hours ago

cool idea!

jedberg | 17 hours ago

In the "this is why we can't have nice things" category, the first thing I saw was someone calling themselves "dick and balls". :(

[OP] cauenapier | 12 hours ago

Yeah, but don't lat the HN crowd spoil the thing. You can check the other sites that are using Hackernews and you might have a great experience! I've been chatting with a lot of people with similar interest and had a lot of very nice interactions!

iJohnDoe | 16 hours ago

This is actually really cool. We’ve needed this concept everywhere in technology. Something like this would have prevented the isolation and loneliness technology and the internet has created.

I don’t know all the answers, but joining people together, and reminders there are real people still there as we’ve moved from the physical world to the virtual world is an important part of the progression. In 50-100 years we will either have this epiphany or we will fail miserably.

swiftcoder | 16 hours ago

Love it, also love that there's one HN visitor just hanging out typing "dick and balls" over and over again. That's unmoderated anonymous public squares for you

childintime | 15 hours ago

That was dang if I'm not mistaken.

pistoriusp | 15 hours ago

Built something like this for the v1.0 launch of RedwoodSDK in March; but it's a popularity graph (like the time scrubber on YouTube). I figured that it could be useful to myself, and others, to aggregate the information that people find most useful.

https://rwsdk.com

msafi04 | 15 hours ago

I like the idea! congrats!

[OP] cauenapier | 12 hours ago

Thaaanks :)

VaradD09 | 15 hours ago

Looks good!

anirbanhere | 14 hours ago

This is so cool, gonna add this to my game website. This can easily help to get me multiplayer matching in the game.

[OP] cauenapier | 12 hours ago

Cool! Let me know when you add it! I'll like to make a blog post about it :)

StahlGuo | 13 hours ago

what a cute project

aweiher | 11 hours ago

I love the atmosphere with the benches and the tree

Jeff9James | 11 hours ago

yay i just added it to my site signupdoggy.pages.dev thanks so much

justeoghan | 10 hours ago

Oh how fun. Sadly I went there and someone has botted it with “dick and balls” constantly being spammed by multiple people. But that’s to be expected when something gets attention. On other sites I can see this being nice addition. And a great concept.

furyofantares | 10 hours ago

I'm interested in trying a moderation scheme that puts the power in the receiving client, with opinionated defaults. Let the client filter for itself, mute users for itself, and make users invisible to itself. Have default settings that make sense for the app, but let the user override them.

Use a cheap purpose-built LLM like OpenAI's free moderation endpoint to classify the text and send the original text plus the classification to clients, and let clients choose what to do with it, with opinionated defaults appropriate to the app.

Maybe you still need to identify persistent bad actors rather than acting only on content. But still, allow clients to decide what to do with that information.

I suppose my thinking is that strong default automatic moderation that's invisible to offenders is a requirement for a project like this to be able to offer a welcoming experience to users, but putting the power in an LLM and fixed filter lists feels very wrong. So my thought is to use those things to give the client power. But maybe that makes no difference if nobody changes settings away from defaults anyway.

toofy | 9 hours ago

on the other hand, if someone is making their own site, they may care about the user impression their site gives to visitors.

i would think they should have the freedom on the site they build and host to choose the impression they give. and sure, if they choose to let their square be filled with noise rather than signal, that’s absolutely their choice. but they also may choose for it to be filled with signal rather than noise. the key thing is the site owner should have the choice to give whatever impression they want for their creation.

again, if they want that impression to be hijacked by noisy trolls, they can choose that too.

furyofantares | 9 hours ago

Is this related to my comment in a way I'm not understanding?

toofy | 9 hours ago

well yes, you indicate all of the moderation should be handled on the visitors end. i’m saying if the site owner is specifically intending the visitor to have a certain experience designed by the site owner themselves, then clients choosing their own moderation is the opposite of this.

if we limited it to client side only, the creator of the site has lost their choice of how they prefer their site to come across.

and for sure, some people may absolutely prefer to send an experience full of noise that overshadows the rest of their site.

furyofantares | 7 hours ago

I see. It seemed unrelated to me because I talked about strong opinionated defaults, which is, to me, entirely about the creator choosing how their site comes across. I don't think being able to turn showdead on here on HN significantly changes how the site comes across, but it being on by default would.

TheAtomic | 9 hours ago

This is really cool. Is there anyway to keep some people off my small part of the webverse?

Having read some of the comments, I'd happily use if there was a way to blast (prefarably with a Doom shotgun) some of the miscreants from appearing, but only on my site, and maybe some filters (slurs, etc) that auto-ban them that I can set. Other people could moderate as they will but I'm kind of tired of the toxic people ruining everything.

bensyverson | 8 hours ago

In case you wanted a comment section but less civilized

AstroJetson | 7 hours ago

I messed around some, talked to two people. Watched the birds fly.

I did the "go to next town" It worked, but then I got to (https://emilesilvis.com/) and got stuck. The Town Square is in 1/2 the page, so you can't get to the two ends to be able to go to the next town.

llagerlof | 3 hours ago

This is too cool for the current state of humanity.