I decided to show a little love to my venue pages after reading Tantek’s post about venues and reviews.

As part of keeping track of the events I attend, I create a venue page and link the event to it. The venue page previously would only show the name, address, and link. I updated it to also show a list of past events so it’s easier to see at a glance and navigate between them.

Example: Soda Bar, San Diego, CA

I decided to show a little love to my venue pages after reading Tantek’s post about venues and reviews.

As part of keeping track of the events I attend, I create a venue page and link the event to it. The venue page previously would only show the name, address, and link. I updated it to also show a list of past events so it’s easier to see at a glance and navigate between them.

Example: Soda Bar, San Diego, CA

Here’s my latest blog post on setting up Vouch Proxy to add OAuth to your website and services using #Google.

https://lifeofpablo.com/blog/setting-up-vouch-proxy-using-nginx

#vouch #vouchproxy #sso #oauth #blog #indieweb #tech #opensource

Here's my latest blog post on setting up Vouch Proxy to add OAuth to your website and services using #Google.

https://lifeofpablo.com/blog/setting-up-vouch-proxy-using-nginx

#vouch #vouch-proxy #sso #oauth #blog #indieweb #tech #opensource

🌱 I have long been a fan of @Foursquare.com and @Swarmapp.com, having created many venues, posted many tips, and (checks profile) over 45,000 checkins. I recently joined @happycow.net and before I start posting new vegan (friendly) venues or reviews there, I really need to figure out my own personal site venue pages (including URL design) and review posts design and authoring workflow.

I’m pretty sure I can and should post h-review posts as a variant of articles (with usual h-entry markup) with an explicit article name, since most review destinations request a title (name) for the review (e.g. HappyCow, TripAdvisor), and for others with only review text (e.g. Google Maps), I can include the name at the start.

Different review destinations have different text requirements (minimum and/or maximum lengths), and I’ll take time to document those first.

The first destination I’ll likely try automatically syndicating to is a site created by #IndieWeb community member @jamesg.blog (@capjamesg@indieweb.social): @breakfastand.coffee

It’s still quite new, but the thing that makes Breakfast & Coffee innovative and unique is that it encourages you to post your venue (e.g. cafe) description or review on your own site with a meaningful slug, link to https://breakfastand.coffee/ and then send a Webmention to indicate that you’d like to syndicate your venue or review into Breakfast & Coffee, like into an aggregator.

Before I get to that point however, I feel there’s quite a few challenges in publishing a “decent” restaurant / cafe venue page, because there really is a dearth of good examples of doing so with simple semantic HTML + CSS. You really don’t need JS to post info about a restaurant.

Setting aside the economic / intermediation challenges of "delivery apps" for now, people really want a few simple things from a restaurant site / page that could all be marked up with simple semantic HTML (thus resulting in good web search rankings) and styled in a quickly readable and mobile-friendly way.

* hours open (perhaps kitchen hours if different)
* location (address that links to a map UI or map embed w/o cookies/tracking)
* nearest bus/tram/rail stop
* payment restrictions (e.g. if only cash, or only credit) or options if you prefer
* contact info (including a note about catering if that’s an option)
* links to social media profiles
* links to restaurant review sites/aggregator pages (e.g. venue permalink on Google Maps, TripAdvisor, Foursquare, Swarm, HappyCow)
* menu with item name, description, price, optional-thumbnail, and dietary/allergy notations

No you really don’t need the full mess of made-up things at schema-org.

The community at OpenStreetMap has done A LOT (most? nearly all?) of the work figuring out the ways to express the above types of information, e.g.:

https://wiki.openstreetmap.org/wiki/Key:opening_hours

Yet has anyone actually seen a simple semantic HTML page that publishes this kind of information?

I’ve web searched many search terms and phrases and found nothing good.

Stylistically dated templates for sale. Examples with numerous unnecessary scripts (no your typical user does not care about your clever animated 3D-carousel of pretty photos, certainly not waiting for a megabyte of framework scripts for it). Something built on Bootstrap, unnecessary for today’s mobile-friendly HTML+CSS.

I did find one (ONE) blog post from 2007 (those were the days) for semantic markup for a restaurant menu: https://jonchristopher.us/blog/a-semantic-breakdown-of-restaurant-menus/

