Website

Websites gebouwd op JAMstack: snel, veilig, duurzaam en makkelijk bij te werken. Design, code, hosting en AI-integratie in één samenhangend traject.

Let's work

Creatieve sessie

We duiken in je merkidentiteit. Wat maakt je onderscheidend, waar sta je vandaag, waar wil je naartoe. Dat wordt het fundament voor het design.

HEX: F4E5C0
R:244 G:229 B:192
C:0 M:6 Y:21 K:4

Se7en-campagneposter met een model in een limoengroene blouse op een zadelkruk

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

Design met feedback

We werken samen naar een design dat past bij wie je bent. Je geeft feedback in een stagingomgeving, voordat er iets live gaat.

Stagingversie van de Se7en-website met de blokken Green for life en Reasons why

Development op JAMstack

Op maat, snel en precies zoals ontworpen. Geen concessies aan plugins.
Gebouwd om jaren mee te gaan.

{{ with $section := .data }}
    <section class='text has-faded-title {{ .text_horizontal_position | anchorize | default "center" }}{{ if and .images (index .images 0).image }} has-images {{ end }}' data-type="{{ ._type }}"> 
        <div class="container">
            <article class='{{ .text_alignment | anchorize | default "center" }} calc-perc' data-done='.5'>
                {{ partial "kicker" . }}
                <div class="title-box calc-perc">
                    {{ partial "h1" $ }}
                    {{ range .text_stickers }}
                        {{ partial "text-sticker" (dict "text" .title "color" .background_color "class" (lower .position) "offset" .offset) }}
                    {{ end }}
                </div>

                {{ with .description }}
                    <div class="prose activate-children {{ if ge (len .) 180 }} long {{ end }}">
                        {{ partial "description" $section }}
                    </div>
                {{ end }}
                {{ partial "buttons" . }}

            </article>
        </div> 
        {{ if and .images (index .images 0).image }} 
            {{- $n := len .images -}}
            <ul class="images activate-children" style='--ranks: {{ int (math.Ceil (div (float $n) 2)) }}'>
                {{ range $i, $j := .images }}
                    {{- $k := add $i 1 -}}
                    {{- $across := mod (mul $k 5) 7 -}}
                    {{- /* Het vierde beeld kwam met 6 tegen de kop aan te liggen; met 1 staat
                           het tegen de rand. Handmatige keuze van Guus, geen regel. */ -}}
                    {{- if eq $k 4 }}{{ $across = 1 }}{{ end -}}
                    <li style='--lane: {{ mod $i 2 }}; --rank: {{ int (math.Floor (div (float $i) 2)) }}; --shift-across: {{ $across }}; --shift-along: {{ sub (mod (mul $k 2) 7) 3 }}; --shift-size: {{ mod (mul $k 7) 4 }}'>
                        {{ partial "image" (dict
                            "path" .image
                            "size" "400x500"
                            "eager" $.firstSection
                            "alt" .alt_text
                        ) }}
                    </li>
                {{ end }}
            </ul>
        {{ end }}
    </section>
{{ end }}

{{ with $section := .data }}
    <section class="platforms browser-split has-faded-title" data-triggers='.4:flipped'>
        <div class="container">
            <div class="browser">
                <span></span>

                <p class='has-tags'>
                    <span>{{ .tag }}</span>
                </p>


                <div class="inner">
                    {{ partial "h2" $ }}
                    {{ partial "description" . }}
                    <ul class="list activate-children">
                        {{ range .platforms }}
                            <li class='chip btn {{ if .white_text }} white-on-hover {{ end }} {{ if eq .own_color "#000000" }} needs-border {{ end }} ' style='--own-color: {{ .own_color }}'>
                                {{ if .logo_image }}{{ partial "image" (dict "path" .logo_image "size" "120x120" "alt" (print .title " logo") "non_drag" true "eager" $.firstSection) }}{{ end }}
                                <span>{{ .title }}</span>
                            </li>
                        {{ end }}
                    </ul>
                </div>

                <div class="texts">
                    {{ with .left }}
                        <article class='visible'>
                            {{ partial "sub-h6" (dict "title" .pretitle "firstSection" $.firstSection) }}
                            <div class="prose">{{ partial "description" . }}</div>
                            {{ partial "btn" . }}
                        </article>
                    {{ end }}
                </div>

            </div>
        </div> 
    </section>
{{ end }}

