Website
Websites built on JAMstack: fast, secure, built to last and easy to update. Design, code, hosting and AI integration in one coherent project.
Websites built on JAMstack: fast, secure, built to last and easy to update. Design, code, hosting and AI integration in one coherent project.
We dive into your brand identity. What sets you apart, where you stand today, where you want to go. That becomes the foundation for the design.
HEX: F4E5C0
R:244 G:229 B:192
C:0 M:6 Y:21 K:4
Market position
Premium, sustainability-led
Proposition
Dynamic chairs for active minds
Tone of voice
Confident, direct, a little playful
HEX: F4364C
R:244 G:54 B:76
C:0 M:78 Y:69 K:4
HEX: 5280DE
R:82 G:128 B:222
C:63 M:42 Y:0 K:13
Together we work towards a design that fits who you are. You give feedback in a staging environment, before anything goes live.
Custom, fast and exactly as designed. No compromises for plugins.
Built to last for years.
{{ with $section := .data }}
<section class="results-hero {{ if .title }} has-faded-title {{ end }}">
<div class="container">
{{ partial "kicker" . }}
{{ if .title }}
<div class="title-box calc-perc">
{{ partial "h1-huge" $ }}
</div>
{{ end }}
{{ partial "inline/results-badges.html" .badges }}
<div class="browser" data-cursor='You'>
<span></span>
{{ with .tag }}<p class="has-tags"><span>{{ . }}</span></p>{{ end }}
<div class='inner no-scrollbar {{ .results_style | default "Left" | anchorize }}'>
<div class="card" aria-live="polite">
{{ range $i, $case := .cases }}
<article data-case="{{ $i }}" {{ if $i }}hidden{{ end }}>
{{ with .tag_links }}<ul class="has-tags">{{ range . }}<li>{{ if .url }}<a href="{{ partial "lang-url" .url }}">{{ .title }}</a>{{ else }}{{ .title }}{{ end }}</li>{{ end }}</ul>{{ end }}
{{ with .medias }}
<div class="frame">
{{ range first 2 . }}{{ partial "media" (dict "media" . "size" "900x900" "fit" true "eager" $.firstSection "lazy" false) }}{{ end }}
{{ with $case.result_sticker_image }}{{ partial "image" (dict "path" . "alt" "" "class" "result-sticker" "eager" $.firstSection) }}{{ end }}
</div>
{{ end }}
{{ partial "sub-h6" (dict "title" .title) }}
<div class="prose">{{ partial "description" . }}</div>
{{ partial "btn" .button }}
</article>
{{ end }}
</div>
{{ range $s := seq 1 3 }}
<div class="slot">{{ with index $section.cases $s }}{{ partial "inline/results-tile.html" (dict "case" . "i" $s) }}{{ end }}</div>
{{ end }}
<div class="parking" hidden>{{ with index .cases 0 }}{{ partial "inline/results-tile.html" (dict "case" . "i" 0) }}{{ end }}</div>
{{ $plekken := dict "left" (slice (dict "direction" "Left" "positioning" (dict "x" 54 "y" 61))) "right" (slice (dict "direction" "Right" "positioning" (dict "x" 46 "y" 61))) "center" (slice (dict "direction" "Right" "positioning" (dict "x" 19 "y" 77)) (dict "direction" "Left" "positioning" (dict "x" 88.5 "y" 44))) }}
{{ $stijl := index $plekken (.results_style | default "Left" | anchorize) | default $plekken.left }}
{{ $cursors := slice }}
{{ range $i, $naam := .cursors }}{{ if lt $i (len $stijl) }}{{ $cursors = $cursors | append (merge (index $stijl $i) (dict "selected_team" $naam "data_color" "Lime")) }}{{ end }}{{ end }}
{{ partial "cursors" $cursors }}
</div>
</div>
</div>
</section>
{{ end }}
{{ define "_partials/inline/results-tile.html" }}
{{ with .case }}
<button type="button" class="tile" data-case="{{ $.i }}" aria-pressed="false" aria-label="{{ T "Case tonen" (dict "naam" .title) }}">
{{ partial "image" (dict "path" .card_image "size" "600x780" "fit" true "alt" "" "class" "shot") }}
<span class="chip" aria-hidden="true">{{ .title }}<i></i></span>
{{ with .result_sticker_image }}{{ partial "image" (dict "path" . "alt" "" "class" "result-sticker") }}{{ end }}
</button>
{{ end }}
{{ end }}
{{ define "_partials/inline/results-badges.html" }}
{{ with . }}
<div class="badges activate-children" aria-hidden='true'>
{{ range . }}
<div class='badge {{ .background_color | anchorize | default "lime" }}'>
<div class="inner">
{{ partial "svg" (.icon | default "badge-heart" | urlize) }}
</div>
</div>
{{ end }}
</div>
{{ end }}
{{ end }}
{{ with $section := .data }}
<section class="landing ultrawide" {{ with .color_scheme }} data-scheme='{{ . | urlize }}' {{ end }} data-type="{{ ._type }}">
<div class="scroll-track">
<div class="stage">
<div class="floor" aria-hidden="true"></div>
<div class="screen">
<div class="feed">
{{ partial "post" .top_post }}
{{ partial "post" (merge .main_post (dict "hero" true)) }}
{{ partial "post" .bottom_post }}
</div>
<div class="glare" aria-hidden="true"></div>
</div>
{{ partial "stickers" .stickers }}
</div>
</div>
</section>
{{ end }}
{{ with $section := .data }}
{{ $filter := $.page }}
{{ if and (ne $.page.Kind "term") .category }}{{ with site.GetPage (printf "/case_categories/%s" .category) }}{{ $filter = . }}{{ end }}{{ end }}
{{ $paginator := $.page.Store.Get "paginator" }}
{{ $cases := slice }}
{{ if $paginator }}{{ $cases = $paginator.Pages }}{{ else }}{{ $cases = partial "cases-articles" $filter }}{{ end }}
{{ $uitgelicht := false }}
{{ if and (eq $.page.Kind "section") (eq $.page.Section "cases") (or (not $paginator) (eq $paginator.PageNumber 1)) }}{{ $uitgelicht = partial "case-featured" $.page }}{{ end }}
<section class="overview">
<div class="container">
<div class="top">
{{ partial "h1-huge" $ }}
<div class="prose">{{ partial "description" . }}</div>
{{ partial "category-filter" (dict "page" $filter "taxonomy" "case_categories") }}
</div>
<ul class="cards">
{{ with $uitgelicht }}{{ partial "case-card-featured" . }}{{ end }}
{{ range $cases }}{{ partial "case-card" . }}{{ end }}
</ul>
{{ if $paginator }}{{ partial "pagination" (dict "page" $.page "format" "terse") }}{{ end }}
</div>
</section>
{{ end }}
{{ with $section := .data }}
<section class="intro{{ if .has_faded_dex_background }} has-glow{{ end }}">
<div class="container {{ if not .has_faded_dex_background }} activate-children {{ end }}">
{{ if .has_faded_dex_background }}<span class='dex activate' aria-hidden='true'>{{ partial "image" (dict "path" "/img/dex-blurred.png" "size" "525x500" "fit" true "sizes" "(min-width: 768px) 70rem, 216vw" "lazy" false "non_drag" true) }}</span>{{ end }}
{{ partial "h1-huge" $ }}
<div class="prose">
{{ partial "description" . }}
</div>
{{ partial "btn" . }}
{{ partial "cursors" .cursors }}
</div>
</section>
{{ end }}
{{ with $section := .data }}
<section class="showcase big-title-fader run-full-root" {{ with .color_scheme }} data-scheme='{{ . | urlize }}' {{ end }} data-type="{{ ._type }}">
<div class="container">
<div class="title-box calc-perc" data-triggers='.65:show;.95:hide' data-done='.6'>
{{ partial "h1" $ }}
</div>
<div class="fan-box">
<div class="logo-collab reveal">
{{ partial "svg" "omelette" }}
{{ partial "svg" "x" }}
<span class="live">{{ with index .cases 0 }}{{ partial "render-svg" .logo_image }}{{ end }}</span>
{{ range .cases }}
<template>
{{ partial "render-svg" .logo_image }}
</template>
{{ end }}
</div>
<div class="fan" data-fan role="region" aria-roledescription="{{ T "Carrousel" }}" aria-label="{{ T "Cases" }}" tabindex="0">
<ul>
{{ range $index, $case := .cases }}
<li aria-roledescription="{{ T "Dia" }}" aria-label="{{ add $index 1 }} / {{ len $section.cases }}">
{{ partial "story" (dict "medias" .medias) "paused" true }}
</li>
{{ end }}
</ul>
<div class="fan-controls" hidden>
<button type="button" class="fan-prev" aria-label="{{ T "Vorige case" }}">{{ partial "svg" "chevron-down" }}</button>
<button type="button" class="fan-next" aria-label="{{ T "Volgende case" }}">{{ partial "svg" "chevron-down" }}</button>
</div>
{{ partial "widget-layer" .cases }}
</div>
<div class="indicators" aria-label="{{ T "Kies een case" }}">
{{ range $index, $case := .cases }}
<button type="button" aria-label="{{ T "Case nummer" (dict "nummer" (add $index 1)) }}" data-fan-index="{{ $index }}"></button>
{{ end }}
</div>
<span class="fan-status" aria-live="polite" aria-atomic="true" data-tekst='{{ T "Case positie" (dict "nummer" "{nummer}" "totaal" "{totaal}") }}'></span>
<div class="descriptions">
<div class="live">{{ with index .cases 0 }}{{ partial "description" . }}{{ end }}</div>
{{ range .cases }}
<template>
{{ partial "description" . }}
</template>
{{ end }}
</div>
</div>
{{ partial "btn" . }}
</div>
</section>
{{ end }}
{{ with $section := .data }}
<section class="showcase single big-title-fader" data-type="{{ ._type }}">
<div class="container">
<div class="title-box calc-perc" data-triggers='.65:show;.95:hide' data-done='.6'>
{{ partial "h1" $ }}
</div>
<div class="fan-box">
<div class="logo-collab reveal">
{{ partial "svg" "omelette" }}
{{ partial "svg" "x" }}
{{ with .logo_image }}<span class="live">{{ partial "render-svg" . }}</span>{{ end }}
</div>
<div class="stories">
<ul>
{{ range .stories }}
<li>{{ partial "story" (dict "medias" .medias) }}</li>
{{ end }}
</ul>
{{ partial "widget-layer" (slice (dict "widget_layer" .widget_layer)) }}
</div>
{{ with .description }}
<div class="descriptions"><div class="live">{{ partial "description" $section }}</div></div>
{{ end }}
</div>
{{ partial "btn" . }}
</div>
</section>
{{ end }}
Your site is live, hosted, monitored, and easy to update with Dex.
se7en.com
Why JAMstack
12 days ago
{{ with $section := .data }}
<section class="bento {{ if .title }} has-faded-title {{ end }}">
<div class="container">
{{ partial "kicker" . }}
{{ if .title }}
<div class="title-box calc-perc">
{{ partial "h1" $ }}
</div>
{{ end }}
{{ with .description }}<div class="prose">{{ partial "description" $section }}</div>{{ end }}
{{ $types := (dict
"1" (slice "top_left_bento" "top_right_bento" "bottom_left_bento" "bottom_middle_bento" "bottom_right_bento" )
"2" (slice "top_left_bento" "top_middle_bento" "top_right_bento" "bottom_left_bento" "bottom_middle_bento" "bottom_right_bento")
"3" (slice "left_bentos" "right_bento")
"4" (slice "top_left_bento" "right_bento" "bottom_left_bento" "bottom_middle_bento")
)}}
{{ with $box := .bento_box }}
<ul class="box box-{{ ._type }} {{ with .bento_style }}{{ . | urlize }}{{ end }}">
{{ range $key := index $types (string ._type) }}
{{ $item := index $box . }}
{{ if in $key "bentos" }}
<div class="col">
{{ range $item }}
{{ partial "bento-item" . }}
{{ end }}
</div>
{{ else }}
{{ partial "bento-item" $item }}
{{ end }}
{{ end }}
</ul>
{{ end }}
</div>
</section>
{{ end }}
{{ with $section := .data }}
<section class='clients' data-type="{{ ._type }}">
<div class="balls">
{{ range .balls }}
{{ $logo := "" }}{{ $alt := "" }}{{ $badge := "" }}
{{ with .badge }}{{ if ne . "None" }}{{ $badge = . | urlize }}{{ end }}{{ end }}
{{ if not $badge }}{{ with .logo }}{{ $logo = .image }}{{ $alt = .alt_text }}{{ end }}{{ end }}
{{ $klassen := print "ball " (.color | anchorize) }}{{ if $logo }}{{ $klassen = print $klassen " has-logo" }}{{ end }}{{ if $badge }}{{ $klassen = print $klassen " has-badge" }}{{ end }}
{{ $stijl := printf "--size: %vrem" .size }}
{{ if and .url (not $badge) }}
{{ $naam := .label }}
{{ if and (not $naam) (not (and $logo $alt)) }}{{ with site.GetPage .url }}{{ $naam = .Title }}{{ end }}{{ end }}
<a href="{{ partial "lang-url" .url }}" class='{{ $klassen }}' style='{{ $stijl | safeCSS }}' data-x='{{ .positioning.x }}' data-y='{{ .positioning.y }}'{{ with $naam }} aria-label="{{ . }}"{{ end }}>{{ partial "inline/client-ball.html" (dict "logo" $logo "alt" $alt) }}</a>
{{ else }}
<div class='{{ $klassen }}' style='{{ $stijl | safeCSS }}' data-x='{{ .positioning.x }}' data-y='{{ .positioning.y }}' aria-hidden="true">{{ partial "inline/client-ball.html" (dict "logo" $logo "alt" $alt "badge" $badge) }}</div>
{{ end }}
{{ end }}
</div>
<div class="container">
<article class='base'>
{{ partial "kicker" . }}
{{ partial "h1-huge" $ }}
<div class="prose activate-children">
{{ partial "description" . }}
</div>
</article>
</div>
</section>
{{ end }}
{{ define "_partials/inline/client-ball.html" }}
{{ with .badge }}<span class="badge-icon">{{ partial "svg" . }}</span>{{ end }}
{{ with .logo }}<span class="logo">{{ partial "image" (dict "path" . "size" "600x600" "fit" true "sizes" "30vw" "alt" $.alt "non_drag" true) }}</span>{{ end }}
{{ end }}
{{ with $section := .data }}
<section class="reel custom-reel">
<div class="container">
<div class="left" aria-hidden='true'>
<div class="wheel" aria-hidden='true'>
{{ partial "svg" "wheel" }}
{{ range seq 8 }}
<div style='--i: {{ . }}' class="slot"><span class='h1'>{{ . }}</span></div>
{{ end }}
</div>
</div>
<div class="mid">
{{ with .title }} <p class="kicker">{{ . }}</p> {{ end }}
<ul>
{{ range .items }}
<li>
<h2>{{ .title }}</h2>
{{ partial "description" . }}
{{ partial "buttons" . }}
{{ with .tags }}
<div class="has-tags alt">
{{ range . }}
<span class="tag">{{ . }}</span>
{{ end }}
</div>
{{ end }}
</li>
{{ end }}
</ul>
</div>
<div class="right">
<figure>
{{ range $i, $j := .items }}
{{ partial "image" (dict
"path" .image
"size" "1000x1000"
"eager" (and (lt $i 3) $.firstSection)
"alt" .title
) }}
{{ end }}
</figure>
</div>
</div>
</section>
{{ end }}
{{ with $section := .data }}
<section class="showcase single big-title-fader" data-type="{{ ._type }}">
<div class="container">
<div class="title-box calc-perc" data-triggers='.65:show;.95:hide' data-done='.6'>
{{ partial "h1" $ }}
</div>
<div class="fan-box">
<div class="logo-collab reveal">
{{ partial "svg" "omelette" }}
{{ partial "svg" "x" }}
{{ with .logo_image }}<span class="live">{{ partial "render-svg" . }}</span>{{ end }}
</div>
<div class="stories">
<ul>
{{ range .stories }}
<li>{{ partial "story" (dict "medias" .medias) }}</li>
{{ end }}
</ul>
{{ partial "widget-layer" (slice (dict "widget_layer" .widget_layer)) }}
</div>
{{ with .description }}
<div class="descriptions"><div class="live">{{ partial "description" $section }}</div></div>
{{ end }}
</div>
{{ partial "btn" . }}
</div>
</section>
{{ end }}
{{ with $section := .data }}
<section class="text-accordion">
<div class="container">
<article class='base slow-sticky'>
{{ if $.firstSection }}
{{ partial "breadcrumbs" $.page }}
{{ else }}
{{ partial "kicker" . }}
{{ end }}
{{ partial "h1-huge" $ }}
<div class="prose">
{{ partial "description" . }}
</div>
{{ partial "btn" . }}
</article>
{{ partial "faq-questions" (merge . (dict "altijd_een" true)) }}
</div>
</section>
{{ end }}
{{ with $section := .data }}
{{ $filter := $.page }}
{{ if and (ne $.page.Kind "term") .category }}{{ with site.GetPage (printf "/case_categories/%s" .category) }}{{ $filter = . }}{{ end }}{{ end }}
{{ $paginator := $.page.Store.Get "paginator" }}
{{ $cases := slice }}
{{ if $paginator }}{{ $cases = $paginator.Pages }}{{ else }}{{ $cases = partial "cases-articles" $filter }}{{ end }}
{{ $uitgelicht := false }}
{{ if and (eq $.page.Kind "section") (eq $.page.Section "cases") (or (not $paginator) (eq $paginator.PageNumber 1)) }}{{ $uitgelicht = partial "case-featured" $.page }}{{ end }}
<section class="overview">
<div class="container">
<div class="top">
{{ partial "h1-huge" $ }}
<div class="prose">{{ partial "description" . }}</div>
{{ partial "category-filter" (dict "page" $filter "taxonomy" "case_categories") }}
</div>
<ul class="cards">
{{ with $uitgelicht }}{{ partial "case-card-featured" . }}{{ end }}
{{ range $cases }}{{ partial "case-card" . }}{{ end }}
</ul>
{{ if $paginator }}{{ partial "pagination" (dict "page" $.page "format" "terse") }}{{ end }}
</div>
</section>
{{ end }}
{{ with $section := .data }}
{{ $p := $.page }}
{{ $koppen := slice }}
{{ range $p.Fragments.Headings }}{{ range .Headings }}{{ if eq .Level 2 }}{{ $koppen = $koppen | append . }}{{ end }}{{ end }}{{ end }}
<section class="blog-content detail-content">
<div class="container">
<article class="prose">
{{ with $p.Params.details.description }}<div class="intro">{{ . | markdownify }}</div>{{ end }}
{{ $p.Content }}
{{ with $p.Params.details.key_takeaways }}
<div class="takeaways">
<h2 class="h5">{{ T "De belangrijkste punten" }}</h2>
<ul>{{ range . }}<li>{{ . | markdownify }}</li>{{ end }}</ul>
</div>
{{ end }}
</article>
<aside class='slow-sticky'>
{{ with $koppen }}
<nav class="browser toc" aria-label="{{ T "In dit artikel" }}">
<span></span>
<p class="has-tags"><span>{{ T "In dit artikel" }}</span></p>
<ol>{{ range . }}<li><a href="#{{ .ID }}">{{ .Title | plainify }}</a></li>{{ end }}</ol>
</nav>
{{ end }}
</aside>
</div>
</section>
{{ end }}
{{ with $section := .data }}
<section class="reel">
<div class="container">
<div class="left" aria-hidden='true'>
<div class="wheel" aria-hidden='true'>
{{ partial "svg" "wheel" }}
{{ range seq 8 }}
<div style='--i: {{ . }}' class="slot"><span class='h1'>{{ . }}</span></div>
{{ end }}
</div>
</div>
<div class="mid">
{{ with .title }} <p class="kicker">{{ . }}</p> {{ end }}
<ul>
{{ $products := slice }}
{{ range .selected_products }}{{ with partial "getPage" . }}
{{ if not .Params.concept }}{{ $products = $products | append . }}{{ end }}
{{ end }}{{ end }}
{{ range $products }}
<li>
<h2>{{ .Title }}</h2>
{{ partial "description" .Params.details }}
{{ partial "btn" (dict
"button_text" (printf "%s %s" (T "Explore") .Title)
"button_url" .RelPermalink
"button_style" "Lime"
"button_icon" "Arrow Right Circle"
) }}
</li>
{{ end }}
</ul>
</div>
<div class="right">
<figure>
{{ range $products }}
{{ partial "image" (dict
"path" .Params.details.image
"size" "1000x1000"
"eager" $.firstSection
"alt" .Title
) }}
{{ end }}
</figure>
</div>
</div>
</section>
{{ end }}Fast
Pages are generated statically, so your site loads faster. Good for your visitor, for Google and for the AI models that read your content.
Secure
No database to hack, a smaller attack surface. Security is built in, not stuck on afterwards.
Built to last
No constant updates needed. Your site will still be standing exactly the same in a few years.
Creative freedom
No compromises for plugins, everything custom built. The design you want, not the design a template allows.
AI integration through Dex
After launch, managing your site is a piece of cake. Through Dex, our own AI integration, you change content by simply saying what you want to change. You write, Dex does it. With a live preview you see the change before it goes live.
What the SLA covers
Your site stays in top shape, without you having to think about it. From hosting and monitoring to technical support and health checks: we take care of it.
We host your site and keep an eye on it. We get a signal when something needs attention, before you notice.
Chances are the answer is right here.
Grab a coffee with Max. Or give him a call, that works too. Then we'll look at how your brand keeps growing, together.