IndieWebCamp January 16-23, 2015

This is an automatically-generated summary of the IndieWebCamp wiki edits from January 16-23, 2015

Table of Contents

New Pages

Changed Pages

New Pages

Getting Started on WordPress

Created by David.shanske.com on January 17


By using a WordPress blog on your own domain, you are already part of the IndieWeb; here is how to get started with upgrading your IndieWeb support in WordPress.

The Indieweb Plugin can help you get set up to be a more active member of the indieweb. Required plugins make receiving indieweb comments and mentions work, recommended plugins further improve the experience.

Once you have these activated, you can setup Bridgy to connect your blog to responses from sites such as Facebook and Twitter too, allowing for a seamless experience.

Contents

Indieweb Plugin

The Indieweb Plugin is a plugin that helps you install various Indieweb-themed plugins. It is designed for newcomers to quickly get up and running.

Plugins

For more information on these plugins, visit the WordPress page on the Indiewebcamp wiki. or click the individual plugin links below.

Send and receive responses with your site

Send and receive comments, likes, reposts, and other kinds of post responses using your own site!

  • Webmention Plugin (Required) - allows you to send and receive by adding webmention support to WordPress. Mentions show up as comments on your site.
  • Semantic Linkbacks (Required) - makes indieweb comments look better on your site.
  • Webmention for (Threaded) Comments - Adds support for threaded comments for webmentions.
  • Post Kinds Plugin - Allows you to reply/like/RSVP etc to another site from your own, by adding support for kinds of posts to WordPress as a custom taxonomy.

Syndicate your content to other sites

Choose one of these different ways to display links for POSSE/syndicated versions of a post. They cannot both be used. Linking to the syndicated version of a post allows for bridgy to be able to discover the post as well as for end users to comment on those sites as a way of replying.

  • Syndication Links - Adds fields to a post to allow manual entry of syndication links
  • WordPress Syndication - automatically adds link to a post from a supported syndication plugin. Fully supports Social, partial support for SNAP, and support for Bridgy Publish

Other

  • Webactions - Adds webactions markup to WordPress elements
  • Indieweb Press-This - Adds Indieweb markup to the WordPressPress-This bookmarklets to allow you to respond on your site with one-click
  • Hum URL Shortener - A personal URL shortener
  • Indieauth - The plugin lets you login to the WordPress backend via IndieAuth. It uses the URL from the profile page to identify the blog user.

For more information, see WordPress Plugins

Themes

Some WordPress themes are compatible with microformats. The Indieweb uses microformats2, the latest version, to mark up sites so that they can be interpreted by other sites when retrieved. Most parsers will fall back onto the older format if available.

Formatting your site so other sites can consume the information allows for the communications Indieweb sites support. For example, a class of u-like-of added to a link to a site you liked to indicates that relationship.

There is only one theme in the WordPress repository that is fully microformats2 compliant. That is Sempress.

For existing themes, you can try out wordpress-uf2, a plugin that tries to add microformats after the fact. Mileage may vary, as a plugin cannot do all that is required.

See Also

Template:AttendeeImage

Created by Ben.thatmustbe.me on January 22


{{{name}}} -

WordPress Security

Created by David.shanske.com on January 18

  • Sun, January 18 david.shanske.com Created page with "== Security and Spam Protection == One of the most important things for new users to do is to properly secure their Wordpress installation. === Usernames === Account names lik..."
  • Sun, January 18 david.shanske.com
  • Sun, January 18 david.shanske.com
  • Sun, January 18 david.shanske.com
  • Sun, January 18 david.shanske.com /* Automatic Upgrades */

One of the most important things for new users to do is to properly secure their Wordpress installation.

Contents

Usernames

Account names like "admin" or "administrator" are popular targets for brute-force login attempts, and should not be used as a username.

Default Settings

Disable registration of new users.

Login Security Plugins

There are many options in this area...

  • WP Fail2Ban logs all login attempts, whether successful or not, to the syslog of the server using LOG_AUTH. If you have server level access, you can act on these logs using Fail2Ban or other software to block IP addresses.
  • IndieAuth for Wordpress allows users to sign in with their domain instead of a username and password.

Spam/Comment Protection