{{ with $section := .data }}
    {{ with where (partial "vacancies-articles" $.page) "Permalink" "!=" $.page.Permalink }}
        <section class="other-vacancies">
            <div class="container">
                <div class="top">
                    {{ partial "h1" $ }}
                    {{ partial "btn" $section }}
                </div>
                <ul class="vacancy-list">
                    {{ range . }}{{ partial "vacancy-card" . }}{{ end }}
                </ul>
            </div>
        </section>
    {{ end }}
{{ end }}


{{ with $section := .data }}
    <section class="results-figures browser-split {{ 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">
                <span></span>
                {{ with .tag }}<p class="has-tags"><span>{{ . }}</span></p>{{ end }}
                {{ with .case }}
                    <div class="texts">
                        <article class="visible">
                            {{ partial "sub-h6" (dict "title" .title) }}
                            <div class="prose">{{ partial "description" . }}</div>
                            {{ partial "btn" . }}
                        </article>
                    </div>
                {{ end }}
                <div class="inner">
                    {{ range .figures }}
                        {{ if templates.Exists (print "_partials/bento/" (._type | urlize) ".html") }}
                            {{ partial (print "bento/" (._type | urlize)) . }}
                        {{ end }}
                    {{ end }}
                </div>
            </div>
        </div>
    </section>
{{ end }}


{{ with $section := .data }}
    <section class="collector has-glow" data-cursor='You'>
        <div class="container">
            <article>
                {{ partial "h1-huge" $ }}   
                <div class="prose">{{ partial "description" . }}</div>
                <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>
            </article>

            {{ $work := (index hugo.Data (site.Language.Label | lower)).lets_work }}
            <form class="collector-form" action="#" method="POST">
                <div class="bar zone">
                    <span class="drop" aria-hidden="true"></span>
                    <div class="picked no-scrollbar"><span class="room"></span></div>
                    <button class="btn" type="submit">{{ with $work.button_icon }}<div>{{ partial "svg" (. | urlize) }}</div>{{ end }}<span class="text">{{ $work.button_text }}</span></button>
                </div>

                <ul class="tags">
                    {{ range .selected_products }}{{ with $page := partial "getPage" . }}
                        {{ if .Params.concept }}{{ continue }}{{ end }}
                        {{ $naam := .Params.details.short_title | default .Title }}
                        <li class="zone home">
                            {{ range $ghost := slice true false }}
                                <div class="chip lime{{ if $ghost }} ghost{{ end }}" {{ if $ghost }} aria-hidden="true"{{ else }} data-product="{{ $page.File.ContentBaseName }}"{{ end }}>
                                    {{ if not $ghost }}<input type="checkbox" name="products" value="{{ $naam }}" hidden>{{ end }}
                                    <a href="{{ $page.RelPermalink }}"{{ if $ghost }} tabindex="-1"{{ else }} aria-label="{{ $naam }}"{{ end }}>
                                        {{ with $page.Params.details.image }}{{ partial "image" (dict "path" . "size" "120x120" "alt" $naam "non_drag" true "eager" $.firstSection) }}{{ end }}
                                        <span>{{ $naam }}</span>
                                    </a>
                                    {{ if not $ghost }}<button class="remove" type="button" aria-label="{{ T "Verwijder" (dict "naam" $naam) }}"></button>{{ end }}
                                </div>
                            {{ end }}
                        </li>
                    {{ end }}{{ end }}
                </ul>
            </form>
        </div> 
        {{ partial "cursors" (slice
            (dict "selected_team" "Max" "data_color" "Blue" "direction" "Left" "role" "Typewriter" "positioning" (dict "x" 68 "y" 26))
            (dict "selected_team" "Joep" "data_color" "Blue" "direction" "Right" "positioning" (dict "x" 10 "y" 58) "range" 2)
            (dict "selected_team" "Guus" "data_color" "Blue" "direction" "Left" "positioning" (dict "x" 86 "y" 82) "range" 2)
        ) }}
    </section>
{{ end }}


