Shopify – Juan Camilo Niño
On Shopify projects, the real test comes after launch: the client wants a new landing page on Friday and you are not there. The way you build the theme decides whether that is a five-minute task or an emergency.
Build sections, not pages
Every block of a design should be a section with a schema: settings the client can change and blocks they can reorder. A page then becomes a list of sections, and the client composes it in the theme editor without touching code.
{% schema %}
{
"name": "Feature row",
"settings": [
{ "type": "text", "id": "heading", "label": "Heading" },
{ "type": "richtext", "id": "body", "label": "Text" }
],
"blocks": [{ "type": "item", "name": "Item" }],
"presets": [{ "name": "Feature row" }]
}
{% endschema %}
Put structured data in metafields
Ingredients, specifications, certifications: anything that repeats across products belongs in a metafield with a clear definition, not in a wall of text in the description. The template reads the field, and the client fills it in from the product page.
Use metaobjects for things that are not a product
Team members, FAQs, store locations, lab results. Metaobjects give that content its own structure and its own admin screen. I have used them on stores in the biotech space, where the data is detailed and needs to stay consistent across many pages.
Keep the theme boring
- One naming convention for sections and settings.
- Small snippets for repeated markup.
- No hard-coded text or IDs in templates.
- Shopify CLI and Git for every change, never editing live.
Measure, then change
A/B tests settle arguments about design with data. Change one thing, wait for enough traffic, keep the winner. It is slower than trusting your gut, and much cheaper than being wrong.
The goal is a store that keeps working, and keeps improving, when the developer is not in the room.