We have the data from builds and test runs. We have the agent primitives in Elixir. Now we are connecting them into something that can actively improve your developer workflows, not just report on them.
Tags
Tuist
When your team works with multiple clones of the same repository, global resources like ports and databases start to conflict. Here is how we solved it at Tuist using mise and a simple random suffix.
Coding agents are making developers and organizations less tolerant of slow toolchains. That shift in tolerance is opening a door that was surprisingly hard to open before.
Openness is not a trend or a distribution strategy. It's a way of building trust, expanding your pool of ideas, and creating something that lasts.
A bet that obsession matters more than speed. That personality matters more than feature parity. That going deep matters more than going wide.
Tuist started at the toolchain layer and is working its way down to compute and caching. This is the whole house, from roof to foundation, and why going deep into each layer is how you earn trust that money cannot buy.
Developers who build companies tend to fall in love with their creations. That love is a strength, but it can also become a blind spot when others see your work as an asset to acquire rather than a craft to respect.
Why the future of CI isn't about dedicated compute but about colocated caching, and how build systems, coding agents, and shifting economics are making that future real.
Building a long-term company in dev tooling means accepting that some things can't be rushed. Ideas have their own pace, trust takes time, and not every shortcut is worth taking.
Reflections on how AI is reshaping code production, why companies must rethink where value lives, and what independence means in a world of accelerating change.
One of the biggest challenges we face at Tuist is that teams have normalized working without data. They stack decisions that erode productivity, then throw resources at the symptoms rather than understanding the cause.
After years of painful Mac mini management for CI, we discovered Namespace - an API-first service that makes macOS environments elastic and developer-friendly. Perfect for building Tuist QA and beyond.
GitHub Actions and commoditized Mac infrastructure providers like Namespace are disrupting the stagnant Apple developer tooling market, enabling innovative alternatives to traditional pipeline-centric CI solutions.
Some thoughts on how Tuist could enable agentic building of apps
This is my stream of thought on why mobile CI will have to redefine itself.
China has learned to localize their products and services to fit the needs of their target audience.
In this blog post I unfold the journey of Tuist from an open source tool to an open core business.
What are we waiting to help Swift app development teams be productive?
It's time to rethink the CI market.
I talk about the lack of innovation in the Apple ecosystem and how Tuist is reimagining developer experiences.
In this blog post I talk about how Tuist is evolving and how some mental models are transitioning.
The tech industry is obsessed with hyper-growth, but at Tuist, we prioritize quality over quantity. We are committed to building a product that sparks joy, investing in design, and embracing simplicity. Our focus on standards and open-source contributions drives our long-term growth.
It’s time for innovation to happen in the CI space through the narrow waist that Dagger brings to the table.
In this post, I explore the idea of a fully open Tuist platform.
Automate the continuous release of releasable changes with git-cliff and CI.
Learn about the new PBXObject types introduced in Xcode 16 to support synchronized groups.
In this blog post I share how stories help people connect with the products they use.
In this blog post I reflect on why I believe not more organizations are adopting Bazel and why Tuist is taking a different approach.
Open-source sustainability is hard, and while it’s necessary to have the tools to reward and pay contributors for their work, the problem requires more of us, developers, speaking out loud about the importance of contributing to the software that we depend on.
Xcode struggles to achieve incremental builds within the same environment. What about across environments? Not even close. Tuist is working on bringing incremental builds and test execution to Xcode projects across environments.
Xcode doesn't have a native container for bundling resources for different platforms and architectures. But nothing stops us from creating our own for Tuist.
2023 was a year of many challenges in my life. Next week I'm going to start mental therapy with a psychologist.
In this post, I talk about how I'm feeling about my contributions to the open-source community.
We engineers are vulnerable to getting attached to solutions instead of problems. In this post, I share my experience with this and how I'm trying to change it.
Apple embraced implicitness in some areas of the build system, and it's causing headaches to developers. In this post, I share my thoughts on the topic and how we are planning to address it in Tuist.
I shared a bit of a reflection on what are the issues with current Apple's tooling touching on some of the points that I presented in my Swiftable 2023 talk.
In preparation for a workshop that I'm conducting in Swiftable (Buenos Aires), I came up with an idea to ensure a smooth experience following the workshop
Juggling roles in Tuist, from coding to community support, taught the delicate balance between mastery and sustainability in open-source projects.
Read my personal take on Bitrise's actions against Tuist, and how we're rallying as a community to uphold our values and vision.
We're removing Ruby from Tuist, integrating everything into Xcode, replacing Fourier with bash scripts, and rewriting tests in Swift for ease.
Tuist, now 6 years old, has become essential for organizations using Xcode. While initially a side project, its popularity surged. To ensure sustainability, we're introducing paid features alongside free ones, navigating challenges like unauthorized forks and finding the right business model.
Tuist provides solutions to challenges in large-scale app development overlooked by Apple. It's a foundation for developers, promising simplicity and a future filled with actionable insights.
Embarking on a nuanced journey with Tuist, facing ethical dilemmas & aiming for sustainability, I invite you to be part of our personal tech story.
Apple's focus on simplifying basic tasks may overshadow the challenges of complex operations. Developers, often uninformed due to lack of data, face hard choices: pivot to alternatives or revamp systems.
From its inception in 2018, Tuist has grown through passion and dedication, now embarking on new horizons.
A while ago, and inspired by Facebook's internal tooling, we added a new command to Tuist, tuist focus . As it names says, it's intended to be used when you want to work on a given target. If you have a project of, let's say 300 targets, yo…
As we are approaching the release of Tuist 2.0, I started thinking what's next for the project. The focus until 1.0 was around project generation. We provided developers with a graph-based project generation that abstracts away Xcode's intr…
I often wonder why Apple continues to build features that are closed into Xcode, for example Swift Package Manager's integration. While some developers might see that as something positive, because that means it can be seamlessly integrated…
When looked from the consumer standpoint, open source often reads as software publicly available that I can check out, use, and improve. However, there’s more than that. In a world where everyone seems to be obsessed with building the next…
Yesterday, we announced that Tuist has now stats that allows us to understand how users use the tool and therefore, invest our time working on Tuist more wisely. As expected, there were some negative reactions to this: Oh! I’m glad that I c…
Having seen Shopify acting as an e-commerce platform that developers can extend made me think whether the same idea would be applicable to Tuist. What if instead of us trying to codify all different workflows and configurations, we gave dev…
I think there are a lot of similarities between Tuist and JS bundlers. First, they both are functions that take input and return an output. In the case of a JS bundler, it takes Javascript or any variation of it, and converts it into Javasc…
One of the things that I noticed when building tools for developers, either through Tuist or my work at Shopify, is that we developers tend to get incredibly excited about what our new idea would enable, and put the need or problem aside. I…
It's common to see developers wondering why they should use Tuist instead of the Swift Package Manager (SPM) for modeling their projects. I think it's normal. It happened to me a few times too. Some of them even made me wonder if I should c…
I've recently spent a lot of time in Tuist tackling technical debt. It'd been a while since the last time I have to pause some other work for weeks to do something that would be beneficial for the long-term of the project. This time the wor…
One of the things I've been terrible at is at keeping decisions records in projects . It happens often working on Tuist that I come across something that I need to know why it was done in a particular way and I can't remember. It also happe…
One thing that I've been struggling a lot with lately is the amount of distractions that come with the growth of an open-source project. In the case of Tuist , those distractions have come in the shape of notifications on GitHub, mentions o…
I learned by working with Ruby and Ruby on Rails during my time at Shopify that using tools and programming languages that spark joy is crucial for developers' motivation. Even though we developers love to understand complexities, we enjoy…
Tree-shaking is a concept inspired by Javascript and used by Tuist to generate lean Xcode projects that are processed and compile faster.
Bazel and Buck is the solution large companies have adopted to make Xcode build fast. However, it's complex and not accessible to medium and small companies. In this blog post, I share the approach Tuist is taking and how it's inspired by tools the community is already using.
In this blog post, I share my experience building the Tuist community. I talked about the things that have worked well, and the areas where there's still some room for improvement.
I recently came across a blog post from Shopify where they share how they are componentize the main Rails application into smaller pieces with clearly defined boundaries and loose coupling between them. This made me think about the uFeature…
I recently started having pairing sessions with developers interested in contributing to open-source; it’s something that usually intimidates people, but that becomes easier if someone guides you through the first contribution. You have a p…
I never thought I'd end up doing this, but today I just recorded an uploaded a video to Youtube that is meant to be the first of a series about Tuist . I recorded myself with Photo Booth, the screen and the voice using Quicktime, and edited…
These days I'm a rollercoaster of emotions ― I guess as a result of COVID19 and spending so much time at home. In particular, these days I'm thinking a lot about Tuist and my devotion for it. I really like building it, working on building s…
A few days ago, Marek decided to take on a proposal that I made for Tuist a while ago, management of certificates and provisioning profiles . As it happened with the definition of dependencies, dealing with certificates and provisioning pro…
One of the things that excited me the most about the opportunity to join Shopify back in 2018 was the opportunity to grow and learn from the challenges and the talent of the company. When I joined, my background was mainly iOS development w…
Many of you might already be familiar with SwiftGen ; a tool that generates Swift code to access resources in a type-safe manner. Having a type-safe API is something that Android developers have had for a long time, and that Apple has never…
There’s an idea that I’d love Tuist to move towards: provide a CLI that is standard across all the projects defined using Tuist. This is not a new idea; we can see it in frameworks like Rails that thanks to being opinionated about the struc…
I'm flying back from Tokyo and took the opportunity to code a bit on Tuist. Since I don't have Internet connection to get distracted with, I decided to work on something that doesn't require Internet connection: improving the project archit…
I recently opened up this PR on Tuist that turns models that represent the projects into structs. For some reason, which I don't remember, I had the not-so-brilliant idea of defining them as classes. While that has been working fine, they d…
In this blog post I talk about a recent decision that we made to start using reactive programming to model asynchronous tasks in Tuist.
An update on what I'm up to these days with Tuist. In particular, I talk about the new website that I'm designing and implementing for the project.
Picked up my phone and dumped some thoughts on why I'm so engaged and excited to build Tuist.
We are providing a new API from Tuist to define relative paths and this blog post describes the motivation behind it and the solution that we are adopting.
In this blog post I talk about a beautiful abstraction which Alex and I came up with to push Tuist's awesomeness even further.
In this blog post I talk about abstractions in the Xcode projects domain and how Tuist leverages the concept to conceptually compress intricacies of Xcode projects that developers are often confronted with.
A Monday blog post with some reflections about the current state of Tuist and its future.
This blog post describes the advantages of dynamic over static Xcode projects, and how Tuist leverages project generation to help teams overcome the challenges associated to scaling up projects.
Trying to add error tracking to Tuist, I realized how the process is not very straightforward. This blog post describes the process that I followed to help other Swift developers add error tracking to their CLI tools.
In this mini-post I talk about some recent work that I've done in Tuist to support defining Info.plist files in the manifest file.
A random reflection about Tuist and why I'm so glad working on it.
Trust is key for open source projects to thrive. In this blog post I explain what trust has meant for Tuist.
In this post, I explain how we are able introduce changes and release new versions of Tuist with the confidence of not introducing bugs or breaking things.
Tuist is my most beloved open source project. In this blog post I touch on the motivations that led me to build it.
Not being mindful when contributing and maintaining open source projects might lead to burnout or low self-steem. In this blog post I talk about some principles that I applied to have a healthier relationship with the open source.