SlideShare a Scribd company logo
GitLab Frontend
and VUE.JS AT GITLAB
DevFest Nantes 2018
Fatih Acet
Sr. Frontend Engineer at GitLab
Google Developer Expert in Web Technologies
@fatihacet
WHO AM I?
FATIH ACET
WHAT IS GITLAB?
GitLab is an Open Source software development tool
which provides a single application
for every stage of the DevOps lifecycle.
GitLab’s goal is to make software development faster
so you can spend more time writing code and
less time maintaining your tool chain.
WHAT IS GITLAB?
GitLab is a single application for the complete DevOps lifecycle.
REPOSITORY VIEW
ISSUE BOARDS
MERGE REQUEST VIEW
PIPELINEs VIEW (CI/CD)
GITLAB THE COMPANY
GITLAB THE COMPANY
‣ 365 team members from 45 countries
GITLAB THE COMPANY
‣ 365 team members from 45 countries
GITLAB THE COMPANY
‣ 365 team members from 45 countries
‣ Remote only company with no office location
GITLAB THE COMPANY
20 Frontend Engineers and growing…
GITLAB THE COMPANY
Team Handbook is a definitive guide for how we run the company.
GITLAB THE COMPANY
Team Handbook is a definitive guide for how we run the company.
GITLAB FRONTEND (MAY 2016)
GITLAB FRONTEND (MAY 2016)
‣ Ruby on Rails Asset Pipeline
GITLAB FRONTEND (MAY 2016)
‣ Ruby on Rails Asset Pipeline
GITLAB FRONTEND (MAY 2016)
‣ Ruby on Rails Asset Pipeline
‣ jQuery based codebase
GITLAB FRONTEND (MAY 2016)
GITLAB FRONTEND (MAY 2016)
‣ Ruby on Rails Asset Pipeline
‣ jQuery based codebase
GITLAB FRONTEND (MAY 2016)
‣ Ruby on Rails Asset Pipeline
‣ jQuery based codebase
‣ Haml templates
GITLAB FRONTEND (MAY 2016)
GITLAB FRONTEND (MAY 2016)
‣ Ruby on Rails Asset Pipeline
‣ jQuery based codebase
‣ Haml templates
GITLAB FRONTEND (MAY 2016)
‣ Ruby on Rails Asset Pipeline
‣ jQuery based codebase
‣ Haml templates
‣ Inline JavaScript in Haml
GITLAB FRONTEND (MAY 2016)
GITLAB FRONTEND (MAY 2016)
‣ Ruby on Rails Asset Pipeline
‣ jQuery based codebase
‣ Haml templates
‣ Inline JavaScript in Haml
GITLAB FRONTEND (MAY 2016)
‣ Ruby on Rails Asset Pipeline
‣ jQuery based codebase
‣ Haml templates
‣ Inline JavaScript in Haml
‣ CoffeeScript
GITLAB FRONTEND (JUNE 2016)
Replaced CoffeeScript with ES6
GITLAB FRONTEND (JULY 2016)
Added ESLint to our codebase
GITLAB FRONTEND (NOVEMBER 2016)
Replaced Rails Asset Pipeline with Webpack
Replaced Teaspoon rails gem with Karma test runner
GITLAB FRONTEND (FEBRUARY 2017)
Switched to Yarn
GITLAB FRONTEND (AUGUST 2016)
GITLAB FRONTEND (AUGUST 2016)
GITLAB FRONTEND (NOVEMBER 2016)
Upgraded to Vue v2
Why did we choose Vue?
Why did we choose Vue?
‣ Webpack and npm was not a part of our Frontend stack
Why did we choose Vue?
‣ Webpack and npm was not a part of our Frontend stack
‣ No time to rewrite
Why did we choose Vue?
‣ Webpack and npm was not a part of our Frontend stack
‣ No time to rewrite
‣ Progressive framework
Why did we choose Vue?
‣ Webpack and npm was not a part of our Frontend stack
‣ No time to rewrite
‣ Progressive framework
‣ Much smaller and faster
Why did we choose Vue?
‣ Webpack and npm was not a part of our Frontend stack
‣ No time to rewrite
‣ Progressive framework
‣ Much smaller and faster
‣ Easy to learn
Why did we choose Vue?
‣ Webpack and npm was not a part of our Frontend stack
‣ No time to rewrite
‣ Progressive framework
‣ Much smaller and faster
‣ Easy to learn
‣ Great ecosystem and community
Why did we choose Vue?
‣ Webpack and npm was not a part of our Frontend stack
‣ No time to rewrite
‣ Progressive framework
‣ Much smaller and faster
‣ Easy to learn
‣ Great ecosystem and community
‣ No Licence issues
HOW DO WE USE VUE?
HOW DO WE USE VUE?
‣ Vuex for state management
HOW DO WE USE VUE?
‣ Vuex for state management
HOW DO WE USE VUE?
‣ Vuex for state management
HOW DO WE USE VUE?
‣ Vuex for state management
‣ Standalone, SPA like, smart components
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
HOW DO WE USE VUE?
Vuex structure
HOW DO WE USE VUE?
Folder structure
HOW DO WE USE VUE?
Testing Vue components
HOW DO WE USE VUE?
Testing Vue components
HOW DO WE USE VUE?
Testing Vue components
HOW DO WE USE VUE?
‣ Vuex for state management
‣ Standalone, SPA like, smart components
‣ Single File Components without style tag
HOW DO WE USE VUE?
‣ Vuex for state management
‣ Standalone, SPA like, smart components
‣ Single File Components without style tag
‣ Build new things with Vue
HOW DO WE USE VUE?
‣ Vuex for state management
‣ Standalone, SPA like, smart components
‣ Single File Components without style tag
‣ Build new things with Vue
‣ Rewrite old parts when only needed
WHAT IS THE OUTCOME?
WHAT IS THE OUTCOME?
‣ Started to write less code
WHAT IS THE OUTCOME?
‣ Started to write less code
‣ Less code means less bugs
WHAT IS THE OUTCOME?
‣ Started to write less code
‣ Less code means less bugs
‣ Bugs were easier to fix
WHAT IS THE OUTCOME?
‣ Started to write less code
‣ Less code means less bugs
‣ Bugs were easier to fix
‣ Started to have reusable components
WHAT IS THE OUTCOME?
‣ Started to write less code
‣ Less code means less bugs
‣ Bugs were easier to fix
‣ Started to have reusable components
‣ Allowed us to start working on realtime updates
FUTURE PLANS
FUTURE PLANS
‣ Make it faster
FUTURE PLANS
‣ Make it faster
‣ Make it reusable
FUTURE PLANS
‣ Make it faster
‣ Make it reusable
‣ Creating a design system called gitlab-ui
FUTURE PLANS
‣ Make it faster
‣ Make it reusable
‣ Creating a design system called gitlab-ui
‣ Better tooling to optimise workflows and automate things
FUTURE PLANS
‣ Make it faster
‣ Make it reusable
‣ Creating a design system called gitlab-ui
‣ Better tooling to optimise workflows and automate things
‣ Expand Frontend Team by hiring new engineers
JOIN GITLAB
Want to work at GitLab?
We are hiring for different engineering positions. Join GitLab!
Current Engineering positions as 26th of July. May be outdated in the future.
QUESTIONS?
THANK YOU 😍
Follow me on Twitter
@fatihacet

