Decisions 9
Gediminas Žukas
Software Engineer at Vinted
We are using Kotlin
since 2015 (long before Google announced first-class support for this language). Back in the day we almost immediately fell in love with such features as lambdas, null safety, data classes, functional programming constructs and others. In more recent years we very much enjoy other major features - for example, Kotlin coroutines. Nowadays our Android application codebase is fully migrated to Kotlin, we don't have a single Java language file written with our hands.
Saulius Kolesinskas
Engineering Manager at Vinted
In 2017, we decided to move away from Backbone and embrace a relatively new tool which was taking the industry by storm, React
. Since Backbone was no longer actively maintained and its popularity was falling, it made sense to adopt a tool that was on the rise and promised improved performance, developer experience and delivery speed. In addition, it became easier to hire Frontend Engineers as the talent pool greatly increased. Nowadays, React is the framework of choice across Vinted.
Typescript
entered the picture at a later stage. We placed our initial bet on Flow but it soon became obvious that the industry prefers Typescript. In 2019, we migrated to Typescript and never looked back. Having a strongly typed language in our frontend brought confidence to the engineers and greatly reduced the number of bugs.
Next.js
is the newest addition to the stack. Vinted is currently a Rails
monolith and React on Rails is used to render views. In order to transform Vinted to a single-page application (SPA) and split backend from frontend, we decided to adopt Next.js. Among the options considered, Next.js offered the most comprehensive feature set, good support for Server Side Rendering (SSR) and a vibrant community. We also expect that splitting the client-side would lead to improved developer experience and faster builds.
Saulius Kolesinskas
Engineering Manager at Vinted
pnpm
is one of the newer additions to our frontend stack. We used yarn
for a relatively long time but recently decided to reevaluate its usefulness. pnpm caught our eye for its speed and more efficient disk usage, and even though it is less popular than its competitors, we decided to place a bet on it.
Saulius Kolesinskas
Engineering Manager at Vinted
We extensively use Sass
and CSS Modules
as our styling solution at Vinted. Even though we considered adopting a CSS-in-JS library, we ultimately leaned towards the flexibility that Sass and CSS Modules offer.
Vinted also has an internal design system where Storybook
is used for development and documentation.