Unless I find an existing solution soon, I’m going to create something from scratch with h-card (since a restaurant is an organization / venue) and add semantic HTML & class names for various fields, re-using from OpenStreetMap Keys whenever possible.

That leaves the URL design, where to publish my restaurant pages on my own site, and rather than rethink it, I will likely go with what I decided in my Whistle short URL design¹ many years ago, which is /v/ at the top level of my site, followed by a slug of my short name for the venue. This way I can play with static HTML pages there, with a shared style sheet in that same directory, without impacting anything else on my site.

I have some other thoughts around iconography for various diet preferences / allergen warnings for menu items that I’ve tried (or considered), though perhaps I’ll leave those for another post.

Or maybe I’ll braindump them now, however incomplete, to see if they resonate or anyone has better suggestions (restaurants and menus really have no standard for these)

🌱 vegan & gluten-free
🌱🌾 vegan + gluten
🌱🥜 vegan + nuts
🌱🍫 vegan + chocolate
🌱🍯 vegetarian (has honey)
🌱🧈 vegetarian (has butter)
🌱🥛 vegetarian (has milk, cream, or yogurt)
🌱🧀 vegetarian (has cheese)
🌱🥚 vegetarian (has egg)

with combinations as necessary.

For example, a breakfast sandwich at Devil’s Teeth Bakery²:
* Regular Breakfast Sandwich (no bacon!) $10.00 🌱🌾🧈🧀🥚

Or a chocolate croissant at Arsicault³:
* Chocolate Croissant $5.75 🌱🌾🧈🍫

Non-vegetarian items would omit the plant 🌱 icon/emoji, but could still include allergen icons.

If you are posting restaurants (or any other venues) to your personal site, please add a few of their permalinks to the IndieWeb Examples here: https://indieweb.org/venue#Indieweb_Examples


This is day 40 of #100DaysOfIndieWeb. #100Days

← Day 39: https://tantek.com/2023/112/t2/account-migration-post-blog-archive-format
→ 🔮


Glossary

article
 https://indieweb.org/article
checkin
 https://indieweb.org/checkin
h-card
 https://microformats.org/wiki/h-card
h-entry
 https://microformats.org/wiki/h-entry
h-review
 https://microformats.org/wiki/h-review
POSSE
 https://indieweb.org/POSSE
review
 https://indieweb.org/review
URL design
 https://indieweb.org/URL_design
venue
 https://indieweb.org/venue

References

¹ https://tantek.com/w/Whistle#design
² https://www.devilsteethbakingcompany.com/menu
³ https://arsicault-bakery.com/menus
🌱 I have long been a fan of @Foursquare.com and @Swarmapp.com, having created many venues, posted many tips, and (checks profile) over 45,000 checkins. I recently joined @happycow.net and before I start posting new vegan (friendly) venues or reviews there, I really need to figure out my own personal site venue pages (including URL design) and review posts design and authoring workflow.

I’m pretty sure I can and should post h-review posts as a variant of articles (with usual h-entry markup) with an explicit article name, since most review destinations request a title (name) for the review (e.g. HappyCow, TripAdvisor), and for others with only review text (e.g. Google Maps), I can include the name at the start.

Different review destinations have different text requirements (minimum and/or maximum lengths), and I’ll take time to document those first.

The first destination I’ll likely try automatically syndicating to is a site created by #IndieWeb community member @jamesg.blog (@capjamesg@indieweb.social): @breakfastand.coffee

It’s still quite new, but the thing that makes Breakfast & Coffee innovative and unique is that it encourages you to post your venue (e.g. cafe) description or review on your own site with a meaningful slug, link to https://breakfastand.coffee/ and then send a Webmention to indicate that you’d like to syndicate your venue or review into Breakfast & Coffee, like into an aggregator.

Before I get to that point however, I feel there’s quite a few challenges in publishing a “decent” restaurant / cafe venue page, because there really is a dearth of good examples of doing so with simple semantic HTML + CSS. You really don’t need JS to post info about a restaurant.

Setting aside the economic / intermediation challenges of "delivery apps" for now, people really want a few simple things from a restaurant site / page that could all be marked up with simple semantic HTML (thus resulting in good web search rankings) and styled in a quickly readable and mobile-friendly way.

