The Perfect
Neos Project Setup
Karsten DambekalnsKarsten Dumbledore
The Perfect Neos Project Setup
The Perfect
Neos Project Setup
The Best
Neos Project Setup
A Good
Neos Project Setup
What I Consider A Good
Neos Project Setup
Disclaimer
The term "best practice" along with "perfect" is very misleading.
There is never the best solution, only a solution that is the best fit in
a given situation.
Keep your brain moving, question what you have and try something
new every now and then.
Take everything you are going to hear as something to think about,
never as a rule.
There is no silver bullet.
Project Management
Content First
Who do we want to reach?
What are their goals?
What do we need to make reaching those
goals possible?
Create customised
content types.
No more unstructured
blobs of text!
Adopt an agile
working mode
Some truths
Doing development in sprints is not SCRUM.
Kanban does not magically finish your project.
Not giving a fixed price (or even an estimate) to your
client might be hard.
But spending days or even weeks to come up with a
plan that will inevitably change anyway would be
waste.
Get your project
management right, so
you can focus on the
following things…
Development
“as such”
Know your docs:
manual, references,
API
flowframework RTD
Flow
Requirements, Installation, Configuration
Neos references RTD
Flow references
Neos references
neos.github.io
Know your options
Settings.yaml
Know your ecosystem
neos.io/download-and-extend/
packages.html
packagist.org
discuss
discuss.neos.io
Stay focused
Implement only what
you need.
Don't use a package
you only need 10% of.
An example is not
using Neos.NodeTypes
Write tests
The Perfect Neos Project Setup
Write useful tests
Do the dishes
The Perfect Neos Project Setup
The Perfect Neos Project Setup
Learn and understand
The Perfect Neos Project Setup
But… eventually you
must understand the
tools you use.
Think about Fusion.
It seems intimidating at first, then you
start to get the hang of it.
And think "Ah, that's how it works!”
Except it doesn’t.
And then things start to feel awkward.
Keep learning. Adopt new
things. Question your own
best practice.
Take the time, it's worth it.
Development
Environment
Tools
Developers being able to
chose their tools are happier.
Let me choose some

tools for you…
vi vs. emacs
IDE vs. Editor
Use an IDE
phpstorm screenshot
PhpStorm
by Jetbrains
Neos plugin
by Christian Vette 

https://github.com/cvette/intellij-neos
Fluid plugin
by Stefan Galinski
https://www.sgalinski.de/typo3-produkte-webentwicklung/typo3-fluid-phpstorm-intellij/
ZSH
Oh-My-ZSH
and the
Flow Framework Helper
flow helper video
github.com/sandstorm/
oh-my-zsh-flow-plugin
VCS
The Perfect Neos Project Setup
Using a version control
system is not optional.
Technology
Use the newest
version of PHP
The Perfect Neos Project Setup
Stay up-to-date
An update a day, keeps
the downtime away
Check security
Consider using a service like Symfony Security
Monitoring or implement something using the
SensioLabs Security Checker or roave/security-
advisories.
Redis

for caching
Elasticsearch

You Know, for Search
PostgreSQL
Can roll back DDL
Technologies like these can add a lot of value to a project
and knowing them allows to apply them when needed.
Works on my machine
Running things locally
For ages all I had was a local setup
of Apache with mod_php and name-
based virtual hosting, combined
with dnsmasq.
Just clone any Flow-based project
into a directory and it's available
through the web server. 🙂
Must switch globally between PHP
versions if needed, every project
has the same environment (PHP
modules, settings, …), specific tools
a project needs would need to be
installed on my machine, … 🙁
The Perfect Neos Project Setup
With Docker every project can be
run in an environment that can
closely match the production
environment.
Docker Compose provides a way to
define the needed environment
using a simple YAML file.
The Perfect Neos Project Setup
The Perfect Neos Project Setup
docker-compose-
up.sh
github.com/neos/Neos.NeosIo
docker-compose.yml
docker-compose-up.sh
.env
Make yourself
comfortable.
It will make you more
productive.
Managing
Dependencies
Created with graph-composer
Composer
The Perfect Neos Project Setup
Composercat
composercat
screenshot
Semantic Versioning
semver checker
semver.mwl.be
Add composer.lock

to version control!
composer install
is different from
composer update
Keep things together
Dependency chain
vs.
loading order
The Perfect Neos Project Setup
The Perfect Neos Project Setup
Repository of

test/a
Repository of

test/b
Repository of

test/distribution
Need to commit in
three repositories
Must update
composer.lock after
every change to test/a
and test/b
Repository of

test/b
Repository of

test/distribution

and test/a
Need to commit in two
repositories; must
update composer.lock
after every change to
test/b
Repository of

