
Icaros Medicine Festival
A project for an international music festival, with a team of marketers, another designer, and a developer.
My work began with a redesign of the website already created on Wix.
Then I did all the development and integrations using Webflow
(the main flyer was created for other designer, and the ticket platform for another dev)
The goal was to increase visibility (SEO), add life with animations (GSAP), optimize conversion for the main objetive (buy ticket), and create a place to showcase all content from previous editions (content-heavy CMS).
My work began with a redesign of the website already created on Wix.
Then I did all the development and integrations using Webflow
(the main flyer was created for other designer, and the ticket platform for another dev)
The goal was to increase visibility (SEO), add life with animations (GSAP), optimize conversion for the main objetive (buy ticket), and create a place to showcase all content from previous editions (content-heavy CMS).
LIVE WEBSITE
LIVE WEBSITE
The problem
.avif)
The Icaros Medicine Festival had outgrown its Wix website.
The lack of responsiveness and the absence of SEO-optimized content made it difficult to convert potential visitors into ticket buyers.
The design lacked the visual energy and atmosphere that the festival actually embodied, creating a disconnect between the experience on-site and what people encountered online.
Operationally, the chaos was real: hundreds of people (therapists, artists, volunteers, general attendees) were all funneling enquiries into a single email address, making communication unmanageable.
On the content side, the platform couldn't handle scale. With hundreds of images across multiple editions, even small updates became a nightmare.
There was no structure for artists, editions, programs or stages to grow independently. And there was no dedicated ticketing system — a critical gap for an event of this size.
The lack of responsiveness and the absence of SEO-optimized content made it difficult to convert potential visitors into ticket buyers.
The design lacked the visual energy and atmosphere that the festival actually embodied, creating a disconnect between the experience on-site and what people encountered online.
Operationally, the chaos was real: hundreds of people (therapists, artists, volunteers, general attendees) were all funneling enquiries into a single email address, making communication unmanageable.
On the content side, the platform couldn't handle scale. With hundreds of images across multiple editions, even small updates became a nightmare.
There was no structure for artists, editions, programs or stages to grow independently. And there was no dedicated ticketing system — a critical gap for an event of this size.
.avif)
Strategy & Reasoning
Getting this wrong at the start would have meant rebuilding later.
After the initial briefing, it was clear this wasn't just a redesign. It was a structural rebuild.
The core challenge was balancing visual ambition with technical scalability: the festival needed a site that felt as alive as the event itself, while being maintainable by a non-technical team.
The decision to move to Webflow was driven by the need for a CMS powerful enough to handle multiple interconnected content types without custom backend development.
Before opening Figma, the foundation of the CMS architecture had to be clear and solid. The core structure, the key relationships between artists, stages, editions, and programs, was defined from the start.
From there, new collections were added only when there was a genuine need for them, growing the architecture intentionally as the project developed.
After the initial briefing, it was clear this wasn't just a redesign. It was a structural rebuild.
The core challenge was balancing visual ambition with technical scalability: the festival needed a site that felt as alive as the event itself, while being maintainable by a non-technical team.
The decision to move to Webflow was driven by the need for a CMS powerful enough to handle multiple interconnected content types without custom backend development.
Before opening Figma, the foundation of the CMS architecture had to be clear and solid. The core structure, the key relationships between artists, stages, editions, and programs, was defined from the start.
From there, new collections were added only when there was a genuine need for them, growing the architecture intentionally as the project developed.
Loading a page like it's 2005? That was actually happening on mobile
Another designer created the logo, brand guidelines, and all poster artwork, delivering 20+ individual PNG layers as the raw material.
My job was to take that visual identity and breathe it into every page, section, and interaction on the site.
The challenge: GSAP-animated layers at this density can destroy performance, especially on mobile.
The answer wasn't to simplify the design. It was to solve it at the implementation level.
Asset conversion to AVIF/WebP, visibility tricks, lazy loading, mobile-specific rendering logic.
The atmosphere stayed intact.
The Core Web Vitals did too.
Another designer created the logo, brand guidelines, and all poster artwork, delivering 20+ individual PNG layers as the raw material.
My job was to take that visual identity and breathe it into every page, section, and interaction on the site.
The challenge: GSAP-animated layers at this density can destroy performance, especially on mobile.
The answer wasn't to simplify the design. It was to solve it at the implementation level.
Asset conversion to AVIF/WebP, visibility tricks, lazy loading, mobile-specific rendering logic.
The atmosphere stayed intact.
The Core Web Vitals did too.
+1,000 items to import.
The asnwer? Python
(nowadays: Claude Code)
The data migration from Wix was the biggest operational risk on the project.
With +1,000 items to import across dozens of fields, manual entry wasn't an option.
It was a guaranteed path to errors, inconsistencies, and lost hours.
I built a Python pipeline using Google Sheets as the data source and Cloudinary as the image processing layer, automatically generating structured import tables with correct field references.
Every asset arrived in Webflow already optimised and correctly mapped.
For ticketing, the job was straightforward but detail-heavy: create a layout aligned with the poster's visual energy and the overall site design, with clear redirects for each ticket type (adult, child, and each phase), linking out to the WooCommerce shop built by another developer.
The asnwer? Python
(nowadays: Claude Code)
The data migration from Wix was the biggest operational risk on the project.
With +1,000 items to import across dozens of fields, manual entry wasn't an option.
It was a guaranteed path to errors, inconsistencies, and lost hours.
I built a Python pipeline using Google Sheets as the data source and Cloudinary as the image processing layer, automatically generating structured import tables with correct field references.
Every asset arrived in Webflow already optimised and correctly mapped.
For ticketing, the job was straightforward but detail-heavy: create a layout aligned with the poster's visual energy and the overall site design, with clear redirects for each ticket type (adult, child, and each phase), linking out to the WooCommerce shop built by another developer.



