2026 Community Survey results are here! See how the Craft CMS community works. results are live!

Dot All 2022

News, updates, and information from Dot All 2022. Thank you for reading!

Conference Schedule

Schedule coming soon

Event Complete Last updated Sep 30, 2023 5:11 PM

I’ll keep this space updat­ed with thoughts and notes on the pre­sen­ta­tions from Dot All 2022

Day 1 #

The first day of Dot All is two full-day work­shops: There won’t be any cov­er­age here for these sessions. 

Sched­ule Day 1

Day 2 #

Sched­ule Day 2

It’s a sun­ny, chilly morn­ing here in Brook­lyn and atten­dees are gath­er­ing in a court­yard out­side the venue for cof­fee and break­fast before the con­fer­ence starts at 9 AM EDT

State of Craft

Bran­don Kel­ly will kick of the con­fer­ence with his talk on, well, the state of Craft CMS. Maybe we’ll see some­thing new?

  • Team Update
    • 17 team mem­bers at P&T
    • Bri­an Han­son, and August Miller are the newest team members
    • Iwana — start­ing soon to work on Craft CMS
  • Sales, prof­its, rev­enue con­tin­ue to grow
  • Rev­enue dri­ven by Craft CMS and Commerce
  • Craft 4, Com­merce 4
    • big releas­es, first major releas­es in 4 years
    • 60% of new installs run­ning on Craft 4
    • 46% of active­ly-updat­ed installs are run­ning Craft 4
    • 87% of most pop­u­lar plu­g­ins already avail­able for Craft 4. They are hap­py with this % con­sid­er­ing the num­ber of plu­g­ins that need­ed to be updated.
    • Fea­tures in 4 Review
      • Inac­tive users, built for Com­merce. User accounts that don’t have user and password.
      • Address­es — native address fields to sim­pli­fy the com­plex­i­ty of address fields in Commerce
      • Con­di­tion Builder — Bran­don reviewed this fea­ture and where it’s available
        • Rela­tion­al fields can also use the con­di­tion builder
        • Com­merce uses con­di­tion builder, too, in var­i­ous loca­tions like ship­ping con­di­tions etc.
      • Uni­fied Ele­ment Editor
        • gives plu­g­ins a real­ly easy way to have a ele­ment edi­tor inter­face (“the stan­dard edit­ing experience”
      • Access­bil­i­ty
        • they are on track to reach WCAG AA 2.1 compliance
        • Lupe, the acces­si­bil­i­ty engi­neer, did a com­pre­hen­sive audit and found over 500 issues that need­ed to be addressed.
        • they have made a ton of progress and are now over halfway done
        • they releas­es a Craft CMS Acces­si­b­li­ty Con­for­mance Report, which is is avail­able at craftcms​.com/​a​c​c​e​s​s​i​b​i​l​i​t​y​/​r​eport
      • Plu­g­in Store
        • they launched a new plu­g­in store before Craft 4 release
        • redesigned
        • sep­a­ra­tion between Craft 3 and 4 plugins
        • side­bar with plu­g­in vital signs
    • New plugin:Shopify plugin
      • they’re launch­ing a new first-par­ty plu­g­in soon to sup­port Shopi­fy (edi­tor: smart move! Shopi­fy is huge!)
      • syncs down all Shopi­fy prod­ucts into Craft install, read only view of those products
      • relat­ed entries to the products
      • sim­ple but they hope it’s effec­tive at con­nect­ing Craft to Shopify
Craft Cloud update
  • They announced Craft Cloud 3 years ago in Mon­tréal as head­less Craft as a Ser­vice” with a lot of lim­i­ta­tions built in. They want­ed to com­plete with SaaS head­less only options (like Con­tent­ful). They got feed­back from the com­mu­ni­ty that they were build­ing the wrong product.
  • They threw it all out and start­ed over. 
  • Tenets of Craft Cloud

    • Sim­plic­i­ty; you shouldn’t have to wor­ry about serv­er specs, CPU etc. Or oth­er devops concerns.
    • Secu­ri­ty
    • Speec & Scalability
    • Envri­on­men­tal Responsibility
  • Tech Specs

    • Hybrid server­less & con­tain­er-based architecture
    • AWS Glob­al Accelerator 
    • Cloud­flare — enter­prise-leve part­ner­ship with them

    • Fea­tures

      • auto­mat­ic Composer/​npm builds
      • built-in log­ging, image tran­sofmrs, and asset storage
      • Git branch environments
      • Sta­t­ic-page caching (cloud­flare)
      • Glob­al CDN
      • Built-in SSL
      • Fire­wall and DDoS protection

They are still work­ing on it. We’re get­ting there.” They plan to launch with­in the next year.

Craft Con­sole update
  • they announced it last year at the viru­al Dot All
  • it was just comps in Fig­ma but now it’s real
  • replace­ment for Craft ID (cus­tomer portal)
  • added Orga­ni­za­tions (work like Github orgs)
  • Orga­ni­za­tions will have Plu­g­in Store List­ings and Part­ner Profiles
  • Bran­don is giv­ing a quick walk-thru of the changes with Console

Craft Con­sole is com­ing lat­er this year.

Craft CMS update
  • they’ve been busy since Craft 4 released ear­li­er this year.
  • they’re putting the fin­ish­ing touch­es on Craft 4.3
  • Bran­don is walk­ing through some of the changes in Craft 4
    • New fil­ter­ing sup­port in the Craft Plu­g­in Store
    • Date con­di­tion rule has some pre­sets in addi­tion to the range.
  • It has been over 11 years since Bran­don and Brad start­ed work­ing on Craft CMS. At the time Expres­sio­nEngine was con­sid­ered one of the best CMSes for con­tent modeling/​content authoring.
  • June 2013 — Craft 1.0 — ele­ment type API, live pre­view, cus­tom fields, entries, glob­al sets
  • July 2013 — 1.1 
  • Sep­tem­ber 2013 — Sec­tion types and entry types
  • Novem­ber 2013 — Matrix fields — the orig­i­nal vision for Craft com­ing together
  • AFter 2.0, every­thing sine then has more focused on author­ing expe­ri­ence (AX) and devel­op­er expe­ri­ence (DX) but they have not made a sin­gle change to con­tent mod­el­ing since 2.0
Craft 5
  • the biggest leap foward in con­tent mod­el­ing fea­tures since Matrix was added in 1.3
  • Entries every­where”

    • an idea they’ve been noodling on for a few years
    • Cat­e­gories become Entries
    • Tags become Entries
    • Glob­al Sets become Entries
    • Uni­fied con­tent view
      • map out IA view of your website
      • entry” doesn’t show up, they just call it content
      • ful­ly cus­tomize the con­tent mod­el­ing and author­ing experience
      • it is slide-out dri­ven, so when you click on some­thing a slide­out opens up
    • Mul­ti­ple entry authors
    • Decou­pled Entry Types
      • entry types will be their own glob­al con­cept. when you edit a sec­tion, you choose the entry types instead of cre­at­ing them. 
      • you can reuse the entry types
    • Entry portability
      • you can move entries from one sec­tion to another
    • Sched­uled Drafts
      • mul­ti­ple drafts? cre­ate Releas­es” so the con­tent goes live together 

Nest­ed Matrix
  • Some plu­g­ins have filled the gap of sim­i­lar func­tion­al­i­ty (Neo and Supertable)
  • Chal­lenges: per­for­mance and author­ing experience
  • Per­for­mance challenges
    • Bran­don goes through the ele­ment saves required for a com­plex nest­ed matrix block and the per­for­mance chal­lenges with it
    • mul­ti-sites real­ly make it com­pli­cat­ed — could be over 2700 saves for 10 sites
    • But they’ve been work­ing on mak­ing the sav­ing more performant.
      • Delta saves inro­duced in 3.4
      • 3.7 those delta saves were made recursive
      • but that didn’t real­ly help with per­foe­mance of a poten­tial nest­ed Matrix because of revisions
      • Craft 4 has a fea­ture called shared block cus­tody” — no longer a 1:1 map­ping of the matrix block and the ele­ment that saves it.
      • the result is that sav­ing is much faster — one row of new data vs an entire ele­ment saved. The same thing applies to revi­sions, too.
  • But how do they fix the author­ing expe­ri­ence?
  • Bran­don makes fun of the wild­ly com­plex page builders that peo­ple build (edi­tor: agree)
  • they think the solu­tion for nest­ed matrix is the slide out UI but the save but­ton pat­tern doesn’t fit
  • New field type
    • INCEP­TION FIELDS
      • like address fields, but for nest­ed entries
      • Cards + Slide­outs UI pattern
      • Entry types (already decou­pled in Craft 5)
      • Entry porta­bil­i­ty
      • Releas­es

Imple­ment­ing com­po­nent-dri­ven design sys­tems with Craft + Fractal

by Dal­ton Rooney, Raygun 

  • Dal­ton gave the his­to­ry of his work and how he camet o the idea of build­ing com­po­nent-dri­ven design sys­tems and a way of work­ing togeth­er between dev and design
  • A mod­el that pro­vides dif­fer­ent lev­els of access into the project to the right peo­ple at the right time.
  • Brand guide­lines => Style Guide & Pat­tern Library => Com­po­nent Library => Pro­duc­tion Application
  • This work came out of the need to col­lab­o­rate with more team mem­bers, get feed­back ear­li­er in the design process
  • Why did they choose Fractal?
    • frame­work agnostic
    • flex­i­ble structure
    • script­able, well-doc­u­ment­ed, easy to integrate
    • Craft CMS exam­ples already exist
  • Anato­my of com­po­nent (in Fractal)
    • orga­nized into hiearchi­cal folders
    • a tem­plate (twig) and con­text (js)
    • styles and scripts
    • vari­ants (con­text-defined)
    • docs or oth­er assets
  • Frac­tal Workflow
    • a node appli­ca­tion installed as a peer dep in the repo
    • all front-end com­po­nents are devel­oped and test­ed in Fractal
    • use Hygen to scaf­fold new components
    • Lar­avel Mix to com­pile all scss and js from the Frac­tal fold­er but any build tool will work; Frac­tal doesn’t care
    • Frac­tal task that exports all com­po­nents to the Craft tem­plate fold­er and gen­er­ates a components-maps.json file.
    • Craft fractal-folder plu­g­in (pri­vate)
  • Craft’s tem­plate hooks con­nects Frac­tal to Craft CMS
    • Con­text is pareped in a cus­tom PHP mod­ule and inject­ed into the entry tem­plate with a tem­plate hook.
    • The tem­plate includes the Frac­tal template 

What they like about this setup:

  • encour­ages reusable components
  • remove log­ic fromt he templates
  • decou­ple front-end from CMS
  • get input from stake­hold­ers ear­li­er in the process
  • self-doc­u­ment­ing, can share with clients

what they don’t like about the setup:

  • every­t­ing is ren­dered with twig.js but it’s not the same as twig.php
  • no log­ic in the tem­plate, no Craft CMS fla­vored Twig func­tions allowed
  • full inte­gra­tion requires cor­rep­sond­ing PHP modules
  • Frac­tal app is in main­te­nance mode, not active­ly developed

See also:

Craft in K8s

by Matt Gray, Servd.host

  • K8s => Kubernetes
  • enter­prise adop­tion of K8s is about 75% among enter­pise companies
  • 400% increase in K8s postings
  • Why care about this for Craft CMS?
    • dozens of com­pa­nies offer­ing man­aged kuber­netes now
    • best prac­tices
    • envi­ro­ment stored config
    • exter­nal back­ing services
    • build, release, run
    • state­less processes
    • port bind­ing
    • dis­pos­abil­i­ty
    • log event streams 
  • 2019 Dock­er start­ed to become adopt­ed for pack­ag­ing and run­ning applications
  • Nitro used, DDEV uses it
  • Every­thing start­ed to get containerized
  • Why is K8s so popular?
    • it acts as an abstrac­tion over serv­er resources
      • sched­ul­ing
      • net­work­ing
      • stor­age
      • resources
      • scal­ing
      • deploy­ments
The pieces of K8s (and Craft)
  • Con­tain­ers
    • K8s orga­nizes containers.
    • Make sure we are using con­tain­ers with­in our Craft project. We export them as images” (a blue­print for a con­tain­er) so they’re avail­abel to K8s
      • PHP, nginx, Craft CMS
      • split out process­es into mul­ti­ple con­tain­ers — allow K8s to do the things it does best
  • Epher­mal File Systems
    • con­tain­ers have their own filesystems
    • Con­tain­ers restart often
    • Each time, their filesys­tem resets to tmatch teh state
    • Any­thing we write to the file sys­tem at run-time will be lost, unless we pre­pare for it.
    • plu­g­ins can be a chal­lenge — make sure they don’t write any­thing to the file sys­tem that will cause prob­lems if those writ­ten files go away.
  • cpresources
    • This is an assump­tion that Craft/​Yii does make…that both PHP and ngnix are using the same filesys­tem and can share cpresources files.
    • this is a prob­lem in K8s because there are two sep file sys­tems in two sep containers
    • wrap every­thing in a pod” — a K8s con­cept that allows every­thing to stay togeth­er and be grouped together
  • Logs
    • epher­mal fil­sys­tems means that the file sys­tems don’t last long, so log files might go away! 
    • instead of sav­ing logs as files, we can use std­out and stderr K8s will col­lect and orga­nize them
    • CRAFT_STREAM_LOG=TRUE — Craft 4 will send logs to std­out and stderr instead of writ­ing to the file sys­tem. If using Craft 3, you’ll need to imple­ment your own over­ride for this.
  • Ses­sions and Cache
    • Craft’s default cach and ses­sion han­dles use the filesystem
    • can hurt per­for­mance if cache has to be regen­er­at­ed too often
    • solu­tion: use Redis — easy to deploy to K8s, very easy to con­fig­ure in Craft
  • Image resiz­ing
    • pro­cess­ing images using ImageMag­ick or GD requires a lot of memory
    • save your­self a headache and just use an exter­nal ser­vice: Imgix, Server­less Sharp

A Prac­ti­cal Guide to HTML Over the Wire”

by John D. Wells

  • MPA — mul­ti-page application
    • what is good at?
      • SEO; serves HTML
      • not com­plex, no com­pli­cat­ed stack to deal with 
      • speed Not so good?
      • UI fideli­ty
  • SPA — Sin­gle-Page Application
    • SEO? Not so good
    • Com­plex­i­ty? Very com­plex from design; build tool required, API required, etc.
    • Speed? it can vary depend­ing on the imple­men­ta­tion — inti­ial pay­load can be very big
    • UI Fideli­ty? excellent
  • What about hav­ing the best of both worlds? 
    • Some­thing that is good with SEO out of the box wihtout trying, 
    • some­thing that is fast, 
    • not that com­plex or with­in developer’s control, 
    • and good enough UI fidelity
  • HDA — Hyper­me­dia-Dri­ven Application
    • coined by the cre­ator of HTMX
    • inter­acts with the server 
    • responds with HTML instead of JSON
    • HTMX — evo­lu­tion of Inter­cool­er (js library)
      • author is try­ing to improve the HTML spec. The­o­ry is that HTML when it was first cre­at­ed was incom­plete; no PUTs, go GETs, no way to talk to a serv­er with­out a GET request or PUT request via form and oth­er code. 
    • Unpoly
      • Hen­nig Koch
      • unob­stru­sive JS frame­work for serv­er-side web applications”
      • it is try­ing to pogre­sive­ly enhance an MPA
    • Hotwire
      • evo­lu­tion of turbolinks
      • by Basecamp/​Hey team
    • oth­er adja­cent tooling
      • Hyper­script
      • Alpine.js
      • Sprig — Ben Cro­ker, Craft CMS Plu­g­in, built on HTMX
      • Tail­wind­C­SS

Craft Com­mand Line Magic

by Michael Rog

Slides for the talk

  • Craft’s native CLI tool
    • a host of utilites for main­tain­ing and work­ing with your Craft installation
  • build­ing your own CLI commands
  • use case examples

Res­cue sit­u­a­tions when you need to use the com­mand line

  • ./craft users/set-password
  • ./craft users/create --email --password --admin

Devel­op­ment commands

  • ./craft resave/entries --set=myField --if-empty --to bulk update entries
  • check Michael’s slides and the offi­cial Craft docs for more examples

Prod­cu­tion

  • ./craft mailer/test
Build­ing your own cus­tom CLI commands

start slides here

#### Use Case Exam­ples start slides here

Man­ag­ing Craft at Scale

by Mark Huot

  • should be called Learn­ing from Mark’s Mistakes
  • what is scale? where are today -> get­ting big­ger, more traf­fic; whether small­er site or big­ger site
  • Big Site, Big­ger Risk
    • Mark’s exam­ple of a client site that gets a lot of traf­fic, this time unex­pect­ed: get­ting hit with a lot of bots
  • Small Site, Big Reward
    • brick n mor­tar sales => online dur­ing pandemic
    • scal­ing issues can hap­pen to any­one; small sites big site every­thing in between
  • it’s all about being pre­pared to scale!
Keep Craft Updated
  • the longer you put it off the hard­er the upgrade gets
  • even­tu­al­ly you’ll have update for a secu­ri­ty update or fea­ture update and the updates only get hard­er the longer you wait.
  • you also get per­for­mance updates in Crarft 3.7.x because so many were added (and, of course, in Craft 4)
  • two ways to update:
    • update in the con­trol pan­el <- scary!
    • com­mand line ver­sion through a stan­dard devel­op­ment and deploy­ment process
  • don’t for­get to keep all plu­g­ins updat­ed at the same time that you update Craft
Dis­able devMode
  • use the user-spe­cif­ic Devel­op­ment set­tings instead, so you still get to see them as a logged-in user
  • Yii Debug tool­bar — Mark’s favorite view is the Time­line view 
  • the worst thing you can do is guess­ing and check­ing” Instead start with the time­line view of Yii debug tool­bar and method­i­claly find your start­ing point
    • you can also do this via the data­base queries tab in the Yii Debug Tool­bar. Find the slow­est query and see what you can do to address that first.
  • MySQL explain view in Yi Debug Tool­bar — use the rows” col­umn to iden­ti­fy slow or inef­fi­cient queries. The more rows MySQL is look­ing through and not return­ing isn’t optimal.
Rela­tion­ships
  • one of the best fea­tures of Craft”
  • they are flex­i­ble because they’re two direc­tion­al (source, target)
  • but they can be hard to scale prop­er­ly with­out some adjust­ments. How?
  • Switch your rela­tion­ships and make it relat­ed to the tar­get element
  • {targetElement: category} <- be more explic­it about the type of rela­tion­ship since this cat­e­go­ry is only this type of rela­tion­ship. Mark does this by default to get a faster JOIN.
  • eager-load all the things using with in the ele­ment query to get around the N+1 issue
con­tent table
  • try to lim­it the num­ber of columns in the content table
    • don’t cre­ate ALL THE FIELDS — each new field is a new col­umn, is a longer search etc.
Hire a DBA for a week
  • if you’re realling hav­ing issues, hire a DBA for a week and get project-spe­cif­ic infor­ma­tion for how to improve the database.
  • Mark uses the Preparse field a lot to help save on JOINs and oth­er expen­sive queries. The data is stored in the field on-save ver­sus query­ing dynamically.
  • Preparse Field
  • mind your database”

Day 3 #

Sched­ule Day 3

Cre­at­ing Empa­thy Through Collaboration

by Sarah Carr

  • What is empathy?
  • Why does it matter?
  • How do I use it?

Impor­tant notes from Sarah:

  • don’t be some­one# you’re not
  • she doesn’t want to tell you how to do your job
  • be delib­er­ate about your inter­ac­tions with others
What is empathy?
  • The abil­i­ty to under­stand and share the feel­ings of another. 
    • read their behavior
    • imag­ine their POV
    • under­stand stres­sor or struggles
  • cog­ni­tive: know­ing how some­one is feel­ing and what tye might be thinking
  • Emo­tion­al: phuys­i­caly feel­ing a sen­sa­tion along with anoth­er person
  • com­pas­sion­ate: mov­ing beyond con­nec­tion and under­stand­ing to take action — donat­ing to charity/​helping others
  • Brené Brown quote: We need to dis­ple the myth that emapthy walk­ing in some­one elses’s show” Rather than walk­ing your shoes, I need to learn how to lis­ten to the sto­ry you tell about what it’s like to walk in your shoes and believe you even what it doesn’t may my experiences.”
Why does it matter?
  • Work­ing with peo­ple can be overwhelming
    • dif­fer­ent personalities
    • var­ied life xperiences
    • unique ways of working
    • com­munca­tions styles
    • cog­ni­itve abilities
    • remote work
    • mixed avail­abil­i­ty
    • fam­i­ly needs
    • slack and zoom eqtiutte
    • time zones
  • empahy improves team performance
    • shared under­stand­ing unites toward a shared goal
    • bet­ter equip your tema to han­dle stres­sors and unknowns
    • smoother, and more clear communication
    • increased pro­duci­tyivy
    • hap­pi­er peo­ple, hap­pi­er clients
How do we use it?
  • Take C.A.R.E.

    • C: Com­mu­ni­cate what’s important
    • A: Assume good intentions
    • R: Roll with the punches 
    • E: Every­one is human
  • Com­mu­ni­cate what’s important

    • talk often, be honest
    • don’t make deci­sions in a vac­cum. Be open and hon­est about work, con­tri­bu­tions to the project
    • Exam­ple: a team mem­ber is too wordy and/​or ver­bose when it coems to cre­at­ing tick­ets (sarah says this is her)
      • ask the team waht woudl help
      • acknowl­edge devel­op­er con­text switching
      • reword para to bullets
    • I would’ve writ­ten a shorrter let­ter, but I did not have the time” –Pas­cal
    • sep­a­rat­ing con­text from content
    • Being con­cise is hard­er than being verbose!
  • Key take­aways:
    • com­mu­ni­cate with pur­pose — be clear about what you’re ask­ing for
    • Speak up when you’re unsure
    • Learn oth­er people’s com­mu­ni­ca­tion styles

  • Assume Good intentions

    • Don’t jump to conclusions
    • Exam­ple: a team mem­ber is sud­den­ly unpro­duc­tive, out­put is dif­fer­ent than before
      • remem­ber this is unchar­ac­ter­is­tic, not like them
      • give the ben­e­fit fo the doubt
      • offer sup­port to begin a conversation
    • Exam­ple: the eager junior developer
      • added a new fea­ture into the branch with­out telling any­one, which intro­duce a lot of issues/​merge conflicts
      • We judge our­selves by our inten­tions and oth­ers by their behav­ior” –Stephen Covey
      • assume they meant well — observe before you judge, keep an open mind, check in with them
      • don’t scold, but do educate
      • encour­age them to chan­nel their ener­gy through prop­er processes
  • Roll with the Punches

    • embrace flex­i­bil­i­ty
    • Exam­ple: short notice PTO by a key team mem­ber mid-project
    • empa­thet­ic respons­es: not all vaca­tions are vaca­tions, burnout can come quick­ly, main­taing work/​life bal­ance can be tricky
    • build in flex­i­bil­i­ty from the start
    • meet peo­ple where they are — what flex­i­bil­i­ty means to you might mean some­thing total­ly dif­fer­ent to some­one else on your team.
    • take time for yourself
  • Every­one is Human

    • exam­ple: deploy­ing bro­ken code — a devel­op­er deployed bro­ken bro­ken code into a pro­duc­tion envi­ron­ment. The code passed QA, but the wrong pack­age was pulled in, and pro­duc­tion was down for an hour. The client is extreme­ly upset.
    • empa­thet­ic response
      • mis­takes hapen; this won’t be the last
      • keep your cool – blame and argu­ment won’t bring pro­duc­tion back up
      • address the imme­di­ate need, then dis­cuss prevention
    • You are not your work
    • Keep your cool
    • It’s a two-way street

Final thought: When we under­stand each oth­er bet­ter, we can cre­ate things togeth­er we nev­er could have alone.”

Bend­ing the Craft Con­trol Panel

by John Hen­ry Donovan

  • we put as much effort into the autho­ing expe­ri­ence as the front-end of your web­site” — what John Hen­ry tells clients 
  • con­tem­plate the client’s long-term solu­tion rather than the fast sell
  • Sta­t­ic mes­sage translation
    • translations/en/app.php
  • cus­tomize table columns
  • uni­code works in lay­out tabs — num­ber the tabs in the field lay­out so authors know the order of enter­ing content
  • tabs can be admin only
  • write clear field instructions
    • you can hide the field instruc­tions via mod­ule and field in user account
  • use con­di­tions where necessary

Mind the Gap – What’s left behind when we bulid for the cut­ting edge?

by Shaw­na O’Neal

  • As devel­op­ers, we always get the newest devices but the glob­al user base isn’t buy­ing into annu­al upgrade. 
  • Google Chrome User” Study
    • from Chrome instal­la­tions from a group of coun­tries around the world
    • their find­ings are from Win­dows, Android and ChromeOS
    • Android devices glob­al­ly vary widely
    • ZA devices typ­i­cal­ly have 1 GB RAM
    • US devices typ­i­cal­ly have 2 GB RAM but also high­t­est % of 10GB or more
    • not every­one is goign to be on a fast enough device to han­dle big js pay­loads and processing
    • 13 tabs uses in Chrome uses over 3 GB of memory
    • but Chrome itself only needs 128 MB to run, the rest is our web­sites need­ing a lot of resources

  • Dig­i­tal Divide
    • the grow­ing gap between peo­ple who have access to com­put­ers and inter­net and those who do not
    • 1 in 10 US house­holds don’t access access to a computer
    • mobile device access is con­sid­ered a luxury
    • inter­net was devel­oped uneven­ly across the globe 
    • geog­ra­phy lim­its infrastructure
  • JavaScript
    • client-side ren­der­ing is a bur­den on devices with less capabilities
    • rapdi­ly increas­ing down­load sizes for ini­tial JS payload
    • sec­u­lar standarizations — 

Using Entries and Rela­tion­ships as your con­tent builder system

by Justin Holt

  • the typ­i­cal apporoach­es to con­tent edit­ing in Craft are:
    • sta­t­ic fields
      • straight­for­ward and sim­ple, con­trol the con­tent to match the page
      • hard to scale, rigid, not bespoke. Requires a devel­op­er to add new con­tent flexibility
    • matrix fields or Neo
      • pre­dictabil­i­ty and flexibility
      • Per­for­mance hits hap­pen in large con­tent sets. 
    • Vizy fields
      • max­i­mizes flexibility
      • UI can get con­dus­ing to edi­tors. Large con­tent sets can be unwiedly 
  • live demo of site with a lot (i mean, A lot) of Matrix blocks
  • demo’ing holts­dogs: https://​holts​dogs​.com
    • every­thing on the site is using the schema approach
    • view only user avail­able in the Dis­cord so you can see how the site is configured
  • Plu­g­ins that can help/​improve the experience
  • Best prac­tices
    • strict com­po­nent entry naming 
    • abtract, but not too abstract

Pix­el & Ton­ic Q&A

I’m mod­er­at­ing this dis­cus­sion, so I will not be able to take notes in real-time.

Checking for updates...