* hours open (perhaps kitchen hours if different)
* location (address that links to a map UI or map embed w/o cookies/tracking)
* nearest bus/tram/rail stop
* payment restrictions (e.g. if only cash, or only credit) or options if you prefer
* contact info (including a note about catering if that’s an option)
* links to social media profiles
* links to restaurant review sites/aggregator pages (e.g. venue permalink on Google Maps, TripAdvisor, Foursquare, Swarm, HappyCow)
* menu with item name, description, price, optional-thumbnail, and dietary/allergy notations

No you really don’t need the full mess of made-up things at schema-org.

The community at OpenStreetMap has done A LOT (most? nearly all?) of the work figuring out the ways to express the above types of information, e.g.:

https://wiki.openstreetmap.org/wiki/Key:opening_hours

Yet has anyone actually seen a simple semantic HTML page that publishes this kind of information?

I’ve web searched many search terms and phrases and found nothing good.

Stylistically dated templates for sale. Examples with numerous unnecessary scripts (no your typical user does not care about your clever animated 3D-carousel of pretty photos, certainly not waiting for a megabyte of framework scripts for it). Something built on Bootstrap, unnecessary for today’s mobile-friendly HTML+CSS.

I did find one (ONE) blog post from 2007 (those were the days) for semantic markup for a restaurant menu: https://jonchristopher.us/blog/a-semantic-breakdown-of-restaurant-menus/

Unless I find an existing solution soon, I’m going to create something from scratch with h-card (since a restaurant is an organization / venue) and add semantic HTML & class names for various fields, re-using from OpenStreetMap Keys whenever possible.

That leaves the URL design, where to publish my restaurant pages on my own site, and rather than rethink it, I will likely go with what I decided in my Whistle short URL design¹ many years ago, which is /v/ at the top level of my site, followed by a slug of my short name for the venue. This way I can play with static HTML pages there, with a shared style sheet in that same directory, without impacting anything else on my site.

I have some other thoughts around iconography for various diet preferences / allergen warnings for menu items that I’ve tried (or considered), though perhaps I’ll leave those for another post.

Or maybe I’ll braindump them now, however incomplete, to see if they resonate or anyone has better suggestions (restaurants and menus really have no standard for these)

🌱 vegan & gluten-free
🌱🌾 vegan + gluten
🌱🥜 vegan + nuts
🌱🍫 vegan + chocolate
🌱🍯 vegetarian (has honey)
🌱🧈 vegetarian (has butter)
🌱🥛 vegetarian (has milk, cream, or yogurt)
🌱🧀 vegetarian (has cheese)
🌱🥚 vegetarian (has egg)

with combinations as necessary.

For example, a breakfast sandwich at Devil’s Teeth Bakery²:
* Regular Breakfast Sandwich (no bacon!) $10.00 🌱🌾🧈🧀🥚

Or a chocolate croissant at Arsicault³:
* Chocolate Croissant $5.75 🌱🌾🧈🍫

Non-vegetarian items would omit the plant 🌱 icon/emoji, but could still include allergen icons.

If you are posting restaurants (or any other venues) to your personal site, please add a few of their permalinks to the IndieWeb Examples here: https://indieweb.org/venue#Indieweb_Examples


This is day 40 of #100DaysOfIndieWeb. #100Days

← Day 39: https://tantek.com/2023/112/t2/account-migration-post-blog-archive-format
→ 🔮


Glossary

article
 https://indieweb.org/article
checkin
 https://indieweb.org/checkin
h-card
 https://microformats.org/wiki/h-card
h-entry
 https://microformats.org/wiki/h-entry
h-review
 https://microformats.org/wiki/h-review
POSSE
 https://indieweb.org/POSSE
review
 https://indieweb.org/review
URL design
 https://indieweb.org/URL_design
venue
 https://indieweb.org/venue

References

¹ https://tantek.com/w/Whistle#design
² https://www.devilsteethbakingcompany.com/menu
³ https://arsicault-bakery.com/menus
#IndieWeb #100DaysOfIndieWeb #100Days

Why Micro.blog is supporting Bluesky now

