<commit_before>---
title: Building a Static HTML and Web App Frankenstein
date: 2018-05-21 11:03:45 -0400
draft: true

---<commit_msg>Update from Forestry.io - building-a-static-html-and-web-app-frankenstein.md<commit_after>---
title: Building a Static HTML and Web App Frankenstein
date: 2018-05-21 11:03:45 -0400
video_id: DoEVSlSr4ME
vendor: YouTube
description: How to leverage Reshape, a babel-like html parser and plugin platform,
  and spike, a static site generator that includes Reshape.
related_tools: []
related_content: []
weight: ''

---
Life is easy when what you’re building fits cleanly into a category. If you are building a large interactive web app, you go with an app framework like react, etc. If you’re building a small informational site, you go with a statically generated website. 

But what if you’re halfway in between? Loading a full app leads to poor performance and more needlessly complex code if only some sections of your site are interactive, and manually building out two-way data binding and rendering components seems like a waste when react/etc already exist. 

In this session, we will discuss how to leverage reshape, a babel-like html parser and plugin platform, and spike, a static site generator that includes reshape, to run a fully static website that incorporates selectively rendered and rehydrated react components in certain interactive portions, and why makes your site easier to maintain for developers, and better performing for your users.  

Jeff worked at an agency owned by VICE for 7 years as a lead developer, and now works at HashiCorp, running marketing technology. He has gone way too deep into static site generation and javascript in general, and always prioritizes performance.  

Slides: [https://slides.com/jeffescalante/stat...](https://slides.com/jeffescalante/stat... "https://slides.com/jeffescalante/stat...")  

NY Web Performance Meetup: [http://www.meetup.com/Web-Performance...](http://www.meetup.com/Web-Performance... "http://www.meetup.com/Web-Performance...")
{'fraction_non_alphanumeric': 0.07801766437684005, 'fraction_numerical': 0.018645731108930325, 'mean_word_length': 4.437333333333333, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 3, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7589347', 'n_tokens_mistral': 583, 'n_tokens_neox': 527, 'n_words': 262}