128 captures
04 Mar 2014 - 01 Jan 2026
Mar APR May
08
2021 2022 2023
success
fail

About this capture

COLLECTED BY

Collection: Save Page Now Outlinks

TIMESTAMPS

The Wayback Machine - http://web.archive.org/web/20220408185108/https://www.fullstackpython.com/change-log.html
 

Full Stack Python
All topics | Blog | Supporter's Edition | @fullstackpython | Facebook | What's new?

Changelog






Here are the high-level changes to Full Stack Python in reverse chronological order since its inception in December 2012. You can view commit-level changes via the source repository's commit log on GitHub.

2022

March



I decided to go so minimal that I removed the logo to make the site load faster, and also got rid of some unncessary CSS on front page.

February



Still on break, but updated the header and footer. Also made some website tweaks to make it faster.

2021

October



Taking a break for a few months to recharge and work on a different coding side project that I'm excited about. Be back in a few months with some updates.

September



Clean up continues across the site to remove link rot and replace out-of-date links with newer ones where necessary.

August



New blog post on Application Performance Monitoring AWS Lambda Functions with Sentry.

June



Fix broken links across the site. It's a real shame people and companies don't use 301 redirects more often rather than just breaking their URL structures.

May



New resources on GPT-3, Jupyter Notebook and serverless pages.

April



Published new post on How to Monitor Python Functions on AWS Lambda with Sentry.

New SQLite resource.

March



New webhook resource.

February



New GPT-3 resources.

January



Published a new blog post on Using Django & AssemblyAI for More Accurate Twilio Call Transcriptions.

Updated Flask extension projects and example code.

Happy New Year!

2020

December



New Bash, tmux and Vim resources and explanations.

November



New resources for DevOps and containers.

October



Added new blog on Higher Accuracy Twilio Voice Transcriptions with Python and Flask.

New NumPy resources.

September



Tweaks across Flask code examples.

August



New blog posts on How to Transcribe Speech Recordings into Text with Python and Using Sentry to Handle Python Exceptions in Django Projects.

Added new GPT-3 page.

Updated debugging page with some additional descriptions.

July



Updated webhooks page with additional resources.

New blog posts:

Tracking Daily User Data in Django with django-user-visit

Quickly Use Bootstrap 4 in a Django Template with a CDN

How to report errors in Flask web apps with Sentry



June



Added new example code for Django modules:

django.contrib.admin.helpers ActionForm, and AdminForm

django.contrib.admin.options IS_POPUP_VAR, IncorrectLookupParameters, ModelAdmin, and csrf_protect_m

django.contrib.admin.sites NotRegistered and site

django.core cache, checks, exceptions, mail, management, serializers, signals, signing, and validators

django.utils.translation LANGUAGE_SESSION_KEY, activate, deactivate_all, get_language, get_language_from_request, gettext, gettext_lazy, ngettext, override, pgettext, pgettext_lazy, ugettext, ugettext_lazy, ungettex, and ungettext_lazy



Added new example code pages for Flask modules:

flask.blueprints Blueprint

flask.ctx after_this_request, has_app_context and has_request_context

flask.globals current_app

flask.helpers send_file

flask.json JSONEncoder

flask.sessions BadSignature and SessionMixin



May



Added new example code pages for Flask modules:

flask.cli FlaskGroup, ScriptInfo, and with_appcontext

flask.globals request and session

flask.helpers flask, make_response, and url_for

flask.sessions SessionInterface

flask.signals Namespace

flask.templating render_template

flask.views MethodView, View, and http_method_funcs



New blog post on Reporting Exceptions in Python Scripts with Sentry.

Tweaked some CSS for the site.

Added a new page with the start of pandas example code and projects.

April



Merge PR #233 and PR #235 for new Celery and podcast resources.

Updated the web design page with new resources.

March



Added another new blog post on Exporting pandas DataFrames into SQLite with SQLAlchemy.

Added new blog post tutorial on Learning pandas by Exploring COVID-19 Data.

New web design and web development resources.

Added new blog post on The Best Resources for Developers to Learn Finance.

February



New CSS, task queue and uWSGI resources.

Added new Django code example pages:

django.forms DateField

django.forms DateTimeField

django.forms TypedChoiceField



January



Added new Django code example pages:

django.db.models SmallIntegerField

django.urls.exceptions Resolver404



Added starter pages for the remaining topics in the table of contents that were previously missing. Still working on adding more resources and descriptions to each page:

Datadog

GoCD

Salt

Sentry



Happy New Year (and decade) to my fellow Python developers!

2019

December



7 years of Full Stack Python as of December 23, 2019!

Cleaned a bunch of dead links out thanks to PR #225.

