Version 1.0
Sessions by theme
Frontend
| Title | Theme | Speakers | |
|---|---|---|---|
![]() |
Accessibility is not optional
Accessibility is not optional. Testing with real users. This abstract is demo... |
Frontend | |
![]() |
Building a design system from zero
Building a design system from zero. Without a design team. This abstract is... |
Frontend | |
![]() |
Building your own component framework
Building your own component framework. Lessons from the trenches. This... |
Frontend | |
![]() |
Component libraries that survive
Component libraries that survive. Versioning and deprecation. This abstract... |
Frontend | |
![]() |
CSS layout in 2026
CSS layout in 2026. Grid, subgrid and beyond. This abstract is demo content... |
Frontend | |
![]() |
Dark mode is an accessibility feature
Dark mode is an accessibility feature. Contrast in both themes. This abstract... |
Frontend | |
![]() |
Design tokens in a small team
Design tokens in a small team. One source of truth. This abstract is demo... |
Frontend | |
![]() |
Forms nobody hates
Forms nobody hates. Validation, errors and focus. This abstract is demo... |
Frontend | |
![]() |
Offline-first web apps
Offline-first web apps. Sync is the hard part. This abstract is demo content... |
Frontend | |
![]() |
Progressive enhancement is back
Progressive enhancement is back. Less JavaScript, more product. This abstract... |
Frontend | |
![]() |
State management, do you even need it
State management, do you even need it. A minimalist's guide. This abstract is... |
Frontend | |
![]() |
Ten JavaScript frameworks in 40 minutes
Ten JavaScript frameworks in 40 minutes. A speedrun. This abstract is demo... |
Frontend | |
![]() |
Web performance for content sites
Web performance for content sites. Core Web Vitals in practice. This abstract... |
Frontend |
Security
| Title | Theme | Speakers | |
|---|---|---|---|
![]() |
Application security for non-security people
Application security for non-security people. A starter kit. This abstract is... |
Security | |
![]() |
Building a bug bounty program
Building a bug bounty program. What we learned in year one. This abstract is... |
Security | |
![]() |
Dependency scanning that developers trust
Dependency scanning that developers trust. Fewer false positives. This... |
Security | |
![]() |
Hardening a small fleet
Hardening a small fleet. Ten changes that matter. This abstract is demo... |
Security | |
![]() |
Incident response tabletop exercises
Incident response tabletop exercises. Practicing before the fire. This... |
Security | |
![]() |
OAuth pitfalls
OAuth pitfalls. Where implementations go wrong. This abstract is demo content... |
Security | |
![]() |
Passkeys in production
Passkeys in production. Killing the password. This abstract is demo content... |
Security | |
![]() |
Privacy engineering basics
Privacy engineering basics. GDPR for developers. This abstract is demo... |
Security | |
![]() |
Rotate your keys
Rotate your keys. Three minutes of nagging. This abstract is demo content... |
Security | |
![]() |
Secrets management done right
Secrets management done right. Stop committing .env. This abstract is demo... |
Security | |
![]() |
Security reviews for feature teams
Security reviews for feature teams. A lightweight process. This abstract is... |
Security | |
![]() |
Supply chain attacks explained
Supply chain attacks explained. How dependencies bite. This abstract is demo... |
Security | |
![]() |
Threat modeling for small teams
Threat modeling for small teams. Start on a whiteboard. This abstract is demo... |
Security |
Community
| Title | Theme | Speakers | |
|---|---|---|---|
![]() |
Ask the organizers anything
Ask the organizers anything. Open Q&A. This abstract is demo content... |
Community | |
![]() |
Code of conduct enforcement
Code of conduct enforcement. The unglamorous work. This abstract is demo... |
Community | |
![]() |
Documentation that people read
Documentation that people read. Writing for tired humans. This abstract is... |
Community | |
![]() |
Growing a local user group
Growing a local user group. From 5 to 300 people. This abstract is demo... |
Community | |
![]() |
Mentoring junior developers
Mentoring junior developers. Structure beats good intentions. This abstract... |
Community | |
![]() |
My first open source contribution
My first open source contribution. A beginner story. This abstract is demo... |
Community | |
![]() |
My gem has 12 downloads
My gem has 12 downloads. And I am proud of it. This abstract is demo content... |
Community | |
![]() |
Onboarding new contributors
Onboarding new contributors. The first pull request. This abstract is demo... |
Community | |
![]() |
Our first hackathon
Our first hackathon. What we would change. This abstract is demo content... |
Community | |
![]() |
Running a code of conduct team
Running a code of conduct team. Process, not vibes. This abstract is demo... |
Community | |
![]() |
Running a conference on frab
Running a conference on frab. Lessons from the orga desk. This abstract is... |
Community | |
![]() |
Sponsorship without selling out
Sponsorship without selling out. How we fund this. This abstract is demo... |
Community | |
![]() |
Volunteer coordination in practice
Volunteer coordination in practice. Shifts, radios and coffee. This abstract... |
Community |
Backend
| Title | Theme | Speakers | |
|---|---|---|---|
![]() |
Background jobs that never lose work
Background jobs that never lose work. Idempotency in practice. This abstract... |
Backend | |
![]() |
Building a plugin system
Building a plugin system. Extension points done right. This abstract is demo... |
Backend | |
![]() |
Caching strategies that survive contact
Caching strategies that survive contact. Invalidate this. This abstract is... |
Backend | |
![]() |
Debugging production at 3am
Debugging production at 3am. War stories. This abstract is demo content... |
Backend | |
![]() |
Event sourcing without the buzzwords
Event sourcing without the buzzwords. A practical intro. This abstract is... |
Backend | |
![]() |
GraphQL at scale
GraphQL at scale. Lessons from three years in production. This abstract is... |
Backend | |
![]() |
Hexagonal architecture in practice
Hexagonal architecture in practice. Ports, adapters, regrets. This abstract... |
Backend | |
![]() |
Postgres indexes you are not using
Postgres indexes you are not using. A practical tour. This abstract is demo... |
Backend | |
![]() |
Rate limiting for humans
Rate limiting for humans. Fair queues and honest errors. This abstract is... |
Backend | |
![]() |
Scaling Rails to a million requests
Scaling Rails to a million requests. What actually breaks first. This... |
Backend | |
![]() |
The state of Ruby concurrency
The state of Ruby concurrency. Fibers, Ractors and threads. This abstract is... |
Backend | |
![]() |
Typed Ruby in a legacy codebase
Typed Ruby in a legacy codebase. Sorbet, one file at a time. This abstract is... |
Backend | |
![]() |
Why we left microservices
Why we left microservices. And what we built instead. This abstract is demo... |
Backend |
DevOps
| Title | Theme | Speakers | |
|---|---|---|---|
![]() |
Backups you have actually restored
Backups you have actually restored. A checklist. This abstract is demo... |
DevOps | |
![]() |
Continuous deployment for teams of one
Continuous deployment for teams of one. Ship on Friday anyway. This abstract... |
DevOps | |
![]() |
Cost control in the cloud
Cost control in the cloud. Reading the bill. This abstract is demo content... |
DevOps | |
![]() |
GitOps in practice
GitOps in practice. Deploying from a single source of truth. This abstract is... |
DevOps | |
![]() |
Incident response on a shoestring
Incident response on a shoestring. Two people, one pager. This abstract is... |
DevOps | |
![]() |
Infrastructure as code reviews
Infrastructure as code reviews. What to look for. This abstract is demo... |
DevOps | |
![]() |
Kubernetes without tears
Kubernetes without tears. An honest retrospective. This abstract is demo... |
DevOps | |
![]() |
Observability on a budget
Observability on a budget. Logs, metrics, traces. This abstract is demo... |
DevOps | |
![]() |
On-call without burnout
On-call without burnout. Rotations that work. This abstract is demo content... |
DevOps | |
![]() |
Self-hosting your metrics
Self-hosting your metrics. Prometheus on one box. This abstract is demo... |
DevOps | |
![]() |
Terraform anti-patterns
Terraform anti-patterns. Modules gone wrong. This abstract is demo content... |
DevOps | |
![]() |
The art of the postmortem
The art of the postmortem. Blameless, but useful. This abstract is demo... |
DevOps | |
![]() |
Zero downtime migrations
Zero downtime migrations. A hands-on workshop. This abstract is demo content... |
DevOps |
