# Course 31 - Dive Into Docker | Episode 11: Framework Starters and Design Best Practices Page: https://stenobird.com/podcast/cybercode-academy-7578615/course-31-dive-into-docker-episode-11-framework-starters-and-design-best-practices Text version: https://stenobird.com/podcast/cybercode-academy-7578615/course-31-dive-into-docker-episode-11-framework-starters-and-design-best-practices.md Podcast: [CyberCode Academy](https://stenobird.com/podcast/cybercode-academy-7578615) Published: 2026-04-30T06:00:03+00:00 Episode link: https://www.spreaker.com/episode/course-31-dive-into-docker-episode-11-framework-starters-and-design-best-practices--71307484 Audio file: https://dts.podtrac.com/redirect.mp3/api.spreaker.com/download/episode/71307484/architecting_stateless_web_applications_in_docker.mp3 Processing state: not_requested JSON: https://stenobird.com/v1/public/podcasts/cybercode-academy-7578615/episodes/course-31-dive-into-docker-episode-11-framework-starters-and-design-best-practices Duration seconds: 1111 ## Resource In this lesson, you’ll learn about: applying Docker to real-world apps and scalable architecture principles1. Framework-Based Starter Projects The episode provides 7 ready-to-use starter projects for popular frameworks: Flask Express (Node.js) .NET Django Ruby on Rails Golang Laravel Each project includes: Dockerfile docker-compose.yml 👉 Goal: get you running fast with real applications in Docker2. Logging to Standard Output (stdout)❌ Problem: Writing logs to files inside containers Logs are lost when the container stops or restarts ✅ Best Practice: Log everything to stdout print("App started") Benefits: Managed by Docker daemon Easy to: View → docker logs Rotate logs Send to monitoring systems 3. Environment-Based Configuration Use environment variables instead of hardcoding values Example:DB_HOST=redis APP_ENV=production Benefits: Switch between environments easily: Development Testing Production No need to change source code 4. Stateless Application Design ("Stupid Apps")❌ Bad Practice: Storing data inside the app container Example: Sessions in memory ✅ Best Practice: Keep apps stateless Store data in external services like: Redis (sessions, cache) Databases Why this matters: Containers can: Restart anytime Scale horizontally 👉 No data should be lost5. The 12-Factor App Philosophy These practices are based on: 12 Factor App Core Ideas: Config via environment variables Logs treated as event streams Stateless processes Portable across environments 6. Real-World ImpactFollowing these principles allows you to: Scale applications easily Avoid downtime/data loss Deploy consistently across: Local Cloud CI/CD pipelines Key Takeaways Starter projects help you skip setup and start building Always log to stdout Use .env for configuration Keep apps stateless Follow 12-Factor Ap… ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/cybercode-academy-7578615/episodes/course-31-dive-into-docker-episode-11-framework-starters-and-design-best-practices/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/cybercode-academy-7578615/course-31-dive-into-docker-episode-11-framework-starters-and-design-best-practices.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.