Merged PR #224 with information and resources on the Masonite web framework for the other web frameworks page.

Updated the RQpage with a couple of new fresh resources.

Added new Django code example pages:

django.db.models GenericIPAddressField

django.db.models ImageField

django.db.models PositiveIntegerField

django.db.models PositiveSmallIntegerField

django.db.models.related ForeignKey

django.forms EmailField

django.forms IntegerField



November



Added new resources to RQ, Sanic and networking pages.

Added new Django code example pages:

django.forms BooleanField

django.forms CharField

django.forms ChoiceField



October



Removed a bunch of outdated content from the best Python resources page and added some nice new links to the mix.

Published a new blog post tutorial on the String Data Type in Python 3.

Added new Django code example pages:

django.db.models FileField

django.db.models SlugField



Updated code examples on the following pages:

django.db.models TextField



Rewrote some parts of the Python 2 or 3 page to make it more clear that 3 is now the mandatory way to get started.

Updated best videos page with new EuroPython links.

September



Added new Django code example pages:

django.apps.config AppConfig

django.contrib.admin.sites register

django.db OperationalError

django.db.models AutoField

django.db.models DateField

django.db.models IntegerField

django.http HttpResponse

django.http HttpResponseBadRequest

django.http HttpResponseForbidden

django.http HttpResponseNotModified

django.http HttpResponseRedirect

django.template.response TemplateResponse

django.template.response SimpleTemplateResponse

django.urls reverse_lazy



August



Added stub page for mod_wsgi.

Merged PR #215 to fix a typo on the serverless page. Thanks Kyle!

Added new Flask code examples:

flask request

flask redirect



Added new Django code examples pages:

django.contrib.auth get_user_model

django.contrib.auth.decorators login_required

django.contrib.auth.hashers make_password

django.http Http404

django.http.responses HttpResponsePermanentRedirect

django.urls.exceptions NoReverseMatch



Updated code examples on the following pages:

django.contrib admin

django.db.models DateTimeField

django.utils timezone



July



Pushed the 3000th commit to Full Stack Python, a bit over 3 years after the 2000th commit and 5ish years after the 1000th commit. Here's to the next 1,000 commits! Screenshot of 3000th commit to Full Stack Python.
New blog post with slides and a loose transcript of my latest talk on Developer-led sales for tech startups.

June



Added a new page for Django BaseCommand code examples.

Started new open source code examples series, beginning with url and path functions.

May



Added new data visualization, web design and pandas resources.

Updated the subnav with a link to deploypython.com and added a bunch of new resources across pages on the site.

Rearrange parts of the app dependencies page to make it easier to read.

Fix typos and broken internal links on site.

April



Added new web frameworks, d3.js and Django REST framework resources.

New Stripe API resources.

March



Added new resources across the site and merged PR #206 with a new Heroku page link.

New resources on the web analytics page.

February



Added a ton of resources on the Kubernetes page.

Removed many broken links thanks to pull request #205. Thanks again Sam!

Add uWSGI page with a few initial resources.

Updated the Neo4j and microservices pages with more resources.

Added a bunch more bots resources.

New data and data analysis resources added.

Refreshed the relational databases page with new resources and removed some out-of-date ones.

January



Merged PR #202 to fix a typo on the web frameworks page.

Updated the source control page with more resources.

Added new post on the Introduction to Ansible video course launch.

Cleaned up a bunch of broken links thanks to pull request #198. Thanks again Sam!

Added new MongoDB resources.

Updated the Docker page with new resources, removed old ones and added new descriptions to sections.

Happy New Year!

2018

December



Added a ton of new resources and descriptions on the Cassandra page.

6 years of Full Stack Python as of December 23, 2018!

Updated SQLAlchemy, NoSQL, MongoDB and Slack API pages with new descriptions and resources.

Updated the serverless, operating systems and HTTPS pages with a bunch of new resources.

November



Updated the logging, Redis and PaaS pages with a bunch of new resources.

Updated the web design page with new resources.

Updated the data visualization page with new resources.

October



Added new blog post on Adding Okta Authentication to an Existing Flask Web App.

Sent out a quick email newsletter update about new recent tutorials on the blog.

Added a bunch of new testing page resources.

Published new post on How to Provision Ubuntu 18.04 LTS Linux Servers on DigitalOcean.

Published a new blog post showing How to Add User Authentication to Flask Apps with Okta.

Merge PR #189 to help readers figure out how to get around some security warning issues that could come up in the Slack bot tutorial.

Added even more new debugging tutorials and split pdb tutorials into their own section.

September



A ton of new tools and links on the debugging page.

Added a starter Django REST Framework page.

New web app security, task queue and WebRTC resources.

Added a bunch of new resources across the site and removed a few out of date ones as well.

