beginner
What do you want to do?
Find the documentation page for the thing you are actually trying to do.
On this page
Browse by topic
Open a topic to find its guides and worked tutorials, or use the task index below.
Input & forms 10 guides Validation, uploads, editors, and multi-step flows.
- `{% live_input %}`
- Two-Way Model Binding
- File Uploads
- `dj-paste` — Paste event handling
- Multi-Step Form Wizards
- Tutorial: Real-time form validation with FormMixin
- Tutorial: Build a search-as-you-type feature
- Tutorial: Build a file upload with live progress
- Tutorial: Build a multi-step form wizard
- Tutorial: Build a typeahead with @server_function
Components & interaction 13 guides Build interfaces, communicate state, and connect browser libraries.
- Components
- Server-Driven UI
- Loading States & Background Work
- Declarative UX Attributes
- Accessibility (ARIA / WCAG)
- Client-Side JavaScript Hooks
- Official Adapters
- JS Commands
- Flash Messages
- Tutorial: Build a reusable LiveComponent
- Tutorial: Integrate Chart.js with a hook
- Tutorial: Modals and toasts without a server round-trip
- Tutorial: Build a server-driven guided product tour
Navigation & layouts 8 guides Shared layouts, page transitions, and persistent views.
State & large lists 7 guides Manage state and keep large data sets responsive.
- State & Computation Primitives
- Large Lists — Virtual Scrolling & Infinite Feed
- Virtual lists (`dj-virtual`)
- Keyed vs Unkeyed Lists
- `{% dj_activity %}` — Pre-Rendered Hidden Panels (React 19.2 Parity, v0.7.0)
- Tutorial: Optimistic UI updates with @optimistic
- Tutorial: Build infinite scroll with dj-viewport-bottom
Real-time & streaming 11 guides Live updates, presence, audio, and streamed AI responses.
- Streaming & Real-Time Partial Updates
- Streaming Initial Render
- Streaming Markdown
- Declarative audio
- Real-Time Presence Tracking
- Database Change Notifications
- Reconnection Resilience
- Tutorial: Build a real-time comment thread
- Tutorial: Show who's reading right now with presence
- Tutorial: Stream an AI response token-by-token
- Tutorial: Push live UI updates from a webhook (Stripe, GitHub, etc.)
Backend & APIs 8 guides Server actions, service integrations, and HTTP endpoints.
Auth & multi-tenancy 7 guides Authentication, authorization, and tenant isolation.
Deploy & upgrade 10 guides Ship your app, support offline use, and keep it current.
Development & debugging 15 guides Project setup, diagnostics, testing, and development tools.
- Scaffolding Generator
- Template Requirements
- Best Practices
- Common mistakes
- Developer Tools
- Error Code Reference
- Error Overlay (Dev Mode)
- Type-Safe Template Validation
- Hot View Replacement
- Time-Travel Debugging
- Bug Capture — Share a Broken Transition
- `djust_audit` — Security Audit
- MCP Server
- djust-browser-mcp
- Tutorial: Test a LiveView with LiveViewTestClient
More learning resources 3 guides Tutorial overviews, template syntax, and styling integrations.
Find your task, get the page. Each link goes to the one canonical page for that task — this page is an index, not a second copy of anything.
If your task isn't here, try look up or search.
Get data onto the page
| I want to… | Go to |
|---|---|
| Show data from the database | Core concepts |
| Bind a form field to a model field | Model binding |
| Compute a value from other state | State primitives |
| Set the page title or meta tags | Document metadata |
Handle input and forms
| I want to… | Go to |
|---|---|
| Handle a form submission | Forms |
| Validate input as the user types | Forms |
| Debounce or throttle an input | Decorators |
| Build a multi-step wizard | Wizards |
| Offer autocomplete / typeahead | Server functions |
React to events
| I want to… | Go to |
|---|---|
| Know which event handlers exist | Events |
| Call a method on click | Events |
| Run something on a timer | Server push: periodic tick |
| Trigger behaviour from the browser | JS commands |
Show state to the user
| I want to… | Go to |
|---|---|
| Show a spinner while work runs | Loading states |
| Show a success or error message | Flash messages |
| Show a form error inline | Forms |
| Animate a page transition | View transitions |
Lists, tables, and large data
| I want to… | Go to |
|---|---|
| Render a sortable, filterable table | Components |
| Render thousands of rows without freezing | Large lists |
| Only render what is on screen | Virtual lists |
| Add, remove, or update one row | Large lists |
Real-time and multiple users
| I want to… | Go to |
|---|---|
| Show who else is on the page | Presence |
| Push an update from a background job | Server push |
| React to a database change | Database notifications |
| Keep the page alive across a dropped connection | Reconnection |
| Stream tokens from an LLM | Streaming |
Files
| I want to… | Go to |
|---|---|
| Upload a file with a progress bar | Uploads |
| Upload straight to S3 or GCS | Uploads |
| Let users paste an image | dj-paste |
Navigation
| I want to… | Go to |
|---|---|
| Move between pages without a full reload | Navigation |
| Share a layout between views | Layouts |
| Prefetch the next page | Prefetch |
Auth and permissions
| I want to… | Go to |
|---|---|
| Require login for a view | Authorization |
| Check a permission | Authorization |
| Isolate tenants | Multi-tenant |
Background work
| I want to… | Go to |
|---|---|
| Run slow work without blocking the page | Loading states |
| Call an external API | Server functions |
| Run something on a schedule | Server push |
Ship it
| I want to… | Go to |
|---|---|
| Deploy to djustlive | Deploy to djustlive |
| Deploy to my own servers | Deployment |
| Test my views | Testing |
| Lock down security | Security |
| Read the upgrade path | API stability |
When something is wrong
| I want to… | Go to |
|---|---|
| Find why a click does nothing | Events |
| Avoid the usual mistakes | Common mistakes |
| See the WebSocket traffic | Debug panel |
| Read the system-check reference | Error codes |
| Step backwards through state | Time-travel debugging |
| Report a bug with a trace | Bug capture |
Everything else
- Every
dj-directive: Template cheat sheet - Every decorator and method: API reference