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
ピクシブの Contentful 利用事情 (2021)
Search
Hanakla
May 13, 2021
Programming
440
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ピクシブの Contentful 利用事情 (2021)
Hanakla
May 13, 2021
More Decks by Hanakla
See All by Hanakla
Reactルーター選定術 2020年のファイナルアンサー
hanakla
2
5k
動画編集ソフトを作るための基礎知識
hanakla
1
450
Research and Development of "Delir" at Nov, 2016
hanakla
0
160
Other Decks in Programming
See All in Programming
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
230
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
360
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
130
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.4k
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
130
Go 1.27 における memory allocation の高速化
andpad
0
370
初めての模倣学習とVLA
natsutan
0
410
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
600
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
140
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
280
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
570
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
880
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
260
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Tell your own story through comics
letsgokoyo
1
1.1k
Six Lessons from altMBA
skipperchong
29
4.5k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Building AI with AI
inesmontani
PRO
1
1.2k
Transcript
ピクシブの Contentful 利用事情 (2021) pixiv Inc. Hanakla (はなくら) 2021.5.13
2 お前誰やねん? @hanak1a_ だよ! • VRoid Hubチーム(フロントエンド/バックエンド) • React /
TypeScriptと戯れながらRailsで規約網引き 回しの刑を受けています。たすけてください。 • 意思が強くて悪い顔なヤツらが好き です。 • 普段はオリキャラ系創作界隈で活動しています Hanakla VRoid Hub チーム
話すこと 3 - Contentfulってなに? - 採用事例 - Contentfulの概観 - Content
Modelの設計 話さないこと - 👆以外のContentfulとこの世の真理について
Contentfulってなに? 4
Contentfulとは? Headless CMSと呼ばれる、ヘッドレスなCMSの一つです。(情報量🈚) - エントリの編集画面をContentfulが用意してくれている - カスタムエディタを作ることでJSONに変換可能な任意のエディタとか作れる - 複雑エディタもエンジニアを生贄を捧げて召喚することが出来る -
Contentful Delivery APIを使うことで、エントリをAPIで取得できる - Content Management APIもあるので、”そういうこと”も出来るんじゃないすか? - 多分社内ではまだ採用されていない 5
なぜContentful(CaaS)を使うのか - 頻繁に発生するLPとかニュースのコーディング。秒で終わって欲しいですよね。 - ブチアゲ花火なLPならとにかく、 定常的に増えていくLPのコーディングはシュッと終わって欲しい - ビジネス職の人たちの手で全てが完結できると、原稿のやりとりなどの時間的ロスが 減って楽、エンジニア職も安心して失職出来る -
でもCMSを自前で開発するの面倒じゃん(楽しいけど) - ちゅーかWordPressにしろ自前にしろ、 インフラ整備もしんどい。やらなくていいならやりたくない。 そんなあなたに、Contentful製薬のコンテントフール! 6
ピクシブにおけるContentfulの導入事例 社内ではpixivFACTORY / VRoid Hub / vroid.com で利用されています。 pixivFACTORY: グッズ別LP
/ 特設LP VRoid: VRoid Hub コンテストLP / vroid.com ニュース / VRoid Mobile お知らせ 7
Contentful 使い方 [検索] 8
Contentful 使い方 [検索] 9 流れ 1. Content Model(エントリのスキーマ)を設計します 2. Contentful側でエントリを書きます
3. contentful-任意-clientを使って記事を取得してレンダリングします。 おわり! 制作著作ゥ!!!
Content Modelの設計 10
Content Modelの設計 11 感覚としてはDBのテーブルを設計するのに近い。 1つの記事にどの様なデータが必要かの要件を洗い出してフィールド構造を設計する。
Content Modelの設計 12 フィールドには👉の様なデータ型が あるので、いい感じにModelを設計。 注意点として、Rich Textは 俺たちWebおじさんズが想像するような RichなTextではない……
Content Modelの設計(Rich Textについて) 現状、ContentfulのRich TextはWordpressみたいな感じではない。 色付きテキストや画像リンク・埋め込み画像などは全て別のContent Modelを作ってEmbed Entryするか、生贄を捧げて拡張エディタを作るしかない。 (Slate.jsがよさげ) 13
Rich Textで使えるのは👆👉とH1~6くらい
実際のContent Modelの 設計パターンを見る 14
比較的簡単めなやつ(VRoid NEWS記事) 15 タイトル(ja/en) 公開したことにする日時 アイキャッチ(ja / en) 記事本文(ja /en)
比較的簡単めなやつ(VRoid NEWS記事) 16 Contentfulはフィールド毎にローカライゼーションを行うかどうかを指定できる 1. Settings ⇢ Locales ⇢ 有効にしたいLocaleとデフォルトLocaleを設定
2. フィールドのSettingsで「Enable localization of this field」にチェック
比較的簡単めなやつ(VRoid NEWS記事) 他に、記事中に埋め込むためのボタンコンポーネントや、画像グリッドなどが Content Modelとし て定義されていて、埋め込みEntryとしてRich Textの中に埋め込むことが出来る。 17
変わったContent Model(VRoid Hub) エントリのレンダリング時にAPIとの通信が必要なものは、エントリ側にエンティティへの IDだけ持 たせて、フロントエンドでのレンダリング時に APIとの通信を行う。 VRoid Hubのコンテスト結果発表ページはそのような構成になっている。 18
IDを元にAPIから データを取得 (フロントエンド)
複雑めなやつ(pixivFACTORY) 19 ここらへんは僕が開発したものではないので詳しくはわからない (詳しくは@f_subalへ) https://factory.pixiv.net/special/karadanote_moraeru_campaign
複雑めなやつ(pixivFACTORY) 20 ここらへんは僕が開発したものではないので詳しくはわからない (詳しくは@f_subalへ) https://factory.pixiv.net/special/karadanote_moraeru_campaign
複雑めなやつ(pixivFACTORY) f_subal曰く、ビジネス職の方たちがすぐに慣れてくれたので、 若干項目の多いLPもうまく回っているようです! 21
最高だね!!!! 22
みんなも Contentfulになろう! 23
クライアント側の使い方は 公式ドキュメントを見てくれ 24 JS以外にもPHP, Java .NET, iOS, Ruby向けのSDKがあるぞ https://www.contentful.com/developers/docs/platforms
おわり 25