Added initial pages for WebRTC and JavaScript frameworks. More resources coming to those pages soon.

August



Merged PR #184 to remove link rot issues. Thanks again Sam!

New RQand code metrics resources.

Updated the Celery page with a ton of new great resources and broke them into new subsections for general resources, frameworks and deployments.

Tons of new code metrics, Lektor, Pyramid and Sanic resources.

Added new Git and Jinja resources.

Merged PR #182 that updated the Ubuntu SSH Keys post with the -o flag that mitigates an encryption vulnerability.

Fixed issue #181 that identified a broken link on the Twilio page.

New Markdown resources.

July



Added a bunch of new PyCharm resources.

Merged PR #177 that adds a new Docker Swarm tutorial.

Merged PR #176 to update the Django page by removing some old links and adding newer ones.

New section on source control page and resources for mono vs multi repo debate.

Added a new section and additional Vim links.

Added even more Emacs resources and a new section for Elisp resources, the programming language used to customize the editor.

June



Added new Emacs resources and descriptions.

Merged PR #175 to fix changed URLs on data analysis page where the authors did not use 301 redirects to the new pages. Thank you mbanerjeepalmer!

Major updates on development environments and text editors and IDEs pages.

New resources on the operating systems and development environments pages.

New blog post on how to Configure Python 3, Flask and Gunicorn on Ubuntu 18.04 LTS.

New d3.js resources.

Merged PR #173 for new Git page section. Modified wording a bit from original pull request. Thanks Sam!

Add even more descriptions and resources to the Python companies page.

Fix issue #172 where Atom and RSS feeds did not have /blog/ in the URLs so they were pointing to incorrect (broken) article locations.

Further work on companies using Python page.

May



Merged PR #169 that cuts down on redirects to the new PyPI site. Thank you Sam!

Merged PR #168, which contained links to a great blog post on FlaskbyTestDriven.io.

New blog post on How to (Appropriately) Explain Your Product to Software Developers that is based on a talk I gave in Silicon Valley.

Added a bunch of great podcast episodes to that page.

Merged PR #166 and PR #167 to update the URL scanning script as well as remove all 404 links. Thanks Sam!

New blog post on How to Add Maps to Django Web App Projects with Mapbox.

Updated with a slew of new serverless, static site generators, Bokeh and community resources.

Major update to Python 2 or 3 page with better explanations that match community opinions in 2018 (originally page was written in 2016 and descriptions were not heavily modified enough since then), along with a slew of new migration resources.

Added newsletter on PyCon US 2018.

New podcast resources.

Merge pull request #164 with a new task queues resource.

April



New blog post on adding Rollbar for Monitoring Python 3.6 Functions on AWS Lambda.

New TurboGears web framework page via pull request #162. Thank you Alessandro!

A slew of new resources and descriptions for the Jupyter Notebook page.

Reworking web development page with new descriptions and resources.

Major updates to Flask resources, example code and descriptions.

More broken or expired link clean up.

March



Fixed up a slew of link rot across the site.

New resources on the Pelican static site generator page.

Added starter pages for localhost tunnels, virtual environments (virtualenvs), and environment variables.

Revamped the table of contents / all topics to match vision for the site.

New resources and explanations added to the Markdown page.

New blog post on Developing Flask Apps in Docker Containers on macOS.

Merged pull request #156 to remove a duplicated Vim page resource. Thanks Xurxo!

New blog post on ReportLab and Future Community Project Launches that also went out as an email newsletter for March.

Added new learning programming practice problem sets.

Merged PR #154 with a new RQresource. Thanks again Michael!

February



Merged PR #153 that removed some out-of-date links and added some new ones to the Flask page.

Added a slew of new practice problems and teaching resources on the Learning Programming page.

New WebSockets resources.

New starter page on CSS frameworks and Foundation CSS.

New blog post on adding Rollbar monitoring to Django applications.

Added new enterprise Python resources.

January



Incorporated new data from Stack Overflow and updated programming language rankings as evidence of reasons for why to use Python.

Merged PR#151 that fixed an issue with the Slack bot and URLs in conversations.

Merged PR#148 that added a health check script. Fixed all URLs raised as issues with link rot, expired domains and redirects. Thanks Samuel!

Add Ansible, Matplotlib, PowerShell, tmux, Screen, Pymux, PyCharm and terminal multiplexers starter pages with a few links, to be fleshed out later.

New Redis and Ubuntu resources.

Happy New Year! This is the 6th year of Full Stack Python, coming after a wonderful first five years.

2017

December



Passed 1,000,000 characters written on Full Stack Python according to wc on my Markdown content files. It's a super arbitrary but fun little milestone.

Removed a couple of Best Python Resources and added new resources to the Morepath page.

