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
Ghost - Just JavaScript?
Search
Sebastian Gierlinger
December 11, 2013
Technology
5
1.8k
Ghost - Just JavaScript?
Sebastian Gierlinger
December 11, 2013
Tweet
Share
Other Decks in Technology
See All in Technology
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
680
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Agentic AIが変革するAWSの開発・運用・セキュリティ ~Frontier Agentsを試してみた~ / Agentic AI transforms AWS development, operations, and security I tried Frontier Agents
yuj1osm
0
210
AWSと生成AIで学ぶ!実行計画の読み解き方とSQLチューニングの実践
yakumo
2
180
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1k
Introduction to Bill One Development Engineer
sansan33
PRO
0
340
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.6k
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
290
歴史から学ぶ、Goのメモリ管理基礎
logica0419
10
2k
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
260
「リリースファースト」の実感を届けるには 〜停滞するチームに変化を起こすアプローチ〜 #RSGT2026
kintotechdev
0
530
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Ethics towards AI in product and experience design
skipperchong
1
150
Deep Space Network (abreviated)
tonyrice
0
33
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
58
41k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Building Applications with DynamoDB
mza
96
6.9k
Unsuck your backbone
ammeep
671
58k
エンジニアに許された特別な時間の終わり
watany
106
220k
How to Ace a Technical Interview
jacobian
281
24k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
99
For a Future-Friendly Web
brad_frost
180
10k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Transcript
Ghost Just JavaScript?
Ghost Architecture Admin DB API Frontend Apps Helpers Config
Database / Config Bookshelf promise based ORM Knex Sqlite3 /
mySQL / pgSQL JSON Configuration config = { ... } http://bookshelfjs.org http://knexjs.org
API Restful API /ghost/api/v0.1/users/1/ { id: 1, name: "John Doe",
..., email: "
[email protected]
", website: null, created_at: "2013-10-05T09:11:21.000Z", updated_at: "2013-10-05T09:11:21.000Z" }
Admin BackboneJS - structuring framework API - dogfooding writing -
markup editor content - manage your posts settings - general / user http://backbonejs.com
Frontend express web application framework connect middleware themes index.hbs /
post.hbs / page.hbs http://www.senchalabs.org/connect/ http://expressjs.com/
Helpers Handlebars templating language + custom helpers http://handlebarsjs.com/ http://docs.ghost.org/themes/ {{date
published_at format="MMMM DD, YYYY"}} <ul> {{#tags}} <li>{{name}}</li> {{/tags}} </ul>
Apps Data API - store data Filters API - hook
into Ghost Theme API - handlebars helpers Routes API - add custom routes Files API - add custom storage UI Tools - add UI to Ghost admin https://github.com/TryGhost/Ghost/wiki/Imagining-the-Ghost-Developer-Tools
Let it happen? 88.882 downloads 1.133 Forks on GitHub 72
Contributors 4 Fulltime 173 open issues / 1483 closed issues Stats from 11.12.2013 12:00
Just JavaScript? ... Vagrant GitHub Travis Grunt Tests Init
GitHub
Zenhub http://zenhub.io
Vagrant unified environment OS / node / code setup get
Ghost-Vagrant vagrant up http://www.vagrantup.com/
Travis http://travis-ci.org
Travis
Grunt automate builds tests releases changelogs http://gruntjs.com/
$ grunt init bourbon - sass mixins sass - css
scripting handlebars - templates language concat - combine and uglify JS https://github.com/TryGhost/Ghost/wiki/Grunt-Toolkit
$ grunt validate jslint - first line of defense test-unit
- unit tests test-integration - integration tests test-api - functional API test test-functional - casperJS UI tests test-coverage - generate cov report https://github.com/TryGhost/Ghost/wiki/Grunt-Toolkit
$ grunt validate grunt.registerTask('validate', 'Run tests and lint code', ['jslint',
'test-unit', 'test-api', 'test-integration', 'test-functional'] );
$ grunt test-api grunt.registerTask( 'test-api', 'Run functional api tests (mocha)',
['clean:test', 'setTestEnv', 'loadConfig', 'express:test', 'mochacli:api', 'express:test:stop'] );
Roadmap bit.ly/ghost-roadmap Features bit.ly/ghost-features @sebgie
[email protected]
sebgie.ghost.io