Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (34)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (5477)

  • Building FFmpeg with NVIDIA GPU Hardware Acceleration in docker image, cannot load libnvcuvid.so.1 and libnvidia-encode.so.1

    22 mars 2023, par konovification

    I'm trying to build FFmpeg with NVIDIA GPU Hardware Acceleration following these instructions : https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/index.html#compiling-for-linux. The Docker image I'm using is nvidia/cuda:12.0.1-devel-ubuntu20.04

    


    Running the test command ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i bbb.mp4 -c:a copy -c:v h264_nvenc -b:v 5M output.mp4, I get the following output :

    


    ffmpeg version N-109965-ge50a02b0f6 Copyright (c) 2000-2023 the FFmpeg developers                                                                                                                                                                                               
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)                                                                                                                                                                                                                              
  configuration: --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared                                                                                          
  libavutil      58.  3.100 / 58.  3.100                                                                                                                                                                                                                                        
  libavcodec     60.  6.100 / 60.  6.100                                                                                                                                                                                                                                        
  libavformat    60.  4.100 / 60.  4.100                                                                                                                                                                                                                                        
  libavdevice    60.  2.100 / 60.  2.100                                                                                                                                                                                                                                        
  libavfilter     9.  4.100 /  9.  4.100                                                                                                                                                                                                                                        
  libswscale      7.  2.100 /  7.  2.100                                                                                                                                                                                                                                        
  libswresample   4. 11.100 /  4. 11.100                                                                                                                                                                                                                                        
-vsync is deprecated. Use -fps_mode                                                                                                                                                                                                                                             
Passing a number to -vsync is deprecated, use a string argument as described in the manual.                                                                                                                                                                                     
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bbb.mp4':                                                                                                                                                                                                                              
  Metadata:                                                                                                                                                                                                                                                                     
    major_brand     : isom                                                                                                                                                                                                                                                      
    minor_version   : 1                                                                                                                                                                                                                                                         
    compatible_brands: isomavc1                                                                                                                                                                                                                                                 
    creation_time   : 2013-12-16T17:44:39.000000Z                                                                                                                                                                                                                               
    title           : Big Buck Bunny, Sunflower version                                                                                                                                                                                                                         
    artist          : Blender Foundation 2008, Janus Bager Kristensen 2013                                                                                                                                                                                                      
    comment         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net                                                                                                                                                                                         
    genre           : Animation                                                                                                                                                                                                                                                 
    composer        : Sacha Goedegebure                                                                                                                                                                                                                                         
  Duration: 00:10:34.60, start: 0.000000, bitrate: 3481 kb/s                                                                                                                                                                                                                    
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 2998 kb/s, 30 fps, 30 tbr, 30k tbn (default)
    Metadata:                                                                                                                           
      creation_time   : 2013-12-16T17:44:39.000000Z                                                                                     
      handler_name    : GPAC ISO Video Handler                                                                                          
      vendor_id       : [0][0][0][0]                                                                                                    
  Stream #0:1[0x2](und): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)                                     
    Metadata:                                                                                                                           
      creation_time   : 2013-12-16T17:44:42.000000Z                                                                                     
      handler_name    : GPAC ISO Audio Handler                                                                                          
      vendor_id       : [0][0][0][0]                                                                                                                                                                                                                                            
  Stream #0:2[0x3](und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 320 kb/s (default)                                                                                                                                                                          
    Metadata:                                                                                                                                                                                                                                                                   
      creation_time   : 2013-12-16T17:44:42.000000Z                                                                                                                                                                                                                             
      handler_name    : GPAC ISO Audio Handler                                                                                                                                                                                                                                  
      vendor_id       : [0][0][0][0]                                                                                                                                                                                                                                            
    Side data:                                                                                                                                                                                                                                                                  
      audio service type: main                                                                                                                                                                                                                                                  
Stream mapping:                                                                                                                                                                                                                                                                 
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_nvenc))                                                                                                                                                                                                                      
  Stream #0:2 -> #0:1 (copy)                                                                                                                                                                                                                                                    