Added a ton of new SQLite resources.

Cleaned up broken and redirected links on all pages including blog posts.

Added 5 years of Full Stack Python retrospective blog post.

Merged PR#147 to fix an issue installing MySQL server package.

Major performance improvements by reducing all page sizes by 15-20%. Split apart the CSS, tuned it and minified the classes.

Merged pull request for How to Build Your First Slack Bot with Python tutorial from Slack dev advocates because bot building has changed since I originally wrote the post with custom integrations. Thanks Ankur and Bear!

Added new blog post based on latest email newsletter on GitPython and new Git tutorials.

Working on revamping older pages such as Django by eliminating outdated resources and adding the latest and greatest.

Removing Guide to Deployments links until the next version is out (estimated Spring 2018 after Ubuntu 18.04 LTS releases).

Crossed the 120k words mark for content, thanks to a slew of new tutorials and pages.

New serverless and AWS Lambda resources.

Merged PR#144 which fixes an issue with the wrong psql command in the blog post on Setting up PostgreSQL with Python 3 and psycopg on Ubuntu 16.04.

November



New blog post on First Steps with GitPython.

Added new blog post for latest newsletter on "DevOps, Thank You Maintainers and Contributing to Open Source".

Cleaned up some unfortunately broken links to websites that now 404.

Merge PR#143 to create new Dramatiq task queue starter page.

New blog post based on my DevOps, Continuous Delivery... and You talk with the slides and rough transcript from the sessions.

October



New resources on the SQLite and Vim pages.

New shells, Bash and Zsh starter pages.

Added blog post version of mid-October email newsletter PyCon US 2018 CFP, Python Bytes and Pelican.

New starter page for Rollbar as part of the hosted monitoring services series.

September



New blog post on Monitoring Python Web Apps that uses Bottle as the example web framework with a simple application.

New short blog post showing how to Provision Ubuntu 16.04 Linux Servers on Linode.

Added new minification and data analysis starter pages.

Modifying and favoring links to original sources rather than Medium links due to their new pop-ups that are really annoying for readers, especially when you're in the middle of trying to figure out a solution to a coding problem.

August



Updated subnav with a link to changelog.

Added d3.js starter page.

Added responsive design starter page.

Updated the Redis page with loads of new resources.

New Neo4j starter page.

Loads of new Bokeh resources and some new descriptions.

Split out from the ORMs and created dedicated pages for Django ORM, Pony and SQLObject. Also included updated resources for each page.

Added new page statuses by chapter to make it easier to track what's being worked on.

Updated future directions with more context on page maturity.

New starter pages for Companies Using Python and Sublime Text.

New Python 2 or 3? resources.

Fixed diagram mistake on Peewee ORM page that was referencing SQLAlchemy instead of Peewee.

July



Added new Bokeh+Bottle bar charts post blog post.

Added a way to highlight blog post code changes such as in the new monitoring Flask apps post under the "Handling Errors" section.

Added new blog post on how to monitor Flask applications.

Fixed a typo in the Make Phone Calls in Python blog post thanks to my colleague Greg Baugues' sharp eyes. 

June



New blog post on How to Create Your First Static Site with Pelican and Jinja2.

Updates to Twilio and Pelican pages with more resources.

May



New Falcon page to round out web frameworks pages.

Major updates to the WebSockets page with new Python projects, explanations and resources.

New blog post with my answer to the question of How to become a successful self-taught professional software developer.

New very short stub page for Google Cloud Functions. Hopefully they add proper Python support to their platform soon.

April



Updated many existing blog posts with fixes based on reader feedback and re-ran them to check what changes were needed.

New Serverless compute concept page.

Two new blog posts, one for Python 2.7 on AWS Lambda and another on Python 3.6 on AWS Lambda. Also added a page for AWS Lambda.

Updated Apache Cassandra page with a slew of new general and Python-specific resources.

New Pelican resources.

Updated some of the blog post tutorials (they are marked by updated dates) to fix issues with the steps or provide newer versions of libraries like Green Unicorn and operating systems such as Ubuntu.

Added new continuous integration resources.

New PostgreSQL page resources.

March



Pushed the 2000th commit to Full Stack Python, just under 2 years after the 1000th commit. Here's to the next 1,000 commits! Screenshot of 2000th commit to Full Stack Python.
Added new PostgreSQL and SQLAlchemy resources.

New Git resources.

Feburary



Add generating SSH keys on macOS Sierra blog post.

Removed all external CSS file loads and reduced the CSS for all pages and posts to the minimum amount required for that specific page.

Major performance improvements across the site by reducing CSS load and reducing image sizes.

Added blog post on Creating SSH Keys on Ubuntu Linux 16.04 LTS.