Some individuals may prefer to disable local commenting in favor of only allowing commenting through webmentions. If local commenting is enabled, there should be some form of protection installed.

  • Akismet is a spam protection service by Automattic, the company that runs Wordpress.com and is thus a major contributor/sponsor of the Wordpress open source project. It is free for personal use.
  • Combined together, the webmention and semantic-linkbacks plugins let you accept comments as webmentions from other web sites. They also let you backfeed comments, likes, etc. from social networks by using Bridgy (see further notes below).

Automatic Upgrades

Since Version 3.7, Wordpress supports automatic background updates to alleviate this issue. By default, automatic updates for minor releases and translations are enabled. There are configurable settings to allow major release updates, and updates for specific plugins. ` The Core Automatic Update functionality can also be used to push critical security updates to popular plugins. This was used in April of 2014 when the popular JetPack plugin was discovered to have a critical vulnerability and the developers requested the security update be pushed via the system to all users who had not expressly disabled all updates.

Criticism

WordPress (and often many popular plugins) frequently has security vulnerabilities that are found and exploited in a "zero day" fashion.

Security vulnerabilities are found in many popular pieces of software, as their deployment makes them attractive targets. While there is currently limited options within the core of Wordpress, there are many security plugins that offer protection for Wordpress blogs.

Maintenance Vulnerability

Independents (quite tech smart and capable) who had their WordPress blog(s) hacked due to being unable to keep up with security updates / maintenance (too much of a hassle/chore/tax on their time).

  • Clay Shirky:
  • Dan Brickley
  • Michael.net:
    • WordPress seems to have a non trivial security hole every 6 months and I never have the time to tend to my WP install. The last major problem resulted in my blog being infested with malware and my site blacklisted by google. WordPress is like Windows. It's probably not really less secure than the alternatives but its popularity is such that it makes an attractive target. Most WordPress blogs are configured to ping an update service so hackers have no trouble finding targets. Any IndieWeb solution needs to think about automatic updates and defense in depth security. -- Michael.net
  • ...

WordPress Plugins

Created by David.shanske.com on January 18

  • Sun, January 18 david.shanske.com Created page with "Here are a few more plugins you might want to try. Many require FTP or other more technical setup. * [http://wordpress.org/plugins/hum/ URL Shortener: WP-Hum] * [https://github...."
  • Sun, January 18 david.shanske.com
  • Sun, January 18 david.shanske.com
  • Sun, January 18 david.shanske.com
  • Sun, January 18 david.shanske.com /* Webmention Support */

The WordPress.org repository has over 30,000 plugins. There are more outside of the official repository.

Contents

Webmention Support

semantic-linkbacks.png

Webmentions are also part of the core IndieWeb building-blocks. They let you send and receive replies, likes, etc. directly from your site.

To add webmention support to your WordPress site, install the Webmention Plugin

To further enhance webmentions:

Kinds of Posts

WordPress supports several different ways of organizing data. To support different kinds of posts, you can try the Indieweb Post Kinds plugin.

The Post Kinds adds a taxonomy to the post type in Wordpress allow for posts to be classified as a reply/like/repost etc. This allows archives to be generated for these kinds of posts as well as support to add the appropriate markup. Note: This replaces Indieweb Taxonomy, which is no longer under development. The data is compatible.

POSSE Plugins

Along with personal-domains, POSSE is one of the cornerstones of the IndieWeb. In short, instead of posting to social network silos, you post to your own site and then copy to the silos.

You can POSSE manually, but most people automate it. WordPress has many plugins that do this. A few of the most popular are:

Other plugins that can be used to POSSE:

If you POSSE, it's good practice to include rel-syndication links on your WordPress posts.

You can either try the rel-syndication plugin for that(Currently only supports the Social plugin, the GitHub mainline has minimal support of Tumblr, Twitter and Facebook for NextScripts SNAP ).

Alternatively, the Syndication Links plugin is designed to support manual entry of rel-syndication links. The two are not cross compatible.

Also, if you are writing status updates that will be duplicated in the content share boxes in your edit post screen, there is some handy code here to autofill those share fields to save copy/pasting them from the content WYSIWYG.

If you also want to go the other direction and pull your social network posts and data back to WordPress, there are PESOS plugins too. To start, try Lifestream.

IndieAuth

Once you have WordPress up and running, you'll want to set up support for IndieAuth. You'll need to add the appropriate rel-me link(s) to your homepage.

TheIndieAuth-Links plugin makes this easy, but you can also use Social Media Buttons or a Text Widget to add the needed rel-me link(s). Detail can be found at indieauth.com/setup Once you've done that, head over to indieauth.com and sign in to test that you've set things up appropriately!

You can also add rel-me links to a custom menu by enabling the Link Relationships under Screen Options on the custom menu page.

If you want to support Indieauth for logging into your own site, IndieAuth for Wordpress which allows users to sign in with their domain instead of a username and password.

backfeed

Once you're POSSEing, you may want to pull comments and likes on the social network posts back to your site. This is called backfeed. Many of the POSSE plugins above can do this; see backfeed#WordPress_Plugins for details.

Another option is Bridgy, a service that automatically sends webmentions for activity on your POSSEd posts inside silos (before starting to use Bridgy, make sure you first install the webmention and semantic-linkbacks plugins described below).



Other Indieweb Plugins

Here are a few more plugins you might want to try. Many require FTP or other more technical setup.

Optional plugins

Past or old tech plugins



Criticisms

Many Indieweb Plugins are developed on Github and not pushed or maintained in the official Wordpress.org repository.

While the Indieweb Plugin allows Github repositories to be downloaded and installed, the Indieweb plugin does not support update notifications.

To encourage adoption, more Indieweb plugins should be pushed and regularly updated through the usual means by which WordPress plugins are installed.

ruby parser

Created by Kylewm.com on January 16


The ruby parser is shorthand for the (only?) Ruby microformats2 parser https://github.com/G5/microformats2.

Contents

Issues

The following are critical real-world issues in the ruby parser that have blocked, prevented, or greatly slowed adoption.

Anyone coding indieweb support in ruby is strongly encouraged to prioritize fixing these issues!

Blocking

Nested parsing unsupported

The parser does not cope well with nested h-* structures which are a key building block on the indieweb (e.g. an h-entry with a p-author that is an h-card, or nested h-cites inside an h-entry).

Nested objects are seemingly ignored and their properties are added directly to the parent object which causes unexpected and often breaking false positives[1]

No entities found when tested by Feedbin developer

On 2015-01-15, Tantek submitted an issue to Feedbin suggesting h-feed support. The primary developer was unable to parse h-feeds using the collection.entries field[2]. Have not confirmed whether this is a documentation bug or an actual bug.

Annoying

Convenience methods add confusion

  • Convenience methods for accessing the mf2 data using native methods can be confusing. Things like a method "content" returning the first element in the "content" array and "contents" which returns the array, which then makes things really weird when the property is "published" because you have to use "publisheds"
  • if you don't like those design decisions you can just use the raw data structure by doing parsed.to_hash but that isn't well documented [3]

See Also

WordPress Examples

Created by David.shanske.com on January 18

  • Sun, January 18 david.shanske.com Created page with "=== IndieWeb Examples === In particular, (semi-)active IndieWeb community members using WordPress on their own sites, thus you might find them on [[IRC]] to ask about their exper..."
  • Sun, January 18 david.shanske.com
  • Sun, January 18 david.shanske.com

Contents

IndieWeb Examples

In particular, (semi-)active IndieWeb community members using WordPress on their own sites, thus you might find them on IRC to ask about their experience (or for help).

Other independents using it on their primary site

Using on one of their sites

People using WordPress on a secondary site.

Past Examples

Folks have opted to switch away from WordPress for various reasons (e.g. problems noted above). They seem to switch to one of three options, one indieweb, and two silo.

  • static site generator or some other IndieWeb project
  • silo: WordPress.com hosting service (see below)
  • other silo: e.g. Tumblr (others?)

Switched to another project

There are many folks with personal sites that have kept their personal site and webhost, but switched away from WordPress to another solution, e.g. typically a static site generator:

Many others have switched to Jekyll or are in the process of doing so, e.g.:

Hacker CMS

Created by Tantek.com on January 19




Hacker CMS is a Markdown-based web site editing and publishing app project built on top Jekyll, Ace, and jsTree that can be installed on Sandstorm.

Author:

  • This app was stiched together over the course of one day by Kenton Varda.[1]

Open source:

Contents

IndieWeb support

There doesn't appear to be any support (yet) of various IndieWeb building blocks such as microformats and webmention.

Examples

Example uses of Hacker CMS:

Sandstorm Official Blog

The official Sandstorm.io blog uses Hacker CMS. E.g.

See Also

PDX

Created by Kylewm.com on January 20

  • Tue, January 20 kylewm.com Created page with "{{stub}} <dfn>PDX</dfn> is the airport code for Portland International Airport, and a metonymy for the city of [[Portland|Portland, Oregon]] as a whole."
  • Tue, January 20 kylewm.com specific relation to IndieWebCamp

PDX is the airport code for Portland International Airport, and is often (e.g. in the #indiewebcamp IRC channel) used a metonymy for the city of Portland, Oregon as a whole.

Retrieved from "http://indiewebcamp.com/PDX"

User:Edward.oconnor.cx

Created by Edward.oconnor.cx on January 17


Hi, I'm Ted.

Portland

Created by Kylewm.com on January 20

  • Tue, January 20 kylewm.com Created page with "{{stub}} <dfn>Portland</dfn> (sometimes [[PDX]]) is a city in the US state of Oregon and the site of the [[2011|inaugural IndieWebCamp]]. There is a Portland [[Homebrew Website C..."

Portland (sometimes PDX) is a city in the US state of Oregon and the site of the inaugural IndieWebCamp. There is a Portland Homebrew Website Club meeting every two weeks .

tools

Created by Kodfabrik.se on January 21

  • Wed, January 21 kodfabrik.se First stab at writing down thoughts around tools discoverability



Contents

IndieWeb Discoverability

u-client-id

One way of adding discoverability of tools used to post eg. WebMentions is to add a u-client-id linking to the page of the app and possibly mark up that page using h-x-app.

WebMention endpoints can then chose to present the client with name and link in relation to mentions, to thus make tools like Bridgy more discoverable.

Silo Disoverability

App Stores

See store.

Twitter

Twitter saves the application used to tweet something and previously showed the application name, linking to the application page, on every tweet page. The data is still exposed in third-party clients like Tweetbot for iPhone.

See Also

jsTree

Created by Tantek.com on January 19




See http://www.jstree.com/

Ace

Created by Tantek.com on January 19




See: http://ace.c9.io/

Retrieved from "http://indiewebcamp.com/Ace"

WhatsApp

Created by Tantek.com on January 22




WhatsApp is a proprietary mobile messaging application.

Criticism

See Also

Thingiverse

Created by Phyks.me on January 22




Thingiverse is a popular silo for hosting 3D printable models.

Features

Contents



It allows you to publish online your 3D models ready for 3D printing, a bit like a Github of 3D models. You can manage collections of objects you like, and post photos of the models you printed, to show actual results to user, and compare your print quality.

Exporting your data

Some scripts are available to handle it (with scraping), but nothing built-in to export your data. Should be better and more resilient to use the API for this.

POSSE

Thingiverse has a fully featured API which can be used to do almost everything you can do with the website (like / post things / edit things / …).

Then, it should not be really difficult to POSSE with Thingiverse. Phyks is interested in it for his hacklab and will update this if he manages to have anything functionnal.

API

Thingiverse has a fully featured API.

Changed Pages

WordPress

26 edits by david.shanske.com

2014-review

15 edits by tantek.com, ben.thatmustbe.me, kylewm.com
  • Mon, January 19 tantek.com be sure to mention Site Deaths 2014
  • Wed, January 21 tantek.com /* Indie Term Re-use */ criticism overlap
  • Thu, January 22 tantek.com /* IndieWebCamps */ add This Is A Movement subsection, start grid prototype with inline HTML - need a template
  • Thu, January 22 ben.thatmustbe.me /* This Is A Movement */ quick stab at templated version
  • Thu, January 22 ben.thatmustbe.me /* This Is A Movement */ begun filling in with names/images from cambridge and SF
  • Thu, January 22 ben.thatmustbe.me /* This Is A Movement */ more data entry, cleaning up list of rememaining people
  • Thu, January 22 ben.thatmustbe.me /* This Is A Movement */ Lots more faces I think this is complete
  • Thu, January 22 kylewm.com /* This Is A Movement */ remove duplicate scottros
  • Thu, January 22 tantek.com drop a few folks that didn't make it to the IndieWebCamps - need to update Guest_Lists accordingly
  • Thu, January 22 tantek.com use Brian Hendrickson dynamic twitter profile icon instead of static (past) twitter profile icon, restore Dora (IWC Online), expand div with some CSS to get more folks per row
  • Thu, January 22 kylewm.com /* This Is A Movement */ remove other folks who didn't make it
  • Thu, January 22 tantek.com /* This Is A Movement */ add Cameron, remove Drew & Tessa (didn't make it to IWC NYC)
  • Thu, January 22 tantek.com /* This Is A Movement */ Brian Brennan couldn't make it
  • Fri, January 23 kylewm.com /* This Is A Movement */ fill in some missing images
  • Fri, January 23 kylewm.com /* This Is A Movement */ fill in last 2 images, not ideal

IRC People

6 edits by edward.oconnor.cx, robin.millette.info, tjkoury.com, tommorris.org

like

5 edits by tantek.com
  • Mon, January 19 tantek.com /* Brainstorming */ steps to clustering by same source, type, with count. notification and text-only examples
  • Mon, January 19 tantek.com /* Brainstorming */ hypertext design, and markup for, with authorship knowledge
  • Tue, January 20 tantek.com -(), FB used thumb til 2013 rede, Friendfeed introduced like button 2007 with a link, see also Wikipedia article on like button
  • Tue, January 20 tantek.com noted what level of adjacent like clustering is working in /Falcon so far
  • Fri, January 23 tantek.com /* Instagram */ Instagram followings activity

Webmention Plugin

5 edits by david.shanske.com

favorite

4 edits by tantek.com, aaronparecki.com
  • Tue, January 20 tantek.com /* Twitter */ note when favorites feature introduced by Twitter, thanks to pwcc for the citation!
  • Tue, January 20 tantek.com /* Silo Examples */ Flickr may have been first to do "favorite" button, "favorites" collection. Note Twitter history of UI screenshots.
  • Fri, January 23 aaronparecki.com /* Twitter */ favorite clustering
  • Fri, January 23 aaronparecki.com add date

itches

4 edits by tantek.com, colintedford.com
  • Sun, January 18 tantek.com update with How to subsections and encouragements. note capture, prioritize, create and ship
  • Sun, January 18 tantek.com /* Why */ summary why statement
  • Mon, January 19 tantek.com /* IndieWeb Examples */ add GWG's itches
  • Mon, January 19 colintedford.com /* IndieWeb Examples */ add self w/ alt term

User:Colintedford.com

3 edits by colintedford.com
  • Sun, January 18 colintedford.com /* Done */ Footer becomes sidebar on homepage on larger screens.
  • Mon, January 19 colintedford.com /* Noise filter */ Provisional decision on what posts to filter out; refine, reorganize.
  • Mon, January 19 colintedford.com /* Colin Tedford */ shorten

Twitter

3 edits by tantek.com
  • Tue, January 20 tantek.com /* UI 2014-04 */ note that image might not show up on first load
  • Tue, January 20 tantek.com /* Early User Interface */ narrow down possible date of screenshot to before favorites were introduced
  • Tue, January 20 tantek.com note that some features were added in 2006-11-14, not available at launch, like delete & favorite!

repost

3 edits by aaronparecki.com, tantek.com
  • Mon, January 19 aaronparecki.com /* Repost.us */ past
  • Mon, January 19 aaronparecki.com /* IndieWeb Examples */ add myself with examples of reposts of different content types
  • Mon, January 19 tantek.com /* Differentiating Reposts */

Known

3 edits by tantek.com, kartikprabhu.com, michielbdejong.com
  • Sun, January 18 tantek.com /* Troubleshooting */ The target page does not exist
  • Sun, January 18 kartikprabhu.com /* The target page does not exist */ my example
  • Wed, January 21 michielbdejong.com /* The target page does not exist */ mention workaround webmention problem

User:David.shanske.com

3 edits by david.shanske.com

IndieWebCamps

3 edits by aaronparecki.com, tantek.com, kevinmarks.com
  • Tue, January 20 aaronparecki.com add FAQ section
  • Wed, January 21 tantek.com /* FAQ */ write an essay in response to the high bar question that aaronpk appears to be getting. Maybe I should blog this.
  • Wed, January 21 kevinmarks.com /* Why is there a high bar for registering */

Events

3 edits by tantek.com, upon2020.com
  • Fri, January 16 tantek.com Add IndieWebCampGermany since its date is set
  • Fri, January 16 tantek.com trim header bits, note specific months that future IndieWebCamps are being planned
  • Wed, January 21 upon2020.com should have added this earlier

2015/Germany/Guest List

3 edits by aaronparecki.com, sebastian.kip.pe, holdingbay.co.uk contact

Semantic Linkbacks

2 edits by david.shanske.com

events/2015-01-28-homebrew-website-club

2 edits by tantek.com

tweet

2 edits by tantek.com, iamshane.com

site-deaths

2 edits by tantek.com, michielbdejong.com
  • Mon, January 19 tantek.com confirmed Svpply gone, orkut gone but supposedly export available til 2016, yahoo dir redirects, myopenid server not found
  • Tue, January 20 michielbdejong.com /* Upcoming */ mention Trovebox being open source and available from IndieHosters

Hacker News

2 edits by tantek.com
  • Thu, January 22 tantek.com update dfn, more of a bookmark silo than link aggregator, add Features and Brainstorming sections with some exploration of POSSE
  • Thu, January 22 tantek.com Community Examples - indieweb community members who post bookmark(s) and/or comment(s) on HN

Posts about the IndieWeb

2 edits by aaronparecki.com, kylewm.com

person-tag

2 edits by kevinmarks.com, tantek.com

2014/Guest List

2 edits by kylewm.com, tantek.com
  • Thu, January 22 kylewm.com move pjf to "Missed You" section
  • Thu, January 22 tantek.com move Tessa, Brian Brennan to regrets, she'd messaged me day of that she couldn't make it, he did too.

silo

1 edits by tantek.com

questo.email

1 edits by fiatjaf.alhur.es

OpenSocial

1 edits by tantek.com
  • Sun, January 18 tantek.com note opensocial site redirects to w3c blog post, and add their offsite wiki

JSON

1 edits by tantek.com
  • Sun, January 18 tantek.com 2nd dfn instead of link, note growing in popularity instead of XML

article

1 edits by tantek.com
  • Sun, January 18 tantek.com add a few more links, found what appears to be aaronpk's oldest article

email

1 edits by fiatjaf.alhur.es
  • Fri, January 23 fiatjaf.alhur.es updated questo.email reference and description.

Post Kinds Plugin

1 edits by david.shanske.com

Template:IndieWebCamp

1 edits by tantek.com

2015/SF

1 edits by tantek.com

reaction

1 edits by tantek.com
  • Fri, January 16 tantek.com subheads, advice to use response instead, FAQ, see also

YouTube

1 edits by kartikprabhu.com

2014/NYC/Guest List

1 edits by tantek.com
  • Thu, January 22 tantek.com move a couple of folks to regrets (from memory) and missed you, note Cameron attended (invited by Tantek, presumed apprentice)

WordPress.com

1 edits by david.shanske.com

Trovebox

1 edits by wwelves.org perpetual-tripper
  • Sat, January 17 wwelves.org perpetual-tripper Trovebox will shut down on March 15, 2015

IndieAuth

1 edits by aaronparecki.com
  • Thu, January 22 aaronparecki.com /* FAQ */ why form-encoded instead of JSON?

Tumblr

1 edits by colintedford.com
  • Fri, January 23 colintedford.com /* POSSE to Tumblr */ Citation for RSS import feature removal

Facebook

1 edits by kylewm.com

sharecropping

1 edits by tantek.com
  • Thu, January 22 tantek.com add Articles section with 2011 article on Digital Sharecropping and one great comment you won't believe

real-time interactions

1 edits by kodfabrik.se
  • Tue, January 20 kodfabrik.se Added all of my endpoint's realtime interactions (including the CRUD aspect) to the list

h-x-app

1 edits by aaronparecki.com

MediaWiki:Sidebar

1 edits by tantek.com
  • Mon, January 19 tantek.com next IWC we know of for sure is Cambridge, so let's put it on the sidebar until something else gets scheduled sooner!

events/2015-02-11-homebrew-website-club

1 edits by tantek.com

Ello

1 edits by tantek.com

FreeMyOAuth

1 edits by tantek.com
  • Thu, January 22 tantek.com fix a few images, change mini subheads to popular, common, other, add wikimedia auths link

this

1 edits by tantek.com
  • Thu, January 22 tantek.com IndieWeb Examples (add adactio) vs. Silo Examples

icon

1 edits by kevinmarks.com