Mastodon to Blog Archive script

@rmdes As the name of my instance shows, am a giant #Indieweb fan, and yes #POSSE for the win.

@anildash @maegul

The #indieweb developer in me loves that. I am not sure why we would need much of the other BlueSky complexity to adapt that feature to ActivityPub based systems…

@mookie @spreadmastodon @davidslifka

Thanks Steve: it is a start and much more in May!

Appreciate the encouragement! Hope to bring the most broad set of #indieweb, #openweb, snd #fediverse advocates possible to #TakeBackSocial ….and can use your help!

@spreadmastodon@mastodon.social it is one of the more amazing examples of emergent distributed alignment that I have seen. There is so much overlap across efforts, principles¹, and goals that it makes sense that we are finding ways of making things seamlessly work together at the edges.

I also see a common desire for enabling more user-owned use of and creating for the web, independent of big corporate ownership (or control), and without any reliance or need for surveillance capitalism.

#Fediverse #IndieWeb #Mastodon #OpenWeb #SpreadMastodon projects do not depend on tracking & profiling users for targeted advertising.

A better web is possible.

¹ https://indieweb.org/principles
#Fediverse #IndieWeb #Mastodon #OpenWeb #SpreadMastodon
@maegul@hachyderm.io @torb@octodon.social #BlueSky is a fascinating experiment to watch, and if there’s one thing we’ve learned from all the work on decentralized/federated social web systems over the past 13+ years (certainly since the first Federated Social Web Summit¹), there’s LOTS of room for and benefits to many folks working on solving many hard problems in parallel, even if with totally different approaches, which can learn from each other.

We learned this lesson in the #W3C Social Web Working Group².

Also a key reason the #IndieWeb community adopted a core principle of Plurality³.

I have a lot of sympathy for "so many non-techies bounce off Mastodon because it’s just too technically difficult for them", it’s one of the reasons I send most folks directly to https://micro.blog/ — it supports following / #federating with #Mastodon, and it supports core IndieWeb W3C standards like Webmention and Micropub.

Regarding what portability requires, I for one disagree that account or post portability needs "signed data repositories and DIDs". I believe that cooperative server-to-server portability can be achieved without it, and frankly, if you‘re wanting to design for uncooperative servers, what expectation can you have that they’ll support any standards or interop whatsoever?

Beyond Mastodon-to-Mastodon account migration, we already have Mastodon-to-BridgyFed (IndieWeb) and Mastodon - to - Micro.blog, and I expect we’ll see that grow to include all directions of all combinations thereof.

I am also optimistic that the “fediverse” will continue evolving various solutions that put users first in different ways, because there are users with different needs.

There’s certainly a current #fediverse hierarchy that puts a lot of power (and burden of responsibility) in the hands of ”server/instance” admins — “feudalverse” was a running joke for a while, reflecting a #federation of instance admin feudal lords and their user serfs.

Ironically, the more that account+posts migration/portability is supported, the more incentive there will be for harmonious and respectful relationships between instance admins and users, so I only see this situation improving in the future.

Long reply summarized: I think the folks innovating at BlueSky are charting interesting waters, the Mastodon development community continues show through improvements that they prioritize users and their identity & data ownership, and the IndieWeb community continues to support & play with those and many other solutions, building bridges between them to interconnect all the things.

Glossary

BridgyFed
 https://fed.brid.gy/
Micropub
 https://indieweb.org/Micropub
Webmention
 https://indieweb.org/Webmention

References

¹ https://indieweb.org/Federated_Social_Web_Summit#Portland_2010
² https://tantek.com/2023/051/t1/five-years-ago-w3c-social-web
³ https://indieweb.org/plurality
https://brid.gy/
https://fed.brid.gy/
https://github.com/snarfed/bridgy-fed/issues/381
#BlueSky #W3C #IndieWeb #federating #Mastodon #fediverse #federation
@spreadmastodon@mastodon.social it is one of the more amazing examples of emergent distributed alignment that I have seen. There is so much overlap across efforts, principles¹, and goals that it makes sense that we are finding ways of making things seamlessly work together at the edges.

I also see a common desire for enabling more user-owned use of and creating for the web, independent of big corporate ownership (or control), and without any reliance or need for surveillance capitalism.