January



New Sanic stub page.

New Celery resources.

Added RQstub page.

Broke out Celery into its own page and cleaned up task queue resources.

Buffed up the number of MongoDB resources.

Added more specific web frameworks such as Sanic and Tornado to the table of contents. Pages will be created later.

Break out Jenkins page from continuous integration page origins.

Major update made to the template engines page with a bunch of new resources and explanations.

Added stub Apache Cassandra page with a few resources.

New Redis and MongoDB pages.

Further work on the Git page.

New Git page.

New resources and descriptions on the development environments page.

New static site generator resources added.

Added new resources to the Python 2 or 3? page.

Fixed all 404 link rot on every page. However, if a page has been rewritten or redirected and is no longer valuable as a link, please tweet meorfile an issue ticket on GitHub.

New Why Python? resources.

Happy New Year!

2016

December



Crossed 800,000 readers so far in 2016!

Added a small MkDocs page that needs to be expanded.

Updated the Nginx page with a better description of reverse proxies.

Add new Lektor page. Will be expanded upon during the month as I get to use the library.

Merged PR #111 that fixed some typos on the Django page, added clarity to a Django Channels statement and provided a new Django resource.

November



New blog post on How to Make Phone Calls in Python that does not rely on a web framework for HTTP POST responses.

Merge PR #110 to add the new task queue project Kuyruk to the task queues page.

October



Rearranged the individual pages and their meta to match the new table of contents.

Upgrades to the Peewee page with more descriptions and resources.

Added new Peewee ORM page.

Added new SQLAlchemy ORM page.

Updated all topics / table of contents page to show future topics I am working to create.

Added stub page that needs to be expanded for Python Community.

New resources on the DevOps page.

September



Broke out Pelican into its own page and added new content that was not previously found on the static website generators page.

Removed a ton of unnecessary CSS to make page loads faster.

Added new resources to the Python 2 or 3? page.

New update to the Full Stack Python Guide to Deployments book released!

Updated the Slack bot tutorial with a new bit on how to solve a common issue when the bot does not seem to be responding to @ mentions due to a missing colon in the input.

New resources on the static site generators page focusing on deploying a static site.

August



Added a new blog post on Dialing Outbound Phone Calls with a Bottle Web App.

Merged several pull requests such as #106 which fixed some bad errors on my part. Pull requests are amazing!

Finished the hugely successful Python for Entrepreneurs Kickstarter campaign. Thank you to everyone who contributed as a backer and supporter! Michael and I can't wait to get this new video course out to everyone.

Updates with new resources on the API Creation and development environments pages.

Added a Twilio API page to the APIs chapter. May add more pages that provide Python guidance for using popular APIs like Slack, Google, Sendgrid, etc.

Updated GitHub username references to mattmakai from makaimc (old username).

Additional Bottle resources.

New Vim resources.

Made a slew of improvements and added more resources to the Python 2 or 3? page.

July



New blog post with some background information on the Python for Entrepreneurs Kickstarter.

Launched a Kickstarter with Michael Kennedy to create a Python for Entrepreneurs video course!

Added new Why Use Python resources to that page.

Updated the NoSQL page with a couple of new resources.

June



Added another new blog post, this time on Setting Up Python 3, Django & Gunicorn on Linux Mint 17.3.

New blog post for Configuring Python 3, Pyramid and Gunicorn on Ubuntu.

Created little images for each of the posts on the blog post list page.

Start of new page on Ubuntu.

Two new tutorial blog posts: How to Build Your First Slack Bot with Python and Replying to SMS Text Messages with Python and Bottle.

New PostgreSQL monitoring resources.

May



New SQLite resources.

Removed or redirected a few broken links on various deployment pages.

One more new blog post tutorial before the month ends: Responding to SMS Text Messages with Python & Flask.

Added bunches of new content and links to the MySQL page.

Redirected several links that were still available but changed URLs. Make sure to 301 Redirect your old links that still have traffic! :)

Fixed a few broken and old links throughout the site. Darn link rot.

New blog post published: How to Use Redis with Python 3 and redis-py on Ubuntu 16.04.

Added fifth blog post, this time on Sending MMS Picture Messages with Python.

Two new tutorial blog posts: How to Send SMS Text Messages with Python and Configuring Python 3, Bottle and Gunicorn for Development on Ubuntu 16.04 LTS.

Wrote another blog post, this time on How to set up Python 3, Flask and Green Unicorn on Ubuntu 16.04 LTS.

Wrote a new blog postonSetting up Python 3, Django and Gunicorn on Ubuntu 16.04 LTS.

Added new resources to the Vim and Emacs pages.

New Green Unicorn (Gunicorn) page added. Still a bit sparse at the moment but starting to get filled in.

