<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>The Town Square Gazette</title><link href="https://townsquare.cauenapier.com/blog/" rel="alternate"/><link href="https://townsquare.cauenapier.com/blog/feeds/blog.rss.xml" rel="self"/><id>https://townsquare.cauenapier.com/blog/</id><updated>2026-08-11T17:50:00+01:00</updated><subtitle>Notes on making websites feel inhabited.</subtitle><entry><title>Guest Notes joins Supporter</title><link href="https://townsquare.cauenapier.com/blog/posts/guest-notes-for-supporters/" rel="alternate"/><published>2026-08-11T17:50:00+01:00</published><updated>2026-08-11T17:50:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-08-11:/blog/posts/guest-notes-for-supporters/</id><summary type="html">&lt;p&gt;The persistent Guest Notes board is now available to every TownSquare Supporter site.&lt;/p&gt;</summary><content type="html">&lt;p&gt;The square has acquired a noticeboard. This is significant municipal news.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Guest Notes&lt;/strong&gt; board is now included with &lt;strong&gt;Supporter&lt;/strong&gt;: a small place for
visitors to leave a hello, a recommendation, or the sort of thought that
absolutely cannot wait until they have opened a text editor.&lt;/p&gt;
&lt;p&gt;Visitors write under their current TownSquare name, browse recent or popular
messages, and respond with a heart or smile. Notes appear live for everyone in
the square. Should a note turn out to be less "guest book" and more "mystery
flyer stapled to a lamp post," you can remove it from the Add-ons tab.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Screenshot of the Guest Notes board in a TownSquare, with six pinned notes" src="https://townsquare.cauenapier.com/blog/images/guest-notes-board.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The actual board, already collecting a small and very orderly pile of notes.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Set up your board&lt;/h2&gt;
&lt;p&gt;If Supporter is enabled for your site, open &lt;strong&gt;Admin → Add-ons&lt;/strong&gt; and turn on
&lt;strong&gt;Guest Notes board&lt;/strong&gt;. Then come the important civic decisions: wood, cork, or
minimal; where the board should stand; how many notes it should show; and which
details visitors can see. You can also set the colours, size, position, title,
and reactions. The settings include a live preview, so the board can settle
into your square without a lengthy town-planning meeting.&lt;/p&gt;
&lt;h2&gt;How to get Supporter&lt;/h2&gt;
&lt;p&gt;TownSquare is a side project I run in my spare time. Supporter access is my way
of saying thank you to people who &lt;a href="https://buymeacoffee.com/cauenapier"&gt;support it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have already chipped in, send me a note and I will enable Supporter
access for your site. There is no automated checkout flow, just a small
thank-you for helping keep the lights on.&lt;/p&gt;</content><category term="News"/><category term="townsquare"/><category term="supporter"/><category term="addons"/><category term="guest notes"/></entry><entry><title>The TownSquare Census: 65,289 Visits, 29 Ghost Towns, and a Serious Case of Clerk’s Cramp</title><link href="https://townsquare.cauenapier.com/blog/posts/townsquare-in-numbers-july-2026/" rel="alternate"/><published>2026-08-04T17:49:00+01:00</published><updated>2026-08-04T17:49:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-08-04:/blog/posts/townsquare-in-numbers-july-2026/</id><summary type="html">&lt;p&gt;The Gazette has counted July: 65,289 daily unique town-visits, 55 new registrations, 36 newly verified towns, and no entirely unsociable hour.&lt;/p&gt;</summary><content type="html">&lt;p&gt;The Town Square Gazette has completed its first census and assembled the
results into several charts. The clerks insist that all 65,289 recorded visits
were counted individually, by hand, using three very small pencils, all now
exhausted. They report sore wrists and a growing suspicion that spreadsheets
were invented for a reason. Management has declined to correct them while they
recover.&lt;/p&gt;
&lt;p&gt;This was TownSquare's first full calendar month in the world. June had been a
blur of launch day, Hacker News, the first hundred towns, rather more chat than
expected, and several urgent lessons about what happens when a peaceful little
square suddenly fills with strangers. July was quieter, steadier, and more
interesting in ways that cannot be observed by standing in the busiest square
and looking alarmed.&lt;/p&gt;
&lt;p&gt;The short version: during July, TownSquare recorded &lt;strong&gt;65,289 daily unique
town-visits&lt;/strong&gt; across &lt;strong&gt;113 different towns&lt;/strong&gt;. &lt;strong&gt;55 new TownSquares were
registered&lt;/strong&gt;, &lt;strong&gt;36 joined the verified map&lt;/strong&gt;, and every hour of the UTC clock
saw somebody about. The less cheerful ledger contains &lt;strong&gt;29 older verified
towns with no visitors in the past 30 days&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;65,289 visits to inhabited corners of the web&lt;/h2&gt;
&lt;p&gt;&lt;img alt="Daily unique TownSquare visits and active towns during July 2026" src="https://townsquare.cauenapier.com/blog/images/july-2026-town-visits.svg"&gt;
&lt;em&gt;The Census Office counts each visitor once per town per day. Returning tomorrow means a fresh entry in the ledger; visiting the next town means troubling a second clerk.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;July produced &lt;strong&gt;65,289 daily unique town-visits&lt;/strong&gt;. This is not the same as
65,289 globally unique people, however tempting that number may look in a
headline. The Census Office does not follow residents from town to town. Each
town issues its own anonymous number, so a person visiting two towns appears
once in each ledger, as any traveller crossing two parish boundaries would
expect. Everyone considers this a healthier arrangement, particularly the
traveller.&lt;/p&gt;
&lt;p&gt;Look at the whole month instead of adding each day together and the records
show &lt;strong&gt;59,551 unique visitor-and-town combinations&lt;/strong&gt;. In plain language:
nearly sixty thousand distinct arrivals, counted independently in the places
they visited.&lt;/p&gt;
&lt;p&gt;The busiest day was &lt;strong&gt;July 26&lt;/strong&gt;, with &lt;strong&gt;3,595 town-visits&lt;/strong&gt;. The broadest was
&lt;strong&gt;July 18&lt;/strong&gt;, when visitors appeared in &lt;strong&gt;78 different towns&lt;/strong&gt;. These are two
useful kinds of busy: one is a large crowd; the other is life spread across the
map. The distinction matters to statisticians and anyone responsible for
putting out chairs.&lt;/p&gt;
&lt;p&gt;Most days had visitors in more than sixty towns. This may be the month's most
encouraging figure. TownSquare was no longer one enormous launch-week crowd
standing in the demo. People were turning up in dozens of separate places,
which is much more like a collection of towns and much less like a queue.&lt;/p&gt;
&lt;h2&gt;55 new squares, and 36 new dots on the map&lt;/h2&gt;
&lt;p&gt;&lt;img alt="Registered and verified TownSquares during July 2026" src="https://townsquare.cauenapier.com/blog/images/july-2026-town-growth.svg"&gt;
&lt;em&gt;The Registry's closing tally for each day in July, beginning with June 30. All municipal clocks are kept in UTC to prevent an argument.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;By the end of July, &lt;strong&gt;295 TownSquares had been registered&lt;/strong&gt;. &lt;strong&gt;141 had been
verified&lt;/strong&gt; and added to the public map.&lt;/p&gt;
&lt;p&gt;During the month itself, that meant &lt;strong&gt;55 new registrations&lt;/strong&gt; and &lt;strong&gt;36 newly
verified towns&lt;/strong&gt;. The Registry and the Map Office are separate departments,
as departments generally prefer to be. Registration means someone intends to
found a town. Before the Map Office adds it as a public destination, the square
must be installed and found at the address provided. Verification means a
visitor can actually go there without being asked to imagine it.&lt;/p&gt;
&lt;p&gt;At the time of going to press, the register has reached &lt;strong&gt;297 websites&lt;/strong&gt;, of
which &lt;strong&gt;144 are verified&lt;/strong&gt;. The other 153 are not officially missing. They
include private experiments, abandoned setups, and proprietors for whom
"paste one small script" sits on the list immediately below "sort out the
loft".&lt;/p&gt;
&lt;p&gt;The Gazette resists treating every registration as a living town. A map should
show places one can actually visit; otherwise it is merely an optimistic
planning document.&lt;/p&gt;
&lt;h2&gt;29 towns where the grass is getting long&lt;/h2&gt;
&lt;p&gt;&lt;img alt="Inactive verified TownSquares from July 6 to August 4, 2026" src="https://townsquare.cauenapier.com/blog/images/july-2026-inactive-towns.svg"&gt;
&lt;em&gt;The Map Office's rolling list begins on July 6, the earliest day for which the preceding 30 days remain in the ledgers. It contained 27 towns at July's close and 29 when this report went to press.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The Map Office's internal ledger now lists &lt;strong&gt;29 verified towns as inactive&lt;/strong&gt;.
To earn that label, a town must have been verified for more than 30 days and
then recorded no visitors at all during the most recent 30. A newly founded
town is therefore not declared abandoned merely because nobody came on
Tuesday.&lt;/p&gt;
&lt;p&gt;Perhaps the proprietors packed up and left. Perhaps they removed the square,
moved it elsewhere, or are presiding over a truly exceptional spell of quiet.
An empty square does not leave a forwarding address, so the Gazette has no way
to know.&lt;/p&gt;
&lt;p&gt;If a public map keeps every silent address forever, it slowly becomes less an
atlas and more a book of local ghost stories. Before removing any town
entirely, the clerks will begin marking long-inactive entries as &lt;strong&gt;ghost towns&lt;/strong&gt;
on the map. This gives proprietors fair warning, helps travellers know what to
expect, and finally justifies the little ghost stamp the Map Office ordered
without authorisation.&lt;/p&gt;
&lt;p&gt;If a ghost town remains quiet, its entry may eventually fade and be cleared
during an occasional spring cleaning. A returning proprietor could always
verify the town again and have the sign repainted. The exact timetable has not
been declared; the Council is still drafting the haunting notice and
discussing where the broom is kept.&lt;/p&gt;
&lt;h2&gt;The conversations after launch week&lt;/h2&gt;
&lt;p&gt;&lt;img alt="Accepted chat messages retained for July 6 to July 31, 2026" src="https://townsquare.cauenapier.com/blog/images/july-2026-messages.svg"&gt;
&lt;em&gt;The Records Office could produce daily tallies from July 6 onward. Asked about the first five days, it referred the Gazette to its retention policy.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The surviving records contain &lt;strong&gt;1,842 accepted chat messages from July 6
through July 31&lt;/strong&gt;. July 6 was the busiest retained day, with 240 messages,
followed by July 13 with 182.&lt;/p&gt;
&lt;p&gt;There is an important gap. The Records Office keeps daily message tallies for
only 30 days, owing to a strict retention policy and a surprisingly small
cupboard. When the clerks assembled this report on August 4, the ledgers for
July 1–5 had already been cleared away. The grand counter still puts
TownSquare at &lt;strong&gt;about 332,200 messages by the end of July&lt;/strong&gt;, but it cannot tell
us precisely how many belong to those five days. The missing bars have
therefore been left missing, rather than restored through the traditional
statistical method of making something up.&lt;/p&gt;
&lt;p&gt;The Records Office has submitted a request for a larger cupboard. Until it is
approved, the Gazette will arrive before month-end with a notebook. This plan
has been recorded on a note and placed somewhere safe.&lt;/p&gt;
&lt;h2&gt;Someone was always awake&lt;/h2&gt;
&lt;p&gt;&lt;img alt="TownSquare visitor activity by UTC hour from July 10 to July 31, 2026" src="https://townsquare.cauenapier.com/blog/images/july-2026-activity-hours.svg"&gt;
&lt;em&gt;The Night Watch began hourly rounds on July 10. A visitor appears at most once in each town's log during an hour, however suspiciously they pace about.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The Night Watch offers another view of the month. From July 10 onward, its
logs contain &lt;strong&gt;48,018 visitor-hour observations&lt;/strong&gt;. This is not time spent: one
visitor seen in a town during an hour contributes one observation, whether
they stayed for two minutes or fifty. Loitering is not charged by the hour.&lt;/p&gt;
&lt;p&gt;The busiest hour across the retained period was &lt;strong&gt;03:00–03:59 UTC&lt;/strong&gt;, with
2,463 observations. TownSquare appears to keep unusual office hours. More
charming, though, is the shape of the whole chart: every hour has activity.
Even the quietest hour recorded more than 1,700 visitor-and-town observations
across those 22 days.&lt;/p&gt;
&lt;p&gt;TownSquare has no single opening time because its towns do not share a time
zone. While one proprietor sleeps, another square is starting its morning. The
map is still a very small world, but it is already large enough that somebody
is nearly always wandering through it.&lt;/p&gt;
&lt;h2&gt;What these numbers do not know&lt;/h2&gt;
&lt;p&gt;The Statistics Office is intentionally modest. It can report that an anonymous
visitor appeared in a town on a given UTC day or hour, count an accepted chat
message, and record when a town registered or joined the map. It is nosy only
in a limited and carefully documented sense.&lt;/p&gt;
&lt;p&gt;It cannot follow the same person through three different towns. Its ledgers do
not contain anybody's messages. Nor can it recreate daily tallies after the
Records Office has emptied the cupboard. The Editorial Board kept present-day
figures out of the July charts. Where the Registry and Treasury provide a
current total, it is clearly labelled "at the time of going to press"; an
August number wearing a July hat remains an August number.&lt;/p&gt;
&lt;p&gt;This makes the charts a little less convenient and considerably more honest.&lt;/p&gt;
&lt;h2&gt;A small envelope from the Treasury&lt;/h2&gt;
&lt;p&gt;This is not a July figure, but the Treasury asked to be included and arrived
with its own envelope. At the time of going to press, &lt;strong&gt;16 supporters had
contributed roughly US$160&lt;/strong&gt; to TownSquare, arriving in several currencies.&lt;/p&gt;
&lt;p&gt;It is not a vast civic endowment, but it is real help towards hosting and
continuing the work. More importantly, it means 16 people looked at this odd
little collection of squares and decided it was worth keeping around. The
Gazette is enormously grateful to every one of them.&lt;/p&gt;
&lt;p&gt;Supporters also receive &lt;a href="/blog/posts/plus-addons/"&gt;TownSquare Supporter add-ons&lt;/a&gt;, a small
collection of optional civic privileges: hats for town owners and visitors,
Telegram notifications when somebody says hello, a livestream overlay, and
cats. The Council calls these "tokens of civic gratitude". The Treasury has
asked the Gazette not to describe the programme as a hats-for-cash arrangement,
particularly now that cats are involved.&lt;/p&gt;
&lt;p&gt;Readers wishing to add something to the municipal biscuit tin may &lt;a href="https://buymeacoffee.com/cauenapier"&gt;support the
project here&lt;/a&gt;. The Treasury has confirmed
that there is room.&lt;/p&gt;
&lt;h2&gt;On to August&lt;/h2&gt;
&lt;p&gt;July was less explosive than launch week, which is precisely what one hopes to
see after an explosion. A novelty can draw a crowd for an afternoon. A place
has people returning on ordinary Tuesdays, appearing in dozens of towns, and
keeping a few lights on at every hour.&lt;/p&gt;
&lt;p&gt;The Gazette thanks everyone who founded a town, linked a neighbour, stopped to
wave, or left a kind message during July.&lt;/p&gt;
&lt;p&gt;See you in the square.&lt;/p&gt;</content><category term="News"/><category term="townsquare"/><category term="community"/><category term="numbers"/><category term="july"/></entry><entry><title>Gazette Notice: a football has entered the Square</title><link href="https://townsquare.cauenapier.com/blog/posts/soccer-ball-gazette/" rel="alternate"/><published>2026-07-14T14:58:00+01:00</published><updated>2026-07-14T14:58:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-07-14:/blog/posts/soccer-ball-gazette/</id><summary type="html">&lt;p&gt;A free soccer-ball add-on now lets visitors settle important civic matters by running into a ball.&lt;/p&gt;</summary><content type="html">&lt;p&gt;With the World Cup nearly finished, the Town Square Gazette is pleased to
report that a football has at last been placed in the Square.&lt;/p&gt;
&lt;p&gt;The timing has been questioned. The Council replies that it was waiting to see
whether the sport would catch on.&lt;/p&gt;
&lt;p&gt;It belongs to everyone, obeys no team colours, and may be kicked by the
advanced sporting technique of running directly into it. Visitors who approach
with enthusiasm will find the ball returns the sentiment, travelling farther
when met at speed.&lt;/p&gt;
&lt;p&gt;The Council would like to stress that this is a &lt;strong&gt;free add-on&lt;/strong&gt;. Town owners
can put it in play from &lt;strong&gt;Admin → Add-ons&lt;/strong&gt;. There are no leagues, no tables,
and no official referee. The Gazette considers this a strength.&lt;/p&gt;
&lt;p&gt;One ball is shared by the whole Square, so any score is immediately a matter
of public debate. A visitor may call it a goal. Another may call it an
excellent clearance. A third may have been trying to walk to the chat.&lt;/p&gt;
&lt;p&gt;The ball was originally made by &lt;a href="https://github.com/n8k99"&gt;Nathan Eckenrode (@n8k99)&lt;/a&gt;,
to whom the Gazette extends its thanks, along with a modest request not to
attempt any overhead kicks near the flowerbeds.&lt;/p&gt;
&lt;h2&gt;A statement from the editorial board&lt;/h2&gt;
&lt;p&gt;The Square has long supported conversation, wandering, and standing in one
place while thinking of something to say. It now also supports the ancient
human practice of seeing a ball and immediately testing whether it moves.&lt;/p&gt;
&lt;p&gt;It does.&lt;/p&gt;
&lt;p&gt;The Gazette further confirms that no feet were damaged during the creation or
testing of the ball.&lt;/p&gt;</content><category term="News"/><category term="townsquare"/><category term="gazette"/><category term="add-ons"/><category term="soccer"/></entry><entry><title>Gazette Notice: the Town Weather Office has opened</title><link href="https://townsquare.cauenapier.com/blog/posts/weather-office-gazette/" rel="alternate"/><published>2026-07-13T12:00:00+01:00</published><updated>2026-07-13T12:00:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-07-13:/blog/posts/weather-office-gazette/</id><summary type="html">&lt;p&gt;The Town Weather Office can arrange clear skies, rain, snow, or storms for everyone in a TownSquare and has issued a ruling on umbrellas.&lt;/p&gt;</summary><content type="html">&lt;p&gt;The Town Square Gazette is pleased to report that the Square has hired a team
of meteorologists, together with one scientist who says they can control the
weather.&lt;/p&gt;
&lt;p&gt;The meteorologists have brought charts, thermometers and a commendably serious
approach to clouds. The scientist has brought several switches and declined to
say where the lightning comes from. Between them, they can now arrange clear
skies, rain, snow and storms.&lt;/p&gt;
&lt;p&gt;Until now, weather in the Square was managed according to the traditional
method: somebody looked up, somebody else disagreed and a third person said it
looked like it might rain later. The new staff have replaced this with a proper
forecast, which is considerably more official.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Rain weather in a TownSquare" src="https://townsquare.cauenapier.com/blog/images/weather_rain.gif"&gt;
&lt;em&gt;Rain: enough to justify concern, but not enough to cancel the meeting.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Snow weather in a TownSquare" src="https://townsquare.cauenapier.com/blog/images/weather_snow.gif"&gt;
&lt;em&gt;Snow: falling gently over matters that were already taking longer than expected.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Storm weather in a TownSquare" src="https://townsquare.cauenapier.com/blog/images/weather_storm.gif"&gt;
&lt;em&gt;Storm: the Weather Office demonstrating that it has access to atmosphere.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Readers may observe that these official moving pictures proceed at a low FPS. The Gazette assures readers that this is not how fast the rain falls, but a limitation of the Office’s recording equipment.&lt;/p&gt;
&lt;h2&gt;A shared sky&lt;/h2&gt;
&lt;p&gt;The meteorologists have insisted that a forecast must apply to the whole
Square. If it is snowing, it is snowing for everyone; no visitor will be
privately snowed upon while their neighbour enjoys a clear afternoon.&lt;/p&gt;
&lt;p&gt;The same goes for rain and storms. A town may differ on many things, they say,
but it ought to be able to agree about whether it is currently under a cloud.&lt;/p&gt;
&lt;p&gt;This agreement applies within each town only. The staff have been careful not
to let one town's snowstorm drift into another town's afternoon. Every Square
has its own sky, and the scientists insist that this is both deliberate and
well within their capabilities.&lt;/p&gt;
&lt;h2&gt;The mandatory umbrella ruling&lt;/h2&gt;
&lt;p&gt;The scientist's first proposal concerned storms.&lt;/p&gt;
&lt;p&gt;Rather than allow residents to become wet, every visitor is issued an umbrella
automatically. There is no appeal. Light rain does not yet warrant one; thunder
does.&lt;/p&gt;
&lt;p&gt;The meteorologists consider this excessive. The scientist considers it
preparedness.&lt;/p&gt;
&lt;p&gt;&lt;img alt="A TownSquare visitor holding an umbrella in a storm" src="https://townsquare.cauenapier.com/blog/images/weather_umbrella_visitor.png"&gt;
&lt;em&gt;A resident with the required umbrella.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;An umbrella, once opened, remains open. The scientist has recorded this as an
operational detail and moved on.&lt;/p&gt;
&lt;h2&gt;A forecast with proper paperwork&lt;/h2&gt;
&lt;p&gt;Town owners can hire the Weather Office in &lt;strong&gt;Admin → Add-ons&lt;/strong&gt;, then choose a
permanent condition or set the chances for the shared hourly forecast.&lt;/p&gt;
&lt;p&gt;The meteorologists require whole-number chances that add up to one hundred.
They keep good records, even if their colleague does not.&lt;/p&gt;
&lt;p&gt;Changes appear for visitors already in the Square, with no need to send them
away and ask them back later. The staff may therefore declare snow during a
conversation, which has been judged preferable to interrupting one.&lt;/p&gt;
&lt;h2&gt;A statement from the editorial board&lt;/h2&gt;
&lt;p&gt;The Gazette welcomes this development. A little weather gives the Square a
different character: snowfall for lingering, rain for shelter and storms for
those who prefer their conversations with a little atmosphere.&lt;/p&gt;
&lt;p&gt;The meteorologists and the scientist do not control the weather outside your
window. They have been quite clear about this.&lt;/p&gt;</content><category term="News"/><category term="townsquare"/><category term="weather"/><category term="gazette"/><category term="add-ons"/></entry><entry><title>Dev Log: when map lines start behaving like roads</title><link href="https://townsquare.cauenapier.com/blog/posts/map-roads/" rel="alternate"/><published>2026-07-12T17:01:00+01:00</published><updated>2026-07-12T17:01:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-07-12:/blog/posts/map-roads/</id><summary type="html">&lt;p&gt;The TownSquare map is learning to treat connections as roads: curved, layered, ranked by importance, and routed around the landscape.&lt;/p&gt;</summary><content type="html">&lt;p&gt;The first TownSquare map drew a line between two towns when their owners linked them together. It did the job, but it also looked exactly like what it was: a graph laid over a map.&lt;/p&gt;
&lt;p&gt;If you would prefer the in-universe version, The Town Square Gazette has also published &lt;a href="/blog/posts/map-roads-gazette/"&gt;Gazette Notice: the cartographers have at last learned what roads are&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The lines were thin, even and happy to pass straight through anything in their way. Forest in the middle? Straight through it. Mountain range? No problem. A town that had nothing to do with the connection? Right across the centre.&lt;/p&gt;
&lt;p&gt;That is fine for a network diagram. It is odd for a landscape.&lt;/p&gt;
&lt;p&gt;I have been working on a new road renderer that asks a more useful question. Instead of only asking &lt;strong&gt;which towns are connected?&lt;/strong&gt;, it also asks &lt;strong&gt;how would a road get from one to the other?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="The new road renderer on the TownSquare map" src="https://townsquare.cauenapier.com/blog/images/map_roads_staging.png"&gt;
&lt;em&gt;The first terrain-aware roads on the TownSquare map.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Before and after&lt;/h2&gt;
&lt;p&gt;The change is easiest to see when the same part of the map is shown at the same zoom level.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Old straight-line connections" src="https://townsquare.cauenapier.com/blog/images/map_roads_before.png"&gt;
&lt;em&gt;Before: connections behaved like simple graph lines, cutting straight through the landscape.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="New terrain-aware roads" src="https://townsquare.cauenapier.com/blog/images/map_roads_after.png"&gt;
&lt;em&gt;After: roads curve, avoid terrain, and carry different visual weight based on their importance.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;The non-technical version&lt;/h2&gt;
&lt;p&gt;The old paths behaved like lines drawn with a ruler. The new ones behave more like roads on a hand-drawn map.&lt;/p&gt;
&lt;h3&gt;A road has more than one line&lt;/h3&gt;
&lt;p&gt;Each road is now drawn in layers. There is a darker outer edge, a lighter road surface, and a small broken centre marking. Trails are thinner and use a rougher dashed surface.&lt;/p&gt;
&lt;p&gt;It is a small change, but it gives the road a physical width. It looks like something a person could follow rather than a relationship in a spreadsheet.&lt;/p&gt;
&lt;h3&gt;Roads pay attention to the land&lt;/h3&gt;
&lt;p&gt;The map now gives different parts of the landscape different levels of resistance. Empty land is easy. Going near an unrelated town is awkward. Forests are harder, mountains are much harder, and water is expensive to cross.&lt;/p&gt;
&lt;p&gt;The route then looks for a sensible way through. It may curve around a group of trees, pass between towns, or head towards one of the preferred crossing points on a river.&lt;/p&gt;
&lt;p&gt;This does not mean every road takes a huge scenic detour. Sometimes the direct route is still the best one. The important change is that the landscape now has a vote.&lt;/p&gt;
&lt;h3&gt;Not every connection is equally important&lt;/h3&gt;
&lt;p&gt;A link between two highly connected towns can become a major road. Ordinary two-way links become local roads, while one-way or weak links look more like trails.&lt;/p&gt;
&lt;p&gt;That makes the map easier to read at a glance. A busy route should carry more visual weight than a small path to one neighbour.&lt;/p&gt;
&lt;h3&gt;Roads can follow one another&lt;/h3&gt;
&lt;p&gt;Real roads often share a route for a while and split later. The new router remembers which parts of the map have already been used and makes those corridors cheaper for the next road.&lt;/p&gt;
&lt;p&gt;This first version gets roads to gather into common corridors. It does not yet merge every shared section into one perfect piece of road, but it is a useful step away from drawing every connection in complete isolation.&lt;/p&gt;
&lt;h2&gt;The technical section&lt;/h2&gt;
&lt;p&gt;The renderer turns the map into a small invisible grid. Each grid cell gets a movement cost:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Terrain&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Empty land&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Near another town&lt;/td&gt;
&lt;td style="text-align: right;"&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Forest&lt;/td&gt;
&lt;td style="text-align: right;"&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mountain&lt;/td&gt;
&lt;td style="text-align: right;"&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Water&lt;/td&gt;
&lt;td style="text-align: right;"&gt;30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preferred bridge area&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Those numbers are not distances. They are preferences. Moving through ten cells of open ground is usually better than cutting through several mountain cells, even when the mountain route is shorter on screen.&lt;/p&gt;
&lt;h3&gt;Finding a route with A*&lt;/h3&gt;
&lt;p&gt;For every connection, the renderer runs the A&lt;em&gt; pathfinding algorithm between the two towns. A&lt;/em&gt; keeps track of two things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;how expensive the journey has been so far;&lt;/li&gt;
&lt;li&gt;a reasonable estimate of the distance still left to travel.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That lets it search useful parts of the grid without trying every possible route across the world.&lt;/p&gt;
&lt;p&gt;The map currently has 119 towns, 737 pieces of scenery and 38 visible connections. On that real dataset, a complete routing pass takes roughly 40 to 156 milliseconds on the development machine. That is reasonable for rebuilding the public map after its structure changes, although it is too much work to repeat on every frame while drawing scenery in the admin editor. That editor path still needs some caching and delayed recalculation.&lt;/p&gt;
&lt;h3&gt;Stable roads instead of fresh randomness&lt;/h3&gt;
&lt;p&gt;Random bends can make a map feel organic, but they also make roads jump whenever the page reloads. TownSquare derives its fallback curve from the IDs of the two connected towns, so the same pair produces the same bend.&lt;/p&gt;
&lt;p&gt;The terrain route is deterministic too. Given the same towns, connections and scenery, it produces the same road network.&lt;/p&gt;
&lt;p&gt;This matters more than it might sound. A map becomes familiar through repetition. A road that moves every ten seconds never gets the chance to feel like a place.&lt;/p&gt;
&lt;h3&gt;Stopping at the town boundary&lt;/h3&gt;
&lt;p&gt;The pathfinder works from town centre to town centre, but the finished SVG path is trimmed at both ends using the size of each town marker. Large towns have larger markers, so their roads stop farther from the centre.&lt;/p&gt;
&lt;p&gt;After trimming, consecutive grid points in the same direction are removed. The remaining corners are smoothed into quadratic curves. That keeps the geography-aware route without leaving it looking like a staircase.&lt;/p&gt;
&lt;p&gt;Finally, the same path is rendered three times:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;wide dark stroke      road edge
medium light stroke   road surface
thin dashed stroke    centre marking
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The three strokes live in one SVG group. Selecting a town can highlight every related road without recalculating the route.&lt;/p&gt;
&lt;h3&gt;Encouraging shared corridors&lt;/h3&gt;
&lt;p&gt;Roads are calculated from most connected to least connected. When one route uses an ordinary land cell, that cell becomes cheaper for later routes. Major roads therefore establish likely corridors and smaller roads are encouraged to join them.&lt;/p&gt;
&lt;p&gt;This is a lightweight form of edge bundling. A fuller version would turn shared grid segments into a separate road network and draw each shared segment only once. That would reduce repeated strokes and scale better as more towns link to one another.&lt;/p&gt;
&lt;h2&gt;What happens when the map changes?&lt;/h2&gt;
&lt;p&gt;The road network is derived from the current map rather than stored as a separate drawing.&lt;/p&gt;
&lt;p&gt;When a new verified town appears, TownSquare lays out the towns again, rebuilds the connection graph, recalculates road importance, and runs the router for the new set of links. A town only gets a road when one of its neighbour URLs matches another public TownSquare.&lt;/p&gt;
&lt;p&gt;Scenery works the same way. Add trees, mountains or water and the next structural map refresh builds a new cost grid from those features. Roads may move because the geography has changed.&lt;/p&gt;
&lt;h2&gt;What still needs work&lt;/h2&gt;
&lt;p&gt;This is the first terrain-aware version, not the end of the road.&lt;/p&gt;
&lt;p&gt;Three parts need another pass before I am happy with them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The scenery editor should not recalculate every route while the pointer is moving.&lt;/li&gt;
&lt;li&gt;River crossings currently prefer bridge areas, but they do not strictly forbid other crossings.&lt;/li&gt;
&lt;li&gt;Shared corridors should eventually become shared road segments rather than several overlapping paths.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are also smaller details to tune: how much a road bends, how strongly forests repel it, and when a local road becomes a major one. Those choices are easier to judge on a real 119-town map than in a small test fixture.&lt;/p&gt;
&lt;p&gt;The current public map is available at &lt;a href="https://townsquare.cauenapier.com/map"&gt;townsquare.cauenapier.com/map&lt;/a&gt;. Have a look, follow a few roads, and see whether the network feels more like a place.&lt;/p&gt;</content><category term="Development"/><category term="townsquare"/><category term="map"/><category term="design"/><category term="engineering"/></entry><entry><title>Gazette Notice: the cartographers have at last learned what roads are</title><link href="https://townsquare.cauenapier.com/blog/posts/map-roads-gazette/" rel="alternate"/><published>2026-07-12T17:01:00+01:00</published><updated>2026-07-12T17:01:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-07-12:/blog/posts/map-roads-gazette/</id><summary type="html">&lt;p&gt;After a period of firm instruction, the TownSquare cartographers have stopped drawing ruler-straight accusations across forests and now produce maps with proper roads.&lt;/p&gt;</summary><content type="html">&lt;p&gt;The Town Square Gazette is pleased to report that the cartographers have completed their retraining and can now, in most cases, identify a road.&lt;/p&gt;
&lt;p&gt;Readers may remember the previous map edition, in which every connection between towns was represented by a determined line charging across the countryside with no regard for trees, mountains, rivers, or basic decency.&lt;/p&gt;
&lt;p&gt;Several forests were bisected. One lake was treated as a suggestion. At least three uninvolved towns found themselves with lines running directly through the middle of their public squares.&lt;/p&gt;
&lt;p&gt;The Guild of Cartographers insisted this was "technically correct" because the towns &lt;em&gt;were&lt;/em&gt; connected.&lt;/p&gt;
&lt;p&gt;The rest of us insisted that if a road from Oak Hollow to Lantern Quay passes straight over a mountain, through a pond, and across somebody else's vegetable patch, it may be a connection but it is not a road.&lt;/p&gt;
&lt;p&gt;This disagreement has now been resolved through additional training.&lt;/p&gt;
&lt;p&gt;Readers seeking the full engineering account may consult &lt;a href="/blog/posts/map-roads/"&gt;When map lines start behaving like roads&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="The new road style on the TownSquare map" src="https://townsquare.cauenapier.com/blog/images/map_roads_staging.png"&gt;
&lt;em&gt;The roads have begun to show judgment.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Evidence submitted to the public&lt;/h2&gt;
&lt;p&gt;For readers who suspect the Gazette has exaggerated events, we present the record.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Old straight-line connections" src="https://townsquare.cauenapier.com/blog/images/map_roads_before.png"&gt;
&lt;em&gt;Before: the cartographers drew direct accusations across forest, water, and anyone else's property.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="New terrain-aware roads" src="https://townsquare.cauenapier.com/blog/images/map_roads_after.png"&gt;
&lt;em&gt;After: the roads now go around obstacles like they have met the concept of geography.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;What the cartographers now understand&lt;/h2&gt;
&lt;h3&gt;Roads ought to go around things&lt;/h3&gt;
&lt;p&gt;The new map no longer treats the landscape as a blank sheet waiting to be insulted.&lt;/p&gt;
&lt;p&gt;Forests now discourage road-building. Mountains strongly discourage it. Water remains crossable, but only after the appropriate muttering and paperwork. If there is a sensible place to cross a river, the road will prefer that crossing instead of splashing through wherever it pleases.&lt;/p&gt;
&lt;p&gt;This has produced a marked improvement in public morale.&lt;/p&gt;
&lt;h3&gt;Major routes now look important&lt;/h3&gt;
&lt;p&gt;Not every path on the map deserves the same ceremony.&lt;/p&gt;
&lt;p&gt;Busy connections between well-travelled towns now appear as proper roads, while lesser connections look more like small local ways or trails. This means a reader can glance at the map and tell the difference between "the main way to market" and "a footpath your cousin swears is faster."&lt;/p&gt;
&lt;h3&gt;Roads may now travel together like sensible infrastructure&lt;/h3&gt;
&lt;p&gt;In earlier editions, every route behaved as though it had taken a blood oath never to share space with another road.&lt;/p&gt;
&lt;p&gt;That policy has been relaxed. Roads can now follow similar corridors before splitting apart, which is how many real road networks behave and also how one avoids building six separate lanes through the same meadow for no reason.&lt;/p&gt;
&lt;p&gt;The effect is not perfect yet, but it is visibly less unhinged.&lt;/p&gt;
&lt;h2&gt;A statement from the editorial board&lt;/h2&gt;
&lt;p&gt;The Gazette supports these developments. A map should feel like a place, not an argument between geometry and topsoil.&lt;/p&gt;
&lt;p&gt;We are particularly pleased that large towns no longer have roads stabbed directly into the centre marker as if caravans are expected to arrive through the mayor's office.&lt;/p&gt;
&lt;p&gt;The roads now stop at the town boundary like civilised guests.&lt;/p&gt;
&lt;h2&gt;Matters still under review&lt;/h2&gt;
&lt;p&gt;The retraining programme has been successful, but not complete.&lt;/p&gt;
&lt;p&gt;The cartographers still need supervision in three areas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They remain a little too willing to redraw the whole road network while scenery is being edited.&lt;/li&gt;
&lt;li&gt;River crossings are improved, but some bridges still appear to have been chosen by optimism.&lt;/li&gt;
&lt;li&gt;Shared routes should eventually become truly shared road segments instead of several roads politely standing on top of one another.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Still, this is meaningful progress. The maps are more legible, the towns look less under siege, and the mountains are no longer being treated as a minor inconvenience.&lt;/p&gt;
&lt;p&gt;Readers may inspect the public map at &lt;a href="https://townsquare.cauenapier.com/map"&gt;townsquare.cauenapier.com/map&lt;/a&gt; and judge the work for themselves.&lt;/p&gt;</content><category term="News"/><category term="townsquare"/><category term="map"/><category term="gazette"/><category term="roads"/></entry><entry><title>Turn your message board into a meetup invite</title><link href="https://townsquare.cauenapier.com/blog/posts/meetup-invite/" rel="alternate"/><published>2026-07-02T18:10:00+01:00</published><updated>2026-07-02T18:10:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-07-02:/blog/posts/meetup-invite/</id><summary type="html">&lt;p&gt;Your message board doesn't just have to hold static text. Post a date and time on it, and it becomes an invitation: everyone who reads it knows exactly when to come back and be in the square together.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Who's in a town square at any given moment is mostly chance. Sometimes you land on an empty scene, sometimes a small crowd, and there's no way to know who else might show up, or when.&lt;/p&gt;
&lt;p&gt;But it doesn't have to stay that way.&lt;/p&gt;
&lt;p&gt;If you've added a message board to your square from the &lt;a href="/admin"&gt;admin page&lt;/a&gt;, you already have a spot where visitors stop and read. Instead of a generic note, try posting something like:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Message board with a scheduled meetup notice" src="https://townsquare.cauenapier.com/blog/images/message_board_example.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The message board with a scheduled meetup.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;That's it. That's the whole trick.&lt;/p&gt;
&lt;h2&gt;Why it works&lt;/h2&gt;
&lt;p&gt;The message board is already the one fixed point in an otherwise fleeting scene. People walking through your site tap it, read it, and move on. If what they read is a specific date and time, some of them will actually remember to come back.&lt;/p&gt;
&lt;p&gt;You don't need accounts, RSVPs, or a calendar integration. The invitation lives right there on the map, in the same place visitors already check.&lt;/p&gt;
&lt;p&gt;And when you update the board with a new date, the board shows a little notification, so returning visitors can tell at a glance that there's something new to read instead of walking past a board they've already seen.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Message board showing a notification for a new message" src="https://townsquare.cauenapier.com/blog/images/message_board_notification.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Unread message notification.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;How to try it&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Open your &lt;a href="/admin"&gt;admin page&lt;/a&gt; and find the &lt;strong&gt;Message board&lt;/strong&gt; section.&lt;/li&gt;
&lt;li&gt;Set the title to something like "Next meetup" and the message to the date and time, in a timezone your audience will recognize.&lt;/li&gt;
&lt;li&gt;Pick an accent color that fits your scene, then save. The board's notification badge takes care of letting returning visitors know there's something new to read.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="Admin Message Board Example" src="https://townsquare.cauenapier.com/blog/images/message_board_form.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The message board form in the admin page.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When the time comes, open the square yourself and see who shows up.&lt;/p&gt;
&lt;h2&gt;A few ways to use it&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A weekly office hours slot.&lt;/strong&gt; Same time every week, so the board barely needs updating.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A launch day countdown.&lt;/strong&gt; Post the date of a release and invite people to watch it happen together in the square.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A one-off hangout.&lt;/strong&gt; Pick a date, post it, and see who's around.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of this needs a new feature, just a small use for one that's already there. If you try it, I'd love to hear how it went.&lt;/p&gt;</content><category term="Guides"/><category term="townsquare"/><category term="message board"/><category term="meetup"/><category term="community"/></entry><entry><title>The TownSquare Community Now Has a Town Hall</title><link href="https://townsquare.cauenapier.com/blog/posts/townhall/" rel="alternate"/><published>2026-07-02T11:00:00+01:00</published><updated>2026-07-02T11:00:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-07-02:/blog/posts/townhall/</id><summary type="html">&lt;p&gt;The TownSquare community now has a Town Hall: a place for longer discussions, feature requests, and sharing your own TownSquare with others. Unlike the fleeting conversations that happen in town squares themselves, the Town Hall is designed for ideas that grow over time.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Over the past few weeks, conversations about TownSquare have appeared in GitHub issues, emails, Hacker News threads, blog comments, and private messages.&lt;/p&gt;
&lt;p&gt;People have shared ideas, feature requests, bug reports, screenshots, and stories about the little corners of the web they've built.&lt;/p&gt;
&lt;p&gt;It felt like the community needed a place of its own.&lt;/p&gt;
&lt;p&gt;So today I'm happy to announce the opening of the &lt;a href="https://townsquare.cauenapier.com/forum/"&gt;TownSquare Town Hall&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unlike TownSquares themselves, where conversations are fleeting and visitors come and go, the Town Hall is a place for longer discussions that can unfold over days, weeks, or months.&lt;/p&gt;
&lt;p&gt;A place where ideas can be collected, refined, and revisited.&lt;/p&gt;
&lt;p&gt;A place to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ask questions&lt;/li&gt;
&lt;li&gt;Suggest features&lt;/li&gt;
&lt;li&gt;Share feedback&lt;/li&gt;
&lt;li&gt;Show off your TownSquare&lt;/li&gt;
&lt;li&gt;Discover what others are building&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For now, the Town Hall has three rooms for now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;General&lt;/strong&gt; for discussions, questions, and anything TownSquare-related.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Feature Requests&lt;/strong&gt; for ideas, suggestions, and wish lists.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Show Your Town&lt;/strong&gt; for sharing your TownSquare and discovering the places others have created.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The goal isn't to build another giant forum or social network.&lt;/p&gt;
&lt;p&gt;Just a small town hall for the people building town squares.&lt;/p&gt;
&lt;p&gt;The doors are open. Come in and say hello at &lt;a href="https://townsquare.cauenapier.com/forum/"&gt;https://townsquare.cauenapier.com/forum/&lt;/a&gt;&lt;/p&gt;</content><category term="News"/><category term="community"/></entry><entry><title>Put your TownSquare in a livestream overlay</title><link href="https://townsquare.cauenapier.com/blog/posts/livestream-overlay/" rel="alternate"/><published>2026-07-01T19:05:00+01:00</published><updated>2026-07-01T19:05:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-07-01:/blog/posts/livestream-overlay/</id><summary type="html">&lt;p&gt;TownSquare Supporter sites can copy a browser-source overlay URL from the admin Add-ons page, with transparent or solid-color backgrounds for livestream scenes.&lt;/p&gt;</summary><content type="html">&lt;p&gt;A lot of you asked for a way to put your townsquare on stream, so I built it. TownSquare now has a livestream overlay.&lt;/p&gt;
&lt;p&gt;This guide walks through adding that overlay to your stream. The overlay is a browser-source URL, so any app that supports browser sources can use it. In this guide we'll use OBS as the example.&lt;/p&gt;
&lt;p&gt;The overlay is watch-only. It shows the live square without adding a new active visitor, so putting it in a streaming app should not inflate the count or make a fake person appear in the scene.&lt;/p&gt;
&lt;h2&gt;Set up the overlay&lt;/h2&gt;
&lt;p&gt;Open your &lt;a href="/admin"&gt;admin page&lt;/a&gt;, sign in with your site admin token, and go to &lt;strong&gt;Add-ons&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If &lt;a href="https://townsquare.cauenapier.com/blog/posts/plus-addons/"&gt;Supporter&lt;/a&gt; is enabled for your site, you will see &lt;strong&gt;Livestream overlay&lt;/strong&gt;. There are a few settings to understand first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Overlay Colors Source&lt;/strong&gt; decides whether the overlay follows your site palette or uses its own. With &lt;strong&gt;Match site appearance&lt;/strong&gt;, the overlay uses the color scheme you defined in the &lt;strong&gt;Appearance&lt;/strong&gt; tab, the same one visitors see on your site. Choose &lt;strong&gt;Customize colors&lt;/strong&gt; if you want the overlay to look different on stream without changing the main square.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Theme&lt;/strong&gt; picks whether the overlay uses the light or dark color palette. With &lt;strong&gt;Match site appearance&lt;/strong&gt;, that means the light or dark scheme from your &lt;strong&gt;Appearance&lt;/strong&gt; tab. With &lt;strong&gt;Customize colors&lt;/strong&gt;, you can define separate light and dark overlay colors, but you can also leave dark alone and only set up light colors. Keeping both palettes is mainly useful if you want two stream looks and plan to switch between them by changing the theme in the URL.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Background&lt;/strong&gt; controls what sits behind the whole overlay in the browser source: transparent or a solid color. The next section goes into more detail on that choice.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Theme&lt;/strong&gt; and &lt;strong&gt;Background&lt;/strong&gt; work through the overlay URL, not the Save button. When you change them, the URL on the page updates right away, so just copy the new URL into your streaming app. &lt;strong&gt;Save overlay settings&lt;/strong&gt; is for your overlay colors instead — the overlay picks those up on its own, no new URL needed.&lt;/p&gt;
&lt;p&gt;From there:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set &lt;strong&gt;Overlay Colors Source&lt;/strong&gt; to match your site or customize them for stream.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Save overlay settings&lt;/strong&gt; to store your overlay colors.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Light&lt;/strong&gt; or &lt;strong&gt;Dark&lt;/strong&gt; for theme and pick the background mode. Watch the overlay URL update as you change them.&lt;/li&gt;
&lt;li&gt;Copy the browser-source overlay URL.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you change overlay colors later, save again and copy the updated URL. If you only change theme or background, copy the new URL; you do not need to save again.&lt;/p&gt;
&lt;h2&gt;Transparent or solid background&lt;/h2&gt;
&lt;p&gt;The default background is transparent, which is usually what you want for a stream overlay.&lt;/p&gt;
&lt;p&gt;Some capture setups, browsers, or streaming apps do not handle transparency the way you expect. If the transparent option looks wrong, switch the overlay to &lt;strong&gt;Solid color&lt;/strong&gt;. The default solid color is bright green (&lt;code&gt;#00ff00&lt;/code&gt;), which works well with a chroma-key filter.&lt;/p&gt;
&lt;p&gt;You can pick another six-digit hex color if green clashes with your scene.&lt;/p&gt;
&lt;h2&gt;Add it to a streaming app&lt;/h2&gt;
&lt;p&gt;The general setup is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add a browser source or web source to your scene/layout.&lt;/li&gt;
&lt;li&gt;Paste the copied overlay URL into the source URL field.&lt;/li&gt;
&lt;li&gt;Set the source size to match your canvas, often &lt;code&gt;1920 x 1080&lt;/code&gt; or &lt;code&gt;1280 x 720&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Place the source above the camera, screen share, or other layer where you want the square to appear.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In OBS, that looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open your scene.&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;Sources&lt;/strong&gt;, click &lt;strong&gt;+&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Browser&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Create a new source, for example &lt;code&gt;TownSquare overlay&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Paste the copied overlay URL into &lt;strong&gt;URL&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set &lt;strong&gt;Width&lt;/strong&gt; and &lt;strong&gt;Height&lt;/strong&gt; to match your canvas, often &lt;code&gt;1920 x 1080&lt;/code&gt; or &lt;code&gt;1280 x 720&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you used a transparent background, the square should sit directly over your scene.&lt;/p&gt;
&lt;p&gt;If you used a solid background:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Right-click the browser source.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Filters&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;strong&gt;Chroma Key&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use green, or choose a custom key color matching the overlay background.&lt;/li&gt;
&lt;li&gt;Adjust similarity and smoothness until the background disappears cleanly.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Quick checks&lt;/h2&gt;
&lt;p&gt;If nothing appears:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirm the site has Supporter enabled.&lt;/li&gt;
&lt;li&gt;Open the copied overlay URL in a normal browser and check that it loads.&lt;/li&gt;
&lt;li&gt;Make sure the square has active visitors if you expect to see people.&lt;/li&gt;
&lt;li&gt;Check that your streaming app is not cropping the browser source too tightly.&lt;/li&gt;
&lt;li&gt;Refresh the browser source after changing the overlay URL.&lt;/li&gt;
&lt;li&gt;If you change custom CSS, OBS may keep showing the old styles. Open the Browser Source properties and choose &lt;strong&gt;Refresh cache of current page&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The overlay uses the same live TownSquare connection as the normal widget, just in watch-only mode.&lt;/p&gt;
&lt;h2&gt;How to get Supporter&lt;/h2&gt;
&lt;p&gt;TownSquare is a side project I run in my spare time. Supporter access is my way of saying thank you to people who &lt;a href="https://buymeacoffee.com/cauenapier"&gt;support it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have already chipped in, send me a note and I will enable Supporter access for your site. There is no automated checkout flow, just a small thank-you for helping keep the lights on.&lt;/p&gt;</content><category term="Guides"/><category term="townsquare"/><category term="supporter"/><category term="overlay"/><category term="streaming"/><category term="obs"/></entry><entry><title>One hundred towns on the map</title><link href="https://townsquare.cauenapier.com/blog/posts/one-hundred-towns/" rel="alternate"/><published>2026-06-30T09:55:00+01:00</published><updated>2026-06-30T09:55:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-06-30:/blog/posts/one-hundred-towns/</id><summary type="html">&lt;p&gt;TownSquare now has 100 verified sites on the map, nearly 330,000 messages exchanged, and a growing network of signposts linking one inhabited corner of the web to the next.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Less then 2 weeks ago, TownSquare was mostly an idea and a handful of early adopters willing to try something a little odd: a tiny shared space on an otherwise ordinary website, where visitors could see each other, wander around and say hello.&lt;/p&gt;
&lt;p&gt;That idea has grown faster than we expected.&lt;/p&gt;
&lt;p&gt;Today there are &lt;strong&gt;100 verified TownSquares on the map&lt;/strong&gt;. One hundred small public squares scattered across personal blogs, project pages, and quiet corners of the internet. Together they have exchanged &lt;strong&gt;328,672 messages&lt;/strong&gt;. The &lt;a href="https://github.com/cauenapier/TownSquare"&gt;open-source project&lt;/a&gt; has picked up &lt;strong&gt;347 GitHub stars&lt;/strong&gt; in two weeks, which still feels surreal for a side project about waving at strangers on the web.&lt;/p&gt;
&lt;p&gt;We wanted to take a moment to say thank you, share a few numbers, and point at some of the lovely things happening between these towns.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Better Web" src="https://townsquare.cauenapier.com/blog/images/quote_1.png"&gt;
&lt;em&gt;Better Web — a quote from a visitor during the HN spike&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;A world that keeps growing&lt;/h2&gt;
&lt;p&gt;The &lt;a href="/map"&gt;TownSquare map&lt;/a&gt; is the part that still makes me smile every time I open it. Each verified site appears as its own little town in a shared landscape. Walk around and you can hop between them, peek into other people's squares, and get a sense of how many inhabited places are out there.&lt;/p&gt;
&lt;p&gt;The map is not just growing in headcount. More site owners are linking their towns together with &lt;strong&gt;signposts&lt;/strong&gt;, directional markers at the edge of a square that let visitors walk straight into a neighbour's site. Traffic is starting to flow along those paths: as of today, signpost links have been clicked &lt;strong&gt;2,005 times&lt;/strong&gt;. Someone lands on one blog, wanders to the signpost, and ends up somewhere they would never have found on their own. That is exactly the kind of small-web wandering we hoped for.&lt;/p&gt;
&lt;p&gt;We only recently started counting clicks on the map itself, to see how much traffic it sends to each town. In just a couple of days, we have already recorded &lt;strong&gt;300 clicks&lt;/strong&gt;. People are opening the map, poking around, and finding TownSquares they did not know existed, all over the world.&lt;/p&gt;
&lt;h2&gt;When the squares got busy&lt;/h2&gt;
&lt;p&gt;We had a few very busy days. The public demo on the landing page and the square on &lt;a href="https://cauenapier.com/"&gt;cauenapier.com&lt;/a&gt; both filled up. TownSquare hit the &lt;strong&gt;Hacker News front page&lt;/strong&gt; three times across two weekends. Lots of people showed up at once, discovered TownSquare, played around, and seemed to be having a genuinely good time.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Impromptu HackerNews Meeting" src="https://townsquare.cauenapier.com/blog/images/quote_2.png"&gt;
&lt;em&gt;Imprompty HackerNews friendly meeting&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Not everyone was there in good faith. Some visitors were just poking at the system, testing limits, probing moderation, spamming chat, being rude. That comes with the territory when a big crowd shows up at once. We also had to fight off hordes of bots, and we learned a lot about keeping them out along the way.&lt;/p&gt;
&lt;p&gt;We are really sorry to the kind people who joined during those spikes and had to wade through all of that to find the fun. Since then, we have added moderation tools and put site owners in charge of how their square is run. You can decide what gets filtered, who gets blocked, and how strictly they want to keep things. Painful weekend to live through, but every TownSquare is a bit safer today because of it.&lt;/p&gt;
&lt;h2&gt;Kind words from around the web&lt;/h2&gt;
&lt;p&gt;We have been quietly delighted by a few mentions lately.&lt;/p&gt;
&lt;h3&gt;Blog posts and new squares&lt;/h3&gt;
&lt;p&gt;A few people went further and wrote their own take, or added a square to their site:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.densediscovery.com/issues/395"&gt;&lt;strong&gt;Dense Discovery&lt;/strong&gt;&lt;/a&gt; — issue #395&lt;/li&gt;
&lt;li&gt;&lt;a href="https://manualdousuario.net/links-legais-20260618/"&gt;&lt;strong&gt;Manual do Mundo&lt;/strong&gt;&lt;/a&gt; - Links legais da semana (Brazilian website)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bongotwisty.codeberg.page/townsquare/"&gt;&lt;strong&gt;Bongo Twisty&lt;/strong&gt;&lt;/a&gt; — I added "TownSquare" to my blog&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.newsonaut.com/articles/this-way-to-the-town-square"&gt;&lt;strong&gt;Newsonaut&lt;/strong&gt;&lt;/a&gt; — This way to the town square&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thinkroot.xyz/townsquare-cand-nu-esti-singur-pe-pagina-278"&gt;&lt;strong&gt;ThinkRoot&lt;/strong&gt;&lt;/a&gt; — TownSquare: când nu ești singur pe pagină&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kevquirk.com/town-square"&gt;&lt;strong&gt;Kev Quirk&lt;/strong&gt;&lt;/a&gt; — Adding a Town Square&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.peteashton.com/2026/06/18/notes-and-links-from-thur.html"&gt;&lt;strong&gt;Pete Ashton&lt;/strong&gt;&lt;/a&gt; — Notes and links from Thur 18 June&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fantinel.dev/cool-links/townsquare-a-tiny-presence-layer-for-websites/"&gt;&lt;strong&gt;Matt Fantinel&lt;/strong&gt;&lt;/a&gt; — "This is so cool!"&lt;/li&gt;
&lt;li&gt;&lt;a href="https://kiko.io/post/TownSquare-Chatting-with-Strangers/?ref=labnotes.org"&gt;&lt;strong&gt;Kiko.io&lt;/strong&gt;&lt;/a&gt; - TownSquare - Chatting with Strangers&lt;/li&gt;
&lt;li&gt;&lt;a href="https://labnotes.org/weekend-reading-its-gettin-hot-in-here/"&gt;&lt;strong&gt;Lab Notes&lt;/strong&gt;&lt;/a&gt; - Weekend Reading — It's gettin' hot in here …&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hackingcreativitypodcast.substack.com/p/dopo-444-episodi-ci-prendiamo-una"&gt;&lt;strong&gt;Hacking Creativity Podcast&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Link roundups and discussions&lt;/h3&gt;
&lt;p&gt;Newsletters, link blogs, and forums that passed TownSquare along:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kottke.org/26/06/0049203-cool-feature-where-people"&gt;&lt;strong&gt;kottke.org&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lobste.rs/s/gdwaqt/town_square_community_deserves"&gt;&lt;strong&gt;Lobsters&lt;/strong&gt;&lt;/a&gt; — Lobsters Repost&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.ycombinator.com/item?id=48608570"&gt;&lt;strong&gt;Hacker News&lt;/strong&gt;&lt;/a&gt; — first discussion that hit frontpage&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discourse.32bit.cafe/t/town-square/4708"&gt;&lt;strong&gt;32-Bit Café&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wrote about TownSquare somewhere we missed? &lt;a href="mailto:contact@cauenapier.com"&gt;Get in touch&lt;/a&gt; and we will add you to this list.&lt;/p&gt;
&lt;p&gt;If you linked your town to a neighbour, or just stopped by to say hello in someone's square, thank you. This project only works because people are willing to make their sites feel a little more inhabited.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Kind words online" src="https://townsquare.cauenapier.com/blog/images/quote_3.png"&gt;&lt;/p&gt;
&lt;h2&gt;A cousin on another planet&lt;/h2&gt;
&lt;p&gt;Not everyone is building the same kind of square and that is part of the fun.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://promenade.cruma.io/"&gt;The Promenade&lt;/a&gt; took the TownSquare idea, rewrote it for their own site, and ran with it. Jetpacks. Tents. A bunch of other touches we had not thought of. But the part that really stopped us in our tracks is how visitors interact with the page itself: characters can walk across the actual text, hop between headings, and treat the paragraphs like solid ground. It is an awesome idea, and the implementation is brilliant.&lt;/p&gt;
&lt;p&gt;It feels like the first TownSquare on another planet. Different from ours, but clearly sharing the same genetics. Go take a stroll.&lt;/p&gt;
&lt;h2&gt;What is next&lt;/h2&gt;
&lt;p&gt;We are still building in the open. More towns are being founded daily, more signposts are going up, and we have a few features in the works that we will share here as they land.&lt;/p&gt;
&lt;p&gt;In the meantime: &lt;a href="https://townsquare.cauenapier.com/register"&gt;add a square to your site&lt;/a&gt;, &lt;a href="https://townsquare.cauenapier.com/map"&gt;explore the map&lt;/a&gt;, or &lt;a href="https://townsquare.cauenapier.com/docs"&gt;read the docs&lt;/a&gt; if you want to see what all the waving is about.&lt;/p&gt;
&lt;p&gt;See you in the square.&lt;/p&gt;</content><category term="News"/><category term="townsquare"/><category term="milestone"/><category term="community"/></entry><entry><title>A tiny "who's here" counter for your pages</title><link href="https://townsquare.cauenapier.com/blog/posts/presence-counter/" rel="alternate"/><published>2026-06-29T21:40:00+01:00</published><updated>2026-06-29T21:40:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-06-29:/blog/posts/presence-counter/</id><summary type="html">&lt;p&gt;A lightweight "N people here" badge you can drop on any page. It links to your town square without loading the whole square.&lt;/p&gt;</summary><content type="html">&lt;p&gt;The full town square is lovely, but it isn't right for every page. On a busy
article, a checkout, or a docs page, you might not want a whole animated scene.
You just want a small nudge that says &lt;em&gt;other people are around right now&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;So there's now a tiny counter for exactly that: a little &lt;strong&gt;"N people here"&lt;/strong&gt;
badge you can drop anywhere. Click it, and it takes you to the square.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Presence Counter" src="https://townsquare.cauenapier.com/blog/images/counter_sample.png"&gt;&lt;/p&gt;
&lt;h2&gt;What it does&lt;/h2&gt;
&lt;p&gt;The counter is a small pill that shows how many people are currently in your town square. It's deliberately minimal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;One line to add.&lt;/strong&gt; No stylesheet, no extra setup. Just a script and a &lt;code&gt;div&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Featherweight.&lt;/strong&gt; It doesn't load the square or open a live connection. It
  simply asks the server "how many people are here?" every now and then.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It links to the square.&lt;/strong&gt; Click it and it scrolls to the full square if one
  is on the same page, or sends the visitor to your square's page if it isn't.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because it never joins the square itself, putting the counter on a page does
&lt;strong&gt;not&lt;/strong&gt; add a phantom visitor or inflate the number. The count only ever reflects
people who actually have the square open.&lt;/p&gt;
&lt;h2&gt;One square, counted everywhere&lt;/h2&gt;
&lt;p&gt;Your town square is shared across your whole site, not tied to a single page.
Everyone with the square open, on any page, is in the same square.&lt;/p&gt;
&lt;p&gt;That's what makes the counter useful. You can put the badge on your busiest pages
and the full square on a dedicated page, and the badge still shows the real,
live total. Same number wherever it appears.&lt;/p&gt;
&lt;h2&gt;How to add it&lt;/h2&gt;
&lt;p&gt;Open your &lt;a href="/admin"&gt;admin page&lt;/a&gt; and find the &lt;strong&gt;Presence counter&lt;/strong&gt; section. Pick
a style, copy the snippet, and paste it wherever you want the badge to show.&lt;/p&gt;
&lt;p&gt;If the full square lives on the same page, leave the town square page field
blank. The counter will just scroll to it. Set that field only when the badge
sits on a page without the square, like a blog post or a site-wide footer.&lt;/p&gt;
&lt;p&gt;That's the whole thing. The badge follows your page's light and dark mode on its
own. If you want to restyle it further, override the CSS variables on the
&lt;code&gt;.ts-counter&lt;/code&gt; element. The admin page lists the ones you can tweak.&lt;/p&gt;
&lt;h2&gt;Where it shines&lt;/h2&gt;
&lt;p&gt;A few places the counter feels right:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The top of a blog post, linking down to a square at the bottom.&lt;/li&gt;
&lt;li&gt;A sidebar or footer on every page, pointing to one shared square.&lt;/li&gt;
&lt;li&gt;Anywhere the full scene would be too much, but a quiet "you're not alone here"
  still belongs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you've already got a square running, it takes about a minute to add.&lt;/p&gt;</content><category term="Guides"/><category term="townsquare"/><category term="counter"/><category term="presence"/></entry><entry><title>A few small add-ons for your square</title><link href="https://townsquare.cauenapier.com/blog/posts/plus-addons/" rel="alternate"/><published>2026-06-29T00:00:00+01:00</published><updated>2026-06-29T00:00:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-06-29:/blog/posts/plus-addons/</id><summary type="html">&lt;p&gt;Optional extras for TownSquare Supporters — hats, wandering cats, Telegram pings, and a livestream overlay.&lt;/p&gt;</summary><content type="html">&lt;p&gt;TownSquare stays small on purpose. The core square — presence, walking around, a bit of chat — is the same for everyone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Supporter&lt;/strong&gt; access is a handful of optional add-ons for people who want a little more personality in their square. Nothing essential. Just small, fun extras you can turn on from your admin page.&lt;/p&gt;
&lt;h2&gt;Hats&lt;/h2&gt;
&lt;p&gt;Put a hat on yourself, or on visitors.&lt;/p&gt;
&lt;div class="prose-images"&gt;
  &lt;img src="https://townsquare.cauenapier.com/blog/images/top_hat.png" alt="Top hat" /&gt;
  &lt;img src="https://townsquare.cauenapier.com/blog/images/party_hat.png" alt="Party hat" /&gt;
  &lt;img src="https://townsquare.cauenapier.com/blog/images/halo_hat.png" alt="Halo" /&gt;
&lt;/div&gt;

&lt;p&gt;You can give every visitor the same hat, or pick one person and crown them for the visit. Top hat, party hat, or halo — your call.&lt;/p&gt;
&lt;h2&gt;Cats&lt;/h2&gt;
&lt;p&gt;A cat can wander through your square while people are around.&lt;/p&gt;
&lt;div class="prose-images"&gt;
  &lt;img src="https://townsquare.cauenapier.com/blog/images/cat_black.png" alt="Black cat" /&gt;
  &lt;img src="https://townsquare.cauenapier.com/blog/images/cat_ginger.png" alt="Ginger cat" /&gt;
&lt;/div&gt;

&lt;p&gt;Black, grey, ginger, or brown. They show up when the square is active and wander off when it goes quiet.&lt;/p&gt;
&lt;h2&gt;Telegram notifications&lt;/h2&gt;
&lt;p&gt;If you are away from your site but still want to know when someone stops by, you can forward chat messages to a Telegram chat. Handy when your square is quiet and a single "hello" is worth noticing.&lt;/p&gt;
&lt;h2&gt;Livestream overlay&lt;/h2&gt;
&lt;p&gt;Put your live TownSquare into a streaming overlay using a browser-source URL. The overlay is watch-only, so it does not add an extra active visitor, and it includes background options for transparent overlays or chroma-key setups.&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Add-ons&lt;/strong&gt; in your admin page, configure the overlay, and copy the URL. See the &lt;a href="/blog/posts/livestream-overlay/"&gt;setup guide&lt;/a&gt; for a walkthrough; it uses OBS as an example, but any streaming tool that supports browser sources should work the same way.&lt;/p&gt;
&lt;p&gt;All of these live in the &lt;strong&gt;Add-ons&lt;/strong&gt; tab in your admin page once Supporter access is enabled for your site.&lt;/p&gt;
&lt;h2&gt;More on the way&lt;/h2&gt;
&lt;p&gt;This is just the start — more add-ons are coming. If you have an idea for something new, or a small customization that would make your square feel more like yours, &lt;a href="https://buymeacoffee.com/cauenapier"&gt;send me a message&lt;/a&gt;. I would love to hear it.&lt;/p&gt;
&lt;h2&gt;How to get Supporter&lt;/h2&gt;
&lt;p&gt;TownSquare is a side project I run in my spare time. Supporter access is my way of saying thank you to people who &lt;a href="https://buymeacoffee.com/cauenapier"&gt;support it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have already chipped in, send me a note and I will enable Supporter access for your site. There is no automated checkout flow, just a small thank-you for helping keep the lights on.&lt;/p&gt;
&lt;p&gt;The Guest Notes board is now part of &lt;strong&gt;Supporter&lt;/strong&gt;, alongside the add-ons listed above.&lt;/p&gt;
&lt;p&gt;If you have questions about any of the add-ons, &lt;a href="https://buymeacoffee.com/cauenapier"&gt;drop me a line&lt;/a&gt;.&lt;/p&gt;</content><category term="News"/><category term="townsquare"/><category term="supporter"/><category term="addons"/></entry><entry><title>Town Highlight #1: Low Sound</title><link href="https://townsquare.cauenapier.com/blog/posts/town-highlight_1/" rel="alternate"/><published>2026-06-20T00:00:00+01:00</published><updated>2026-06-20T00:00:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-06-20:/blog/posts/town-highlight_1/</id><summary type="html">&lt;p&gt;A visit to Low Sound, a personal blog by Toronto-based developer Omar. We talk about the early web, homelabs, cycling across Canada, game engine development, beloved pets, and why having a small corner of the internet still matters.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Our reporter recently visited a quiet town square somewhere on the web. A peaceful park filled with beautiful trees, comfortable benches, and birds drifting overhead.&lt;/p&gt;
&lt;p&gt;Nestled among trees and lined with inviting benches, &lt;a href="https://lowsound.dev"&gt;Low Sound&lt;/a&gt; feels like the sort of place you stumble upon while wandering and end up staying longer than planned. Visitors can often be found sitting quietly, watching the world go by while birds drift overhead.&lt;/p&gt;
&lt;p&gt;Behind this town square is Omar, a web developer from Toronto, Canada. We sat down with him to learn more about Low Sound, the stories behind it, and what visitors might discover during their stay.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Town Highlight - Low Sound" src="https://townsquare.cauenapier.com/blog/images/highlight_post_1.png"&gt;&lt;/p&gt;
&lt;h2&gt;The Interview&lt;/h2&gt;
&lt;h3&gt;1. Tell us about yourself. Who are you?&lt;/h3&gt;
&lt;p&gt;My name is Omar. I'm a web developer from Toronto, Canada and I work for the municipal government here where I build tools for the Transportation division's engineers and urban planners. Besides my job (which I absolutely love), I spend most of my life hanging out with my partner, Geetha and our dog, Gobi. I love to read, listen to records, and explore the small web.&lt;/p&gt;
&lt;h3&gt;2. What is Low Sound?&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://lowsound.dev"&gt;lowsound.dev&lt;/a&gt; is just my personal blog. It's a place for me to just be me and to write about things that I'm thinking about. Right now I'm a bit sad about certain things about life and so I think my posts really reflect that. They're definitely being infused with that sadness and a bit of the rage that I have at the state of the world, but I don't think that's all of who I am :)&lt;/p&gt;
&lt;h3&gt;3. Why did you create it?&lt;/h3&gt;
&lt;p&gt;It's a way for me to stake my claim on a piece of the internet. I'm a millennial who was around when the internet started proliferating in regular people's lives and I remember the joy of exploring the unknown and stumbling upon some random person's website. I just thought it was so cool that you could put something personal up there and that someone could actually find it and read it. It's always been a thing that I've wanted, to put something up there that says "I exist and I'm here. Welcome to this space. Please enjoy the unhinged ranting."&lt;/p&gt;
&lt;h3&gt;4. What can visitors find here?&lt;/h3&gt;
&lt;p&gt;For the most part just pieces about my life. I've written about my old cat, Max. There's also a piece about my dog, Gobi. Also, I'm really into the homelab life so I've got one post about one service I run at home but I'll likely do more on that because you know the home-server folks, we love talking about it.&lt;/p&gt;
&lt;p&gt;I also do a lot of ranting about the state of the world but I'm not an astute political commentator. I'm just a frustrated person that needs space to scream into the void and so I use this website to do that.&lt;/p&gt;
&lt;h3&gt;5. What are you currently working on?&lt;/h3&gt;
&lt;p&gt;For the blog I'm working on a large post about a huge cycling trip that I did ten years ago. I've biked across Canada (coast-to-coast) and I have tons of pictures and stories about it and the post has been a draft that I occasionally look at to add to for some time now. It's overwhelming because it's actually just too big and so I may do it in the style of a diary in multiple parts.&lt;/p&gt;
&lt;p&gt;With respect to non-blog stuff, I'm trying (through a variety of sources) to learn about game engine development. I've always been a big fan of the classic point and click adventure games (think Lucasarts or Sierra) and I have ideas for a grand project that starts with a custom engine. I know there are obviously existing game engines that I could use but the point for me is to learn about the whole thing and build something new. The goal isn't to create some blockbuster game but more about just learning how it all works and creating my love letter to the genre. So this is going to take some time but it's super fun and learning new things excites me. And maybe one day the game I'm dreaming of will be real.&lt;/p&gt;
&lt;h3&gt;6. What is something you're excited about right now?&lt;/h3&gt;
&lt;p&gt;Definitely learning about game engines and all that is exciting to me. It's also quite daunting but I love digging into new things.&lt;/p&gt;
&lt;p&gt;Besides that, I'm very excited about finding places like Townsquare and Bubbles. There's still quite a thriving network of blogs and fun internet spaces that are removed from the extremely corporate internet that are just more interesting to me.&lt;/p&gt;
&lt;h3&gt;7. If someone only reads one thing on your site, what should it be?&lt;/h3&gt;
&lt;p&gt;Please read my post about my cat Max. He was such a lovely little man and I love talking about him.&lt;/p&gt;
&lt;h3&gt;8. What inspired the name "Low Sound"?&lt;/h3&gt;
&lt;p&gt;When I was in high school, my friends and I had a band in which I played the bass guitar. This was also around the time that MSN Messenger was huge. In honour of being the low-end of the rhythm section of the band my messenger nickname was 'lowsound'. And it's just stuck. I use the moniker for most of my online life.&lt;/p&gt;
&lt;h3&gt;9. What corner of the internet do you wish more people knew about?&lt;/h3&gt;
&lt;p&gt;I just discovered Crucial Tracks and I think it's so cool. It's a music focused social media where you post a song a day and a little blurb about that song. You can use prompts that they've got for some inspiration or just post about a song that's on your mind that day. Commenting and discussion happens on Mastodon via an integration if you choose, so the actual crucial tracks feed is quite uncluttered and nice. There's just people posting music that they love or have some memory of, why they posted it, and that's really it.&lt;/p&gt;
&lt;h3&gt;10. Any message for travelers passing through your town square?&lt;/h3&gt;
&lt;p&gt;I promise I'm not always as angry as my more recent posts may lead you to believe. I actually think I'm an optimist, but life is a bit tough these days, and coupled with how grim the world seems sometimes, I'm a bit more enraged than usual. This is what I love about having my blog though, I get to scream out into the open and just let it all out.&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;The Town Square Gazette provides a place for residents to share their thoughts and stories. Opinions expressed in interviews belong to their respective authors and do not necessarily reflect the views of the Town Square team.&lt;/p&gt;
&lt;/blockquote&gt;</content><category term="News"/><category term="town highlight"/><category term="community"/></entry><entry><title>Welcome to The Town Square Gazette</title><link href="https://townsquare.cauenapier.com/blog/posts/welcome/" rel="alternate"/><published>2026-06-19T00:00:00+01:00</published><updated>2026-06-19T00:00:00+01:00</updated><author><name>TownSquare</name></author><id>tag:townsquare.cauenapier.com,2026-06-19:/blog/posts/welcome/</id><summary type="html">&lt;p&gt;A place for release notes, implementation details, and ideas about making the web feel inhabited.&lt;/p&gt;</summary><content type="html">&lt;p&gt;TownSquare gives every website a small shared place where visitors can see one
another, walk around, and talk. The Town Square Gazette is where we will share what we learn
while building it.&lt;/p&gt;
&lt;p&gt;Expect practical notes about presence on the web, details behind new features,
and occasional looks at the decisions that keep TownSquare small and easy to
add to a site.&lt;/p&gt;
&lt;p&gt;If you want to try it now, &lt;a href="/register"&gt;add TownSquare to your site&lt;/a&gt; or read the
&lt;a href="/docs"&gt;documentation&lt;/a&gt;.&lt;/p&gt;</content><category term="News"/><category term="townsquare"/><category term="community"/></entry></feed>