#Fediverse #IndieWeb #Mastodon #OpenWeb #SpreadMastodon projects do not depend on tracking & profiling users for targeted advertising.

A better web is possible.

¹ https://indieweb.org/principles
@maegul@hachyderm.io @torb@octodon.social #BlueSky is a fascinating experiment to watch, and if there’s one thing we’ve learned from all the work on decentralized/federated social web systems over the past 13+ years (certainly since the first Federated Social Web Summit¹), there’s LOTS of room for and benefits to many folks working on solving many hard problems in parallel, even if with totally different approaches, which can learn from each other.

We learned this lesson in the #W3C Social Web Working Group².

Also a key reason the #IndieWeb community adopted a core principle of Plurality³.

I have a lot of sympathy for "so many non-techies bounce off Mastodon because it’s just too technically difficult for them", it’s one of the reasons I send most folks directly to https://micro.blog/ — it supports following / #federating with #Mastodon, and it supports core IndieWeb W3C standards like Webmention and Micropub.

Regarding what portability requires, I for one disagree that account or post portability needs "signed data repositories and DIDs". I believe that cooperative server-to-server portability can be achieved without it, and frankly, if you‘re wanting to design for uncooperative servers, what expectation can you have that they’ll support any standards or interop whatsoever?

Beyond Mastodon-to-Mastodon account migration, we already have Mastodon-to-BridgyFed (IndieWeb) and Mastodon - to - Micro.blog, and I expect we’ll see that grow to include all directions of all combinations thereof.

I am also optimistic that the “fediverse” will continue evolving various solutions that put users first in different ways, because there are users with different needs.

There’s certainly a current #fediverse hierarchy that puts a lot of power (and burden of responsibility) in the hands of ”server/instance” admins — “feudalverse” was a running joke for a while, reflecting a #federation of instance admin feudal lords and their user serfs.

Ironically, the more that account+posts migration/portability is supported, the more incentive there will be for harmonious and respectful relationships between instance admins and users, so I only see this situation improving in the future.

Long reply summarized: I think the folks innovating at BlueSky are charting interesting waters, the Mastodon development community continues show through improvements that they prioritize users and their identity & data ownership, and the IndieWeb community continues to support & play with those and many other solutions, building bridges⁴ between⁵ them⁶ to interconnect all the things.

Glossary

BridgyFed
 https://fed.brid.gy/
Micropub
 https://indieweb.org/Micropub
Webmention
 https://indieweb.org/Webmention

References

¹ https://indieweb.org/Federated_Social_Web_Summit#Portland_2010
² https://tantek.com/2023/051/t1/five-years-ago-w3c-social-web
³ https://indieweb.org/plurality
https://brid.gy/
https://fed.brid.gy/
https://github.com/snarfed/bridgy-fed/issues/381

@tantek.com The #Indieweb, #Openweb and #SpreadMastodon and the #Fediverse efforts are all very clearly cousins in one big movement!

So, I use Netlify’s webmention integration to send webmentions. It took ages to get just right, but it looks like it pings WordPress websites’ xmlrpc.php rather than a webmention endpoint. Makes sense, as xmlrpc.php will always exist, except there’s less chance your webmention will actually appear 🤷‍♂️



🏷 #indieweb,netlify,webmention
https://www.thisdaysportion.com/notes/more-webmention-woes

One of the pretty neat innovations from #Mastodon has been actual, functional, and fairly reliable (from all accounts I’ve seen) distributed system account migration, with the notable exception of post migration, which has additional challenges worth exploring.

To be clear, as far as I know, no other blogging (or chat) software, system, or even protocol comes close to achieving the level of functionality described in Mastodon’s documentation:

https://docs.joinmastodon.org/user/moving/#migration

In short, moving:
* all your profile information
* moving all your followers & followings, transparently
* redirecting your old account to your new one

More at that link. From the docs, it’s clear that quite a bit of thought & consideration went into the design & implementation.

Once I had setup #BridgyFed to #federate posts from my own site¹, I myself made use of the this Mastodon feature to migrate from my try-it-out @t@xoxo.zone account to my #IndieWeb @tantek.com (move destination handled by BridgyFed).

