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
1.8k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ghost - Just JavaScript?
Sebastian Gierlinger
December 11, 2013
Other Decks in Technology
See All in Technology
dbt in Microsoft Fabric
ryomaru0825
0
220
わたしが知り合いゼロの勉強会に 行けるようになるまで
r5ni4
2
400
LanceDB入門
mocobeta
9
670
関東Kaggler会発表資料
takoi
1
290
【書籍出版記念】 10周回って、エージェント開発は RAGがすべてだった。〜RAGの歴史と開発現場で見えた実践知〜
akiratameto
20
7k
VLMで2.3万枚のPyCon JP写真を検索!
terapyon
1
440
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
0
750
猫付きpingコマンドを自作
uyuki234
0
300
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
420
型落ちシンクライアント端末のPoEモジュールを自作したかった話
logica0419
0
400
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
140
明日から業務に使える 生成AI活用ワークショップ
matyuda
0
100
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
450
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
250
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
440
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
220
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
The Cult of Friendly URLs
andyhume
79
7k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
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