Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PWA, SEO, SSR
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
aggre
November 04, 2017
Technology
800
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PWA, SEO, SSR
https://polymer-japan.connpass.com/event/69080/
の登壇資料です
aggre
November 04, 2017
More Decks by aggre
See All by aggre
The money for the openable and shareable era
aggre
0
540
エンジニアは会社に何を求めるか? / What does engineers wants the company?
aggre
0
180
The importance ofopen assets
aggre
0
120
Fully AMP pros and cons
aggre
0
250
Web Components のリアル/ Realistic Web Components
aggre
12
8.6k
OSS の持続的開発をトークンエコノミーで支援する / Dev Token @OSS Universe
aggre
1
420
OSS の持続的開発をトークンエコノミーで支援する / Dev Token @CryptoBowl
aggre
1
520
Mastering lit-html directive
aggre
0
480
非中央集権ウェブ / Decentralized Web
aggre
3
650
Other Decks in Technology
See All in Technology
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
3
1.3k
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
1
1.2k
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
290
[RSJ26] Hierarchy-Aware Multimodal Retrieval-Augmented Generation for Embodied Question Answering
keio_smilab
PRO
1
150
Guerilla InnerSource in enterprises, during the AI hype
onenashev
PRO
0
140
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
220
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
470
bet_ai_day_2026_session02
agenticsec
1
700
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
25k
少人数データチームのDevin活用実践事例
runandy16
2
350
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
20k
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
1
1.7k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Navigating Weather and Climate Data
rabernat
0
500
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
550
Mobile First: as difficult as doing things right
swwweet
225
10k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
270
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
370
Thoughts on Productivity
jonyablonski
76
5.3k
New Earth Scene 8
popppiees
3
2.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Transcript
PWA, SEO, SSR
PWA
None
Service Worker HTTPS
Service Worker HTTPS
Polymer PWA
polymer init polymer build
ls build/es6-unbundled - service-worker.js - manifest.json
SEO/Bot
<hello-world></hello-world>
<hello-world> #shadow-root <style> h1 { color: blue } </style> <h1>Hello,
world!</h1> </hello-world>
<hello-world></hello-world>
SSR
Node.js
require('@skatejs/ssr/register'); const render = require('@skatejs/ssr’); class Hello extends HTMLElement {
connectedCallback () { const shadowRoot = this.attachShadow({ mode: 'open' }); shadowRoot.innerHTML = '<span>Hello, world!</span>'; } } customElements.define('x-hello', Hello); const hello = new Hello(); render(hello).then(console.log);
None
ShadowDOM?
<hello-world> #shadow-root <style> h1 { color: blue } </style> <h1>Hello,
world!</h1> </hello-world>
https://host/?dom=shady window.ShadyDOM = { force: true };
Rendertron
Prerender.io
Renderly
None