[proofplan]
Fix a small diagram $D: J \to \mathcal C$. We construct a candidate limit by taking the product of all objects $D(j)$ and then imposing the compatibility equations along every morphism of $J$ by an equalizer. The universal property of the first product identifies maps into it with families of maps into the objects of the diagram, and the equalizer condition is exactly the cone condition. This gives a representing object for cones over $D$, hence a limit.
[/proofplan]
[step:Build the two products that record objectwise data and arrowwise compatibility]
Let $J$ be a small category and let $D: J \to \mathcal C$ be a functor. Since $J$ is small, both $\operatorname{Ob} J$ and $\operatorname{Mor} J$ are sets.
By the hypothesis that $\mathcal C$ has all small products, choose a product
\begin{align*}
P := \prod_{j \in \operatorname{Ob} J} D(j)
\end{align*}
with projection morphisms $\pi_j: P \to D(j)$ for each object $j \in \operatorname{Ob} J$.
Also choose the product
\begin{align*}
Q := \prod_{\alpha: j \to k \in \operatorname{Mor} J} D(k),
\end{align*}
indexed by the morphisms $\alpha: j \to k$ of $J$, where the factor corresponding to $\alpha$ is the object $D(k)$. Let $\rho_\alpha: Q \to D(k)$ denote the projection morphism for the factor indexed by $\alpha: j \to k$.
[/step]
[step:Define the two comparison morphisms from the product universal property]
We define two morphisms $s,t: P \to Q$ by specifying their composites with every projection $\rho_\alpha$ of $Q$.
For each morphism $\alpha: j \to k$ in $J$, define the $\alpha$-component of $s$ by
\begin{align*}
\rho_\alpha \circ s = D(\alpha) \circ \pi_j: P \to D(k),
\end{align*}
and define the $\alpha$-component of $t$ by
\begin{align*}
\rho_\alpha \circ t = \pi_k: P \to D(k).
\end{align*}
The product universal property of $Q$ gives unique morphisms $s,t: P \to Q$ with these component formulas.
[guided]
The object $P$ stores one prospective cone leg into every object $D(j)$. However, a cone is not merely a family of morphisms; the family must be compatible with every arrow of the diagram. The product $Q$ is designed to record, for every arrow $\alpha: j \to k$, the two possible maps into the target object $D(k)$.
For a point of $P$, the morphism $s$ records the result of first going to $D(j)$ and then applying $D(\alpha): D(j) \to D(k)$. This is expressed componentwise by
\begin{align*}
\rho_\alpha \circ s = D(\alpha) \circ \pi_j.
\end{align*}
The morphism $t$ records the direct component going to $D(k)$:
\begin{align*}
\rho_\alpha \circ t = \pi_k.
\end{align*}
Because $Q$ is the product of the objects $D(k)$ indexed by arrows $\alpha: j \to k$, specifying all composites with the projections $\rho_\alpha$ uniquely determines a morphism into $Q$. Hence the two displayed component formulas define unique morphisms $s,t: P \to Q$.
[/guided]
[/step]
[step:Take the equalizer that imposes the cone equations]
Since $\mathcal C$ has equalizers, choose an equalizer of the parallel pair $s,t: P \to Q$:
\begin{align*}
e: L \to P.
\end{align*}
Thus
\begin{align*}
s \circ e = t \circ e,
\end{align*}
and for every object $X \in \mathcal C$ and every morphism $u: X \to P$ satisfying $s \circ u = t \circ u$, there exists a unique morphism $\bar{u}: X \to L$ such that
\begin{align*}
e \circ \bar{u} = u.
\end{align*}
For each object $j \in \operatorname{Ob} J$, define
\begin{align*}
\lambda_j := \pi_j \circ e: L \to D(j).
\end{align*}
[/step]
[step:Verify that the equalizer projections form a cone over the diagram]
We prove that the family $(\lambda_j)_{j \in \operatorname{Ob} J}$ is a cone from $L$ to $D$. Let $\alpha: j \to k$ be a morphism in $J$. Since $s \circ e = t \circ e$, composing with the projection $\rho_\alpha: Q \to D(k)$ gives
\begin{align*}
D(\alpha) \circ \lambda_j
&= D(\alpha) \circ \pi_j \circ e \\
&= \rho_\alpha \circ s \circ e \\
&= \rho_\alpha \circ t \circ e \\
&= \pi_k \circ e \\
&= \lambda_k.
\end{align*}
Therefore the morphisms $\lambda_j: L \to D(j)$ satisfy the cone compatibility equation for every morphism $\alpha: j \to k$ in $J$.
[/step]
[step:Show that every cone factors uniquely through the equalizer]
Let $X \in \mathcal C$ be an object, and let $(x_j: X \to D(j))_{j \in \operatorname{Ob} J}$ be a cone from $X$ to $D$. Thus for every morphism $\alpha: j \to k$ in $J$,
\begin{align*}
D(\alpha) \circ x_j = x_k.
\end{align*}
By the product universal property of $P$, there exists a unique morphism $u: X \to P$ such that
\begin{align*}
\pi_j \circ u = x_j
\end{align*}
for every $j \in \operatorname{Ob} J$. We show that $u$ equalizes $s$ and $t$. For every morphism $\alpha: j \to k$ in $J$,
\begin{align*}
\rho_\alpha \circ s \circ u
&= D(\alpha) \circ \pi_j \circ u \\
&= D(\alpha) \circ x_j \\
&= x_k \\
&= \pi_k \circ u \\
&= \rho_\alpha \circ t \circ u.
\end{align*}
Since the projections $\rho_\alpha$ jointly determine morphisms into the product $Q$, we have $s \circ u = t \circ u$.
By the equalizer universal property, there exists a unique morphism $\bar{u}: X \to L$ such that
\begin{align*}
e \circ \bar{u} = u.
\end{align*}
For every $j \in \operatorname{Ob} J$,
\begin{align*}
\lambda_j \circ \bar{u}
&= \pi_j \circ e \circ \bar{u} \\
&= \pi_j \circ u \\
&= x_j.
\end{align*}
[guided]
Start with an arbitrary cone from an object $X$ to the diagram $D$. This means we are given a family of morphisms $x_j: X \to D(j)$, one for each object $j$ of $J$, satisfying the compatibility condition
\begin{align*}
D(\alpha) \circ x_j = x_k
\end{align*}
for every arrow $\alpha: j \to k$.
The product $P = \prod_{j \in \operatorname{Ob} J} D(j)$ converts this family into a single morphism. By the universal property of $P$, there is a unique morphism $u: X \to P$ whose $j$-component is $x_j$:
\begin{align*}
\pi_j \circ u = x_j.
\end{align*}
Now we check that $u$ lands in the equalizer. The two composites $s \circ u$ and $t \circ u$ are morphisms $X \to Q$. To prove they are equal, it suffices to compare their composites with every projection $\rho_\alpha: Q \to D(k)$, because the projections of a product jointly determine morphisms into the product. For an arrow $\alpha: j \to k$,
\begin{align*}
\rho_\alpha \circ s \circ u
&= D(\alpha) \circ \pi_j \circ u \\
&= D(\alpha) \circ x_j \\
&= x_k \\
&= \pi_k \circ u \\
&= \rho_\alpha \circ t \circ u.
\end{align*}
The middle equality is exactly the cone condition. Hence $s \circ u = t \circ u$.
Since $e: L \to P$ is the equalizer of $s$ and $t$, the morphism $u: X \to P$ factors uniquely through $e$. Thus there is a unique morphism $\bar{u}: X \to L$ such that
\begin{align*}
e \circ \bar{u} = u.
\end{align*}
Finally, this factorization recovers the original cone legs:
\begin{align*}
\lambda_j \circ \bar{u}
&= \pi_j \circ e \circ \bar{u} \\
&= \pi_j \circ u \\
&= x_j.
\end{align*}
So every cone from $X$ to $D$ factors through the cone $(\lambda_j)$ on $L$.
[/guided]
[/step]
[step:Prove uniqueness of the factorization and conclude that the constructed cone is limiting]
It remains to prove uniqueness as a cone factorization. Suppose $v: X \to L$ is a morphism satisfying
\begin{align*}
\lambda_j \circ v = x_j
\end{align*}
for every $j \in \operatorname{Ob} J$. Then
\begin{align*}
\pi_j \circ e \circ v = x_j = \pi_j \circ u
\end{align*}
for every $j \in \operatorname{Ob} J$. By the uniqueness part of the product universal property of $P$, this implies
\begin{align*}
e \circ v = u.
\end{align*}
But the equalizer universal property gives a unique morphism $X \to L$ whose composite with $e$ is $u$, so $v = \bar{u}$.
Thus the cone $(\lambda_j: L \to D(j))_{j \in \operatorname{Ob} J}$ is terminal among cones over $D$. Hence $L$ is a limit of $D$. Since $J$ and $D: J \to \mathcal C$ were arbitrary small diagrams, every small diagram in $\mathcal C$ has a limit. Therefore $\mathcal C$ is complete.
[/step]