372 Dealing with legacy applications [0.75d]
Legacy Rails apps need stability work: add safety tests, reduce setup and deployment friction, and keep improving the most failure-prone parts.
395 Background processing [2d]
Web requests should not block on long-running or retryable work; cronjobs and Sidekiq move those tasks to background processing.
396 Internationalization (I18n) [2d]
Rails locale handling centralizes labels, formats, and error text, making apps DRY and easier to switch between languages while keeping tests manageable.
397 Rails: Sending e-mail [2d]
Validating recipients, preventing accidental sends in non-production, and improving deliverability and HTML styling keep Rails e-mail features reliable.
400 Bonus: Buzzwords and staying up to date [1d]
A broad web technology glossary helps you follow client and developer discussions and judge which trends matter in daily consultancy work. Periodic feeds, newsletters, blogs and podcasts support staying current.
910 Bonus: Rake [0.75d]
Rake tasks automate Rails maintenance and can depend on setup tasks like :environment; Capistrano uses the same DSL but not the same task system.
920 Bonus: React islands [2d]
Most of MovieDB is server-rendered and enhanced with Unpoly, and that's our default. Sometimes one region of a page needs more interactivity than that model gives you comfortably. Then we build an island: a React component mounted into a server-rendered page. This card teaches the React basics you need for that — components, state, effects, talking to Rails — and how to mount an island from an Unpoly compiler. It is not about building single-page apps.
Important
Work on this lesson in
advisormode.
Learning goals
- You can ex...
940 Bonus: Persisting trees [2d]
Store movie inspiration as a tree, select only valid predecessors in the form, and render the full inspiration tree efficiently with ancestry.
965 Bonus: Writing documentation
Clear project docs help engineers understand core features and technical details quickly; a strong README complements self-explanatory code and supports onboarding.
980 Bootstrap [2d]
Bootstrap provides a shared visual base and responsive components for faster, more consistent interfaces; Sass variables and selective imports make customization and smaller CSS builds practical.
990 Simple Form [2d]
Simple Form speeds up repetitive form markup and needs project-specific HTML customization; a custom :money input can add a euro suffix and fixed two-decimal display.
995 Bonus: Images [1.5d]
Raster and vector image formats differ in quality, compression, and scalability; high-density displays need responsive image strategies to avoid pixelation and wasted bandwidth.
9980 Network basics [0.5d]
Web requests depend on HTTP, TLS, DNS and routing; headers, certificates and name resolution determine how browsers reach and secure sites.
9982 Cucumber in depth [2d]
Advanced Cucumber features, cucumber_factory, and DRY scenario design help reduce duplicated step definitions and improve maintainability.
9983 The asset pipeline [1d]
Rails serves stylesheets, JavaScript, and images through the asset pipeline, with preprocessing, bundling, minification, and fingerprinting needed for production caching.
9984 Internal APIs and client-side rendering
Server-rendered search results and client-side rendering patterns for a movie list, shifting from HTML snippets to JSON and safe DOM construction.
9985 Rack and Middlewares
Rack middleware enables cross-cutting Rails behavior such as request handling and exception notification outside controllers.
9987 Modern build pipelines with Webpack [3d]
Webpacker adds ES6 modules and npm packages to Rails builds, replacing global window JavaScript and shifting asset handling from Sprockets to webpack.
9988 Static site generators
Static site generators can reduce maintenance and security risk for content sites while keeping development simple. Middleman is used here as a Rails alternative for building and previewing pages.