test/distribution and
test/a and test/b
Need to commit in one
repositories
Must update composer.lock
only after changes to
dependencies in test/a or
test/b
• Use path repository for
composer
• Exclude source folder from IDE
• Ignore Packages in VCS
• Composer will “install” via
symbolic links
• Dependencies are resolved as
expected
• One repository to rule them all
monorepo manifest
composer create-project
neos/splash
This is still work
in progress, but
hopefully useable
soon…
Dependencies are not
a necessary evil,
but an important part
of your project
Managing
Configuration
Configuration
overrides
Application

context
Application contexts
(can) have a hierarchy
Development Staging Live
Development Production/Staging Production/Live
Development Production/Staging Production/Live
Development Production/Staging Production/Live
Development Production/Staging Production/Live
😱
Define
FLOW_CONTEXT
on all servers
Configuration is code,
treat it accordingly
Hosting & Deployment
Automate deployment
Surf – Deployer
Automate automation
Jenkins – Travis CI – GitLab CI – Codeship – CircleCI
Hosting options
simple
simple
uberspace
managed
managed
proServer – all-inkl.com
complex
complex
Digital Ocean – Docker – Kubernetes
nightmare
You have a managed server, but the hoster is inflexible.
You must not change server settings yourself, but the
admin is in a meeting. No access to log files, but the
support sends the logs except the interesting line at the
end. SSH is possible, but permissions don’t match. You
need PHP 7, but are stuck at version 5.3, because of other
customers on the same server.
Every developer at some point in history
Hosting options
Flownative Beach
www.flownative.com/beach.html
Karsten Dambekalns
karsten@flownative.com
@kdambekalns
www.flownative.com
@flownative
The Perfect Neos Project Setup

More Related Content

PDF
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
PDF
Tasting Your First Test Burger
PDF
Drupal 7 ci and testing
PDF
Drupalcamp Simpletest
PPT
Reliable tests with selenium web driver
PDF
JavaOne 2016 - The DevOps Disaster
PDF
Codemotion Amsterdam 2016 - The DevOps Disaster
PDF
Digital Ocean Amsterdam meetup March 2017 - The DevOps disaster
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Tasting Your First Test Burger
Drupal 7 ci and testing
Drupalcamp Simpletest
Reliable tests with selenium web driver
JavaOne 2016 - The DevOps Disaster
Codemotion Amsterdam 2016 - The DevOps Disaster
Digital Ocean Amsterdam meetup March 2017 - The DevOps disaster

What's hot (19)

PDF
Oracle Code Brussels 2017 - The DevOps disaster
PPT
The Why and How of Continuous Delivery
PDF
GOTO Amsterdam 2016 - The DevOps Disaster
PDF
Selenium Users Anonymous
PPTX
What Visual Studio Code can do for Java Development
PDF
Morph your mindset for Continuous Delivery, Agile Roots 2014
PDF
Front-End Modernization for Mortals
PPTX
Scala Days Chicago 2017: Building a Company on Scala
PPTX
Testing Legacy Apps
PDF
130511 stop wasting_your_time
PPTX
Cf objective2014 testing-testingeverywhere
PDF
Move test planning before implementation
PPTX
Intro to devops - Begin with End in Mind
PPTX
That worked before
PPTX
Lifestyles of the rich and frameworkless
PDF
Understand the system
PPTX
Introduction to Test Driven Development
PPTX
TestWorksConf: Experience exploratory testing
PDF
How do we do it
Oracle Code Brussels 2017 - The DevOps disaster
The Why and How of Continuous Delivery
GOTO Amsterdam 2016 - The DevOps Disaster
Selenium Users Anonymous
What Visual Studio Code can do for Java Development
Morph your mindset for Continuous Delivery, Agile Roots 2014
Front-End Modernization for Mortals
Scala Days Chicago 2017: Building a Company on Scala
Testing Legacy Apps
130511 stop wasting_your_time
Cf objective2014 testing-testingeverywhere
Move test planning before implementation
Intro to devops - Begin with End in Mind
That worked before
Lifestyles of the rich and frameworkless
Understand the system
Introduction to Test Driven Development
TestWorksConf: Experience exploratory testing
How do we do it
Ad

Similar to The Perfect Neos Project Setup (20)

PDF
Create a PHP Library the right way
PDF
Madison PHP 2015 - DevOps For Small Teams
PDF
ZendCon 2015 - DevOps for Small Teams
PDF
Modern web dev_taxonomy
PPTX
Creating and Maintaining an Open Source Library
PDF
Updating Neos – Why, When and How - 2024 edition
PDF
How fast can you onboard a new team member with VAGRANT ?
PDF
Midwest PHP 2017 DevOps For Small team
PDF
Pragmatic Version Control Using Subversion 1st Edition Mike Mason
PDF
full-stack-development-readthedocs-io-en-latest.pdf
PPTX
The Professional Programmer
PDF
DevOps For Small Teams
PDF
Composer at Scale, Release and Dependency Management
PPTX
Essential Tools for Modern PHP
KEY
Development tools
PDF
Updated non-lab version of Level Up. Delivered at LOPSA-East, May 3, 2014.
ODP
Building Scalable Development Environments
PDF
CICD_1670665418.pdf
PDF
Real world Webapp
PDF
From naive to agile - software engineering approach
Create a PHP Library the right way
Madison PHP 2015 - DevOps For Small Teams
ZendCon 2015 - DevOps for Small Teams
Modern web dev_taxonomy
Creating and Maintaining an Open Source Library
Updating Neos – Why, When and How - 2024 edition
How fast can you onboard a new team member with VAGRANT ?
Midwest PHP 2017 DevOps For Small team
Pragmatic Version Control Using Subversion 1st Edition Mike Mason
full-stack-development-readthedocs-io-en-latest.pdf
The Professional Programmer
DevOps For Small Teams
Composer at Scale, Release and Dependency Management
Essential Tools for Modern PHP
Development tools
Updated non-lab version of Level Up. Delivered at LOPSA-East, May 3, 2014.
Building Scalable Development Environments
CICD_1670665418.pdf
Real world Webapp
From naive to agile - software engineering approach
Ad