{{ with $section := .data }}
    <section class="reviews browser-split has-faded-title" data-triggers='.4:flipped'>
        <div class="container">
            <div class="title-box calc-perc">
                {{ partial "h1" $ }}
            </div>
            {{ $langData := index hugo.Data (site.Language.Label | lower)}}
            {{ $reviews := slice }}
            {{ range .selected_reviews }}{{ with index (where $langData.reviews "title" .) 0 }}
                {{ $reviews = $reviews | append . }}
            {{ end }}{{ end }}

            <ul class='top activate-children'>
                {{ range $i, $j :=  $reviews }}
                    <li {{ if .client_bubble_needs_glow }} class='needs-glow' {{ end }} style='--i: {{ $i }}'>
                        {{ partial "image" (dict
                            "path" .client_bubble_logo_image
                            "size" "750x750"
                            "eager" $.firstSection
                            "alt" .title
                        ) }}
                    </li>
                {{ end }}
            </ul>
            

            <div class="browser">
                <span></span>

                <p class='has-tags'>
                    <span>{{ .tag }}</span>
                    <span class='rating' style='--last: {{ mul (mod (mul .rating 10) 10) 10 }}%'>
                        {{ .rating }}
                        {{ range seq (math.Ceil .rating) }}
                            {{ partial "svg" "star" }}
                        {{ end }}
                    </span>
                </p>

                <div class="texts">
                    {{ range $i, $j := $reviews }}
                        <article {{ if eq $i 0 }} class='visible' {{ end }}>
                            {{ partial "sub-h6" (dict "title" .title "firstSection" $.firstSection) }}
                            <blockquote class="prose">{{ partial "description" . }}</blockquote>
                            
                            <p class='author'><strong>{{ .author_name }}</strong></p>
                            <p class='function'>{{ .author_function }}</p>
                        </article>
                    {{ end }}
                </div>

                <ul class="orbs inner" aria-hidden='true' data-cursor='You'>
                    {{ range $i, $j := $reviews }}
                        <li class='slot  {{ if .client_bubble_needs_glow }}needs-glow {{ end }}'  data-cursor='{{ .cursor_text }}' data-cursor-color='Lime' style='--i: {{ $i }}'>
                            {{ partial "image" (dict
                                "path" .client_bubble_logo_image
                                "size" "750x750"
                                "eager" $.firstSection
                                "alt" .title
                            ) }}
                        </li>
                    {{ end }}
                </ul>
            </div>
        </div> 
    </section>
{{ end }}

SLA en Dex

Je site is live, gehost, bewaakt, en makkelijk bij te werken met Dex.

se7en.com

  • 3 Healthy
  • 1 update scheduled

Waarom JAMstack

Het technische fundament
dat al het andere
mogelijk maakt.

JAMstack

  • Hi! Can you do this for us?
Drie stoelruggen in rood, blauw en beige

12 days ago

{{ with $section := .data }}
    <section class="vacancy-content detail-content">
        <div class="container">
            <div class="prose">{{ $.page.Content }}</div>
            {{ with .form }}<aside class="browser slow-sticky" id="solliciteren">{{ partial "form" (merge . (dict "page" $.page)) }}</aside>{{ end }}
        </div>
    </section>
{{ end }}


{{ with $section := .data }}
    <section class="comparison">
        <div class="container">
            {{ partial "kicker" . }}
            {{ partial "h1-huge" $ }}
            <ul class='compare-blocks activate-children'>
                {{ range .blocks }}
                    {{ partial "compare-block" (dict "block" . "firstSection" $.firstSection) }}
                {{ end }}
                {{ range $i, $j :=  slice .left_badge .right_badge }}{{ if .icon }}
                    <li aria-hidden='true' class="badge b-{{  add $i 1}} {{ .background_color | urlize }}">
                        <div class="inner">{{ partial "svg" (.icon | urlize) }}</div>
                    </li>
                {{ end }}{{ end }}
            </ul>
        </div> 
    </section>
{{ end }}

