Skip to content
This repository has been archived by the owner on Aug 21, 2021. It is now read-only.

Latest commit

 

History

History
169 lines (111 loc) · 4.37 KB

deck.mdx

File metadata and controls

169 lines (111 loc) · 4.37 KB

import { Horizontal, Split, Steps } from 'mdx-deck'; import myTheme from './theme';

export const theme = myTheme;

<img src="https://raw.githubusercontent.com/aidenybai/lucia/master/.github/img/logo.svg" style={{ width: '500px' }} />


Creating Performance-Focused Websites

<i style={{ opacity: 0.5 }}>(aka: code that makes making websites FAST)

Aiden Bai


Old Websites

  • Non-interactive
  • Simple + static
  • No functionality

<img src="https://img.huffingtonpost.com/asset/5bb360032100002501c7c862.png?ops=scalefit_960_noupscale" style={{ width: '40%' }} />

Figure 1: Yahoo webpage in 1999


New Websites

  • Interactive
  • Slow + complex
  • Bad UX + DX

<img src="https://assets-global.website-files.com/6009ec8cda7f305645c9d91b/6010825ef15c635b74fdc6ab_6002086f72b727192b01d6ef_whalesynth-navigation.gif" style={{ width: '40%' }} />

Figure 2: Extremely interactive website with slow performance


Design Principles

  • Conservative Execution
  • Immutable Patterns
  • Lightweight Core
  • Scalability + Reactivity

Scalability + Reactivity

<img src="https://f.aidenybai.com/wCSpi.jpg" style={{ width: '40%' }} />

Figure 3: Spreadsheet reactivity dependency example


Methods

  • Language: TypeScript
  • Build: Rollup/Babel
  • Repository: Github
  • Publish: NPM + Unpkg
  • Testing: Jest, Ad-hoc
  • Code Editor: VSCode

Procedure

<img src="https://f.aidenybai.com/JG2My.jpg" style={{ width: '45%' }} />

Figure 4: Lucia creation process flowchart


<img src="https://f.aidenybai.com/2zUI3.jpg" style={{ width: '60%' }} />

Figure 5: Lucia Core process flowchart


<img src="https://f.aidenybai.com/ZNTZi.jpg" style={{ width: '50%' }} />

Figure 6: Comparison table of major JavaScript Libraries


<img src="https://f.aidenybai.com/DXwO4.jpg" style={{ width: '50%' }} />

Figure 7: Column Graph of weighted score for JavaScript Libraries


Impact

  • Used by: Wegli, Glitch.com users
  • Featured in: Hacker News, JavaScript Weekly
  • Reception: 440+ stars, 20k+ unique visitors

<img src="https://f.aidenybai.com/Mzyvy.jpg" style={{ width: '50%' }} />

Figure 8: Wegli website using Lucia


Conclusion

  • Simple to integrate and super fast
  • Many use cases - production ready
  • Learned about JavaScript library internals
  • ~8mo work, 7-10h/week
  • Created a useful product

Next Steps

  • Promote to more developers
  • Create tooling for 1.0.0

Thank you!


References