Overview

Communicating the difficulty and danger posed by rivers and rapids can be a challenge. For the general public, rivers can be hazardous when people do not have the skillset to safely navigate them and for those who are unprepared or not informed of the hazards associated with recreating in rivers. Often, the general public are not appropriately educated about river conditions, equipment, natural and human-made hazards, navigating a river safely, and other important information that may prevent accidents and tragedy on the river. Some river recreation sites attempt to warn people of these dangers and supply guidance and best practices through signage at recreation sites and river access points. Yet, many river sites across the nation still use aged and unreadable signs that lack critical information, supply too much information, or have inconsistencies in signage structure, graphic content, and placement.

Typically, signage installed at river access sites is a special effort by management agencies to address individual needs or requests. This reactionary approach to signage naturally creates visual clutter within the environment and presents a disorganized and disorienting feel to the access site’s appearance. Areas that are unsightly, cluttered, or feel uncared for can lead people to vandalize and mistreat the space, and signage is unseen or ignored. Inconsistent signage negatively impacts a user’s experience and impairs their ability to enjoy rivers safely.

With the support of the Coast Guard Boating Safety Program and in partnership with environmental design firm Tangram, American Whitewater has developed an open-source toolbox supplying graphics, messaging, sign templates, sign placement criteria, and other content guidelines for safety and wayfinding signage for river access sites. The toolbox serves as an essential guide to help site managers develop an effective signage program that conveys critical information and is customizable for their site. The primary goal of the toolbox is to effectively communicate safety messaging. Safety signage plays a crucial role in educating river recreationists and creating awareness about dangerous and prohibited actions, safeguards and procedures, equipment that must be worn to recreate responsibly, hazards or potentially dangerous situations.

American Whitewater Open-Source Signage Toolbox:

  • Signage Toolbox Best practices document and guide to development of river safety signage.
  • River Safety Graphic Elements in Vector Graphic Format: [please send us a note to request; we will be posting the files for download following a revision to our website later in 2023]

Paddlewise: A Responsibility Code for River Runners

American Whitewater partnered with NRS to develop PaddleWise, a responsibility code for paddlers for river runners. We have developed a Toolkit with graphics and messaging to spread the PaddleWise message: www.paddlewise.org/ #PaddleWise