April



Updated the Nginx page with a security section.

Added new Channels section to Django page.

Clean up on some existing pages to remove broken links.

Added new subnav under the logo and title so readers can more easily access the table of contents.

March



Added new DevOps resources.

Removed unfortunate dead links from the Django page.

Made a huge improvement to the layout of the full-sized table of contents that appears on pages that are above 768px wide (the collapsed table of contents for mobile stays the same).

Began work on an Apache HTTP Server page.

Added some new awesome deployment resources.

February



Added a new section for Python images within Docker containers.

Added a couple of new resources to the WebSockets page.

January



Added initial page for SQLite that will be built out over the next few weeks.

Added a couple of new resources to the ORMs page.

More resources on the PostgreSQL page and now grouped into Python-specific and general sections.

Major update to relational databases page with new sections and resources.

Updated the Jinja2 page with new sections and resources. Also added a new tutorial link on the Bottle page.

Added new summaries and links to the Docker and Best Python Resources pages.

Expanding the PostgreSQL page with more detail and additional resources.

Split the relational databases page sections on PostgreSQL and MySQL out into their own pages so there is more room to write about the three topics without making the databases page a behemoth.

Updated the template engines page with a new image to show the spectrum between arbitrary code execution and no logic in templates.

Added a new Jinja2 page specifically for that template engine.

Happy New Year! Finished 2015 with over 455,000 users according to Google Analytics. Thanks everyone! Can't wait to write more pages and improve the existing ones in 2016.

2015

December



Started on a DevOps page and began adding basic resources to it.

Added new section on "Python for specific occupations" to the best resources page.

New web development resources.

Released the December update to The Full Stack Python Guide to Deployments book with additional polish based on reader feedback.

Added new resources to the API creation, comprehensions and development environments pages.

New resources and a new basic page on the Python programming language itself.

Added new starter projects to the Flask page.

November



Started a new page for template engines. Needs some more writing and resources.

Working on a page for the umbrella web development concept, but it's early days as I'm trying to figure out how to be clear and concise about this broad topic.

Merged pull request #70 and fixed some other issues that were in tickets.

Made more updates to the static site generators page based on feedback from folks on the /r/python subreddit.

Updated the static site generators page with a better explanation of why they are useful.

October



Starting a microservices page with some basic definitions and resources.

Added a new resource to the Enterprise Python page.

September



Updated the project templates section on the Django page.

Added API creation resources.

A new update for Full Stack Python Guide to Deployments went out to existing purchasers!

August



Created new pages for unit testing and integration testing.

Created a new page on testing that will be fleshed out over the next few weeks.

Added new Django resources, especially for migrations.

Added new web app security resources on HTTPS.

July



Updated a boatload of pages with typo and grammar fixes while reviewing everything for the upcoming launch of the PDF version of FSP contained in the packaged book deal.

Added the beginnings of a static site generator page.

Updated sidebar with links to the new Full Stack Python Guide to Deployments ebook.

New resources on the web frameworks and Morepath pages.

June



New API Creation and Django resources added.

Added new Peewee resources on the ORMs page.

Nice little update to the ORMs page with a diagram showing that different ORMs can work with varying web frameworks and backends.

Added a new section just for Nginx resources and Removed broken links on the web servers page.

Added a new page on Python object-relational mappers, which helped condense that information on a single page and lighten the loads on the Django and relational databases pages.

Added new page with a little advice on learning programming.

Proofread and tweaked the web frameworks page.

Added a new section entitled "Do I have to use a web framework?" to the web frameworks page.

Reviewed and updated the introduction with slight modifications.

Added new Docker resources.

Made some changes to what is contained in the Markdown files versus the HTML Jinja2 templates. Behind the scenes work that needed to be done to move the project forward.

Work continues on the Full Stack Python Guide to Deployments book.

May



Got a whole lot of work done on my upcoming Full Stack Python Guide to Deployments book. Very close to releasing it (looking at mid-June).

Added new Django resources, especially around migrations in Django 1.7+.

Worked on making Why Use Python? page specific to that topic now that the Enterprise Python page contains enterprise-y info.

New page on the super broad topic of Data with Python. Eventually it'll link to all sorts of data topics such as analysis, visualization and processing.

New page on Enterprise Python. A bit op-ed-ish perhaps, but I think it captures some of the spirit of the open source ecosystem with regards to Python for enterprise software development.

Added additional Django resources, specifically related to testing.

April



Added more NoSQL resources, especially ones involving Redis.

New Pyramid resource where the primary author is interviewed about the web framework.

New Vim resources.

Updated the Django page with new resources. The page is getting unwieldy at its current size so I'll likely pare it down with better categorizes sometime soon.