For me the migration experience was 100%, because I had not posted anything @t@xoxo.zone.

The challenge of post migration is not unique to Mastodon, though I believe it goes beyond “simple” export & import support, which is still a good place to start.

Mastodon has two forms of posts “export” currently:
* RSS feeds, which will get you some number of recent posts, by adding ".rss" to the end of any Mastodon profile URL, e.g. https://indieweb.social/@tchambers.rss
* Activity Streams 2.0 JSON, per https://docs.joinmastodon.org/user/moving/#export (note: it currently says “ActivityPub JSON format”, but there is no such thing, #ActivityPub uses the #ActivityStreams 2.0 JSON format and I’ve filed a PR² to fix this in the docs)

Lots of software & services import RSS, e.g. #WordPress.

As far as I know, nothing (not even Mastodon itself) actually supports importing Activity Streams 2.0.

There is a more complete format (with specification!) for exporting & importing blog content:

Blog Archive Format (.bar), first specified here with example file:
* https://www.manton.org/2017/11/24/blog-archive-format.html
More details and another example file:
* https://www.manton.org/2021/12/27/importing-blog-archive.html

Blog Archive Format has the very nice features of:
* portable HTML feed (h-feed) and JSON Feed
* photos and other media
* locally browsable post archive

Naturally, https://micro.blog/ supports both exporting & importing Blog Archive Format.

There’s an interesting opportunity here for an open source converter
* from Activity Streams 2.0
* to Blog Archive Format

Such a library would make an excellent drop-in addition to any #ActivityPub implementation, allowing both export of posts, and also a browsable archive format, so you could visually double check when importing to another service that these were the old posts you were looking for.

This would be a good first step, using an open standard, towards Mastodon itself supporting post migration³.

Ideally, similar to account migration, the old posts server should also at least:
* redirect old permalinks to the new permalinks
* redirect any replies being delivered by ActivityPub to the new location
* provide #Webmention discovery forwarding from the old URLs to the new URLs (e.g. using HTTP LINK headers)
for some amount of time.

Want to add support for Blog Archive Format or got questions or feedback?

Join in the development conversations: https://chat.indieweb.org/dev


This is day 39 of #100DaysOfIndieWeb. #100Days

← Day 38: https://tantek.com/2023/110/t2/beyond-mastodon-indieweb-own-domain
→ 🔮


Glossary

account migration
 https://indieweb.org/account_migration
blog archive format
 https://indieweb.org/blog_archive_format
h-feed
 https://microformats.org/wiki/h-feed
JSON Feed
 https://www.jsonfeed.org/
post migration
 https://indieweb.org/post_migration
Webmention
 https://indieweb.org/Webmention

References

¹ https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb
² https://github.com/mastodon/documentation/pull/1202
³ https://github.com/mastodon/mastodon/issues/12423
#Mastodon #BridgyFed #federate #IndieWeb #ActivityPub #ActivityStreams #WordPress #Webmention #100DaysOfIndieWeb #100Days
Thanks @Frankc1450@union.place!

In short: using my own #IndieWeb blog and blogging software, which has no length limit.

A bit longer:

I make my posts by writing them in @barebones.com’s excellent BBEdit (@bbedit@mastodon.social) text editor, scp them to my blog, which does all sorts of automatic linking (including #hashtags), embedding, generating of archives, streams, feeds, sequential navigation, etc.

I use #BridgyFed to #federate my posts to #fediverse followers on #Mastodon and other #ActivityPub supporting services. More details on that here: https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb
#IndieWeb #hashtags #BridgyFed #federate #fediverse #Mastodon #ActivityPub
Thanks @Frankc1450@union.place!

In short: using my own #IndieWeb blog and blogging software, which has no length limit.

A bit longer:

I make my posts by writing them in @barebones.com’s excellent BBEdit (@bbedit@mastodon.social) text editor, scp them to my blog, which does all sorts of automatic linking (including #hashtags), embedding, generating of archives, streams, feeds, sequential navigation, etc.

I use #BridgyFed to #federate my posts to #fediverse followers on #Mastodon and other #ActivityPub supporting services. More details on that here: https://tantek.com/2022/301/t1/twittermigration-bridgyfed-mastodon-indieweb