{{ with $section := .data }}
    <section class="catalog" data-cursor='You'>
        <div class="container">
            <article class='base'>
                {{ partial "kicker" . }}
                {{ partial "h1-huge" $ }}
                <div class="prose activate-children">
                    {{ partial "description" . }}
                    {{ partial "btn" . }}
                </div>
            </article>
            {{ with $browser := .browser }}
                <div class="browser">
                    <span aria-hidden='true'></span>
                    {{ if .media }}
                        <div class="top">
                            {{ partial "media" (dict
                                "media" .media
                                "size" "1400x1400"
                                "eager" $.firstSection
                                "fit" true
                            ) }}
                            {{ if .optional_client_logo_image }}
                                {{ partial "logo-collab" (dict "optional_client_logo_image" .optional_client_logo_image "alt_text" .alt_text) }}
                            {{ end }}
                        </div>
                    {{ end }}

                    <div class="views">
                        <ul>
                            {{ range $i, $j := .views }}
                                <li><button {{ with .data_color }} class='has-dot {{ . | urlize }}' {{ end }}>{{ .title }}</button></li>
                            {{ end }}
                        </ul>
                    </div>
                    <div class="figures">
                        {{ range $i, $j := .views }}
                            <div class='list {{ if eq $i 0 }} active {{ end }}'>
                                {{ partial "data-visualisations" .visualisations }}
                            </div>
                        {{ end }}
                    </div>
                </div>
            {{ end }}
        </div> 
        {{ with .cursors }}{{ partial "cursors" . }}{{ end }}
    </section>
{{ end }}

{{ with $section := .data }}
    <section class="results browser-split {{ 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">
                <span></span>
                {{ with .tag }}<p class="has-tags"><span>{{ . }}</span></p>{{ end }}
                <div class="texts" aria-live="polite">
                    {{ range $i, $case := .cases }}
                        <article data-case="{{ $i }}" {{ if eq $i 0 }}class='visible'{{ end }}>
                            {{ partial "sub-h6" (dict "title" .title) }}
                            <div class="prose">{{ partial "description" . }}</div>
                            {{ partial "btn" .button }}
                        </article>
                    {{ end }}
                </div>
                <ul class="inner">
                    {{ range $i, $case := .cases }}
                        {{ if .card_image }}<li>{{ partial "inline/results-tile.html" (dict "case" $case "i" $i) }}</li>{{ end }}
                    {{ end }}
                </ul>
            </div>
        </div>
    </section>
{{ end }}


{{ with $section := .data }}
    <section class='text has-faded-title {{ .text_horizontal_position | anchorize | default "center" }}{{ if and .images (index .images 0).image }} has-images {{ end }}' data-type="{{ ._type }}"> 
        <div class="container">
            <article class='{{ .text_alignment | anchorize | default "center" }} calc-perc' data-done='.5'>
                {{ partial "kicker" . }}
                <div class="title-box calc-perc">
                    {{ partial "h1" $ }}
                    {{ range .text_stickers }}
                        {{ partial "text-sticker" (dict "text" .title "color" .background_color "class" (lower .position) "offset" .offset) }}
                    {{ end }}
                </div>

                {{ with .description }}
                    <div class="prose activate-children {{ if ge (len .) 180 }} long {{ end }}">
                        {{ partial "description" $section }}
                    </div>
                {{ end }}
                {{ partial "buttons" . }}

            </article>
        </div> 
        {{ if and .images (index .images 0).image }} 
            {{- $n := len .images -}}
            <ul class="images activate-children" style='--ranks: {{ int (math.Ceil (div (float $n) 2)) }}'>
                {{ range $i, $j := .images }}
                    {{- $k := add $i 1 -}}
                    {{- $across := mod (mul $k 5) 7 -}}
                    {{- /* Het vierde beeld kwam met 6 tegen de kop aan te liggen; met 1 staat
                           het tegen de rand. Handmatige keuze van Guus, geen regel. */ -}}
                    {{- if eq $k 4 }}{{ $across = 1 }}{{ end -}}
                    <li style='--lane: {{ mod $i 2 }}; --rank: {{ int (math.Floor (div (float $i) 2)) }}; --shift-across: {{ $across }}; --shift-along: {{ sub (mod (mul $k 2) 7) 3 }}; --shift-size: {{ mod (mul $k 7) 4 }}'>
                        {{ partial "image" (dict
                            "path" .image
                            "size" "400x500"
                            "eager" $.firstSection
                            "alt" .alt_text
                        ) }}
                    </li>
                {{ end }}
            </ul>
        {{ end }}
    </section>
{{ end }}

