Quality, Performance, Accessibility, and Shipping Advanced 20 min read

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:

  1. Build a complete feature or mini-theme
  2. Test across browsers and devices
  3. Document for merchants and developers
  4. Deploy using professional workflows
  5. Present your work

Project Options

Choose one of these capstone projects:

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 resources

Documentation 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 limitations

Step-by-Step Process

Phase 1: Planning (Day 1)

## Planning Checklist
1. Choose your project option
2. Sketch the UI/UX design
3. List all features and settings
4. Identify edge cases
5. Plan file structure
6. Set up Git repository

Example 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 products

Phase 2: Development (Days 2-4)

## Development Process
1. Set up development environment
- Clone Dawn or start fresh
- Run shopify theme dev
2. Build HTML structure first
- Semantic markup
- Accessibility foundations
3. Add Liquid logic
- Dynamic content
- Settings integration
4. Style with CSS
- Mobile-first approach
- CSS custom properties
5. Add JavaScript
- Progressive enhancement
- Theme editor events
6. Write schema
- All settings and blocks
- Presets and defaults

Example 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 errors

Phase 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 guidelines

Example 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 theme
2. Copy `snippets/product-card.liquid` if not present
3. Add the section to any template
## Configuration
### Basic Setup
1. Add section to homepage
2. Select a collection
3. 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
MIT

Phase 5: Deployment (Day 7)

## Deployment Steps
1. Final code review
2. Run theme check
3. Update version number
4. Create release notes
5. Push to development theme
6. Test in theme editor
7. Push to staging
8. Get approval
9. Deploy to production
10. Verify deployment

Phase 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:

CategoryWeightCriteria
Code Quality25%Clean, organized, follows best practices
Functionality25%Features work correctly, edge cases handled
Merchant UX20%Easy to use, good settings, helpful documentation
Accessibility15%Keyboard accessible, screen reader friendly
Performance15%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 prepared

Next Steps

After completing this course:

  1. Build your portfolio with capstone projects
  2. Contribute to open-source themes
  3. Stay updated with Shopify changelog
  4. Join communities (Shopify Partners, Discord)
  5. 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...