Press [q] to stop, [?] for help                                                                                                                                                                                                                                                 
[h264 @ 0x55bd878c2d80] Cannot load libnvcuvid.so.1                                                                                                                                                                                                                             
[h264 @ 0x55bd878c2d80] Failed loading nvcuvid.                                                                                                                                                                                                                                 
[h264 @ 0x55bd878c2d80] Failed setup for format cuda: hwaccel initialisation returned error.                                                                                                                                                                                    
[h264_nvenc @ 0x55bd86f5e680] Cannot load libnvidia-encode.so.1                                                                                                                                                                                                                 
[h264_nvenc @ 0x55bd86f5e680] The minimum required Nvidia driver for nvenc is 520.56.06 or newer                                                                                                                                                                                
[vost#0:0/h264_nvenc @ 0x55bd86f5e1c0] Error initializing output stream: Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed! 


    


    Output from nvidia-smi :

    


    +-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.05    Driver Version: 525.85.05    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
| 27%   43C    P8    12W / 250W |    500MiB / 11264MiB |      1%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+


    


    The shared libraries are not part of the docker image. What are my options to add them ?

    


  • Generating DASH manifest with ffmpeg works in Docker exec shell but not in os.exec golang

    22 février 2023, par Inquisitor

    I am trying to generate a DASH manifest with ffmpeg using this command

    


    /usr/bin/ffmpeg -f webm_dash_manifest -i ./480.webm -f webm_dash_manifest -i ./audio.webm -c copy -map 0:0 -map 1:0 -y -f webm_dash_manifest -adaptation_sets "id=0,streams=0 id=1,streams=1" ./manifest.mpd -loglevel repeat+level+verbose


    


    I run this in go, in a docker container as shown :

    


    func runFFmpeg(arguments []string) {
    arguments = append(arguments, "-loglevel", "repeat+level+verbose")
    cmd := exec.Command("ffmpeg", arguments...)

    fmt.Printf("cmd: %v\n", cmd)

    var out bytes.Buffer
    var stderr bytes.Buffer
    cmd.Stdout = &out
    cmd.Stderr = &stderr
    err := cmd.Run()

    if err != nil {
        log.Println(err)
        log.Println(stderr.String())
    }
}
runFFmpeg([]string{"-f", "webm_dash_manifest", "-i", "./480.webm", "-f", "webm_dash_manifest", "-i", "./audio.webm", "-c", "copy", "-map", "0:0", "-map", "1:0", "-y", "-f", "webm_dash_manifest", "-adaptation_sets", "\"id=0,streams=0 id=1,streams=1\"", "./manifest.mpd"})


    


    But I get this output :

    


     cmd: /usr/bin/ffmpeg -f webm_dash_manifest -i ./480.webm -f webm_dash_manifest -i ./audio.webm -c copy -map 0:0 -map 1:0 -y -copy_unknown -f webm_dash_manifest -adaptation_sets "id=0,streams=0 id=1,streams=1" ./manifest.mpd -loglevel repeat+level+verbose
 2023/02/22 04:45:17 exit status 1
 2023/02/22 04:45:17 [info] ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
 [info]   built with gcc 12.2.1 (Alpine 12.2.1_git20220924-r3) 20220924
 [info]   configuration: --prefix=/usr --enable-avfilter --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libpulse --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-libdav1d --enable-lto --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --enable-librist --enable-libsrt --enable-libssh --enable-libvidstab --disable-stripping --disable-static --disable-librtmp --disable-lzma --enable-libaom --enable-libopus --enable-libsoxr --enable-libwebp --enable-vaapi --enable-vdpau --enable-vulkan --enable-libdrm --enable-libzmq --optflags=-O2 --disable-debug --enable-libsvtav1
 [info]   libavutil      57. 28.100 / 57. 28.100
 [info]   libavcodec     59. 37.100 / 59. 37.100
 [info]   libavformat    59. 27.100 / 59. 27.100
 [info]   libavdevice    59.  7.100 / 59.  7.100
 [info]   libavfilter     8. 44.100 /  8. 44.100
 [info]   libswscale      6.  7.100 /  6.  7.100
 [info]   libswresample   4.  7.100 /  4.  7.100
 [info]   libpostproc    56.  6.100 / 56.  6.100
 [webm_dash_manifest @ 0x7fcec2836100] [warning] Could not find codec parameters for stream 0 (Video: vp9, 1 reference frame, none(tv, progressive, left), 640x480): unspecified pixel format
 Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
 [info] Input #0, webm_dash_manifest, from './480.webm':
 [info]   Metadata:
 [info]     title           : Big Buck Bunny, Sunflower version
 [info]     GENRE           : Animation
 [info]     MAJOR_BRAND     : isom
 [info]     MINOR_VERSION   : 1
 [info]     COMPATIBLE_BRANDS: isomavc1
 [info]     COMPOSER        : Sacha Goedegebure
 [info]     ARTIST          : Blender Foundation 2008, Janus Bager Kristensen 2013
 [info]     COMMENT         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
 [info]     ENCODER         : Lavf59.27.100
 [info]   Duration: 00:10:34.60, bitrate: 352 kb/s
 [info]   Stream #0:0: Video: vp9, 1 reference frame, none(tv, progressive, left), 640x480, SAR 853:640 DAR 853:480, 30 fps, 30 tbr, 1k tbn (default)
 [info]     Metadata:
 [info]       HANDLER_NAME    : GPAC ISO Video Handler
 [info]       VENDOR_ID       : [0][0][0][0]
 [info]       ENCODER         : Lavc59.37.100 libvpx-vp9
 [info]       DURATION        : 00:10:34.600000000
 [info]       webm_dash_manifest_duration: 634600
 [info]       webm_dash_manifest_initialization_range: 889
 [info]       webm_dash_manifest_file_name: 480.webm
 [info]       webm_dash_manifest_track_number: 1
 [info]       webm_dash_manifest_cues_start: 27924928
 [info]       webm_dash_manifest_cues_end: 27927508
 [info]       webm_dash_manifest_bandwidth: 738287
 [info]       webm_dash_manifest_cluster_keyframe: 1
 [info]       webm_dash_manifest_cue_timestamps: 67,5067,10067,15067,20067,25067,30067,35067,40067,45067,50067,55067,60067,65067,70067,75067,80067,85067,90067,95067,100067,105067,110067,115067,120067,125067,130067,135067,140067,145067,150067,155067,160067,165067,170067,175067,180067,185067,190067,195067
 [info] Input #1, webm_dash_manifest, from './audio.webm':
 [info]   Metadata:
 [info]     title           : Big Buck Bunny, Sunflower version
 [info]     GENRE           : Animation
 [info]     MAJOR_BRAND     : isom
 [info]     MINOR_VERSION   : 1
 [info]     COMPATIBLE_BRANDS: isomavc1
 [info]     COMPOSER        : Sacha Goedegebure
 [info]     ARTIST          : Blender Foundation 2008, Janus Bager Kristensen 2013
 [info]     COMMENT         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
 [info]     ENCODER         : Lavf59.27.100
 [info]   Duration: 00:05:35.91, bitrate: 120 kb/s
 [info]   Stream #1:0: Audio: vorbis, 48000 Hz, 5.1, fltp (default)
 [info]     Metadata:
 [info]       HANDLER_NAME    : GPAC ISO Audio Handler
 [info]       VENDOR_ID       : [0][0][0][0]
 [info]       ENCODER         : Lavc59.37.100 libvorbis
 [info]       DURATION        : 00:05:35.907000000
 [info]       webm_dash_manifest_duration: 335907
 [info]       webm_dash_manifest_initialization_range: 7411
 [info]       webm_dash_manifest_file_name: audio.webm
 [info]       webm_dash_manifest_track_number: 1
 [info]       webm_dash_manifest_cues_start: 5047497
 [info]       webm_dash_manifest_cues_end: 5048846
 [info]       webm_dash_manifest_bandwidth: 126994
 [info]       webm_dash_manifest_cluster_keyframe: 1
 [info]       webm_dash_manifest_cue_timestamps: 0,4986,9980,14962,19959,24956,29946,34930,39916,44911,49908,54892,59874,64868,69858,74858,79855,84847,89834,94834,99826,104826,109826,114818,119812,124799,129780,134770,139756,144743,149727,154719,159714,164706,169698,174687,179668,184667,189658,194650,19
 HERE'S THE ERROR --> [error] Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted
 [error] Error initializing output stream 0:1 -- 
 [info] Stream mapping:
 [info]   Stream #0:0 -> #0:0 (copy)
 [info]   Stream #1:0 -> #0:1 (copy)
 [error] 
 [AVIOContext @ 0x7fcebe23a840] [verbose] Statistics: 0 bytes written, 0 seeks, 0 writeouts
 [AVIOContext @ 0x7fcebe23a980] [verbose] Statistics: 5940786 bytes read, 133 seeks
 [AVIOContext @ 0x7fcebe23acc0] [verbose] Statistics: 2260628 bytes read, 72 seeks


    


    It works perfectly however if I run it within docker exec (exec into the container and run the command in bash). Also, note in the last output that the command is well formed when I print it out from go. File permissions are also not the problem since the command to create the video variants works with os.exec i.e

    


    runFFmpeg([]string{"-i", originalFilePath, "-c:v", "libvpx-vp9", "-keyint_min", "150", "-g", "150", "-tile-columns", "4", "-frame-parallel", "1", "-f", "webm", "-dash", "1", "-an", "-vf", fmt.Sprintf("scale=%s:%s", width, height), "-b:v", bitRate, "-dash", "1", "-y", destinationFilePath})


    


  • Homepage Design : Best Practices & Examples

    5 octobre 2022, par Erin

    Did you know users spend about 50 milliseconds deciding if they like your website’s homepage design or not ?

    With billions of websites and scrolling often done on the go, you have to make a strong first impression because the chances for a once-over are slim. 

    Learn how to design magnetically-appealing website homepages from this guide. 

    What is a homepage in web design ?

    Homepage is the front page of your website — a destination where users land when typing your website URL address. It’s located at the root of the website’s domain (e.g., matomo.org) or a subdomain (e.g., university.webflow.com).

    Design-wise a homepage has two goals :

    • Explain the purpose of the website and present overview information 
    • Provide top-level navigation to lower-level web pages (e.g., blog, sales pages, etc.) 

    Separately, a homepage is also the place where users will return each time they’ll feel stuck and want to start anew. Thus, your homepage website design should provide obvious navigation paths to other website areas.

    6 Must-Know Website Homepage Design Best Practices

    Behind every winning homepage design stands a detailed customer journey map. 

    A customer journey is a schematic representation of how site visitors will move around your website to accomplish various goals. 

    A good customer journey map lists different actions a user will take after landing on your website (e.g., browse product pages, save items to a wishlist, register an account, etc.) — and it does so for different audience segments

    Your homepage design should help users move from the first step on their journey (e.g., learning about your website) to the final one (e.g., converting to a paid customer). At the same time, your homepage should serve the needs of both new and returning visitors — prospects who may be at a different stage of their journey (e.g., consideration). 

    With the above in mind, let’s take a look at several website homepage design ideas and the reasons why they work. 

    1. Use Familiar Design Elements

    Whether you’re designing a new website or refreshing an old one, it’s always tempting to go “out of the box” — use horizontal scrolling, skip header navigation or include arty animations. 

    Bold design choices work for some brands, mainly those who aren’t using their website as a primary sales channel (e.g., luxury brands). 

    But unfamiliar design patterns can also intimidate a lot of shoppers. In one observational study, people were asked to guess where specific content (e.g., information on international calls) would be placed on a telecom website. 75% of users picked the same location. This means two things :

    • People already have expectations of where specific website information is typically placed 
    • Yet, one in four users struggles to identify the right areas even within standard website layouts

    So why make the job harder for them ? As UX consultant Peter Ramsey rightfully notes : 

    The truth is : designing the best experience isn’t about being unique, it’s about being easy. And guess what feels really easy to use ? Things that feel familiar.

    Therefore, analyse other homepage layout designs in your industry. Pay attention to the number and type of homepage screens and approaches to designing header/footer navigation. 

    Take some of those ideas as your “base”. Then make your homepage design on-brand with unique typography, icons, visuals and other graphic design elements.

    Take a cue from ICAM — a steel manufacturing company. Their niche isn’t typically exciting. Yet, their homepage design stops you in your tracks and tinkers your curiosity to discover more (even if you aren’t shopping for metalware). 

    ICAM homepage example

    The interesting part is that ICAM uses a rather standard homepage layout. You have a hero image in the first screen, followed by a multi-column layout of their industry expertise and an overview of manufacturers. 

    But this homepage design feels fresh because the company uses plenty of white space, bold typography and vibrant visuals. Also, they delay the creative twist (horizontal scrolling area) to the bottom of the homepage, meaning that it’s less likely to intimidate less confident web users. 

    2. Decide On The Optimal Homepage Layout 

    In web design, a homepage layout is your approach to visually organising different information on the screen. 

    Observant folks will notice that good homepage designs often have the same layout. For example, include a split-view “hero” screen with a call to action on the left and visuals (photo or video) on the left. 

    Ecommerce Homepage Design Example
    SOURCE : shopify.com / SOURCE : squareup.com

    The reason for using similar layouts for website homepage design isn’t a lack of creativity. On the contrary, some layouts have become the “best practice” because they :

    • Offer a great user experience (UX) and don’t confuse first-time visitors 
    • Feel familiar and create a pleasurable sense of deja-vu among users 
    • Have proven to drive higher conversion rates through benchmarks and tests 

    Popular types of website homepage layouts : 

    • Single column – a classic option of presenting main content in a single, vertical column. Good choice for blogs, personal websites and simple corporate sites. 
    • Split screen layout divides the page in two equal areas with different information present. Works best for Ecommerce homepages (e.g., to separate different types of garments) or SaaS websites, offering two product types (e.g., a free personal product version and a business edition). 
    • Asymmetrical layout assumes dividing your homepage into areas of different size and styles. Asymmetry helps create specific focal points for users to draw their attention to the most prominent information. 
    • Grid of cards layout helps present a lot of information in a more digestible manner by breaking down bigger bulks of text into smaller cards — a graphic element, featuring an image and some texts. By tapping a card, users can then access extra content. 
    • Boxes are visually similar to cards, but can be of varying shape. For example, you can have a bigger header-width box area, followed by four smaller boxes within it. Both of these website layouts work well for Ecommerce. 
    • Featured image layout gives visuals (photos and videos) the most prominent placement on the homepage, with texts and other graphic design elements serving a secondary purpose. 
    • F-pattern layout is based on the standard eye movement most people have when reading content on the website. Eye tracking studies found that we usually pay the most attention to information atop of the page (header area), then scan horizontally before dripping down to the next vertical line until we find content that captures our attention. 

    User behaviour analytics (UBA) tools are the best way to determine what type of layout will work for your homepage. 

    For example, you can use Matomo Heatmaps and Session Recording to observe how users navigate your homepage, which areas or links they click and what blockers they face during navigation.

    Matomo Heatmaps

    Matomo can capture accurate behavioural insights because we track relative positions to elements within your websites. This approach allows us to provide accurate data for users with different browsers, operating systems, zoom-in levels and fonts. 

    The best part ? You can collect behavioural data from up to 100 different user segments to understand how different audience cohorts engage with your product.

    3. Include a One-Sentence Tagline

    A tagline is a one-line summary of what your company does and what its unique sales proposition (USP) is. It should be short, catchy and distinguish you from competitors.

    A modern homepage design practice is to include a call to action in the first screen. Why ? Because you then instantly communicate or remind of your value proposition to every user — and provide them with an easy way to convert whenever they are ready to do business with you. 

    Here’s how three companies with a similar product, a project management app, differentiate themselves through homepage taglines. 

    Monday.com positions itself as an operating system (OS) for work. 

    monday.com homepage

    Basecamp emphasises its product simplicity and openly says that they are different from other overly-complex software. 

    Asana, in turn, addresses a familiar user pain point (siloed communication) that it attempts to fix with its product. 

    asana.com homepage

    Coming up with the perfect homepage tagline is a big task. You may have plenty of ideas, but little confidence in what version will stick. 

    The best approach ? Let a series of A/B tests decide. You can test a roaster of homepage slogans on a rotating bi-weekly/monthly schedule and track how copy changes affect conversion rates. 

    With Matomo A/B test feature, you can create, track and manage all experiments straight from your web analytics app — and get consolidated reports on total page visitors and conversion rates per each tested variation. 

    Matomo A/B Test feature

    Beyond slogans, you can also run A/B tests to validate submission form placements, button texts or the entire page layout. 

    For instance, you can benchmark how your new homepage design performs compared to the old version with a subset of users before making it publicly available. 

    4. Highlight The Main Tasks For The User

    Though casual browsing is a thing, most of us head to specific websites with a clear agenda — find information, compare prices, obtain services, etc. 

    Thus, your homepage should provide clear starting points for users’ main tasks (those you’ve also identified as conversion goals on your customer journey maps !).

    These tasks can include : 

    • Account registration 
    • Product demo request 
    • Newsletter sign-up 

    The best website homepage designs organically guide users through a set number of common tasks, one screen at a time. 

    Let’s analyse Sable homepage design. The company offers a no-fee bank account and a credit card product for soon-to-be US transplants. The main task a user has : Decide if they want to try Sable and hopefully open an account with them. 

    Sable Example Homepage

    This mono-purpose page focuses on persuading a prospect that Sable is right for them. 

    The first screen hosts the main CTA with an animated drop-down arrow to keep scrolling. This is likely aimed at first-time visitors that just landed on the page from an online ad or social media post. 

    The second screen serves the main pitch — no-fee, no-hassle access to a US banking account that also helps you build your credit score. 

    The third screen encourages users to learn more about Sable Credit — the flagship product. For the sceptics, the fourth screen offers several more reasons to sign up for the credit product. 

    Then Sable moves on to pitching its second offering — a no-fee debit card with a cashback. Once again, the follow-up screen sweetens the deal by bringing up other perks (higher cashback for popular services like Amazon) and overcoming objections (no SSN required and multi-language support available). 

    The sequence ends with side-by-side product comparison and some extra social proof. 

    In Sable’s case, each homepage screen has a clear purpose and is designed to facilitate one specific user action — account opening. 

    For multi-product companies, the above strategy works great for designing individual landing pages. 

    5. Design Proper Navigation Paths

    All websites have two areas reserved for navigation : 

    • Header menu 
    • Footer menu 

    Designing an effective header menu is more important since it’s the primary tool visitors will use to discover other pages. 

    Your header menu can be :

    • Sticky — always visible as the person keeps scrolling. 
    • Static — e.g., a hidden drop-down menu. 

    If you go for a static header and have a longer homepage layout (e.g., 5+ screens), you also need to add extra navigation elements somewhere mid-page. Or else users might not figure out where to go next and merely bounce off. 

    You can do this by : 

    • Promoting other areas of your website (e.g., sub-category pages) by linking out to them 
    • Adding a carousel of “recent posts”, “recommended reads” and “latest products” 
    • Using buttons and CTAs to direct users towards specific actions (e.g., account registration) or assets (free eBook)

    For instance, cosmetics brand Typology doesn’t have a sticky header on the homepage. Instead, they prompt discovery by promoting different product categories (best sellers, bundles, latest arrivals) and their free skin diagnostic quiz — a great engagement mechanism to retain first time users.

    Typology Homepage Example

    Once the user scrolls down to the bottom of the page, they should have an extra set of navigational options — aka footer links. 

    Again, these help steer the visitor towards discovering more content without scrolling back up to the top of your homepage. 

    Nielsen Norman Group says that people mostly use footers as :

    • A second chance to be convinced — after reading the entire homepage, the user is ready to give your product a go.
    • The last resort for hard-to-find content that’s not displayed in global header navigation (e.g., Terms and Conditions or shipping information pages).

    As a rule of thumb, you should designate the following information to the footer : 

    • Utility links (Contact page, Terms & Conditions, Privacy Policy, etc.) 
    • Secondary-task links (e.g., Career page, Investor Details, Media contacts, etc.) 
    • Brands within the organisation (if you operate several) 
    • Customer engagement link (email newsletters and social media buttons)

    The key is to keep the area compact — not more than one standard user screen resolution of 1280×720. 

    6. Show Users What’s Clickable (Or Not) 

    A homepage invites your site visitors on a journey. But if they don’t know which elements to click, they aren’t going to get anywhere.

    Good homepage design makes it obvious which page elements are clickable, i.e., can take the user to a new page or another segment of the homepage. 

    Here are several must-know homepage design tips for better on-page navigation : 

    • Use colour and underline or bold to highlight clickable words. Alternatively, you can change the browser cursor from a standard arrow into another element (e.g., a larger dot or a pointy finger) to indicate when the cursor hovers over a clickable website area. 
    • Make descriptive button texts that imply what will happen when a user clicks the page. Instead of using abstract and generic button texts like “see more” or “learn more”, try a more vibrant language like “dive in” for clicking through to a spa page. 
    • Use a unified hover area to show how different homepage design elements represent a single path or multiple navigation paths. When multiple items are encapsulated in one visual element (e.g., a box), users may be reluctant to click the image because they aren’t sure if it’s one large hit area leading to a single page or if there are multiple hit areas, leading to different pages. 

    Homepage of BEAUSiTE — a whimsical hotel in the Swiss Alps – embodies all of the above design principles. They change the cursor style whenever you scroll into a hit area, use emotive and creative micro-copy for all button texts and clearly distinguish between different homepage elements.

    Beausite Homepage Example

    How to Make Your Homepage Design Even More Impactful ? 

    Website homepage design is roughly 20% of pure design work and 80% of behind-the-scenes research. 

    To design a high-performing homepage you need to have data-backed answers to the following questions : 

    • Who are your primary and secondary target audiences ? 
    • Which tasks (1 to 4) you’d want to help them solve through your homepage ?

    You can get the answers to both questions from your web analytics data by using audience segmentation and page transition (behaviour flow) reports in Matomo. 

    Based on these, you can determine common user journeys and tasks people look to accomplish when visiting your website. Next, you can collect even more data with UBA tools  like heatmaps and user session recordings. Then translated the observed patterns into working homepage design ideas. 

    Improve your homepage design and conversion rates with Matomo. Start your free 21-day trial now !