Join AW and support river stewardship nationwide!
7.4.3PHP Version700msRequest Duration6MBMemory UsageGET content/{url}Route
    • Booting (60.87ms)
    • Application (639ms)
    • 1 x Application (91.3%)
      639ms
      1 x Booting (8.7%)
      60.87ms
      15 templates were rendered
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • app::layout.gadget (resources/views/layout/gadget.blade.php)2blade
        Params
        0
        contents
        1
        formRenderService
      • layout.columnstyle.one (resources/views/layout/columnstyle/one.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
      • layout.columnstyle.componentstack (resources/views/layout/columnstyle/componentstack.blade.php)10blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
        8
        stack
        9
        component
      • layout.main (resources/views/layout/main.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
      • layout._headers (resources/views/layout/_headers.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
      • layout.header (resources/views/layout/header.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
      • layout._scripts (resources/views/layout/_scripts.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
      • layout.navigation (resources/views/layout/navigation.blade.php)9blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
        8
        menu
      • includes.alert.membership (resources/views/includes/alert/membership.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
        8
        menu
        9
        searchurl
        10
        loginurl
        11
        logouturl
        12
        __currentLoopData
        13
        child
        14
        loop
        15
        otherchild
        16
        shouldNotifyUser
        17
        user
      • navigation.menu.static (resources/views/navigation/menu/static.blade.php)16blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
        8
        menu
        9
        searchurl
        10
        loginurl
        11
        logouturl
        12
        __currentLoopData
        13
        child
        14
        loop
        15
        otherchild
      • includes.footer (resources/views/includes/footer.blade.php)9blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
        8
        menu
      • includes.cg-logo (resources/views/includes/cg-logo.blade.php)9blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
        8
        menu
      • layout.pagemap (resources/views/layout/pagemap.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        hasCGLogo
        4
        errors
        5
        contents
        6
        formRenderService
        7
        layout
      uri
      GET content/{url}
      middleware
      web
      controller
      App\Http\Controllers\Wh2oController@content
      namespace
      App\Http\Controllers
      where
      as
      generated::Os9R4mqMKRF5ktoI
      file
      app/Http/Controllers/Wh2oController.php:34-68
      10 statements were executed, 4 of which were duplicated, 6 unique27.51ms
      • select * from security where domain in ('ScriptLibraryGadget') and area is null;
        166μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security where domain in ('ArticleGadget') and area is null;
        178μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        890μs/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        15.55ms/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from security where domain in ('EmptyGadget') and area is null;
        162μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security where domain in ('MessageGadget') and area is null;
        143μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security where domain in ('SecurityGadget') and area is null;
        1.45ms/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:188
        • 9. /app/Legacy/Security/BaseSecurity.php:143
      • select * from security_defaults where domain in ('SecurityGadget');
        174μs/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476legacy db
        Metadata
        Backtrace
        • 4. /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:476
        • 6. /app/Legacy/Repositories/InfoADO.php:368
        • 7. /app/Legacy/Repositories/InfoADO.php:391
        • 8. /app/Legacy/Repositories/SecurityInfo.php:134
        • 9. /app/Legacy/Security/BaseSecurity.php:200
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        1.71ms/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        7.08ms/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
          _token
          Eqn5EGtM5mYAnzOdAY38FiltNwzFJd0W1cDiMnIJ
          page
          array:1 [ "count" => -1 ]
          PHPDEBUGBAR_STACK_DATA
          []
          path_info
          /content/Wiki/safety:signage
          status_code
          200
          
          status_text
          OK
          format
          html
          content_type
          text/html; charset=UTF-8
          request_query
          []
          
          request_request
          []
          
          request_headers
          0 of 0
          array:15 [ "priority" => array:1 [ 0 => "u=0, i" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "host" => array:1 [ 0 => "beta.americanwhitewater.org" ] ]
          request_server
          0 of 0
          array:42 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_PRIORITY" => "u=0, i" "HTTP_ACCEPT_ENCODING" => "gzip, deflate, br, zstd" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_HOST" => "beta.americanwhitewater.org" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "beta.americanwhitewater.org" "SERVER_PORT" => "443" "SERVER_ADDR" => "172.31.18.125" "REMOTE_PORT" => "43980" "REMOTE_ADDR" => "3.137.151.130" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => true "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/opt/americanwhitewater.org/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/content/Wiki/safety:signage" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "PHP_VALUE" => "post_max_size=20M" "SCRIPT_FILENAME" => "/opt/americanwhitewater.org/public/index.php" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1743722086.869 "REQUEST_TIME" => 1743722086 ]
          request_cookies
          []
          
          response_headers
          0 of 0
          array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Thu, 03 Apr 2025 23:14:47 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkZ5MVU3cTVVWFcyL1FVQmJxa1Zsanc9PSIsInZhbHVlIjoiZGlYamllR1NJelMzdTJDZ2kyUXhSWElPOWJiWlc5bGI0dU9NU1BWSUhXS0tLcWVKbHZHUmd6dU9rNndhcU9kVm9kclRYSDdqZXlaZmJ6Sk9lQ01HNzEveWVJNklLZU9CMXZ2MzRVZU5Fam5sTlVYN1drang4VVZ3a3ozRy92WEMiLCJtYWMiOiI5MTFmYjJiZDE1MjQ0ZTRkZWY5MjZhNGYyOGUyODgxMjZjYWZlMTZiMWEyN2MyNzkyZWUzNzcxZmQzYWY1MzJjIn0%3D; expires=Fri, 04-Apr-2025 01:14:47 GMT; Max-Age=7200; path=/XSRF-TOKEN=eyJpdiI6IkZ5MVU3cTVVWFcyL1FVQmJxa1Zsanc9PSIsInZhbHVlIjoiZGlYamllR1NJelMzdTJDZ2kyUXhSWElPOWJiWlc5bGI0dU9NU1BWSUhXS0tLcWVKbHZHUmd6dU9rNndhcU9kVm9kclRYS" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6Ik5kc0liOHpZUlZtaE5lcDF6MXFYWWc9PSIsInZhbHVlIjoiWFZpVEl6RWd5VWlrbnIyeVhpSC9sdmtzZU5PYzc4cjlxVElDTXNQNWpIcmNNU0xKRFV4VnY0OGIzQkROK1FzQyIsIm1hYyI6ImQyYTQzMDY4YWU2ZjhmMTI2Y2JlODEyY2Q2MWUzNTdiZDQ0M2Y2NzNiYjUwNWZjZjk1MmJlMGQxN2I0YTkwMTUifQ%3D%3D; expires=Thu, 03-Apr-2025 23:13:46 GMT; Max-Age=0; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6Ik5kc0liOHpZUlZtaE5lcDF6MXFYWWc9PSIsInZhbHVlIjoiWFZpVEl6RWd5VWlrbnIyeVhpSC9sdmtzZU5PYzc4cjlxVElDTXNQNWpIcmNNU0xKRFV4V" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkZ5MVU3cTVVWFcyL1FVQmJxa1Zsanc9PSIsInZhbHVlIjoiZGlYamllR1NJelMzdTJDZ2kyUXhSWElPOWJiWlc5bGI0dU9NU1BWSUhXS0tLcWVKbHZHUmd6dU9rNndhcU9kVm9kclRYSDdqZXlaZmJ6Sk9lQ01HNzEveWVJNklLZU9CMXZ2MzRVZU5Fam5sTlVYN1drang4VVZ3a3ozRy92WEMiLCJtYWMiOiI5MTFmYjJiZDE1MjQ0ZTRkZWY5MjZhNGYyOGUyODgxMjZjYWZlMTZiMWEyN2MyNzkyZWUzNzcxZmQzYWY1MzJjIn0%3D; expires=Fri, 04-Apr-2025 01:14:47 GMT; path=/XSRF-TOKEN=eyJpdiI6IkZ5MVU3cTVVWFcyL1FVQmJxa1Zsanc9PSIsInZhbHVlIjoiZGlYamllR1NJelMzdTJDZ2kyUXhSWElPOWJiWlc5bGI0dU9NU1BWSUhXS0tLcWVKbHZHUmd6dU9rNndhcU9kVm9kclRYS" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6Ik5kc0liOHpZUlZtaE5lcDF6MXFYWWc9PSIsInZhbHVlIjoiWFZpVEl6RWd5VWlrbnIyeVhpSC9sdmtzZU5PYzc4cjlxVElDTXNQNWpIcmNNU0xKRFV4VnY0OGIzQkROK1FzQyIsIm1hYyI6ImQyYTQzMDY4YWU2ZjhmMTI2Y2JlODEyY2Q2MWUzNTdiZDQ0M2Y2NzNiYjUwNWZjZjk1MmJlMGQxN2I0YTkwMTUifQ%3D%3D; expires=Thu, 03-Apr-2025 23:13:46 GMT; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6Ik5kc0liOHpZUlZtaE5lcDF6MXFYWWc9PSIsInZhbHVlIjoiWFZpVEl6RWd5VWlrbnIyeVhpSC9sdmtzZU5PYzc4cjlxVElDTXNQNWpIcmNNU0xKRFV4V" ] ]
          session_attributes
          0 of 0
          array:3 [ "_token" => "Eqn5EGtM5mYAnzOdAY38FiltNwzFJd0W1cDiMnIJ" "page" => array:1 [ "count" => -1 ] "PHPDEBUGBAR_STACK_DATA" => [] ]