Added new resources on the Flask page.

March



Added new source control resources.

Major site performance improvements. I removed font awesome and replaced icons with SVG elements that mimic the font awesome icons.

Pushed the 1000th commit to Full Stack Python! Screenshot of 1000th commit to Full Stack Python.
Major update to Vim page to add screenshots, a better example .vimrc configuration and many more resources.

Updated the web analytics page with a new Python-specific section for walkthroughs that are specific to building or using analytics with Python applications.

Adding a slew of new Django resources.

Working on including Crossbar.io and Autobahn to the websockets page.

Added the Muffin framework to the other web frameworks page.

Added new Emacs page based on pull request #49 base information. Thank you!

Added a new page on best Python videos that breaks out all the videos I had scattered around the site and puts the best ones in a single place.

Beefing up the Django resources and will soon break them further down into subcategories so they are easier to find by topic.

February



Cleaned up the sidebar and email subscribe messaging.

Added new monitoring, websockets and continuous integration resources.

New Django resources.

Updated the Vim page with a Vimrc configuration file explanation along with Vimrc resources.

Added a generators page that's mostly a stub that I will be building out to explain this core language feature.

Updated table of contents with new layout that'll allow me to expand on core Python language topics.

Updated several out of date resources and added a new logging resource.

New Pyramid resources. I definitely need to flesh that page out further.

Added a Vim page and resources for learning Vim as a Python code editor.

Reorganized content pages to make for better logical groupings as I add new content.

Major improvements to Websockets page after suggestions from issue #47 on GitHub repository.

January



Rewrote the Mailchimp sign up form for the email list so it doesn't have the external JQuery libraries as dependencies. Site should be even faster now.

Stripped a significant portion of unused Bootstrap boilerplate from the CSS file and minified it. The resulting CSS file is over 100KB less (about 25KB down from 130KB) so the site should load faster now.

Major update to WebSockets page with new diagrams and better explanations for why server push is useful.

New task queue resources.

Major update with the beginning of a page on Docker, split out static file handling resources on the Django page and a new section on Python programming language popularity on the "Why Use Python?" page.

Working on a Why Use Python? page with my own assessment of the strengths and weaknesses of Python along with links to resources where other folks discuss their own experiences.

Continuing to add WebSockets resources, especially Python-specific ones.

Added a new separate page for the Morepath framework.

Updated the future directions page for 2015.

Added new WebSockets resources.

Added WebSockets page and some initial resources.

2014

December



Added new security resources and splitting HTTPS resources into their own section.

Split out Djangular resources into a separate section.

New NoSQL Python client resources.

Added new API resources for integration and creation.

November



Added a nice new continuous integration diagram.

More Django and database resources.

Revising development environments page and adding new resources.

Adding my new Flask blog post on choose your own adventure presentations along with the open source repository.

More resources under Best Python Resources.

Removing broken links from Best Python Resources and Django pages.

New monitoring and development environments resources.

October



Added the first new page in awhile! All about development environments.

Always adding new links to the best resources. More resources for deployments, web analytics and Flask.

More API creation and consumption resources.

Merged a bunch of pull requests that cleaned up spelling and grammar errors. Thank you contributors!

Adding new Django 1.7-specific resources section on the Django page.

New web frameworks, Bottle and Flask resources.

September



New resources for Flask, Django and task queues sections.

A few new resources for NoSQL data stores.

August



New interesting link for web framework code complexity visualizations.

Merged pull request that fixed some issues on WSGI page.

Updated table of contents so it's easier to read and broken down by sections.

Added new Web Design page to cleanly separate CSS from design topics and resources.

New resources for code metrics and NoSQL databases.

Added another Flask open source example app.

Added new Code Metrics page.

Updated CI page with more services and open source projects.

Added Continuous Integration page.

Splitting out deployment from automation so I can add chapters on continuous integration, configuration management (which will be moved from the existing deployment chapter) and related topics.

Small tweaks to NoSQL, introduction and a few other pages.

Moved topics map from introduction page to deployment page.

July



Merged pull request for Django page and updated Django page with project template section.

New Django example project resources.

Rewrote parts of source control and CSS pages for clarity.

Merged typo fixes PR #32.

Added my Full Stack Python video from the EuroPython 2014 conference.

Updated map with further details.

Added a map to the front page. May move that elsewhere later though based on feedback.

Merged a pull request for new REST frameworks.

Lots of new Django, Flask and task queue resources.

Added two new Python libraries lists to the Best Python Resources page.

Thanks Hacker News for doubling my traffic so far in 2014! 65k uniques and counting...

June



Added more monitoring and logging resources.

New resources for Flask and NoSQL projects.

Updated NoSQL data store page with specific open source projects.

