Your services, work, testimonials and careers
What you fill in under Your details arrives as five lists.
| Field | Type | What it is |
|---|---|---|
| services | array | Your services. |
| works | array | Your projects. |
| experience | array | Your roles, newest first. |
| testimonials | array | What people said. |
| jobs | array | Your open roles, from the Careers list. |
Every row has the same shape, so one loop reads any of them: title, subtitle, body (the short description), imageUrl, url, period. Services and openings additionally carry details (the full description, as HTML from the rich editor), slug and path — the address of the item's own page, e.g. /careers/senior-designer, or null when it has none. Link a card with {% assign link = item.url | default: item.path %}.
{% for service in services %}
<article>
{% if service.imageUrl %}
<img src="{{ service.imageUrl }}" alt="{{ service.title | escape }}">
{% endif %}
<h3>{{ service.title }}</h3>
<p>{{ service.body }}</p>
</article>
{% else %}
<p>Nothing added yet.</p>
{% endfor %}The {% else %} branch runs when the list is empty. Use it — a brand-new site has empty lists, and a section that renders as a bare heading over nothing is the most common thing to get wrong here.
A careers section, using the same row shape:
{% for job in jobs %}
<article>
<h3>{{ job.title }}</h3>
<p>{{ job.subtitle }}{% if job.period %} · {{ job.period }}{% endif %}</p>
<p>{{ job.body }}</p>
{% if job.url %}<a href="{{ job.url }}">Apply</a>{% endif %}
</article>
{% else %}
<p>No open roles right now.</p>
{% endfor %}For careers, subtitle is the location, period the employment type and url where to apply. Unpublishing a row in the dashboard closes the role on every page that lists it. The component library also ships a ready-made Careers section that reads this list on its own.