1. Preamble
  2. 1. Notice to Reader
  3. 2. Preface
  4. 3. Acknowledgements
  5. 4. About this Book
  6. 5. About the Author
  7. 6. If you get stuck or lose steam
  8. Introductions
  9. 7. Programming
    1. 7.1. What it is
    2. 7.2. Why it's worth it
    3. 7.3. Why it's hard
    4. 7.4. Programmer Thinking
  10. 8. Languages
    1. 8.1. Meaning and Interpretation
  11. 9. Architectures
    1. 9.1. What is architecture
    2. 9.2. How your computer works
    3. 9.3. How the web works
    4. 9.4. The frontend-backend divide
    5. 9.5. General application architecture
    6. 9.6. Trade-offs between WASM and JavaScript
  12. 10. Tools and Languages
    1. 10.1. Web browsers
    2. 10.2. HTML
    3. 10.3. Bash and the terminal
    4. 10.4. Rust
    5. 10.5. Trunk
    6. 10.6. Cargo Leptos
  13. 11. Other Resources
    1. 11.1. Rust
  14. Getting Started with Rust and Leptos
  15. 12. Setup
  16. 13. Architecture
    1. 13.1. Leptos Components - #[component]
    2. 13.2. Signals (reactive values) - create_signal
    3. 13.3. Effects (side effects) - create_effect
  17. Generting UI
  18. 14. Introduction
  19. 15. Setup
    1. 15.1. Trunk
  20. 16. Introspection and Debugging
  21. 17. HTML
  22. 18. The view! macro
  23. 19. Leptos Components
  24. 20. Variables and the view! macro
  25. 21. Component properties
  26. 22. Component dynamic content separation
  27. 23. Loops and the <For /> view! macro tag
  28. 24. Conditional display and the <Show> view! macro tag
  29. 25. Tables and data sets
  30. 26. Reserved Tags
  31. Client Side
  32. 27. Introduction
  33. 28. Setup
    1. 28.1. Trunk
  34. 29. Introspection and Debugging
  35. 30. Responding to Events
    1. 30.1. Witnessing events
    2. 30.2. Reacting to events with event handlers
    3. 30.3. Event handers as props
    4. 30.4. Event Bubbling and Signal Generics
    5. 30.5. Preventing bubbling and default event behaviours
    6. 30.6. Custom Events
    7. 30.7. Custom Event Data
    8. 30.8. Custom Event Module
    9. 30.9. Custom Event Module with Data
    10. 30.10. Custom Event Data with Signals and Effects
    11. 30.11. Custom Event Data with Signals and Effects - Part 2
  36. 31. Sending Data
    1. 31.1. Forms
    2. 31.2. Acton Forms
  37. 32. Sending and Receiving Data
    1. 32.1. Fetch
    2. 32.2. Web Socket
  38. 33. Saving/Persisting Data
    1. 33.1. Local Storage
    2. 33.2. Cookies
    3. 33.3. IndexedDB
  39. Server Side
  40. 34. Introduction
  41. 35. Setup
    1. 35.1. Cargo Leptos
      1. 35.1.1. Setup
      2. 35.1.2. File Structure
      3. 35.1.3. Config
      4. 35.1.4. Server Initialization and Main.rs
      5. 35.1.5. Leptos app main component and app.rs
      6. 35.1.6. Leptos_meta
      7. 35.1.7. Leptos_router
  42. 36. Introspection and Debugging
  43. 37. Responding to Requests
    1. 37.1. Get Method Forms
    2. 37.2. Post Method Forms
    3. 37.3. Accessing Request Data
    4. 37.4. Responding Parts
      1. 37.4.1. Headers
      2. 37.4.2. Cookies
      3. 37.4.3. Body
    5. 37.5. HTML Requests - Routes
    6. 37.6. Data Requests - Server Functions
    7. 37.7. Behaviour Request - Server Actions
  44. 38. Client Server Communication
    1. 38.1. Server Functions
    2. 38.2. <Transition>
    3. 38.3. <ActionForm>
    4. 38.4. Web Sockets
  45. 39. Saving/Persisting Data
  46. Architecture
  47. 40. Scope and Runtime
  48. 41. Passing data around
  49. Deployment
  50. 42. Render.com
  51. 43. Fly.io
  52. 44. Cloudflare Workers
  53. Desktop Applications
  54. 45. Tauri
  55. 46. TUI
  56. Tutorial Projects
  57. 47. Blog
  58. 48. RPG Initiative Tracker
  59. 49. Chat
  60. Quick Reference
  61. 50. Structuring Applications
  62. 51. Documenting Applications
  63. 52. Testing Applications
  64. Recipes
  65. Appendix
  66. 53. Common Application Behaviours
    1. 53.1. Form Validation
  67. 54. Common Design Patterns
    1. 54.1. Event Sourcing
  68. 55. Common Problems and Concerns
    1. 55.1. Quality
      1. 55.1.1. UI Response Time
      2. 55.1.2. Bundle Size
      3. 55.1.3. Partial Hydration
    2. 55.2. Consistency
      1. 55.2.1. Offline Support and Data Sync
      2. 55.2.2. Observability and Logging

Building Apps with Rust

Introduction