Writing

Building Tuist as a platform

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…

Tuist and JS bundlers

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…

Owning your workflows

The more I work with Javascript and Ruby, the more I realize how empowering it is to design your workflows. Having worked with Xcode and Swift for many years, I was used to Apple dictating your working style. You need to debug an issue? Thi…

Focusing on the problems

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…

Tuist and the Swift Package Manager

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…

Tackling technical debt in Tuist

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…

Decision records

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…

Scaling up an open-source project

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…

Reflecting on 3 years at Shopify

A few days ago, it was my 3rd anniversary at Shopify, and I've got the idea of sharing in a short blog post what are the things that I like from Shopify and that allowed me to grow: Great mission: The company has a clear and realistic missi…

The beauty of a standard command line interface

There's something beautiful in entering a directory that contains a project and knowing how to interact with it. It's like being part of a communication where the terminal is the channel and you both know the language. You know that build w…

My first RFC in the React Native project

Today I created an RFC for the first time in the repository. I've pondering a bunch of ideas for a long time regarding how the experience building React Native apps could be improved and I finally gave them a structure and formalized them.

My tech stack in 2020

I'm a bit reflective today; I guess because we are approaching the end of this so-odd year. Therefore, I'd like to share what has been my preferred tech stack in 2020 and what most likely continue to be in 2021. React for building web front…

Sparking joy working with Xcode

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 Xcode projects

Tree-shaking is a concept inspired by Javascript and used by Tuist to generate lean Xcode projects that are processed and compile faster.

Module caching in Xcode projects

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.

Growing Tuist's community

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.

The exciting adventure of building a web app

I’ve been playing lately with building a web app that complements Tuist with some features that require storing state in a server. Since I have a mobile development background, being familiar with Swift, iOS, and very recently React Native,…

What I like from Ruby and Rails

The more I use Ruby and Rails, the more I like it. I’ve played with Typescript lately, and it continues to feel heavy: parenthesis and brackets everywhere, layers on indirection through tools to accommodate the Javascript to the browser or…

Generating Typescript code from a GraphQL schema

Today, I learned about a tool called GraphQL Code Generator turns a GraphQL schema into typed models and utilities for interacting with a GraphQL API. In my case, I'm using it in a React application where I'm using Apollo as the client. Usi…

Modularization in open source projects

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…