Indeed, in non-relativistic QM spin is just something you put on top of the usual Heisenberg algebra.
To understand it better you can analyze the unitary ray representations of the Galilei group. It turns out that you get only a physically interpretable quantum mechanics when you use a central extension of the classical Galilei group with mass being a central charge of the corresponding Lie algebra. Also instead of the SO(3) rotation subgroup you have to use the covering group SU(2). Then you look for the unitary irreducible representations of this "quantum Galilei group". It turns out that as a complete set of compatible observables you can use the three momentum components and the spin-##z## component. The spin ##s \in \{0,1/2,1,\ldots \}## defines the representation of the spatial rotations in the subspace with ##\vec{p}=0## (the socalled "little group"). The irrep. is then characterized by the value of the mass ##m>0## as a central charge and the spin quantum number ##s##. Total angular momentum turns then out to be ##\vec{J}=\vec{L}+\vec{S}##, where ##\vec{L}## is the usual orbital angular-momentum operator, and the position operator can always be constructed from the Galilei-boost generators in the obvious way, and spin is simply commuting with ##\vec{x}## and ##\vec{p}##.
In the relativistic case there are more constraints to fulfill when constructing the observable algebra out of the symmetry group of spacetime, i.e., the proper orthochronous Poincare group. It turns out that in contradistinction to the Galilei group the Poincare group's Lie algebra does not have non-trivial central charges, i.e., without loss of generality you can simply look for the unitary irreps of the Poincare group, and any such irrep. is first of all characterized by the Casimir operators of the group representation, and that are the ##p_{\mu} p^{\mu}=m^2## (using natural units with ##c=\hbar=1##) and the four-product square of the socalled Pauli-Ljubanski vector. The additional constraints come from the demand to find causal realizations of the dynamics of quantum systems, and as it turns out that can in the most simple way be realized in the quantum-field theoretical formulation. The "first-quantization formalism" which works in non-relativistic QM does not work here, because it turns out that there is no way to localize a single particle but in trying to do so due to the Heisenberg uncertainty relation for position and momentum, for localizing a particle better and better you have to confine it in a box, and the more the momentum must fluctuate. Squeezing the particle in a box with dimensions close to the particle's Compton wavelength usually particle anti-particle pairs are created, and you cannot ensure that you have only exactly one particle in the box (see Coleman's lectures on quantum field theory for a masterful explanation of this).
To construct the QFT now you can also analyze the unitary irreps of the Poincare group. In addition you can demand the microcausality constraint, i.e., that the local observables (like energy, momentum, and angular-momentum densities) commute at space-like separation of their arguments, which is achieved (at least for the free fields) when the fields and their derivatives commute (bosons) or anti-commute (fermions) at space-like separations of their arguments. This restricts (at least for the interacting case) the physically meaningful representations to either ##m^2>0## ("massive particles") or ##m^2=0## ("massless quanta").
For ##m^2>0## you can use ##\vec{p}=0## as the "standard momentum", and then in the corresponding subspace the Pauli-Ljubanski vector components obey the commutation relations of angular-momentum components (modulo a normalization). So in this case the modulus squared defines the spin of the particles as in the non-relativistic case, i.e., and the Pauli-Ljubanski components are the generators of the corresponding "little group", which keeps the momentum at ##\vec{p}=0##, which of course is a representation of the rotation group with ##s \in \{0,1/2,1,\ldots \}##. Observable is, however, only the total angular momentum, and the splitting in orbital and spin angular momentum components turns out to be rather arbitrary. In contradistinction to the non-relativistic case, the microcausality constraint and the demand that the energy should be bounded from below (by convention you choose the ground state to refer to ##E=0##, and the corresponding vacuum state is invariant under Poincare transformations) lead to some remarkable conclusions
(a) the field operators must consist of specific superpositions of positive- as well as negative-freuquency energy-momentum eigenmodes. To have positive energies only one needs to use annihilation operators as coefficients of the postive-frequency modes and creation operators for the negative-frequency modes. Thus any quantum field with a given spin and mass ##m^2>0## describes particles and anti-particles, where you can always also have the special case, where the particles and antiparticles are the same ("strictly neutral particles").
(b) The fields for particles with integer spin must be quantized as bosons (i.e., with commutators for the equal-time canonical commutation relations) and those with half-integer spin as fermions (i.e., with anti-commutators for the equal-time canonical "commuation" relations). In contradistinction to the non-relativistic case this empirical finding thus can be derived from the space-time symmetry of Minkowski space and causality and stability constraints.
(c) Any such constructed microcausal ("local") relativistic QFT is invariant under the "grand reflection" CPT, i.e., given any scattering process you get another possible such process when substituting any particle by its anti-particle and doing a spatial reflection as well as using the time-reversed initial and final states. This is also very well confirmed empirically, while it is also confirmed that the weak interaction breaks all other kinds of these "reflection symmetries", i.e., P, T, C, CP, PT, CT.
The other possibility are the massless representations, i.e., those with ##m^2=0##. There you cannot choose ##\vec{p}=0## as the standard momentum but only ##p^{\mu}=(\pm p,0,0,p)##. The little group then turns out to be isomorphic to the symmetry group of the 2D Euclidean affine space, ISO(2), being generated by the SO(2) rotations around the origin and the two translations. The latter have the meaning of "null rotations", i.e., the "rotations" keeping the standard momentum ##(\pm p,0,0,p)## invariant but not the usual rotations around the ##3##-axis. Since there are no particles with "continuous" spin, these null-rotations must be represented trivially and in order to get the usual integer and half-integer representations of the rotations on the entire space spanned by the momentum eigenvectors with ##\vec{p} \neq 0##, the little group is characterized by the "helicity" ##\lambda \in \{0,\pm 1/2,\pm 1, \ldots \}##, generated by the Pauli-Ljubanski-vector component ##W^3## but not by the Casimir operator ##W_{\mu} W^{\mu}##, which is always 0 in these "massless representations". Also here the spin-statistics relation and CPT invariance follows from microcausality and stability constraints.