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

October

  • Starting to get back into updating this site again! Note that I'll probably spend most of my side project time on Plushcap but I'm removing old resources and adding new good ones on here to keep the site maintained.

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

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

April

March

February

January

2020

December

November

October

September

August

July

June

May

April

March

February

January

2019

December

November

October

September

August

July

June

May

April

March

February

January

2018

December

November

October

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

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

May

April

March

February

January

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

October

September

August

July

June

May

April

March

Feburary

January

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

October

September

August

July

June

May

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

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

November

October

September

August

July

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.


Matt Makai 2012-2022