What we can do for your business

We have partnered with a diverse range of organizations, from heavyweight enterprises to nimble start-ups, accommodating our strategy to suit your requirements.

Marketing Sites
Platforms & Commerce
Mobile Apps
Landing Pages
Web Apps
Internal Tooling

Our Process

Research

Discovering strategic opportunities that define your winning product.

UX & Research

Audits

User Testing

Workshops

04:28

04:28

04:28

Strategy

Converting insights into actionable strategies that deliver results.

UX Strategy

Information Architecture

Rapid Prototyping

Wireframes

Consulting

Design

Shaping refined interfaces that set new standards in your specific industry.

Digital Branding

Web Design

UI Design

Digital Product Design

Interaction Design

Departure

19:00

+2h

ZRH – Zurich

Button

Cédric

CTA Text

Subline

Aa

Aa

Aa

Departure

19:00

+2h

ZRH – Zurich

Button

Cédric

CTA Text

Subline

Aa

Aa

Aa

Departure

19:00

+2h

ZRH – Zurich

Button

Cédric

CTA Text

Subline

Aa

Aa

Aa

Engineering

Crafting scalable products using the full spectrum of modern technology.

Webflow Development

Certified Partners

Frontend & Backend Development

CMS Migrations to Framer or Webflow

<script>

class TextScrambler {

constructor(container) {

this.container = container;

this.paragraphs = container.querySelectorAll('p');

this.originalTexts = Array.from(this.paragraphs).map(p => p.textContent);

this.isAnimating = false;

this.bindEvents();

}

shuffleString(str) {

let arr = str.split('');

for (let i = arr.length - 1; i > 0; i--) {

const j = Math.floor(Math.random() * (i + 1));

[arr[i], arr[j]] = [arr[j], arr[i]];

}

return arr.join('');

}

async animateAll() {

if (this.isAnimating) return;

this.isAnimating = true;

for (let i = 0; i < 3; i++) {

this.paragraphs.forEach((p, index) => {

p.textContent = this.shuffleString(this.originalTexts[index]);

});

await new Promise(resolve => setTimeout(resolve, 100));

}

this.paragraphs.forEach((p, index) => {

p.textContent = this.originalTexts[index];

});

this.isAnimating = false;

}

bindEvents() {

this.container.addEventListener('mouseenter', () => this.animateAll());

}

}

});

});

</script>

<script>

class TextScrambler {

constructor(container) {

this.container = container;

this.paragraphs = container.querySelectorAll('p');

this.originalTexts = Array.from(this.paragraphs).map(p => p.textContent);

this.isAnimating = false;

this.bindEvents();

}

shuffleString(str) {

let arr = str.split('');

for (let i = arr.length - 1; i > 0; i--) {

const j = Math.floor(Math.random() * (i + 1));

[arr[i], arr[j]] = [arr[j], arr[i]];

}

return arr.join('');

}

async animateAll() {

if (this.isAnimating) return;

this.isAnimating = true;

for (let i = 0; i < 3; i++) {

this.paragraphs.forEach((p, index) => {

p.textContent = this.shuffleString(this.originalTexts[index]);

});

await new Promise(resolve => setTimeout(resolve, 100));

}

this.paragraphs.forEach((p, index) => {

p.textContent = this.originalTexts[index];

});

this.isAnimating = false;

}

bindEvents() {

this.container.addEventListener('mouseenter', () => this.animateAll());

}

}

});

});

</script>

Launch

hero_wrap

container

dropdown__pleaseDontOpen

Paragraph

Name_your_layers

Inner wrap

Placeholder element

Hero Wrap

Hero Wrap

hero_wrap

Hero Wrap

Hero Wrap

Paragraph

Content Outer

Frame

Teaser Content Wrap

Marketing Text

Footer

<script>

class TextScrambler {

constructor(container) {

this.container = container;

this.paragraphs = container.querySelectorAll('p');

this.originalTexts = Array.from(this.paragraphs).map(p => p.textContent);

this.isAnimating = false;

this.bindEvents();

}

shuffleString(str) {

let arr = str.split('');

for (let i = arr.length - 1; i > 0; i--) {

const j = Math.floor(Math.random() * (i + 1));

[arr[i], arr[j]] = [arr[j], arr[i]];

}

return arr.join('');

}

async animateAll() {

if (this.isAnimating) return;

this.isAnimating = true;

for (let i = 0; i < 3; i++) {

this.paragraphs.forEach((p, index) => {

p.textContent = this.shuffleString(this.originalTexts[index]);

});

await new Promise(resolve => setTimeout(resolve, 100));

}

this.paragraphs.forEach((p, index) => {

p.textContent = this.originalTexts[index];

});

this.isAnimating = false;

}

bindEvents() {

this.container.addEventListener('mouseenter', () => this.animateAll());

}

}

});

});

</script>

<script>

class TextScrambler {

constructor(container) {

this.container = container;

this.paragraphs = container.querySelectorAll('p');

this.originalTexts = Array.from(this.paragraphs).map(p => p.textContent);

this.isAnimating = false;

this.bindEvents();

}

shuffleString(str) {

let arr = str.split('');

for (let i = arr.length - 1; i > 0; i--) {

const j = Math.floor(Math.random() * (i + 1));

[arr[i], arr[j]] = [arr[j], arr[i]];

}

return arr.join('');

}

async animateAll() {

if (this.isAnimating) return;

this.isAnimating = true;

for (let i = 0; i < 3; i++) {

this.paragraphs.forEach((p, index) => {

p.textContent = this.shuffleString(this.originalTexts[index]);

});

await new Promise(resolve => setTimeout(resolve, 100));

}

this.paragraphs.forEach((p, index) => {

p.textContent = this.originalTexts[index];

});

this.isAnimating = false;

}

bindEvents() {

this.container.addEventListener('mouseenter', () => this.animateAll());

}

}

});

});

