Platform

AI

AI Agents
Sense, decide, and act faster than ever before
AI Visibility
See how your brand shows up in AI search
AI Feedback
Distill what your customers say they want
Amplitude MCP
Insights from the comfort of your favorite AI tool

Insights

Product Analytics
Understand the full user journey
Marketing Analytics
Get the metrics you need with one line of code
Session Replay
Visualize sessions based on events in your product
Heatmaps
Visualize clicks, scrolls, and engagement

Action

Guides and Surveys
Guide your users and collect feedback
Feature Experimentation
Innovate with personalized product experiences
Web Experimentation
Drive conversion with A/B testing powered by data
Feature Management
Build fast, target easily, and learn as you ship
Activation
Unite data across teams

Data

Warehouse-native Amplitude
Unlock insights from your data warehouse
Data Governance
Complete data you can trust
Security & Privacy
Keep your data secure and compliant
Integrations
Connect Amplitude to hundreds of partners
Solutions
Solutions that drive business results
Deliver customer value and drive business outcomes
Amplitude Solutions →

Industry

Financial Services
Personalize the banking experience
B2B
Maximize product adoption
Media
Identify impactful content
Healthcare
Simplify the digital healthcare experience
Ecommerce
Optimize for transactions

Use Case

Acquisition
Get users hooked from day one
Retention
Understand your customers like no one else
Monetization
Turn behavior into business

Team

Product
Fuel faster growth
Data
Make trusted data accessible
Engineering
Ship faster, learn more
Marketing
Build customers for life
Executive
Power decisions, shape the future

Size

Startups
Free analytics tools for startups
Enterprise
Advanced analytics for scaling businesses
Resources

Learn

Blog
Thought leadership from industry experts
Resource Library
Expertise to guide your growth
Compare
See how we stack up against the competition
Glossary
Learn about analytics, product, and technical terms
Explore Hub
Detailed guides on product and web analytics

Connect

Community
Connect with peers in product analytics
Events
Register for live or virtual events
Customers
Discover why customers love Amplitude
Partners
Accelerate business value through our ecosystem

Support & Services

Customer Help Center
All support resources in one place: policies, customer portal, and request forms
Developer Hub
Integrate and instrument Amplitude
Academy & Training
Become an Amplitude pro
Professional Services
Drive business success with expert guidance and support
Product Updates
See what's new from Amplitude

Tools

Benchmarks
Understand how your product compares
Templates
Kickstart your analysis with custom dashboard templates
Tracking Guides
Learn how to track events and metrics with Amplitude
Maturity Model
Learn more about our digital experience maturity model
Pricing
LoginContact salesGet started

AI

AI AgentsAI VisibilityAI FeedbackAmplitude MCP

Insights

Product AnalyticsMarketing AnalyticsSession ReplayHeatmaps

Action

Guides and SurveysFeature ExperimentationWeb ExperimentationFeature ManagementActivation

Data

Warehouse-native AmplitudeData GovernanceSecurity & PrivacyIntegrations
Amplitude Solutions →

Industry

Financial ServicesB2BMediaHealthcareEcommerce

Use Case

AcquisitionRetentionMonetization

Team

ProductDataEngineeringMarketingExecutive

Size

StartupsEnterprise

Learn

BlogResource LibraryCompareGlossaryExplore Hub

Connect

CommunityEventsCustomersPartners

Support & Services

Customer Help CenterDeveloper HubAcademy & TrainingProfessional ServicesProduct Updates

Tools

BenchmarksTemplatesTracking GuidesMaturity Model
LoginSign Up

Lightning: Lightening the Pain of Front-end Development

On the front-end engineering side, we’re setting ourselves up so that we can tackle change with ease.
Product

Feb 3, 2016

7 min read

Greg Jones

Greg Jones

Former Head of Product Engineering, Amplitude

Lightning: Lightening the Pain of Front-end Development

It’s impossible to design the perfect product from day one.

At some point, you realize that the type of user you care about has changed, or that you built something designed for 1999, or that the designer you hired has better ideas than you (the engineer) did.

It’s all too easy to forget to build for the future, especially when you think you know exactly where your product is headed.

A lot of things have changed design-wise and product-wise over the years at Amplitude, which got us thinking again about our front-end architecture. It’s been a long time coming, but we’ve designed a new front-end architecture – which we’re calling Lightning – that is capable of handling all the changes we have on the horizon without sacrificing how fast we can build.

