How do you make the most of an investment in a Django application? What things do you need to plan for maintaining a SaaS application using Django?
The articles and videos here have been shared to answer these questions. They include general tips for developing with Django and specific advice about working with legacy Django sites that you won't find anywhere else.
Simplify to improve; but sometimes it's not possible or reasonable to simplify difficult to understand code. Understand why this can be the case in your Django project and some strategies for mitigating these issues.
Like financial debt, technical debt serves a purpose, and like financial debt, once it's allowed to snowball servicing the debt can become all consuming. Know why your Django project has technical debt, how to assess it, and how to deal with it.
Tests can make it harder to make changes to your Django site. Not just *missing* tests, but slow tests and bad tests which cause programmer pain, misdirected efforts, and false confidence. What do these four flavors of test look like and how can you correct for the troubled ones?
Whether months or years after launch, it can become increasingly painful to make changes to any application, Django-based sites included. An overview of some of the causes and an introduction to the series.
A little knowledge can go a long way, and often suffices to empower customers to solve their own problems by giving them the knowledge they need.
User, or more accurately customer success, is not guaranteed just because your application has a great test suite or an amazing interface. Deliberately guiding them through steps to learn your application and establish familiarity helps improve user - and customer - success.
An account, a user, an identity, but not all at once. A Django app for providing multi-user accounts and the steady march to 1.0
Users and accounts needn't be confused. Let your customers work together by supporting multiple users per account.
Put subdomains to work and build dynamic multi-tennant applications.
Tests can make it harder to make changes to your Django site. Not just *missing* tests, but slow tests and bad tests which cause programmer pain, misdirected efforts, and false confidence. What do these four flavors of test look like and how can you correct for the troubled ones?
Your content is an asset - you already know this - but this also includes the rich web of links on and outside your site that bring people to your site and help lead them through your content. When your site goes through an update that involves updating your URLs, how do you make sure you're not left with broken links and bad search results? A brief introduction to pyresttest for smoketesting and testing URL mappings.
Building a collection of cross-browser screenshots with BrowserStack and CircleCI
Static websites have great performance, security, and simple data management. With the right tools, we can add these static site benefits to our Django site.
django-filer is a great tool for reusing uploaded content across Django sites. It's an easy choice for new projects, but what about existing projects? Painless steps for migrating existing image and file uploads to django-filer.
Using Django CMS to select featured items from a content river in a way that's intuitive for both designers and editors.
While proxy models aren't the most critical feature in the Django framework, they do seem to get short shrift. Here's a look into how to use this feature to create new and clean interfaces to data without making changes to your database.
Using Fabric and the new Invoke to simplify and codify both development and deployment patterns.
Whether for sharing with third parties, outside analytics work, or simply content extraction, many sites need to provide data export functinality, and in a user friendly way to boot. Comma separated format fits the bill in most cases - it's portable and spreadsheet friendly, and its something developers and the non-tech savvy can work with right away.
Most search requirements are pretty simple and can be satisfied without a search backend. Keeping the code clean and testable is easier with this manager based design pattern.
Easily edit arbitrary text snippets on a site without a full-fledged CMS or issuing another site release. Like a mini-CMS for every site.
Haystack makes integrating ElasticSearch into Django projects a breeze, but custom configuration takes a little bit more work.
Put subdomains to work and build dynamic multi-tennant applications.
Using Nginx's X-Accel-Redirect you can apply permissions to files served directly by Nginx or combine Django and WordPress in the same URL paths.
Better environment configuration, inspired by Heroku, borrowed from Foreman.
Ditch Photoshop: making on-the-fly edits and enhancements to images using Python.
You can use Django's URL routing to create easy to read URLs that can keep up with content changes.
Static websites have great performance, security, and simple data management. With the right tools, we can add these static site benefits to our Django site.
Google will update their search indexing rubric on April 21, 2015 to better serve mobile-friendly results to mobile users. The lack of a mobile-friendly site after this update will result in lower search rankings for your website. Here's what you can do to be ready, keeping yourself and your users happy.
Performance, accessibility, and even security all effect the user experience. Each has a significant effect on the perception of your product, especially when bad planning turns into less-than-desirable results.
User Experience (UX) design is anchored by its foundations in psychology and sociology, centering around the human experience. The application of UX, like its foundations, relies on observable theory and continual discussion, often coming down to a matter of informed opinion. These opinions range from its best practices right down to its tools.
Why we chose the Node.js based CSS preprocessor and an introduction to using it to power up your CSS.
User-generated content is something that we as web developers, designers, and managers struggle with attempting to control; we don’t know what our users will write or how they’ll write it. Regain control of your user generated content with the power of HTML5 and CSS3.
It can feel productive to start specifying how a project will work from the very start, from workflows to designs. This is almost always a dangerous illusion and a reliable way of making an exact and flawed product.
Building a collection of cross-browser screenshots with BrowserStack and CircleCI
Using Fabric and the new Invoke to simplify and codify both development and deployment patterns.
Users and accounts needn't be confused. Let your customers work together by supporting multiple users per account.
Rules for working together, staying sane, and shipping quality product.
A sensible Git-based workflow for small teams and open source projects.
Your content is an asset - you already know this - but this also includes the rich web of links on and outside your site that bring people to your site and help lead them through your content. When your site goes through an update that involves updating your URLs, how do you make sure you're not left with broken links and bad search results? A brief introduction to pyresttest for smoketesting and testing URL mappings.
User-generated content is something that we as web developers, designers, and managers struggle with attempting to control; we don’t know what our users will write or how they’ll write it. Regain control of your user generated content with the power of HTML5 and CSS3.
A fallback strategy for migrating content on large and disorganized sites
Protecting valuable links for users and search engines is an important step in any site migration
Replacing an established website necessities a good content migration plan