More Related Content

Similar to GitLab Frontend and VueJS at GitLab (20)

PDF
Evolution of GitLab Frontend
Fatih Acet
 
PPTX
#SitBERN modern abap development with abapgit
Christian Günter
 
PDF
Essentials in JavaScript App Bundling with Webpack
Khaled Al-Ansari
 
PDF
Cross-platform Desktop application with AngularJS and build with Node-webkit
Wittawas Wisarnkanchana
 
PDF
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
Sascha Junkert
 
PDF
Django Deployer
Colin Su
 
PDF
Front-end Web Dev (HK) Info Session
Allison Baum
 
PDF
Javaland 2014 / GWT architectures and lessons learned
pgt technology scouting GmbH
 
PDF
Building our Component Library
Clement Ho
 
PDF
GitOps Core Concepts & Ways of Structuring Your Repos
Weaveworks
 
PDF
Stapling and patching the web of now - ForwardJS3, San Francisco
Christian Heilmann
 
PDF
Gulp.js & webpack
Ted Hsu
 
PDF
VueJS Best Practices
Fatih Acet
 
PDF
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
sparkfabrik
 
PPT
MVP with GWT and GWTP
Christian Goudreau
 
PDF
GWT Architectures and Lessons Learned (WJAX 2013)
pgt technology scouting GmbH
 
PDF
SAP Stammtisch Frankfurt 2017-10-11 - abapGit introduction
Hendrik Neumann
 
PDF
Lambda Architectures in Practice
C4Media
 
PPTX
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
Gavin Pickin
 
PPTX
GitOps in a nutshell (Montreal CNCF meetup May 2024)
Lucien Boix
 
Evolution of GitLab Frontend
Fatih Acet
 
#SitBERN modern abap development with abapgit
Christian Günter
 
Essentials in JavaScript App Bundling with Webpack
Khaled Al-Ansari
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Wittawas Wisarnkanchana
 
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
Sascha Junkert
 
Django Deployer
Colin Su
 
Front-end Web Dev (HK) Info Session
Allison Baum
 
Javaland 2014 / GWT architectures and lessons learned
pgt technology scouting GmbH
 
Building our Component Library
Clement Ho
 
GitOps Core Concepts & Ways of Structuring Your Repos
Weaveworks
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Christian Heilmann
 
Gulp.js & webpack
Ted Hsu
 
VueJS Best Practices
Fatih Acet
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
sparkfabrik
 
MVP with GWT and GWTP
Christian Goudreau
 
GWT Architectures and Lessons Learned (WJAX 2013)
pgt technology scouting GmbH
 
SAP Stammtisch Frankfurt 2017-10-11 - abapGit introduction
Hendrik Neumann
 
Lambda Architectures in Practice
C4Media
 
ColdBox APIs + VueJS - powering Mobile, Desktop and Web Apps with 1 VueJS cod...
Gavin Pickin
 
GitOps in a nutshell (Montreal CNCF meetup May 2024)
Lucien Boix
 

Recently uploaded (20)

PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Tally software_Introduction_Presentation
AditiBansal54083
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
Ad

GitLab Frontend and VueJS at GitLab