More from Karsten Dambekalns (20)

PDF
Sawubona! Content Dimensions with Neos
PDF
Deploying TYPO3 Neos websites using Surf
PDF
Profiling TYPO3 Flow Applications
PDF
Using Document Databases with TYPO3 Flow
KEY
i18n and L10n in TYPO3 Flow
PDF
FLOW3-Workshop F3X12
PDF
Doctrine in FLOW3
PDF
How Git and Gerrit make you more productive
PDF
The agile future of a ponderous project
PDF
How Domain-Driven Design helps you to migrate into the future
PDF
Content Repository, Versioning and Workspaces in TYPO3 Phoenix
PDF
Transparent Object Persistence (within FLOW3)
PDF
JavaScript for PHP Developers
PDF
Transparent Object Persistence with FLOW3
PDF
TDD (with FLOW3)
PDF
Implementing a JSR-283 Content Repository in PHP
PDF
Knowledge Management in der TYPO3 Community
PDF
Unicode & PHP6
PDF
Implementing a JSR-283 Content Repository in PHP
PDF
A Content Repository for TYPO3 5.0
Sawubona! Content Dimensions with Neos
Deploying TYPO3 Neos websites using Surf
Profiling TYPO3 Flow Applications
Using Document Databases with TYPO3 Flow
i18n and L10n in TYPO3 Flow
FLOW3-Workshop F3X12
Doctrine in FLOW3
How Git and Gerrit make you more productive
The agile future of a ponderous project
How Domain-Driven Design helps you to migrate into the future
Content Repository, Versioning and Workspaces in TYPO3 Phoenix
Transparent Object Persistence (within FLOW3)
JavaScript for PHP Developers
Transparent Object Persistence with FLOW3
TDD (with FLOW3)
Implementing a JSR-283 Content Repository in PHP
Knowledge Management in der TYPO3 Community
Unicode & PHP6
Implementing a JSR-283 Content Repository in PHP
A Content Repository for TYPO3 5.0

Recently uploaded (20)

PDF
Microsoft Office 365 Crack Download Free
PDF
Top 10 Software Development Trends to Watch in 2025 🚀.pdf
PDF
Workplace Software and Skills - OpenStax
PPTX
Computer Software - Technology and Livelihood Education
PPTX
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PPTX
How to Odoo 19 Installation on Ubuntu - CandidRoot
PDF
Visual explanation of Dijkstra's Algorithm using Python
PDF
E-Commerce Website Development Companyin india
PDF
BoxLang Dynamic AWS Lambda - Japan Edition
PDF
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
PDF
Practical Indispensable Project Management Tips for Delivering Successful Exp...
PDF
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
PDF
Guide to Food Delivery App Development.pdf
PPTX
CNN LeNet5 Architecture: Neural Networks
PDF
novaPDF Pro 11.9.482 Crack + License Key [Latest 2025]
PPTX
Introduction to Windows Operating System
PDF
CCleaner 6.39.11548 Crack 2025 License Key
PDF
DNT Brochure 2025 – ISV Solutions @ D365
PPTX
most interesting chapter in the world ppt
Microsoft Office 365 Crack Download Free
Top 10 Software Development Trends to Watch in 2025 🚀.pdf
Workplace Software and Skills - OpenStax
Computer Software - Technology and Livelihood Education
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
How to Odoo 19 Installation on Ubuntu - CandidRoot
Visual explanation of Dijkstra's Algorithm using Python
E-Commerce Website Development Companyin india
BoxLang Dynamic AWS Lambda - Japan Edition
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
Practical Indispensable Project Management Tips for Delivering Successful Exp...
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
Guide to Food Delivery App Development.pdf
CNN LeNet5 Architecture: Neural Networks
novaPDF Pro 11.9.482 Crack + License Key [Latest 2025]
Introduction to Windows Operating System
CCleaner 6.39.11548 Crack 2025 License Key
DNT Brochure 2025 – ISV Solutions @ D365
most interesting chapter in the world ppt

The Perfect Neos Project Setup