Imagine sitting down at your desk to untangle a particularly complex piece of software code. Your eyes scan lines packed with logical operations and function calls. Somewhere in this intricate weave, a bug lurks, derailing the application’s performance. This scenario, familiar to many developers, isn’t just a test of technical skill; it’s a psychological challenge. The frustration and cognitive fatigue that often accompany such tasks can cloud judgment and prolong resolution. It’s in moments like these that the intersection of psychology and software development comes into sharp focus.
Cognitive load theory, originally applied to educational psychology, has profound implications for managing complexity in software projects. It posits that our working memory has a limited capacity for processing new information. In the context of software development, this translates to the need for clean, readable code and well-architected systems that minimize the cognitive load on developers. By understanding and applying this theory, we can create development environments that reduce unnecessary complexity and allow developers to allocate their cognitive resources…
Hi, my name is Reksa Andhika. I’m an independent creative developer based in Indonesia, specializing in building websites with motion and interaction. I work with companies, agencies, studios, and individuals from all over the world.
This e-commerce skincare project was a passion project, created in collaboration with Abhishek Jha, a talented designer from India.
I truly enjoyed watching every step of progress we made. It was an exciting journey from start to finish. We discussed and brainstormed everything from design and functionality to motion, aiming to make the project as polished as possible and highlight its beauty. The challenge of this project was to create a floating layout and motion effects that were not distracting, but instead made the website come alive using parallax and motion. We crafted engaging micro-interactions to enhance its visual appeal. My favorite part was the seamless page transition when entering the product detail page.
We are really happy, people’s response is positive, we received awards & recognition, such as Awwwards Site of the Day & Developer Award, Awwwards E-commerce Honors Nominee, GSAP Site of the Day, Muz.li Picks Honor, Made With GSAP.
Luxury health & wellness resorts and residences. I had the pleasure of working with Fleava, an agency based in Bali, Indonesia.
I thoroughly enjoyed working on the ELEMENTIS project, especially with the stunning assets and content they provided. The motion elements were thoughtfully aligned with the brand logo, ensuring a cohesive and harmonious visual identity. One of the challenges of this project was creating a clean layout and minimalist motion, leveraging the brand identity to craft a unique motion experience.
ELEMENTIS received several awards and recognition, including Awwwards Site of the Day & Developer Award (my first SOTD!), GSAP Site of the Week, and GSAP Showreel 2024.
This is the portfolio website for FIFTYSEVEN, a studio based in Serbia. What makes this project special is that each case study is custom and carefully crafted, making every project unique. The challenge was to build different layouts, colors, and motion effects for each case study, but it was a fun and rewarding experience.
This is an interactive website about neurodivergence. The site was designed to tell a story through interactive scroll, hover, and click elements. We aimed to deliver the message beautifully, using colorful vector assets. The challenge of this project was controlling the animation timeline, ensuring it worked smoothly both forwards and backwards.
Understanding Neurodiversity received recognition as CSSDA Site of the Day and was nominated for CSSDA Website of the Month.
Tech Stack: Vanilla HTML, CSS, JS, GSAP, Lottie.
About Me
I’ve been passionate about programming since I was 15, starting with desktop software, mobile applications, and websites. Eventually, developing websites became the most comfortable and fulfilling part of my journey.
I started freelancing by helping friends with their projects while constantly improving my programming skills. Back then, I was only familiar with traditional, static websites.
In 2020, my partner, Ala, introduced me to Awwwards, and I discovered that websites could be incredibly creative, with dynamic layouts, rich motion, and interactive elements. That moment sparked my interest and curiosity in creative website development.
I began creating experimental projects, recreating entire websites for learning purposes, and later started working on client projects that featured rich motion and interaction. I learned the most by working on real projects, whether for clients or personal experiments.
Philosophy
I draw a lot of inspiration from internet culture, especially memes. They can be funny, satirical, and often deeply relatable.
“It Ain’t Much But It’s Honest Work” (from a simple meme farm guy) – I always want to keep these words in my portfolio and in my mindset. As long as I’m proud of the work and know that I put real effort into it, that’s what matters most. Even if a project feels small or insignificant, honest work has its own value.
I believe there’s always someone out there who will appreciate it; we just never know who that might be.
Tools & Workflow
When exploring the tech stack for projects and their requirements, I mostly use and feel comfortable with Nuxt.js for the frontend, SCSS for styling, Prismic for headless CMS, GSAP for motion and interaction, Three.js / OGL for WebGL, Lenis for smooth scrolling, and Shopify for e-commerce projects.
Currently Learning
Currently diving deep into learning WebGL and motion concepts.
Current Challenges
Finding and crafting the most efficient workflow.
Final Thoughts
As a developer, I believe curiosity and consistency are key to thriving in the industry. It’s important to learn the fundamentals to build strong knowledge, stay focused, avoid distractions, and create something experimental or a passion project. Publishing it can be a powerful move.
Thank you to Codrops and Manoela for the opportunity and spotlight – it’s truly an honor! Codrops is one of the best resources for creative designers and developers, and I’ve learned so much from the site.
Imagine a time when factories were full of life, with gears turning and machines working together. It was a big change, like what’s happening today with computers. In the world of creating and managing software, we’re moving from doing things by hand to letting computers do the work. I’ve seen this change happen, and I can tell you, writing little programs, or “scripts,” is what’s making this change possible.
Just like factories changed how things were made, these little programs are changing the way we handle software. They’re like a magic trick that turns long, boring tasks into quick and easy ones. In this article, I’m going to show you how these little programs fit into the bigger picture, how they make things better and faster, and the headaches they can take away.
We’re going to go on a trip together. I’ll show you how things used to be done, talk about the different kinds of little programs and tools we use now, and share some of the tricks I’ve learned. I’ll tell you stories about times when these little programs really made a difference, give you tips, and show you some examples. So, buckle up, and let’s jump into this world where making and managing software is not just a job, but something really special.
Following on from a story I wrote comparing the speed of Pandas and Polars libraries in terms of reading and writing data — from and to — a Postgres database I thought it might be interesting to do a similar comparison between Pandas and Psycopg2.
If you need to get data from or to a Postgres database table from or to a local file, read on for the winner.
You can find the Pandas v Polars article at the link below:
Pandas
I don’t think I need to explain much about what Pandas is. Its use in Python code is ubiquitous and is one of the main tools that people use to load, explore, visualise and process large amounts of data in Python.
Psycopg
Psycopg is one of the most popular PostgreSQL database libraries for the Python programming language. It implements the Python Database API Specification v2.0, allowing Python applications to communicate with PostgreSQL databases.
Many of you will know that every man and his dog are producing AI products or LLM’s and integrating them with their products. Not surprisingly AWS — the biggest cloud services provider — is also getting in on the act.
What is bedrock?
Its AI offering is called Bedrock and the following blurb from it’s website describes what Bedrock is.
Amazon Bedrock is a fully managed service that offers a choice of high-performing foundation models (FMs) from leading AI companies like AI21 Labs, Anthropic, Cohere, Meta, Stability AI, and Amazon via a single API, along with a broad set of capabilities you need to build generative AI applications, simplifying development while maintaining privacy and security. With Amazon Bedrock’s comprehensive capabilities, you can easily experiment with a variety of top FMs, privately customize them with your data using techniques such as fine-tuning and retrieval augmented generation (RAG), and create managed agents that execute complex business tasks — from booking travel and processing insurance claims to creating ad campaigns and managing inventory — all without writing any code. Since Amazon Bedrock is serverless, you don’t have to manage any infrastructure, and you can securely integrate and deploy generative AI…
I’m putting Better Programming on hiatus to make room for other programming publications.
I get that this is a big pivot given that we switched to a new editor recently. But things are changing at Medium and I think this will ultimately be a boon for everyone, authors, readers and publications.
I would like to inspire some (but not all) of you to start a publication and give you some guidelines on how to do it well. If you are an author, there are many other publications to write for and hopefully there will soon be even more (check the comments for suggestions).
Medium has always had publications that acted as something in between a group blog and a sub-reddit. Publication editors help set a quality bar, give feedback on your posts, and bring you an audience. Publications are a pillar of the Medium experience.
But the publication opportunities that (I think) are exciting are changing. In the past, the way to have a successful publication was to publish on anything and everything. So Medium was dominated by broad, high volume publications. Better Programming was one of those pubs and we published on topics that might not have a lot of overlapping readers. How many of you are currently programming in all of these languages: Go, Rust, Javascript, Ruby, Python, Swift, Kotlin, and Dart?
Better Programming has published stories on all of those topics and more, and so by definition we were often publishing stories that a lot of you don’t want to read. The direction Medium is heading is to optimize for publications that are more focused than Better Programming has been.
There are two types of focuses that I’m personally excited about. One is that publications are de facto communities of enthusiasts. The other is that publications bring a level of expertise to Medium’s boost program. Caveat: these are just what I’m excited about — maybe you have more creative ideas than I do.
Both cases beg for publications that are focused.
If you want to build an enthusiast community of people who love Kotlin, who want to write about their Kotlin projects and what they are learning, then you don’t also need authors in your publication who are writing about Swift.
Similarly, Medium is leaning on the expertise of publication editors to contribute as nominators in the Boost program. It’s hard to bring credible expertise when your focus is too broad. Most nominators also have first hand expertise beyond what they publish. So, if I were to run Better Programming myself, I think I could credibly nominate within Rails (I’ve built several companies on that stack) and Regular Expressions (I wrote a book), but I’m clueless on nearly everything else.
Running a publication isn’t for everyone and it isn’t a get-rich-quick scheme. The best publications are run out of authentic interest in a topic and nothing more. In technical topics, there can be some financial rewards, which I’ll get to. But mainly it’s best to think of this as a way to harness a passion you may have. I know that the community building impulse is strong in many of you because I’ve seen how many people have started publications on Medium over the years.
For any of you who are interested, I’m going to give you some tips on starting a publication. These aren’t exactly a recipe, but I’ll try to arrange them in order.
Pubs are easy to start and at minimum you have yourself as a possible author to fill the pub with stories. Here’s a link to get going.
If you want to accept other authors then you need to setup instructions. Almost all publications that accept other authors setup a “write for us” page with instructions, make it a tab on the publication, write a style guide, and then create a Google form to handle new author applications. Copy ours.
Do you want to focus on inclusivity? If so, then your role is probably more about support and encouragement and less about setting a high editorial bar. People get squeamish about being judged but the thing I’ve long recognized is that all writing was useful to the writer and is often useful to at least a few people, but very little writing is going to trend on Reddit or HackerNews.
Do you want to focus on exclusivity, i.e. finding the best of the best ideas and information on a topic? Medium’s Boost program gives publication editors a tool to recruit authors: “I can help boost your stories to more readers.” You can’t just boost anything, it has to be the best of the best. And so focusing on that is a very exclusive approach. I often think of a publication here about Runners where the editor is using his access to the Boost to work with professional running coaches, professional runners, and the former editor-in-chief of Runners World. That must be so fun for him! The programming equivalent is different for each programming languange so I’ll use an example from the language I got started in: if I started a publication for Perl, I’d use the boost as a way to recruit Larry Wall.
Consider becoming a Boost nominator but also consider that doing that will require having a strong nose for the best of the best. Of course every story on Medium is “high quality” but there are certain stories that are important, accurate, helpful and maybe even more than that. This isn’t official policy, but unofficially, it would be reasonable to submit an application to be a Boost Nominator once you have a publication with three authors and ten stories.
Getting a publication started requires recruiting authors. Hopefully you know some already, even if they aren’t on Medium. I think that if you don’t know a subject well enough that you also already know other people with similar enthusiasm and expertise in that subject, then starting a publication isn’t for you. That’s not a hard rule, but I’m saying it from experience. After recruiting from your own network, the way almost every other publication has recruited authors is by monitoring relevant tags on Medium and then using the private note feature to invite recently published stories into your publication.
Lets talk money. If you are a publication that Boosts stories you will get paid an honorarium. Plus if you build an audience, your own stories might make more money. But, you are missing the big picture if this is the most important thing to you. Writing and editing is a form of portfolio building. The software engineering field pays so much money, way beyond what Medium pays for writing. So focusing on getting paid from Medium is the ultimate example of a local maxima because the you can make 1000x more by building a reputation and using it to get a job or raise. This is just fact.
If you do start a programming publication that is looking for authors or you’ve already started a programming publication like that, post a link in the responses along with a link to your submission guidelines.
Authors: I looked up Better Programming’s stats. 4.6k authors have published 16.8k stories to Better Programming. Those stories generated 151M page views. Not all of them were behind the paywall, but the ones that were earned authors $999 thousand dollars. It’s been a huge honor to play a role in that and my thanks go out to the editors who’ve made it happen and to all of you for writing. Medium is still a great home for you, it’s just that you should find new places to publish.
In our last Motion Highlights collection, I added a really amazing reel by Joana Correia, a truly skilled motion designer. Her works are so thoughtful and browsing her latest projects I stumbled upon one of her other reels wrapping up her last year. Right at the beginning, there is this:
This small excerpt showcases a really interesting sliced repetition effect, which inspired me to try something new: animating “frames” of the same image along a path. I’m not sure if this is any good, but for some reason, I really like it. It feels like it could fit well within editorial design contexts.
It’s just a proof of concept, but I hope it sparks some new ideas for you too! 🙂
Configuration
There are better ways to do this obviously, but since this is a proof of concept and we want to be able to show various effects in our demo, I decided to do it like this. So here’s how the configuration works.
Each grid item can override the global animation settings by specifying data- attributes directly in the HTML. This allows fine-tuning of transitions on a per-item basis.
You can customize the following options for each .grid__item:
clipPathDirection — data-clip-path-direction: Direction for clip-path animation (top-bottom, bottom-top, left-right, right-left).
steps — data-steps: Number of mover elements created between grid item and panel.
stepDuration — data-step-duration: Duration (in seconds) of each mover animation step.
stepInterval — data-step-interval: Delay (in seconds) between each mover’s animation start.
rotationRange — data-rotation-range: Maximum random rotation (±value, degrees) applied to movers.
wobbleStrength — data-wobble-strength: Maximum random positional wobble (in pixels) during motion path generation.
moverPauseBeforeExit — data-mover-pause-before-exit: Pause duration (in seconds) before movers exit.
panelRevealEase — data-panel-reveal-ease: Easing function used when revealing the panel.
gridItemEase — data-grid-item-ease: Easing function for animating grid item exits.
moverEnterEase — data-mover-enter-ease: Easing function for movers entering.
moverExitEase — data-mover-exit-ease: Easing function for movers exiting.
panelRevealDurationFactor — data-panel-reveal-duration-factor: Multiplier to adjust panel reveal animation timing.
As design and development teams grow and projects span across web, mobile, and internal tools, keeping everything consistent becomes tricky. Even small changes, like updating a brand color or adjusting spacing, can turn into hours of manual work across design files, codebases, and documentation. It is easy for things to drift out of sync.
That is where design tokens come in. They are a way to define and reuse the key design decisions like colors, typography, and spacing in a format that both designers and developers can use. Instead of repeating values manually, tokens let teams manage these decisions from a central place and apply them consistently across tools and platforms.
With Penpot’s new native support for design tokens, this workflow becomes more accessible and better integrated. Designers can now create and manage tokens directly inside their design files. Developers can rely on those same tokens being structured and available for use in code. No plugins, no copy pasting, no mismatched styles.
In this article, we will look at what design tokens are and why they matter, walk through how Penpot implements them, and explore some real world workflows and use cases. Whether you are working solo or managing a large design system, tokens can help bring order and clarity to your design decisions—and we will show you how.
What are Design Tokens?
Design tokens are a way to describe the small but important visual decisions that make up your user interface. Things like primary colors, heading sizes, border radius, or spacing between elements. Instead of hardcoding those values in a design file or writing them directly into code, you give each one a name and store it as a token.
Each token is a small piece of structured data. It has a name, a value, and a type. For example, a button background might be defined like this:
By putting all your decisions into a token format like this, they can be shared and reused across different projects and tools. Designers can use tokens inside the design tool, while developers can use them to generate CSS variables, theme files, or design system code. It is a way to keep everyone aligned, without needing to sync manually.
The idea behind tokens has been around for a while, but it is often hard to implement unless you are using very specific tools or have custom workflows in place. Penpot changes that by building token support directly into the tool. You do not need extra plugins or complex naming systems. You define tokens once, and they are available everywhere in your design.
Tokens are also flexible. You can create simple ones like colors or font sizes, or more complex groups for shadows, typography, or spacing systems. You can even reference other tokens, so if your design language evolves, you only need to change one thing.
Why Should You Care About Design Tokens?
Consistency and efficiency are two of the main reasons design tokens are becoming essential in design and development work. They reduce the need for manual coordination, avoid inconsistencies, and make it easier to scale design decisions. Here is how they help across different roles:
For designers Tokens remove the need to repeat yourself. Instead of manually applying the same color or spacing across every frame, you define those values once and apply them as tokens. That means no more copy-pasting styles or fixing inconsistencies later. Everything stays consistent, and updates take seconds, not hours.
For developers You get design values in a format that is ready to use. Tokens act as a shared language between design and code, so instead of pulling hex codes out of a mockup, you work directly with the same values defined by the design team. It reduces friction, avoids mismatches, and makes handoff smoother.
For teams and larger systems Tokens are especially useful when multiple people are working on the same product or when you are managing a design system across several platforms or brands. They allow you to define decisions once and reuse them everywhere, keeping things in sync and easy to update when the brand evolves or when new platforms are added.
Watch this quick and complete demo as Laura Kalbag, designer, developer and educator at Penpot, highlights the key benefits and main uses of Penpot’s design tokens:
What Sets Penpot Apart?
Penpot is not just adding support for design tokens as a separate feature. Tokens are being built directly into how Penpot works. They are part of the core design process, not an extra tool you have to manage on the side.
You can create tokens from the canvas or from the token panel, organize them into sets, and apply them to components, styles, or entire boards. You do not need to keep track of where a value is used—Penpot does that for you. When you change a token, any component using it updates automatically.
Take a look at this really great overview:
Tokens in Penpot follow the same format defined by the Design Tokens Community Group, which makes them easy to sync with code and other tools. They are stored in a way that works across platforms, and they are built to be shared, copied, or extended as your project grows.
You also get extra capabilities like:
Tokens that can store text, numbers, and more
Math operations between tokens (for example, spacing that is based on a base value)
Integration with Penpot’s graph engine, so you can define logic and conditions around your tokens
That means you can do more than just store values—you can create systems that adapt based on context or scale with your product.
Key features
Penpot design tokens support different token types, themes, and sets.
Design tokens in Penpot are built to be practical and flexible from the start. Whether you are setting up a simple style guide or building a full design system, these features help you stay consistent without extra effort.
Native to the platform Tokens are a core part of Penpot. You do not need plugins, workarounds, or naming tricks to make them work. You can create, edit, and apply them directly in your files.
Based on open standards Penpot follows the format defined by the Design Tokens Community Group (W3C), which means your tokens are portable and ready for integration with other tools or codebases.
Component aware You can inspect which tokens are applied to components right on the canvas, and copy them out for use in code or documentation.
Supports multiple types Tokens can represent strings, numbers, colors, font families, shadows, and more. This means you are not limited to visual values—you can also manage logic-based or structural decisions.
Math support Define tokens in relation to others. For example, you can set a spacing token to be twice your base unit, and it will update automatically when the base changes.
Graph engine integration Tokens can be part of more advanced workflows using Penpot’s visual graph engine. This opens the door for conditional styling, dynamic UI variations, or even generative design.
Practical Use Cases
Design tokens are flexible building blocks that can support a range of workflows. Here are a few ways they’re already proving useful:
Scaling across platforms Tokens make it easier to maintain visual consistency across web, mobile, and desktop interfaces. When spacing, colors, and typography are tokenized, they adapt across screen sizes and tech stacks without manual rework.
Creating themes and variants Whether you’re supporting light and dark modes, multiple brands, or regional styles, tokens let you swap out entire visual styles by changing a single set of values—without touching your components.
Simplifying handoff and implementation Because tokens are defined in code-friendly formats, they eliminate guesswork. Developers can use tokens as source-of-truth values, reducing design drift and unnecessary back-and-forth.
Prototyping and iterating quickly Tokens make it easier to explore design ideas without breaking things. Want to try out a new font scale or update your color palette? Change the token values and everything updates—no tedious find-and-replace needed.
Versioning design decisions You can track changes to tokens over time just like code. That means your design system becomes easier to maintain, document, and evolve—without losing control.
Your First Tokens in Penpot
So how do you actually work with tokens in Penpot?
The best way to understand design tokens is to try them out. Penpot makes this surprisingly approachable, even if you’re new to the concept. Here’s how to start creating and using tokens inside the editor.
Creating a Token
Open your project and click on the Tokens tab in the left panel.
You’ll see a list of token types like color, dimension, font size, etc.
Click the + button next to any token type to create a new token.
You’ll be asked to fill in:
Name: Something like dimension.small or color.primary
Value: For example, 8px for a dimension, or #005FCC for a color
Description(optional): A short note about what it’s for
Hit Save, and your token will appear in the list. Tokens are grouped by type, so it stays tidy even as your set grows.
If you try to create a token with a name that already exists, you’ll get an error. Token names must be unique.
Editing and Duplicating Tokens
You can right-click any token to edit or duplicate it.
Edit: Change the name, value, or description
Duplicate: Makes a copy with -copy added to the name
Handy if you’re exploring alternatives or setting up variants.
Referencing Other Tokens (Aliases)
Tokens can point to other tokens. This lets you define a base token and reuse it across multiple other tokens. If the base value changes, everything that references it updates automatically.
For example:
Create a token called dimension.small with a value of 8px
Create another token called spacing.small
In spacing.small, set the value to {dimension.small}
Now if you ever update dimension.small to 4px, the spacing token will reflect that change too.
Token references are case-sensitive, so be precise.
Using Math in Tokens
Penpot supports simple math in token values—especially useful for dimension tokens.
You can write things like:
{dimension.base} * 2
16 + 4
{spacing.small} + {spacing.medium}
Let’s say dimension.base is 4px, and you want a larger version that’s always double. You can set dimension.large to:
csharpCopyEdit{dimension.base} * 2
This means if you ever change the base, the large size follows along.
Math expressions support basic operators:
+ addition
- subtraction
* multiplication
This adds a lightweight logic layer to your design decisions—especially handy for spacing scales, typography ramps, or breakpoints.
What’s Next for Penpot Design Tokens?
Penpot has an exciting roadmap for design tokens that will continue to expand their functionality:
GitHub Sync: A feature allowing teams to easily export and import design tokens, facilitating smooth collaboration between design and development teams.
Gradients: An upcoming addition to design tokens, enabling designers to work with gradients as part of their design system.
REST API & Automation: The future addition of a REST API will enable even deeper integrations and allow teams to automate their design workflows.
Since Penpot is open source and works under a culture of sharing as much as they can, as early as possible, you can check out their open Taiga board to see what the team is working on in real time and what’s coming up next.
Conclusion
Penpot’s design tokens are more than just a tool for managing visual consistency—they are a game-changer for how design and development teams collaborate. Whether you’re a junior UI designer trying to learn scalable design practices, a senior developer looking to streamline design implementation, or an enterprise team managing a complex design system, design tokens can help bring order to complexity.
As Penpot continues to refine and expand this feature, now is the perfect time to explore the possibilities it offers.
Give it a try!
Are you excited about Penpot’s new design token feature? Check it out and explore the potential of scalable design, and stay tuned for updates. We look forward to see how you will start incorporating design tokens into your workflow!
Nite Riot isn’t just one person, it’s a powerhouse team of creatives crafting
high-voltage promos and commercials for the biggest names in music, fashion,
and entertainment. The kind of work that makes your jaw drop and your brain
scream, “Damn, that’s cool”! So, when we got the chance to build their digital
playground, we knew one thing: it had to hit just as hard as their portfolio.
It just so happened that while working on this project, I was deep into Louis Paquet’s Awwwards masterclass, Memorable UI Design For Interactive Experiences. I challenged myself to apply a whole new approach: “Big Idea”. It became the driving force behind everything
that followed.
Less Noise, More Punch
Nite Riot’s work hits like a lightning bolt—loud, bold, and impossible to
ignore. The website needed to do the opposite: create space for that energy to
shine. We stripped away the noise and leaned into a minimal black-and-white
aesthetic, relying on a dynamic grid layout and a Difference (Blend) Mode to
do the heavy lifting.
For me, everything begins with a grid. It’s the structure that holds the
entire project together.
We went through multiple visual directions at the start: concepts were
sketched, tested, and tossed. Only the strongest ideas made the cut, forming a
clean yet bold design system.
At the start of the project, we explored 30+ visual directions—sketching,
testing, and scrapping. Only the boldest ideas survived, forming the
foundation of a clean yet punchy design system.
And we didn’t wait for the homepage to make a first impression. The preloader
set the tone from the jump—not just functional, but atmospheric. It’s the
handshake, the deep breath before the plunge. I always think of the preloader
as the overture of the experience.
Right from the start, we let the user know they’re in for a ride full of
killer projects.
Big Idea
My guiding light? Difference Mode. It didn’t just influence the design; it
became the heartbeat of the entire site.
Typography treatments
Imagery overlays
Video hovers
Case study rollovers
Page transitions
Scroll effects
The logo itself
Dark/Light theme toggling
Drag scroll on the Inspired page
Even the 404 page
Enter the Difference Mode
The goal wasn’t simply to layer on visual effects; instead, it was about
crafting a rhythm. Difference Mode brought contrast and edge to every element
it touched. Hover states, transitions, and page reveals all flowed together,
each following the same beat.
But the impact wasn’t confined to the visual side. On the technical front,
Difference Mode allowed us to create a smooth dark/light theme experience
without the need for redundant styles. With a single toggle, the entire color
palette reversed seamlessly, ensuring both sharpness and performance.
The real trick was keeping Difference Mode in check—just enough punch,
without wrecking the minimalism.
Design Index Page
We experimented with multiple layouts to strike the perfect balance. The
client didn’t want a fullscreen visual overload, but at the same time, they
wanted a strong presence of imagery—all within a minimalist aesthetic. The
result? A carefully structured design that offers a rich visual experience
without overwhelming the user, maintaining the sleek and intentional feel of
the site.
We made sure switching between projects feels great—scroll with your mouse,
click through with arrows, or grab the timeline and drag your way forward.
Case Study: A Scrolling Cinematic Experience
Case studies aren’t just pages on this site—they’re a journey. Forget the
standard click-and-load experience; here, case studies unfold like a film
reel, one seamless story rolling into the next.
On desktop, the layout moves horizontally—because why
should scrolling always be up and down?
No matter if a title is one line or three, we made sure everything adapts
beautifully.
We developed a multi-case format, so you’re never locked
into just one story.
And the showstopper? The ultra-smooth case study transition. Instead of abruptly
ending one project and making you manually start the next, we designed a
flow where the next case subtly appears, teasing you into it. You can either
click and dive in or keep scrolling, and like magic, you’re onto the next
visual masterpiece.
Everything was crafted to keep the case study flow smooth, natural, and
engaging.
Inspired? You Will Be.
Our favorite part? The Inspired page. Imagine a canvas where images float,
shift, and react to your every move. Drag, drop, hold—boom, Difference Mode
kicks in. It’s a playground for the restless creative mind, where inspiration
isn’t just consumed—it’s interacted with.
404, But Make It Rockstar
Most 404 pages are where fun goes to die. Not here. Ours is a full-blown
experience—an Easter egg waiting to be discovered. The kind of 404 that makes
you want to get lost on purpose.
Oh, and did we mention? We applied double Difference Mode here. Because why not?
I accidentally duplicated a video layer that had Difference Mode on—and turns
out, the number shapes had the same mode. That happy accident created a unique
setup with a ton of character. And the best part? It was insanely easy to
build in Webflow with just the native tools.
Go ahead—break stuff, try weird things, explore the unknown. That’s where
the magic happens.
Animation
Most 404 pages are where fun goes to die. Not here. Ours is a full-blown
experience—an Easter egg waiting to be discovered. The kind of 404 that makes
you want to get lost on purpose.
Over half of the animations start in Figma—that’s where I test and shape the
motion before bringing it to life.
Every animation began in Figma. Once we nailed the tone and pacing, I moved it
all into After Effects, tweaking easings and timings to hit that sweet spot
between smooth and snappy.
No presets here—I use only custom easings from my personal library. It’s all
about that perfect motion feel.
I leaned on three key easing patterns to shape the site’s movement:
When it came to development, GSAP gave us the
control and nuance to bring those animations to life on the web.
Development Choices
We didn’t have an unlimited budget, but we had a clear vision. So we chose
tools that gave us flexibility without compromising on polish.
We pushed Webflow and GSAP to their limits to bring this vision to
life—fully custom interactions, smooth performance, and pixel-perfect
precision across all devices. Every scroll, hover, and transition was
carefully crafted to support the story.
Hover animations on cities (desktop) + auto image rotation (mobile) via JS + GSAP.
Smooth scrolling handled by lenis.js.
Case Studies
Horizontal scroll experience using lenis.js + GSAP.
Pagination updates animated with JS + GSAP.
Parallax effects on H1, media, and next-case blocks powered
by GSAP.
Tab transitions via barba.js + GSAP.
Scroll-based transition to the next case using JS + barba.js + GSAP.
Back button transition animated with JS + barba.js + GSAP.
Full-screen video block with smooth entry/exit animations
using JS + GSAP + glightbox.
404 Page
Scrolling text ticker via CSS animations.
Cursor-following 404 block on desktop using JS + GSAP.
Chaotic digit displacement animated with GSAP.
Motion-reactive number shift on mobile/tablet via JS + Device Orientation API.
Visual Optimization
Performance mattered—especially on case study pages packed with video previews
and hi-res imagery. Our toolchain:
Handbrake for compressing videos
Picflow for bulk image optimization
tinypng for WebP polishing
Picflow let us handle massive batches of photos way faster than Squoosh ever
could. Big time-saver.
Handbrake
Picflow
tinypng
CMS
We built everything in Webflow’s CMS. Super clean and fast to update. Adding a
new case is as easy as filling out a form.
Not Just a Portfolio. A Vibe.
This wasn’t about making another nice-looking site. It was about building a
space that feels alive. Every pixel, every transition, every weird, wonderful
interaction was designed to make people feel something. Minimalism with an
edge. Order with a dash of chaos. Just like Nite Riot.
Oh, and speaking of hidden gems—let’s just say we have a soft spot for Easter
eggs. If you hover over the Nite Riot logo, you might just stumble upon a
couple of surprises. No spoilers, though. You’ll have to find them yourself.
😉
Click. Explore. Get Lost.
This is not just a website. It’s an experience. A digital world built to be
played with. So go ahead—dive in, mess around, and see what happens!
In this article, we’ll explore the behind-the-scenes process of how Waaark brought 24/7 Artists’ new product launch landing page to life. See how creative vision, design, and development came together to shape the final result.
Brief
24/7 Artists reached out after discovering our work on AW Portfolio. They came to us with a clear challenge: help them break through a creative deadlock and redesign their site to support an upcoming product launch—on a tight deadline.
At Waaark, having time to think, breathe, and work at our own pace is key. We typically avoid last-minute projects, but this one felt like a puzzle worth solving. We saw a narrow but feasible path forward and accepted the challenge.
Creative research
We kicked off the project by exploring ways to visually represent music. After some wandering sessions on platforms like Pinterest and Behance, we narrowed our direction toward visualiser aesthetics—particularly the use of lines to suggest sound waves.
The client also emphasised their desire to introduce depth and dimensionality into the site. We collected inspiration reflecting this concept and organised everything into a Milanote moodboard, including ideas around color, typography, layout, and impactful hero sections to set a clear creative direction.
Given the time constraints, it was important to focus on bold, achievable visuals—techniques we had already mastered.
Design
Story board
For a storytelling-focused, long-scrolling landing page like this, we replaced our typical UI wireframes with a full storyboard. This storyboard mapped out each step of the user journey, along with transitions between sections.
Our goal was twofold: to provide the client with a clear visual direction and to start shaping the flow and pacing on our end.
Creative Direction
With both the moodboard and storyboard approved, we began merging them to define the site’s visual language.
Right from the hero section, we wanted the message to be loud and clear: music meets tech. We envisioned a dark, immersive intro with circular lines evoking vinyl records or sound waves. Layered on top: a bold sans-serif headline and a ticket-style navigation bar to reinforce the music industry vibe.
To instantly capture user attention, we imagined a mouse-trail animation where artist photos appear in an equalizer-style movement.
To contrast the dark intro, we introduced a more colorful palette throughout the rest of the site, showcasing the diversity of music and the artists’ unique sensibilities.
Implementation
Tech stack
We used our go-to stack, which the client was already familiar with: WordPress. It provided a solid foundation—easy to manage, flexible for the frontend, and scalable.
For the front-end experience, we integrated a few select libraries:
We aimed to minimise external dependencies, instead relying on native CSS 3D transformations and lightweight JS/Canvas-based animations—especially for effects mimicking depth.
Animation
To save time, all the animations were directly coded based on what we had envisioned and mapped out in the storyboard. Some of them worked exactly as imagined from the start, while others needed a bit of fine-tuning to integrate fully into the overall experience.
Scroll Animations
To keep users engaged while presenting 24/7 Artists’ vision and offering, we crafted a sequence of scroll-driven animations—alternating between smooth flows and unexpected reveals.
Micro-Interactions
On a product launch page, micro-interactions are key. They spark curiosity, highlight key elements, and subtly guide the user toward action.
For the main call to action, we designed a distinctive interaction using the same equalizer-like shape seen in the photo animations. On hover, it animates like a music player—both playful and thematic.
Tile Grid Setup We began by constructing a grid made of 1×1 and 2×2 tiles.
Z-Axis Scroll Effect Since we weren’t using true 3D, we faked depth using scale transforms. We calculated the scale needed to have the grid’s central hole (where content would go) expand to fill the viewport. Then, we transitioned each tile from its original size and position to the final state using GSAP.
Playing with GSAP staggered animation adds more depth to the motion.
Simulated Cube Depth To simulate 3D cubes, we calculated the back-face vertices based on a smaller grid to keep the illusion of perspective. We then drew side faces accordingly, making sure to hide vertices behind the front face.
Canvas-Based Content Reveal To finish the effect, we redrew the 2×2 tiles’ content in Canvas and added a cover layer that scrolls at a faster rate, revealing the content below.
Conclusion
The 24/7 Artists landing page was a bold and fast-paced project that pushed us to distill ideas quickly and trust our creative instincts.
Through strong visual metaphors, smooth storytelling, and carefully crafted motion, we built a launchpad that sets the tone for the brand’s next chapter.
This first release is just the beginning. The site was designed with scalability in mind, and additional sections and pages are already being added to support future growth and evolving needs.
When the vision is clear and the momentum is right, great things can happen—fast.