First of all, we recall the well known notion of semidirect product both for classical algebraic structures (like groups and rings) and for more recent ones (digroups, left skew braces, heaps, trusses). Then we analyse the concept of semidirect product for an arbitrary algebra $A$ in a variety $\cal{V}$ of type~$\cal{F}$. An inner semidirect-product decomposition $A=B \ltimes\omega$ of $A$ consists of a subalgebra $B$ of $A$ and a congruence $\omega$ on $A$ such that $B$ is a set of representatives of the congruence classes of $A$ modulo $\omega$. An outer semidirect product is the restriction to $B$ of a functor from a suitable category $\cal{C}_B$ containing $B$, called the enveloping category of $B$, to the category Set$_*$ of pointed sets.