This post is an initial look at our motivations for coming up with a new front-end architecture and the basic approach we took. We’ll be talking more specifically about what we’ve learned along the way in our upcoming posts.

Where We Started

When you think you know where you’re headed, you often end up writing software that’s difficult to change and restructure. That’s what was happening with the front-end architecture at Amplitude.

Amplitude was originally architected and designed in a very ad hoc manner. It started as a small number of tabs: user composition, events, funnels, retention, etc. Over time, the tabs multiplied as the product evolved. Retention blossomed into retention and stickiness. User sessions and timelines were born. A SQL query tab emerged. And a growth discovery engine. And onward, and upward….

Building Amplitude one tab at a time.

Building Amplitude one tab at a time.

Each tab was a standalone view of the world. Certainly some page components were reusable – datepickers, table views, core graph rendering – but a substantial number of components were one-off. At one point, we had not one, not two, but 34 different datepickers in the product. Larger components often duplicated smaller common building blocks rather than sharing them. To make matters worse, each tab fetched and managed its own state, each with its own local flavor thrown in for how to handle it.

So why was this a problem? Everything slowed down. We faced serious business costs every time we improved or refactored existing features:

  1. Development was extremely time-consuming.
  2. It was really hard to predict how long development would take.
  3. It was easy to introduce regressions.

After living in this world for a while, we decided it wasn’t sustainable.

Lightning Strikes!

To be able to move quickly, we needed an architecture based around components and reusable building blocks. This became Lightning’s core principle: to create building blocks, not views. Just as important was the ability to reorganize the way things were laid out without needing to rebuild them from scratch and to improve features horizontally without ending up in a world full of painful regressions.

With those three goals in mind, we also had to step back and consider what tools and best practices we needed to incorporate into Lightning. One of the big changes we decided to make was to move off of Angular and onto frameworks/libraries with a smaller footprint, that would give us flexibility to pick and choose the best tools for the job. React and Redux were two clear winners in this regard. We’ll go into more technical detail about this in a future post.

**One Block at a Time **

After fleshing out Lightning, we dove in and started building a feature in our new architecture.

The first feature was painful for obvious reasons; not only were we figuring out best practices from the ground up, we also needed to build a large library of components that would be used moving forward. But the investment started paying off when we began building out a second feature. And a third. And a fourth.

As of now, we’ve built several features in our new architecture and migrated several older ones from the old. And we’re seeing the results. We’re seeing improvements in consistency, reliability, and speed of development. We’re making improvements horizontally across the features built in the new architecture much faster than we can on features still running on the old legacy code. And we’re migrating legacy features very quickly using all the groundwork we’ve laid.

What’s Next?

We’ve seen a lot of improvements with Lightning already, but here’s a secret: The key advantage of our new architecture is yet to come.

A few months back, we hired our Head of Design and tasked her with the challenge of rethinking what it means to be an “easily accessible” analytics platform. How do we build a platform that’s easily understandable for novice users? A platform that is a joy to use? A platform that teaches our customers about the value of analytics?

We don’t yet have a sense of exactly what the answers are to those questions, but we do know that it means change. We might substantially overhaul our information architecture and reorganize everything in the product. Or we might not. The point is, on the front-end engineering side, we’re setting ourselves up so that we can tackle that change with ease. By decoupling components and state from their location in the product, the specifics of the new design don’t really matter. Sure, there will still be lots of work to do when a design finally lands, but we’ll be able to move quickly and to be more flexible. And when design eventually throws us a last minute curve ball, we’ll be ready to handle it.


Have your own opinions on front-end architectures? We’re hiring front-end engineers and we’d love to hear them! Check out our careers page for more info.

Comments

Brenan Klain: Interested in why you chose React vs Angular. Did that decision take Angular 2.0 into consideration as well, or just choosing React over pre-2.0 Angular?

Greg Jones: We definitely thought about Angular 2.0, but went with React for a variety of reasons. Everyone on the FE team had worked with React previously and had very positive experiences with it. The focus on composition and higher-order components also really aligns with our mental model for architecture. And finally, the wider FE community seems to be throwing a lot of weight behind React, whereas Angular 2.0 has yet to prove itself–React felt a bit safer.

personalife: Is the Lightning framework a specific way to use React + redux + routing, do workflow tasks, etc?

About the author
Greg Jones

Greg Jones

Former Head of Product Engineering, Amplitude

More from Greg

