Just look at the L.H.S of the compressible navier-stokes equation from wiki

$$\rho(\partial_t \vec{u}+\vec{u}\cdot\nabla\vec{u})=...$$

How can I add a vector $$\partial_t \vec{u}$$ and a scalar $$\vec{u}\cdot\nabla\vec{u}$$? That's a scalar product there, right? the gradient of a vector is a vector... so vector dot vector is scalar...

I'm totally confused

The second term is also a vector, although the vector notation (particularly the 'dot product') actually obscures this a bit. The actual meaning is something like "$$\nabla \vec{u}$$ is a tensor, a quantity represented by a matrix that gives the rate of change of each component of $$\vec{u}$$ in each direction of space". That tensor is then "dotted" into the vector velocity and this produces another vector since the whole thing is just a matrix multiplication.

It is simpler to write these things in the compact "index notation" which reads:

$$\vec{u}\cdot \nabla \vec{u} = u_i\partial_i u_j = u_x\partial_x\vec{u}+u_y\partial_y\vec{u}+u_z\partial_z\vec{u}$$

Each term on the RHS of this equation is a vector obtained by doing the appropriate differentiation on each entry of $$\vec{u}$$ and then multiplying by the relevant component.