Solution
The scroll tells the story before a single word is read.
The hero was built to be experienced, not just seen.
Using sticky position, the page opens with a full video, transitions to the layered poster, and only then reveals the content.
A deliberate pacing that mirrors the festival's own atmosphere.
The poster's 20+ PNG layers (converted to AVIF/WebP) sit in absolute position, animated with GSAP for full control.
The brand guidelines and visual identity came from the designer; my role was to carry that energy consistently across all 7+ pages, making every section feel like it belongs to the same world.
Built using a Relume > Figma > Webflow workflow.
The hero was built to be experienced, not just seen.
Using sticky position, the page opens with a full video, transitions to the layered poster, and only then reveals the content.
A deliberate pacing that mirrors the festival's own atmosphere.
The poster's 20+ PNG layers (converted to AVIF/WebP) sit in absolute position, animated with GSAP for full control.
The brand guidelines and visual identity came from the designer; my role was to carry that energy consistently across all 7+ pages, making every section feel like it belongs to the same world.
Built using a Relume > Figma > Webflow workflow.
30 collections. The team updates it themselves. Nobody calls the developer (but if needed I'm here!)
The CMS architecture was designed to grow. 30 collections covering artists, editions, programs, stages, photos, and more, all interconnected.
A custom Python + Google Sheets + Cloudinary pipeline handled the bulk import of 1,000+ items, clean and compressed.
Artist pages include Spotify integration so visitors can listen directly on the site, with the next artist auto-loading via CMS.
Program sliders run on Swiper.js.
The whole structure was built so the team can update content, add new editions, and manage artists independently, without touching the codebase.
The CMS architecture was designed to grow. 30 collections covering artists, editions, programs, stages, photos, and more, all interconnected.
A custom Python + Google Sheets + Cloudinary pipeline handled the bulk import of 1,000+ items, clean and compressed.
Artist pages include Spotify integration so visitors can listen directly on the site, with the next artist auto-loading via CMS.
Program sliders run on Swiper.js.
The whole structure was built so the team can update content, add new editions, and manage artists independently, without touching the codebase.
1 inbox for hundreds of people. That was the whole problem.
Ticket Tailor was integrated as the primary ticketing platform.
When another developer later built a WooCommerce shop, I created a Webflow layout aligned with the poster's design and energy, with dedicated redirects for each ticket type (adult, child) and each festival phase.
Communication was restructured with 5 professional email addresses via Zoho, giving therapists, artists, volunteers, and attendees their own dedicated inboxes instead of a single chaotic thread.
Beyond the initial launch, I've remained the developer of record across editions, maintaining pages, shipping updates, and building new sections as the festival grows each year.
Ticket Tailor was integrated as the primary ticketing platform.
When another developer later built a WooCommerce shop, I created a Webflow layout aligned with the poster's design and energy, with dedicated redirects for each ticket type (adult, child) and each festival phase.
Communication was restructured with 5 professional email addresses via Zoho, giving therapists, artists, volunteers, and attendees their own dedicated inboxes instead of a single chaotic thread.
Beyond the initial launch, I've remained the developer of record across editions, maintaining pages, shipping updates, and building new sections as the festival grows each year.
Tools used
Tools
Purpose
Webflow
Build & CMS
Figma + Relume
Design & wireframing
GSAP
Animations
Python + Google Sheets
Automated CMS data pipeline
Cloudinary
Image hosting, optimization & delivery
Ticket Tailor
Ticketing integration
Swiper.js
Program sliders
Spotify Embed
Artist music player
Zoho
5 professional email addresses
Weglot
Translation English - Portuguese
Google Search Console
Analytics & SEO tracking
Riot
Bulk image optimisation
Handbrake
Video optimisation
Results

Let's make it happen
Your next website deserves more than a template and good intentions. Let's build something that actually works.