{{ with $section := .data }}
    <section class="text-image">
        <div class="container">
            <article class='base'>
                {{ if $.firstSection }}
                    {{ partial "breadcrumbs" $.page }}
                {{ else }}
                    {{ partial "kicker" . }}
                {{ end }}
                {{ partial "h1-huge" $ }}
                <div class="prose">
                    {{ partial "description" . }}
                </div>
                {{ partial "buttons" . }}
                {{ with .tag_links }}
                    <div class="has-tags alt">
                        {{ range . }}
                            {{ if .url }}<a class="tag" href="{{ partial "lang-url" .url }}">{{ .title }}</a>{{ else }}<span class="tag">{{ .title }}</span>{{ end }}
                        {{ end }}
                    </div>
                {{ end }}
            </article>
            {{ with .figure }}
                <figure class="browser">
                    <span></span>
                    {{ with .tags }}<p class="has-tags">{{ range . }}<span>{{ . }}</span>{{ end }}</p>{{ end }}
                    {{ partial "media" (dict "media" .media "size" "2250x1800" "eager" $.firstSection) }}
                </figure>
            {{ 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 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 }}
  • Snel

    Pagina’s worden statisch gegenereerd, dus je site laadt sneller. Goed voor je bezoeker, voor Google en voor de AI-modellen die je content lezen.

  • Veilig

    Geen database om te hacken, een kleiner aanvalsoppervlak. Veiligheid zit in de bouw, niet achteraf erop geplakt.

  • Duurzaam

    Geen constante updates nodig. Je site staat er over een paar jaar nog precies zo.

  • Creatieve vrijheid

    Geen concessies aan plugins, alles op maat gebouwd. Het design dat je wilt, niet het design dat een template toelaat.

Dex

  • Kun je de kop op de homepage veranderen in “No Ordinary Agency.”?
  • Gedaan. Ik heb de kop aangepast. Hier is een preview, kijk even voordat we publiceren.

    Klaar om te publiceren?

AI-integratie via Dex

Update je website
zoals je
een berichtje stuurt.

Na livegang wordt het beheren van je site een eitje. Via Dex, onze eigen AI-integratie, pas je content aan door simpelweg te vertellen wat je wilt veranderen. Jij schrijft, Dex doet het. Met live preview zie je de wijziging voordat hij live gaat.

Ontdek Dex

Wat de SLA regelt

Wij houden hem draaiende.

Je site blijft in topvorm, zonder dat jij erbij hoeft stil te staan. Van hosting en monitoring tot technische support en health checks: wij regelen het.

  • Wij hosten je site en houden hem in de gaten. We krijgen een signaal als er iets aandacht vraagt, voordat jij het merkt.

Voeg toe wat je nodig hebt,
wanneer je het nodig hebt.

Nog vragen?

Grote kans dat het antwoord hieronder staat.

Shall we?

Max van Omelette du Fromage

Drink een koffie met Max. Of bel hem, dat mag ook. Dan kijken we samen hoe je merk verder groeit.

Chat met Max