Final Capstone: Build, Publish, and Walkthrough
Apply everything you've learned by building a complete Shopify theme feature, documenting it professionally, and presenting your work.
Congratulations on reaching the final lesson! This capstone project brings together everything you’ve learned to build a professional-quality theme feature from start to finish.
Capstone Overview
You’ll complete a comprehensive project that demonstrates your Shopify theme development skills:
- Build a complete feature or mini-theme
- Test across browsers and devices
- Document for merchants and developers
- Deploy using professional workflows
- Present your work
Project Options
Choose one of these capstone projects:
Option A: Featured Collection Section
Build a highly customizable featured collection section with:
- Multiple layout options (grid, slider, list)
- Product card customization
- Color scheme support
- Responsive design
- App block compatibility
Option B: Advanced Product Page
Create a complete product template featuring:
- Media gallery with zoom
- Variant selection with swatches
- Quantity controls
- Related products
- Metafield integration
- Structured data
Option C: Mega Menu Navigation
Build a navigation system including:
- Multi-level dropdown/megamenu
- Mobile drawer navigation
- Featured content blocks
- Announcement bar
- Sticky header behavior
Option D: Mini Theme
Create a minimal but complete theme with:
- Header and footer
- Homepage template
- Collection template
- Product template
- Cart functionality
Project Requirements
Technical Requirements
## Must Include
### Liquid
- [ ] Clean, well-organized Liquid code- [ ] Proper use of snippets for reusability- [ ] Efficient loops and conditionals- [ ] Error handling for edge cases
### Schema
- [ ] Comprehensive section settings- [ ] Logical block types- [ ] Helpful labels and info text- [ ] Sensible defaults- [ ] Presets for quick setup
### Styling
- [ ] CSS custom properties for theming- [ ] Responsive at all breakpoints- [ ] Consistent spacing and typography- [ ] Smooth transitions/animations
### JavaScript
- [ ] Progressive enhancement- [ ] Event delegation where appropriate- [ ] No console errors- [ ] Theme editor compatibility
### Accessibility
- [ ] Semantic HTML- [ ] Keyboard navigation- [ ] ARIA attributes where needed- [ ] Sufficient color contrast
### Performance
- [ ] Lazy loading for images- [ ] Efficient asset loading- [ ] No render-blocking resourcesDocumentation Requirements
## Documentation
### For Merchants
- [ ] Section/feature overview- [ ] Setting descriptions- [ ] Best practices and tips- [ ] Example configurations
### For Developers
- [ ] Code architecture overview- [ ] Customization guide- [ ] Dependencies and requirements- [ ] Known limitationsStep-by-Step Process
Phase 1: Planning (Day 1)
## Planning Checklist
1. Choose your project option2. Sketch the UI/UX design3. List all features and settings4. Identify edge cases5. Plan file structure6. Set up Git repositoryExample Feature List
## Featured Collection Section
### Features
- Grid layout (2-6 columns)- Slider layout with arrows- Product card components- Quick view trigger- Collection link
### Settings
- Heading text- Collection picker- Products per row (desktop/mobile)- Show/hide elements- Color scheme selector- Layout type toggle
### Blocks
- Product (auto from collection)- Promotional card- Spacer
### Edge Cases
- Empty collection- Collection with 1 product- Very long product titles- Products without images- Sold out productsPhase 2: Development (Days 2-4)
## Development Process
1. Set up development environment - Clone Dawn or start fresh - Run shopify theme dev2. Build HTML structure first - Semantic markup - Accessibility foundations3. Add Liquid logic - Dynamic content - Settings integration4. Style with CSS - Mobile-first approach - CSS custom properties5. Add JavaScript - Progressive enhancement - Theme editor events6. Write schema - All settings and blocks - Presets and defaultsExample Section Structure
{# sections/featured-collection.liquid #}
<section class="featured-collection color-scheme-{{ section.settings.color_scheme }}" id="section-{{ section.id }}"> <div class="container"> {%- if section.settings.heading != blank -%} <h2 class="featured-collection__heading"> {{ section.settings.heading }} </h2> {%- endif -%}
{%- assign collection = collections[section.settings.collection] -%}
{%- if collection.products.size > 0 -%} <div class="featured-collection__grid" style="--columns: {{ section.settings.columns }};" > {%- for product in collection.products limit: section.settings.products_count -%} {% render 'product-card', product: product, show_vendor: section.settings.show_vendor, show_rating: section.settings.show_rating %} {%- endfor -%} </div>
{%- if section.settings.show_view_all -%} <div class="featured-collection__footer"> <a href="{{ collection.url }}" class="button button--secondary"> {{ section.settings.view_all_text | default: 'View All' }} </a> </div> {%- endif -%} {%- else -%} <p class="featured-collection__empty"> {{ 'collections.general.no_matches' | t }} </p> {%- endif -%} </div></section>
{% schema %}{ "name": "Featured Collection", "tag": "section", "class": "featured-collection-section", "settings": [ { "type": "text", "id": "heading", "label": "Heading", "default": "Featured Products" }, { "type": "collection", "id": "collection", "label": "Collection" }, { "type": "range", "id": "products_count", "label": "Products to show", "min": 2, "max": 12, "step": 1, "default": 4 }, { "type": "range", "id": "columns", "label": "Columns (desktop)", "min": 2, "max": 6, "step": 1, "default": 4 }, { "type": "color_scheme", "id": "color_scheme", "label": "Color scheme", "default": "scheme_1" }, { "type": "header", "content": "Product card" }, { "type": "checkbox", "id": "show_vendor", "label": "Show vendor", "default": false }, { "type": "checkbox", "id": "show_rating", "label": "Show rating", "default": false }, { "type": "header", "content": "Footer" }, { "type": "checkbox", "id": "show_view_all", "label": "Show 'View all' button", "default": true }, { "type": "text", "id": "view_all_text", "label": "Button text", "default": "View All" } ], "blocks": [ { "type": "@app" } ], "presets": [ { "name": "Featured Collection" } ]}{% endschema %}Phase 3: Testing (Day 5)
## Testing Checklist
### Functional Testing
- [ ] All settings work correctly- [ ] Edge cases handled- [ ] Theme editor preview works- [ ] Section re-renders correctly
### Browser Testing
- [ ] Chrome (desktop/mobile)- [ ] Safari (desktop/iOS)- [ ] Firefox- [ ] Edge
### Responsive Testing
- [ ] 320px (small mobile)- [ ] 375px (iPhone)- [ ] 768px (tablet)- [ ] 1024px (laptop)- [ ] 1440px (desktop)
### Accessibility Testing
- [ ] Keyboard navigation- [ ] Screen reader testing- [ ] Color contrast- [ ] Focus indicators
### Performance Testing
- [ ] Lighthouse audit- [ ] Image optimization- [ ] No console errorsPhase 4: Documentation (Day 6)
## Documentation Structure
### README.md
- Project overview- Installation instructions- Configuration guide- Screenshots/demos
### MERCHANT_GUIDE.md
- Feature overview- Step-by-step setup- Best practices- FAQ
### DEVELOPER_GUIDE.md
- Architecture overview- Code organization- Customization points- Contributing guidelinesExample README
# Featured Collection Section
A highly customizable featured collection section for Shopify themes.
## Features
- 🎨 Multiple layout options- 📱 Fully responsive- ♿ Accessible- 🎯 Color scheme support- 🧩 App block compatible
## Installation
1. Copy `sections/featured-collection.liquid` to your theme2. Copy `snippets/product-card.liquid` if not present3. Add the section to any template
## Configuration
### Basic Setup
1. Add section to homepage2. Select a collection3. Customize appearance
### Available Settings
| Setting | Description | Default || -------------- | ----------------- | ------------------- || Heading | Section title | "Featured Products" || Collection | Products source | None || Products count | Number to display | 4 || Columns | Grid columns | 4 |
## Screenshots
[Include screenshots here]
## Browser Support
- Chrome 90+- Safari 14+- Firefox 88+- Edge 90+
## License
MITPhase 5: Deployment (Day 7)
## Deployment Steps
1. Final code review2. Run theme check3. Update version number4. Create release notes5. Push to development theme6. Test in theme editor7. Push to staging8. Get approval9. Deploy to production10. Verify deploymentPhase 6: Presentation
## Presentation Outline
### 1. Introduction (2 min)
- What you built- Why you chose this project
### 2. Demo (5 min)
- Live walkthrough- Key features- Merchant experience
### 3. Technical Deep Dive (5 min)
- Architecture decisions- Interesting challenges- Solutions implemented
### 4. Quality Assurance (3 min)
- Testing approach- Accessibility features- Performance results
### 5. Lessons Learned (2 min)
- What went well- What you'd do differently- Future improvements
### 6. Q&A (3 min)Evaluation Criteria
Your project will be evaluated on:
| Category | Weight | Criteria |
|---|---|---|
| Code Quality | 25% | Clean, organized, follows best practices |
| Functionality | 25% | Features work correctly, edge cases handled |
| Merchant UX | 20% | Easy to use, good settings, helpful documentation |
| Accessibility | 15% | Keyboard accessible, screen reader friendly |
| Performance | 15% | Fast loading, optimized assets |
Submission Checklist
## Final Submission
### Code
- [ ] All files included- [ ] No console errors- [ ] Theme check passes- [ ] Version number set
### Documentation
- [ ] README complete- [ ] Merchant guide written- [ ] Developer guide written- [ ] Screenshots included
### Testing Evidence
- [ ] Lighthouse scores- [ ] Browser test results- [ ] Accessibility audit
### Presentation
- [ ] Demo prepared- [ ] Talking points ready- [ ] Q&A answers preparedNext Steps
After completing this course:
- Build your portfolio with capstone projects
- Contribute to open-source themes
- Stay updated with Shopify changelog
- Join communities (Shopify Partners, Discord)
- Consider certification from Shopify
Congratulations! 🎉
You’ve completed the Shopify Liquid Fundamentals course. You now have the knowledge to:
- Build custom Shopify themes from scratch
- Create flexible, merchant-friendly sections
- Implement accessible, performant features
- Deploy themes professionally
- Maintain and update themes safely
Keep building, keep learning, and welcome to the Shopify developer community!
Resources
Official Documentation
Community
Tools
Thank you for taking this course. Now go build something amazing!
Finished this lesson?
Mark it complete to track your progress.
Discussion
Loading comments...