Python

 Python  is a programming language and web server runtime environment used for many IndieWeb projects.

Why
There are many reasons why you might want to use Python for an IndieWeb project, including:


 * Python is an easy language to start learning.
 * You can build applications quickly with Python.
 * There are many frameworks that let you use your Python skills to build web applications.
 * There are many IndieWeb applications built with Python which you can use as a source of inspiration and learning as you build your own tools.
 * There are IndieWeb and Microformats libraries available for Python (i.e. IndieWeb_Utils, Flask_IndieAuth, mf2py and mf2util.

IndieWeb Examples
Examples of indieweb community members who are using Python on their personal sites (alphabetical order):

Bear
Bear's uses Kaku, a Python based static site generator, to run his personal site bearlog and uses the following Python projects:
 * ronkyuu
 * ninka
 * mf2py

capjamesg
uses Python across his IndieWeb projects. His blog uses a custom-built static site generator called letsjam. He uses Python for his webmention receiver, Micropub endpoint, and other projects.

Beto Dealmeida
Beto uses Nefelibata, a Python based static generator to run his weblog Tao &c.

fluffy
uses Publ, a Python based web publishing system, to run beesbuzz.biz.

Kartik Prabhu
Kartik Prabhu's personal site Parallel Transport runs on Bundle and uses the following Python IndieWeb projects:
 * ronkyuu
 * mf2py
 * mf2util

Kyle Mahan
Kyle Mahan uses Red Wind (written in Python) to run his personal site http://kylewm.com/ with the following Python projects:
 * Flask
 * mf2py
 * mf2util

David Reeve
David Reeve's site Lancey Space uses Red Wind with the following Python projects:
 * Flask
 * mf2py
 * mf2util

Libraries
Generally useful libraries being developed by IndieWeb participants in Python.


 * ronkyuu, a collection of tools for sending webmentions and verifying rel=me.
 * webmention-tools, utilities to send webmentions and query Webmention.io
 * mf2py, a microformats2 parser
 * Bleeding-edge development currently being done on Kartik's fork. Will be folded into the master in the future.
 * mf2util is a microformats2-specific parsing utility. Useful for reading the relevant properties for comments and reply-contexts. Also has some special handling for date/times that converts them into Python datetime or date objects.
 * ninka is a small library to handle indieauth endpoint discovery and auth token validation
 * python-indieweb is an example Flask app that implements IndieAuth, webmentions, micropub-endpoint and token-endpoint.
 * granary fetches and converts silo data (Facebook, Flickr, Google+, Instagram, and Twitter via their APIs) to/from ActivityStreams, microformats2 HTML and JSON, Atom, and more. Also available as a REST service.
 * indieweb-utils is a set of building blocks for implementing IndieWeb applications. indieweb-utils includes features such as a webmention discovery function, implementation of the Post Type Discovery specification, and a reply context generator.

Third-party Libraries
Non-IndieWeb-specific libraries that may still be of interest.


 * Requests: By far the best way to interact with any HTML endpoint.
 * BeautifulSoup: sits of top of other HTML parsing libraries (lxml or html5lib) and provides a nice interface for wading through HTML, even horribly broken HTML.
 * Bleach: sanitizer and autolinker. Useful for removing dangerous code from e.g., for displaying remote content. Excludes almost everything by default.

Projects
IndieWeb projects built with Python:
 * Bridgy (open source) runs on Google AppEngine
 * granary
 * oauth-dropins
 * webmention-tools
 * mf2py
 * Kaku
 * Red Wind
 * Bundle
 * Woodwind
 * IndieWeb Search
 * IndieWeb_Utils

Hosting
Python does not have PHP's ubiquity, and finding hosting can be a little bit more of a challenge. See web_hosting for more details.


 * Google AppEngine (webapp, Django)
 * Webfaction
 * Heroku (Flask, Django)
 * VPS running a WSGI server like uWSGI or gunicorn.