Added diagram to source control page.

Split version control resources from Git resources. Added new version control resources.

Updated logging page with better explanations and content ordering.

Added learning checklists for all sections. The remaining sections that now also have checklists are logging, web analytics and web application security.

May



Added link to my O'Reilly Programming blog post on demand for full stack developer capabilities.

Updated APIs page with basic information on webhooks.

Added learning checklists for source control, application dependencies, configuration management, NoSQL data stores, APIs, API integration, API creation, static content and caching sections.

Moving learning checklists to the bottom of the pages since they are specific advice for steps to take after reading a section.

Added a stub section for APIs.

Cleaned up and polished the task queues and web analytics pages.

Added learning checklist to operating systems, web servers, task queues, monitoring pages and WSGI servers.

Adding more logging resources.

Continuing to add learning checklists to sections such as servers.

Moving navigation options into meta tags on markdown pages.

April



Adding the concept of "learning checklists" to web frameworks, Django, CSS and JavaScript pages to give readers some guidance for how to learn each topic. Will expand these checklists out into other pages over the next couple of weeks.

Added an email sign up form to determine how many people are interested in a full book since I've had a lot of requests in person to write one.

Added new resources to the other web frameworks section.

Updated the way choices to go from one page to another are generated. It's now done off metadata instead of duplicated HTML content.

Huge site update to reorganize the way content is presented and navigated. Kinda has that "choose your own adventure" thing going for it, doesn't it?


New logo! This one's way more Python software stack, way less boring folder-thingy. Here's how the old one looked in comparison: Old Full Stack Python logo


Added a future direction section to explain current priorities for further developments on the site.


More resources for web frameworks and configuration management sections.

Added small JavaScript section. Updating witih basic resources.

Updated application dependencies with new links to Python library collections.

Merged a couple of awesome pull requests that fixed typos and added additional Bottle resources.

March



Updated logging page with new resources.

Added new CSS page.

New intermediate learning links on the best resources page.

Updated task queues page with better explanations and many more curated resources.

Added why is this piece necessary for databases, WSGI servers, web frameworks and application dependencies.

Updating best resources page with newsletters and a few additional beyond the basics resources.

Adding 'why is this necessary' sections to servers, operating systems, and web servers pages.

Extracting best Python resources from the introduction into a separate page.

Cleaned up links on the first ten chapters and added new resources for web frameworks.

Updated application dependencies section with new resources and initial content description.

Updated the change log (how meta!) to have a cleaner layout.

February



Added Bottle as a web framework next to Django and Flask.

Added new Django resources. 

New sitemap.xml. 

Rewriting all sections to fix first draft typos and grammar mistakes as well as add new content.

Added task queues section due to reader feedback. 

Rewrote intro section.

Merged several pull requests (see closed GitHub repo pull requests). 

New resources for platform-as-a-service section. 

Added new sections specified by the community as missing. 

Reorganized ordering of content. 

Broke out subsections for Django and Flask. 

Added signficant content to the WSGI section. 

Converted from RST to Markdown (some of the downstream tools I want to use work better with Markdown than RST). 

Reorganized content into rough outline of "final" chapters.

January



Added configuration management, application dependencies, and source control sections. 

Updated about section. 

Fully responsive web design.

2013

December



Changed CDN section to static content section. 

Transitioned diagrams from Paper app drawings to Balsamiq mockups exported to PNG files. 

Added Python database connectors to database section.

November



Modified color scheme. 

Updated caching and introduction section.

Added NoSQL data stores section.

October



Created separate monitoring section.

August



Added more resources for web servers and other categories.

June



Updated styling.

Switching around several sections.

January



Fleshed out web server, OS, and server sections, particularly IaaS and PaaS topics.

Added initial "hand drawn" diagram placeholders for better diagrams later.

2012

December



Initial incomplete release on fullstackpython.com, created introduction, CDN, web frameworks, and database sections with stubs for other areas.

That's the history of FSP. What's next on your learning list?





What're the future plans for Full Stack Python?
 




Who created Full Stack Python?
 




Take me back to the Full Stack Python introduction.
 





Table of Contents



1. Introduction 2. Development Environments 3. Data 4. Web Development 5. Deployment 6. DevOps Changelog What Full Stack Means About the Author Future Directions Page Statuses ...or view the full table of contents.



Full Stack Python


Full Stack Python is an open book that explains concepts in plain language and provides helpful resources for those topics.

Updates via Twitter & Facebook.



Chapters



1. Introduction 2. Development Environments 3. Data 4. Web Development 5. Deployment 6. DevOps » Changelog What Full Stack Means About the Author Future Directions Page Statuses ...or view the full table of contents.

 



Matt Makai 2012-2022