</script>

Launch

hero_wrap

container

dropdown__pleaseDontOpen

Paragraph

Name_your_layers

Inner wrap

Placeholder element

Hero Wrap

Hero Wrap

hero_wrap

Hero Wrap

Hero Wrap

Paragraph

Content Outer

Frame

Teaser Content Wrap

Marketing Text

Footer

<script>

class TextScrambler {

constructor(container) {

this.container = container;

this.paragraphs = container.querySelectorAll('p');

this.originalTexts = Array.from(this.paragraphs).map(p => p.textContent);

this.isAnimating = false;

this.bindEvents();

}

shuffleString(str) {

let arr = str.split('');

for (let i = arr.length - 1; i > 0; i--) {

const j = Math.floor(Math.random() * (i + 1));

[arr[i], arr[j]] = [arr[j], arr[i]];

}

return arr.join('');

}

async animateAll() {

if (this.isAnimating) return;

this.isAnimating = true;

for (let i = 0; i < 3; i++) {

this.paragraphs.forEach((p, index) => {

p.textContent = this.shuffleString(this.originalTexts[index]);

});

await new Promise(resolve => setTimeout(resolve, 100));

}

this.paragraphs.forEach((p, index) => {

p.textContent = this.originalTexts[index];

});

this.isAnimating = false;

}

bindEvents() {

this.container.addEventListener('mouseenter', () => this.animateAll());

}

}

});

});

</script>

<script>

class TextScrambler {

constructor(container) {

this.container = container;

this.paragraphs = container.querySelectorAll('p');

this.originalTexts = Array.from(this.paragraphs).map(p => p.textContent);

this.isAnimating = false;

this.bindEvents();

}

shuffleString(str) {

let arr = str.split('');

for (let i = arr.length - 1; i > 0; i--) {

const j = Math.floor(Math.random() * (i + 1));

[arr[i], arr[j]] = [arr[j], arr[i]];

}

return arr.join('');

}

async animateAll() {

if (this.isAnimating) return;

this.isAnimating = true;

for (let i = 0; i < 3; i++) {

this.paragraphs.forEach((p, index) => {

p.textContent = this.shuffleString(this.originalTexts[index]);

});

await new Promise(resolve => setTimeout(resolve, 100));

}

this.paragraphs.forEach((p, index) => {

p.textContent = this.originalTexts[index];

});

this.isAnimating = false;

}

bindEvents() {

this.container.addEventListener('mouseenter', () => this.animateAll());

}

}

});

});

</script>

Launch

hero_wrap

container

dropdown__pleaseDontOpen

Paragraph

Name_your_layers

Inner wrap

Placeholder element

Hero Wrap

Hero Wrap

hero_wrap

Hero Wrap

Hero Wrap

Paragraph

Content Outer

Frame

Teaser Content Wrap

Marketing Text

Footer

Intelligence

Amplifying human creativity with AI - crafting products that generate, automate, and evolve with unprecedented intelligence.

Web Development

Generative Content

Automation

"Trueform has become our small design team's secret weapon, helping us to get big projects out the door. Collaborating with them keeps our clients happy and helps our team do more."
Alyssa Nassner
Creative Director, Morning Brew
"Cedric and the team at Trueform are incredibly communicative, quick and friendly. They also really get Framer! Would recommend them for sure"
Jad Esber
CEO, koodos
"Trueform has become our small design team's secret weapon, helping us to get big projects out the door. Collaborating with them keeps our clients happy and helps our team do more."
Alyssa Nassner
Creative Director, Morning Brew
"Cedric and the team at Trueform are incredibly communicative, quick and friendly. They also really get Framer! Would recommend them for sure"
Jad Esber
CEO, koodos
"Trueform has become our small design team's secret weapon, helping us to get big projects out the door. Collaborating with them keeps our clients happy and helps our team do more."
Alyssa Nassner
Creative Director, Morning Brew
"Cedric and the team at Trueform are incredibly communicative, quick and friendly. They also really get Framer! Would recommend them for sure"
Jad Esber
CEO, koodos

Company Stages

Enterprises

Whether collaborating with your team or fully managing the project, we're experienced in building emerging digital products at any scale.

Scale-Ups

Whether augmenting your existing team or taking full ownership, we accelerate your growth by building robust digital products that scale with your rapid expansion.

Startups

Whether joining forces with your founding team or handling the entire development, we transform your vision into market-ready digital products that position you for growth.

Founders

Whether complementing your expertise or managing the complete build, we turn your bold ideas into sophisticated digital products that capture your entrepreneurial vision.

Industries

SaaS
Web3
Fintech
Automotive
E-Commerce
Real Estate
Tech & Gear
Artificial Intelligence

Stack

Framer
Lovable
Figma
Webflow
Octopus
Claude AI
Midjourney
ChatGPT
Supabase
Typescript
Cursor
Outseta
Shopify
Tempo

Need-to-Knows

How do you work with clients?

How does your process look like?

Who makes up your project team?

How do you typically start a project?

Whats your usual ownership in a web project?

How long does a project usually take?

What is your pricing structure?

Need-to-Knows

How do you work with clients?

How does your process look like?

Who makes up your project team?

How do you typically start a project?

Whats your usual ownership in a web project?

How long does a project usually take?

What is your pricing structure?

Need-to-Knows

How do you work with clients?

How does your process look like?

Who makes up your project team?

How do you typically start a project?

Whats your usual ownership in a web project?

How long does a project usually take?

What is your pricing structure?

Got an idea?

We bring you from idea to product, fast.

Speak to us

Email or book a call