Webs

Webs (formerly Freewebs) is a web host founded in 2001 offering free and paid website hosting. It is shutting down on 2021-06-30 with paid sites being partially migrated to the parent company Vistaprint. As of 2014, at least 55 million sites have been created with Webs, according to the site's 404 page. At a later point, Vistaprint decided to partner with Wix to offer web hosting services instead.
== Shutdown date ==
The shutdown was initially planned for 2021-03-31 (announced on or before 2020-11-19). In late March, the date was moved to 2021-06-30. However, as of 2021-10-17 it seems that no shutdown has taken place. By 2023-07-14, Vistaprint announced that Webs would be shutting down as of 2023-08-31. The homepage was turned into a redirect in late September 2023. By 2023-12-03, the majority of the site is down, with the exclusion of a few subdomains that seem to point elsewhere, the support site, and the 404 page and pages related to login/accounts/account management (though these pages lack CSS).
== Site Structure ==
Sites hosted on Webs are accessible from sitename.webs.com, freewebs.com/sitename, and the site's custom domain, if configured. The site owner can choose the primary URL that can be used to access the site, as well as change the site name from an older user settings page.
Most sites contain a robots.txt file at /robots.txt and a sitemap at /sitemap.xml, though some older sites appear to lack a sitemap. Sitemaps also contain a last modified date which appears to always be the same for all pages in the sitemap. The /sitemap.xml file does not seem to be accessible under the freewebs.com URL for a website.
== Site Builders ==
Analytics code in the source code of all pages hosted by Webs (search for "webs.stats") indicates the site builder used to create the website. Possible values for "builderType" include "SB_1_OR_2" for sites created by the first two generations of site builders and "SB_3" for the third generation site builder.
"SB_3" was also used by Vistaprint for their previous site builder (known as Websites (V3)), though Vistaprint now uses a new site builder known as Websites (V4), which is referred to in "builderType" as "tower". The infrastructure for "SB_3" is shared between Webs and Vistaprint; features between the products are nearly identical and the website/user ID counter is shared between the two companies. Vistaprint Websites (V4) now uses an infrastructure that is mostly separate from Webs (it seems statistics collection may still be shared).
== Sites and User IDs ==
It appears that Webs initially used a system where each user directly logged into a website; websites were user accounts. Around 2009, they introduced a system where each site would be linked to a container account known as a "Webs ID". Webs IDs can have multiple websites associated with them. Internally, websites are still considered user accounts and are still given user IDs. It appears most website accounts are associated with a Webs ID or Vistaprint account. Website accounts may not be associated with a Webs ID or Vistaprint account if they predated the Webs ID system (though the migration to Webs ID may have been made mandatory at some point) or if they are sandbox websites. Sandbox websites are temporary websites that can be used to try the Webs editor before creating an account. You can create a sandbox website (and later optionally associate it with a Webs ID) by visiting https://members.webs.com/s/signup/sandbox (link found in Webs' robots.txt). Internally, it appears that websites and Webs IDs are differentiated by the same ID field, meaning that the highest user ID number appears to increase for each Webs ID and for each website created separately. This means that each Webs user may have multiple ID numbers associated with their account, including their website ID(s) and their account ID. As of February 2021, this number ranges from 1 to well under 143 million, and increases by several hundred each day.
While on a Webs or Vistaprint V3 website, you can find the site ID in the source code of any page. While viewing the source code, search for "siteId", "webs.site" or "webs.stats".
== Endpoints of Interest ==
You can convert a site/user ID into a URL by using the following endpoint: http://profiles.members.webs.com/Profile/index.jsp?userID={userid}. An example ID is 20257. The response content will contain HTML code containing Javascript code which redirects to the primary URL for the given site ID. The response content will resemble <script>document.location='https://haroon.webs.com/';</script>\n. This endpoint is available on at least 52 domains or subdomains (more may exist), though some domains add an additional script tag below the one containing the converted URL. Unless otherwise noted, the domains redirect HTTP to HTTPS, use CloudFlare, have a valid HTTPS certificate configuration, and do not append an extra script tag to the redirect response. A test script is available. The 52 domains are as follows:
* link.freewebs.com (extra script tag)
* toolbar.freewebs.com (extra script tag)
* blogs.freewebs.com (extra script tag)
* counters.freewebs.com (extra script tag)
* polls.freewebs.com (does not use CloudFlare, does not redirect HTTP to HTTPS)
* memberfiles.freewebs.com (extra script tag)
* dynamic.websimages.com
* thumbs.webs.com (extra script tag)
* thumbs.freewebs.com (extra script tag)
* fwapps.freewebs.com (does not use CloudFlare, does not redirect HTTP to HTTPS)
* fwapps-yyz.freewebs.com (does not use CloudFlare, does not redirect HTTP to HTTPS)
* fr.webs.com (extra script tag)
* de.webs.com (extra script tag)
* uk.webs.com (extra script tag)
* au.webs.com (extra script tag)
* dk.webs.com (extra script tag)
* nl.webs.com (extra script tag)
* it.webs.com (extra script tag)
* sv.webs.com (extra script tag)
* ca.webs.com (extra script tag)
* no.webs.com (extra script tag)
* es.webs.com (extra script tag)
* auth.members.webs.com (invalid HTTPS certificate, does not use CloudFlare, does not redirect HTTP to HTTPS)
* secure.members.webs.com (HTTPS ONLY, false negative given over HTTP, does not use CloudFlare, inaccurately redirects HTTP to HTTPS)
* zumba.members.webs.com (invalid HTTPS certificate, does not use CloudFlare, does not redirect HTTP to HTTPS)
* members.freewebs.com (invalid HTTPS certificate, does not use CloudFlare, does not redirect HTTP to HTTPS)
* www.members.freewebs.com (invalid HTTPS certificate, does not use CloudFlare, does not redirect HTTP to HTTPS)
* webs.com (extra script tag)
* profiles.members.webs.com (invalid HTTPS certificate, does not use CloudFlare, does not redirect HTTP to HTTPS)
* www.webs.com (extra script tag)
* members.webs.com (extra script tag)
* websitebuilder.vpweb.de
* websitebuilder.vpweb.fr
* websitebuilder.vpweb.es
* websitebuilder.vpweb.com
* websitebuilder.vpweb.nl
* websitebuilder.vpweb.jp
* websitebuilder.vpweb.in
* websitebuilder.vpweb.no
* websitebuilder.vpweb.sg
* websitebuilder.vpsite.it
* websitebuilder.vpweb.co.uk
* websitebuilder.vpweb.co.nz
* websitebuilder.vpweb.ie
* websitebuilder.vpsite.se
* websitebuilder.vpweb.ca
* websitebuilder.vpweb.at
* websitebuilder.vpweb.dk
* websitebuilder.vpweb.eu
* websitebuilder.vpweb.be
* websitebuilder.vpweb.ch
* websitebuilder.vpweb.com.au
It appears that the domain webs.soy was also valid at one point but the domain has since expired.
You can retrieve the profile image for a user/site using http://profiles.members.webs.com/Members/viewProfileImage.jsp?userID={userID} or https://thumbs.webs.com/s/viewProfilePic/?siteId={siteId}&memberId={userId}&size=normal&{some number} (size and some number are optional).
You can check to see if a site name exists using https://members.webs.com/s/signup/checkUsername?username={sitename}. The endpoint will return 1 if the sitename exists or 0 if it doesn't.
You can retrieve a thumbnail of an image file given a fileID using https://profiles.members.webs.com/Members/viewThumb.jsp?fileID=67510503.
All of these endpoints should be available on the 52 domains listed above.
You can search their stock image library using https://stock-image.herokuapp.com/images/search/{search_term}, which will return a JSON-formatted list of image metadata including URLs to the images.
Some files seem to be hosted on other domains, such as https://memberfiles.freewebs.com/72/18/57241872/documents/TAX%20CLIENT%20INFORMATION%20SHEET_01_12_2012.pdf and https://webzoom.freewebs.com/g8jnj/FatMax%20Antenna.pdf (thanks Flashfire42).
Additionally, images and other media seem to be processed (resized, etc.) on the mediaprocessor.websimages.com domain. Example: https://mediaprocessor.websimages.com/width/471/crop/15,16,440x545/www.waterprooffloors4u.com/Tsunami%20Rigid%20King%20Jr.%20Cottonwood.JPG (thanks Flashfire42).
== Web Rings ==
Webs has a feature known as "web rings" or "Freewebs Groups". Joining a ring places a badge on the homepage of the site, allowing people to navigate through the sites in a ring. On the rings homepage (accessible to logged-in users), Webs describes the feature as the following:Rings are communities of sites where site owners connect to share ideas and site traffic. Members of a ring have a ring page where only they can post comments and share news items. Each member site displays the Ring Badge on their site which links the sites together into a webring. The ring creator and owner manages ring membership by sending out invitations and responding to requests to join, posts news items, and manages comments.
Everyone can belong to 10 rings but only own and manage five of the ten.
Why rings? Interesting sites connected together experience higher traffic than a single site alone!
Rings are organized by category. Rings are accessible from the following URLs for logged in users:
* https://members.webs.com/s/rings/listRings
* https://members.webs.com/s/rings/browseCategory?categoryid=1
* https://members.webs.com/s/rings/showRing?ringID=3661
Rings are accessible from the following URLs for unauthenticated users (note that the CSS styles appear to be missing on these pages, and that, for large rings, some sites may be missing on the public version of the page compared to the authenticated version because the non-authenticated version of the page does not display websites which have the badge disabled):
* https://members.webs.com/s/ringsPublic/groupsPublic?ringID=49981
* Badge rendering: https://members.webs.com/s/ringsPublic/badgeRenderServiceJS?ringSiteID=117812-35650392 (first part of this ID is the ring ID, second part is the site ID)
* Go to next site: https://members.webs.com/s/ringsPublic/badgeRedirectService?refRingSiteID=49981-27082236&action=next (first part of this ID is the ring ID, second part is the site ID)
* Go to previous site: https://members.webs.com/s/ringsPublic/badgeRedirectService?refRingSiteID=49981-27082236&action=previous (first part of this ID is the ring ID, second part is the site ID).
Ring IDs are believed to go from 0 to 137423. Authenticated users can use a partially-broken user profile search feature (normally displayed embedded) to invite users to their web ring. It seems that recent accounts aren't listed here, and the only search result that is ever returned is a user with a username exactly matching the search query. Additionally, enabling the ring badge on websites seems to currently be broken (except for listing or delisting a site from the public ring page), and most rings were created on or before February 12, 2012.
== REST API ==
Webs has a REST API at https://api.webs.com/ that can be used to access some data from the service. Archived documentation is available. Most endpoints require registration, which is no longer possible. In particular, having access to the /sites/{siteid}/ would be helpful for archiving purposes because it would allow converting between site names, site IDs, and domain names, as all three identifiers are acceptable values for {siteid}.
The only endpoints that appear to currently be accessible to the public without registration appear to be /apps/, which lists the apps which are currently featured in the Webs App Store, /apps/{appid}/, which gets metadata for an app given an app ID number or handle, and /templates/, which lists some basic information about some templates. The /apps/ endpoint currently only lists 9 apps, all published by Webs, but a scan of the app metadata endpoint for IDs 0 through 2499 revealed the existence of at least 196 apps, though some appear to be for testing or internal use. App IDs seem to skip around, but the highest known app ID in this range is 1764, and the largest gap between app IDs appears to be 91. The metadata is available as a combined JSON file. The app metadata API doesn't seem to include URLs for app icons, but for most apps icons appear to be available at https://staticthumbs.freewebs.com/Apps/{appid}/icon.png, https://staticthumbs.freewebs.com/Apps/{appid}/icon-medium.png and https://staticthumbs.freewebs.com/Apps/{appid}/icon-large.png
Official API client libraries are available for Java and Ruby.
== Site Directory ==
Freewebs/Webs used to offer a site directory which allowed browsing through sites by category. Websites default to having no category set. While the directory itself does not seem to be currently accessible by the public, users can still choose the category of their website in their site settings. Some current metadata, including the list of categories and the number of sites in each category, is still included in the response to an XHR request made while loading the Webs control panel.
== Gallery ==
File:Freewebs February 2008.png‎|Freewebs in February 2008, before it became Webs
== References ==