Greg is the former Head of Product Engineering at Amplitude. He's spent his career figuring out how to build complex web applications that don't fall over. Prior to Amplitude, Greg worked as a front-end engineer at Rockmelt and Yahoo, and studied at Stanford.

More from Greg
Topics
Platform
  • Product Analytics
  • Feature Experimentation
  • Feature Management
  • Web Analytics
  • Web Experimentation
  • Session Replay
  • Activation
  • Guides and Surveys
  • AI Agents
  • AI Visibility
  • AI Feedback
  • Amplitude MCP
Compare us
  • Adobe
  • Google Analytics
  • Mixpanel
  • Heap
  • Optimizely
  • Fullstory
  • Pendo
Resources
  • Resource Library
  • Blog
  • Product Updates
  • Amp Champs
  • Amplitude Academy
  • Events
  • Glossary
Partners & Support
  • Contact Us
  • Customer Help Center
  • Community
  • Developer Docs
  • Find a Partner
  • Become an affiliate
Company
  • About Us
  • Careers
  • Press & News
  • Investor Relations
  • Diversity, Equity & Inclusion
Terms of ServicePrivacy NoticeAcceptable Use PolicyLegal
EnglishJapanese (日本語)Korean (한국어)Español (Spain)Português (Brasil)Português (Portugal)FrançaisDeutsch
© 2025 Amplitude, Inc. All rights reserved. Amplitude is a registered trademark of Amplitude, Inc.

Recommended Reading

article card image
Read 
Product
Getting Started: Product Analytics Isn’t Just for Analysts

Dec 5, 2025

5 min read

article card image
Read 
Insights
Vibe Check Part 3: When Vibe Marketing Goes Off the Rails

Dec 4, 2025

8 min read

article card image
Read 
Customers
How CAFU Tripled Engagement and Boosted Conversions 20%+

Dec 4, 2025

8 min read

article card image
Read 
Customers
The Future is Data-Driven: Introducing the Winners of the Ampy Awards 2025

Dec 2, 2025

6 min read

Explore Related Content

Integration
Using Behavioral Analytics for Growth with the Amplitude App on HubSpot

Jun 17, 2024

10 min read

Personalization
Identity Resolution: The Secret to a 360-Degree Customer View

Feb 16, 2024

10 min read

Product
Inside Warehouse-native Amplitude: A Technical Deep Dive

Jun 27, 2023

15 min read

Guide
5 Proven Strategies to Boost Customer Engagement

Jul 12, 2023

Video
Designing High-Impact Experiments

May 13, 2024

Startup
9 Direct-to-consumer Marketing Tactics to Accelerate Ecommerce Growth

Feb 20, 2024

10 min read

Growth
Leveraging Analytics to Achieve Product-Market Fit

Jul 20, 2023

10 min read

Product
iFood Serves Up 54% More Checkouts with Error Message Makeover

Oct 7, 2024

9 min read

Blog
InsightsProductCompanyCustomers
Topics

101

AI

APJ

Acquisition

Adobe Analytics

Amplify

Amplitude Academy

Amplitude Activation

Amplitude Analytics

Amplitude Audiences

Amplitude Community

Amplitude Feature Experimentation

Amplitude Guides and Surveys

Amplitude Heatmaps

Amplitude Made Easy

Amplitude Session Replay

Amplitude Web Experimentation

Amplitude on Amplitude

Analytics

B2B SaaS

Behavioral Analytics

Benchmarks

Churn Analysis

Cohort Analysis

Collaboration

Consolidation

Conversion

Customer Experience

Customer Lifetime Value

DEI

Data

Data Governance

Data Management

Data Tables

Digital Experience Maturity

Digital Native

Digital Transformer

EMEA

Ecommerce

Employee Resource Group

Engagement

Event Tracking

Experimentation

Feature Adoption

Financial Services

Funnel Analysis

Getting Started

Google Analytics

Growth

Healthcare

How I Amplitude

Implementation

Integration

LATAM

Life at Amplitude

MCP

Machine Learning

Marketing Analytics

Media and Entertainment

Metrics

Modern Data Series

Monetization

Next Gen Builders

North Star Metric

Partnerships

Personalization

Pioneer Awards

Privacy

Product 50

Product Analytics

Product Design

Product Management

Product Releases

Product Strategy

Product-Led Growth

Recap

Retention

Startup

Tech Stack

The Ampys

Warehouse-native Amplitude