Hello, my name is Maximilian, and I am a Creative Developer. I am currently based in Amsterdam, where I work at Antinomy Studio.
At the beginning of my career, I started working as a Designer, but I quickly decided that, in a professional context, I would enjoy being a Developer more. Today, I feel like this experience helps me a lot, especially when working on animations or interactions.
Featured Work
10 Things — Issue 300
For several years, Your Majesty has been running a newsletter called 10 Things, in which they share—well—10 links every week. As we approached the 300th issue, we knew we wanted to create a special experience to mark the occasion.
We quickly settled on the idea of presenting the issues in an infinite grid. While this concept is not entirely new and has been done before, it still offers plenty of flexibility to create a unique experience.
So while AJ Marshall started on the design, I started implementing the infinite grid logic, as well as adding some custom shaders and post processing to give it a distinctive look.
We also wanted to include a brief introduction to explain the site’s purpose. To achieve this, I repurposed an earlier exploration that involved placing particles on a mesh. Using this approach, we generated positions on three different meshes and used shaders to animate the particles as they transitioned between these positions.
The biggest challenge was the timeline—we had about two weeks from start to finish. On top of that, we were still juggling our regular client projects. It was a tough sprint, but it pushed us to find solutions that struck the right balance between effort and impact.
Tech Stack: Next.js, TypeScript, Three.js, GSAP
Doity
Doity is a production company based in Berlin. As with most projects at Antinomy, we collaborated with 27b for the design.
The biggest challenge for this project was managing the large number of videos and images. Since most of them were fullscreen, we had to balance high-quality visuals with reasonable data consumption, especially for mobile devices. To optimize performance, we enabled AVIF compression for images and streamed videos in the M3U8 format. This allowed us to minimize data usage while maintaining high visual quality.
We also wanted to create fluid page transitions that enhance the user experience. This has been a challenge for some time in the Next.js App Router, but we found a solution using the AnimatePresence
component from Motion.
Tech Stack: Next.js, Tailwind, Motion, DatoCMS
New Aesthetic
This is quite an old project, but I still like it because it was the first one I ever worked on using WebGL. The goal was to highlight the book while showcasing all the contributors. I started by creating a rough design, then rigged and animated the book in Blender. The rigging was done using bones, and I created a single animation sequence that was linked to the user’s scroll progress. As a final touch, I added a godray post-processing effect using Three.js.
Looking back, I now realize how much I’ve learned since then. However, it’s also a good reminder not to worry too much about perfect implementation—sometimes, it’s just about creating something.
Tech Stack: Vanilla JavaScript, Three.js
Explorations
Over the years, my main goal has been to dive deeper into 3D development with WebGL. It has always fascinated me because the possibilities with this technology are endless compared to traditional websites. Usually, I pick a specific topic I want to explore and then create a small prototype, which I often share on Twitter. The concepts range from baking physics in Blender to using instanced rendering or metaballs.
When working on these projects, I primarily use OGL, a lower-level WebGL library. I find this particularly useful for learning because it forces me to create my own shaders and gain a deeper understanding of core concepts.
Tech Stack: Vite, TypeScript, OGL
About
I studied Interaction Design, a program that combined design and programming with a focus on building interactive installations. Throughout my studies, I worked with electronics, Arduino, soldering, Processing, Python, and even 3D modeling in Cinema 4D. In many ways, my background is quite different from what I do now. However, over time, I became fascinated by web development, inspired by the incredible websites I discovered on Awwwards and SiteInspire. While doing a design internship, I started building portfolios for myself and my friends to deepen my web development skills. A year later, after finishing university, I landed a job as a Creative Developer at Zero Studios in New York.
At the moment, my tech stack includes Next.js, Tailwind, and Motion. I like React because of its vast ecosystem, and tools like react-three-fiber make working with WebGL much faster. That said, I’m not a die-hard React advocate—I believe the best tech stack is the one you’re most comfortable with and can create the fastest in. In the end, it’s not about the technology itself but what you can achieve with it.
As I mentioned earlier, my main goal has been to further explore WebGL. It’s an ongoing journey, and there’s still so much to learn. After creating many small prototypes, I’d also like to take on a larger WebGL project, as it would introduce new challenges and learning opportunities.
Final Thoughts
I tend to be quite critical of my work, always feeling that the best projects are still ahead. But it’s also nice to look back and appreciate what I’ve created so far.
If I could give two pieces of advice to anyone in a similar position to where I was as a student, it would be:
- Always share your work on social media.
- Push yourself to learn at least one new thing with every project, so you always get better
I try to post most of the things I create on Twitter so feel free to follow me!