[proofplan]
We construct the colimit of an arbitrary small diagram $D: J \to \mathcal C$ directly. First form the coproduct of all objects $D(j)$ and the coproduct of one copy of $D(j)$ for every arrow $\alpha: j \to k$ in $J$. The source and target data of the arrows define two morphisms between these coproducts, and their coequalizer imposes exactly the identifications required by the diagram. We then verify the universal property of this coequalizer: cocones out of $D$ correspond uniquely to morphisms out of the constructed object.
[/proofplan]
[step:Build the two coproducts encoding vertices and arrows]
Let $J_0$ denote the set of objects of $J$, and let $J_1$ denote the set of morphisms of $J$. Since $J$ is small, both $J_0$ and $J_1$ are small sets.
For each morphism $\alpha \in J_1$, write
\begin{align*}
\alpha: j \to k
\end{align*}
for its domain object $j \in J_0$ and codomain object $k \in J_0$.
Using the existence of small coproducts in $\mathcal C$, define
\begin{align*}
P := \coprod_{j \in J_0} D(j).
\end{align*}
For each $j \in J_0$, let
\begin{align*}
\iota_j: D(j) \to P
\end{align*}
be the coproduct injection.
Also define
\begin{align*}
Q := \coprod_{\alpha \in J_1} D(\operatorname{dom}\alpha).
\end{align*}
For each arrow $\alpha: j \to k$ in $J$, let
\begin{align*}
\kappa_\alpha: D(j) \to Q
\end{align*}
be the corresponding coproduct injection.
[/step]
[step:Define the parallel morphisms whose coequalizer enforces the diagram relations]
We define two morphisms
\begin{align*}
s,t: Q \to P
\end{align*}
by specifying their composites with every coproduct injection $\kappa_\alpha$.
For an arrow $\alpha: j \to k$ in $J$, define
\begin{align*}
s \circ \kappa_\alpha &= \iota_j,\\
t \circ \kappa_\alpha &= \iota_k \circ D(\alpha).
\end{align*}
These equations determine unique morphisms $s,t:Q \to P$ by the universal property of the coproduct $Q$.
Since $\mathcal C$ has coequalizers, let
\begin{align*}
q: P \to L
\end{align*}
be a coequalizer of $s$ and $t$. Thus
\begin{align*}
q \circ s = q \circ t,
\end{align*}
and $q$ is universal among morphisms $P \to X$ with this property.
[/step]
[step:Construct a cocone from the coequalizer object]
For each object $j \in J_0$, define
\begin{align*}
\lambda_j: D(j) \to L
\end{align*}
by
\begin{align*}
\lambda_j := q \circ \iota_j.
\end{align*}
We verify that $(\lambda_j)_{j \in J_0}$ is a cocone on $D$. Let $\alpha: j \to k$ be a morphism in $J$. Then
\begin{align*}
\lambda_k \circ D(\alpha)
&= q \circ \iota_k \circ D(\alpha)\\
&= q \circ t \circ \kappa_\alpha\\
&= q \circ s \circ \kappa_\alpha\\
&= q \circ \iota_j\\
&= \lambda_j.
\end{align*}
Hence $\lambda_k \circ D(\alpha)=\lambda_j$ for every arrow $\alpha:j\to k$, so $\lambda: D \Rightarrow \Delta L$ is a cocone.
[guided]
The object $P$ contains one formal copy of each object $D(j)$ in the diagram. The object $Q$ contains one formal copy of $D(j)$ for every arrow $\alpha:j\to k$. The two maps $s,t:Q\to P$ record the two points that must be identified in any colimit: an element of $D(j)$ should agree with its image in $D(k)$ under $D(\alpha)$.
For each arrow $\alpha:j\to k$, the map $s$ sends the $\alpha$-summand $D(j)$ of $Q$ into the $j$-summand of $P$:
\begin{align*}
s \circ \kappa_\alpha = \iota_j.
\end{align*}
The map $t$ sends the same element first through $D(\alpha):D(j)\to D(k)$ and then into the $k$-summand of $P$:
\begin{align*}
t \circ \kappa_\alpha = \iota_k \circ D(\alpha).
\end{align*}
The coequalizer $q:P\to L$ imposes precisely the relation $q\circ s=q\circ t$.
Now define $\lambda_j:=q\circ\iota_j$. For an arrow $\alpha:j\to k$, the cocone condition requires
\begin{align*}
\lambda_k \circ D(\alpha)=\lambda_j.
\end{align*}
Using the definitions of $s$ and $t$, we compute
\begin{align*}
\lambda_k \circ D(\alpha)
&= q \circ \iota_k \circ D(\alpha)\\
&= q \circ t \circ \kappa_\alpha\\
&= q \circ s \circ \kappa_\alpha\\
&= q \circ \iota_j\\
&= \lambda_j.
\end{align*}
Thus the coequalizer has exactly forced the compatibility equations required for a cocone.
[/guided]
[/step]
[step:Show that every cocone factors uniquely through the constructed cocone]
Let $X$ be an object of $\mathcal C$, and let
\begin{align*}
\mu_j: D(j) \to X
\end{align*}
for $j \in J_0$ be a cocone on $D$. Thus for every arrow $\alpha:j\to k$ in $J$,
\begin{align*}
\mu_k \circ D(\alpha)=\mu_j.
\end{align*}
By the universal property of the coproduct $P$, there exists a unique morphism
\begin{align*}
u:P\to X
\end{align*}
such that
\begin{align*}
u\circ\iota_j=\mu_j
\end{align*}
for every $j\in J_0$.
We show that $u$ coequalizes $s$ and $t$. It is enough to compare the composites with each coproduct injection $\kappa_\alpha$. Let $\alpha:j\to k$ be an arrow in $J$. Then
\begin{align*}
u\circ s\circ\kappa_\alpha
&= u\circ\iota_j\\
&= \mu_j,
\end{align*}
while
\begin{align*}
u\circ t\circ\kappa_\alpha
&= u\circ\iota_k\circ D(\alpha)\\
&= \mu_k\circ D(\alpha)\\
&= \mu_j.
\end{align*}
Therefore $u\circ s\circ\kappa_\alpha=u\circ t\circ\kappa_\alpha$ for every $\alpha\in J_1$. Since the $\kappa_\alpha$ are coproduct injections for $Q$, this implies
\begin{align*}
u\circ s=u\circ t.
\end{align*}
By the universal property of the coequalizer $q:P\to L$, there exists a unique morphism
\begin{align*}
\overline{u}:L\to X
\end{align*}
such that
\begin{align*}
\overline{u}\circ q=u.
\end{align*}
For each $j\in J_0$,
\begin{align*}
\overline{u}\circ\lambda_j
&=\overline{u}\circ q\circ\iota_j\\
&=u\circ\iota_j\\
&=\mu_j.
\end{align*}
Thus $\overline{u}$ factors the cocone $\mu$ through $\lambda$.
[guided]
We now prove the universal property of the candidate colimit. Start with an arbitrary cocone from $D$ to an object $X$. This means that for each object $j\in J_0$ we have a morphism
\begin{align*}
\mu_j:D(j)\to X,
\end{align*}
and for every arrow $\alpha:j\to k$ in $J$ the compatibility condition is
\begin{align*}
\mu_k\circ D(\alpha)=\mu_j.
\end{align*}
Since $P$ is the coproduct of the objects $D(j)$, the family $(\mu_j)_{j\in J_0}$ determines a unique morphism
\begin{align*}
u:P\to X
\end{align*}
satisfying
\begin{align*}
u\circ\iota_j=\mu_j
\end{align*}
for every $j\in J_0$.
To factor $u$ through the coequalizer $q:P\to L$, we must check that $u$ coequalizes $s$ and $t$. Let $\alpha:j\to k$ be an arrow in $J$. On the $\alpha$-summand of $Q$, the composite through $s$ is
\begin{align*}
u\circ s\circ\kappa_\alpha
&=u\circ\iota_j\\
&=\mu_j.
\end{align*}
The composite through $t$ is
\begin{align*}
u\circ t\circ\kappa_\alpha
&=u\circ\iota_k\circ D(\alpha)\\
&=\mu_k\circ D(\alpha)\\
&=\mu_j,
\end{align*}
where the last equality is exactly the cocone condition for $\mu$ along $\alpha$.
Hence the two composites $u\circ s$ and $u\circ t$ agree on every coproduct summand of $Q$. By the uniqueness clause in the universal property of the coproduct $Q$, this gives
\begin{align*}
u\circ s=u\circ t.
\end{align*}
Therefore the coequalizer property of $q$ gives a unique morphism
\begin{align*}
\overline{u}:L\to X
\end{align*}
with
\begin{align*}
\overline{u}\circ q=u.
\end{align*}
Finally, this morphism has the required effect on the cocone legs:
\begin{align*}
\overline{u}\circ\lambda_j
&=\overline{u}\circ q\circ\iota_j\\
&=u\circ\iota_j\\
&=\mu_j.
\end{align*}
So every cocone from $D$ to $X$ factors through $\lambda$.
[/guided]
[/step]
[step:Prove the factorization is unique and conclude cocompleteness]
Let $v:L\to X$ be any morphism satisfying
\begin{align*}
v\circ\lambda_j=\mu_j
\end{align*}
for every $j\in J_0$. Then for every $j\in J_0$,
\begin{align*}
v\circ q\circ\iota_j
&=v\circ\lambda_j\\
&=\mu_j\\
&=u\circ\iota_j.
\end{align*}
Since the morphisms $\iota_j:D(j)\to P$ are the coproduct injections of $P$, the equality of these composites for every $j\in J_0$ implies
\begin{align*}
v\circ q=u.
\end{align*}
By uniqueness in the universal property of the coequalizer $q$, we obtain
\begin{align*}
v=\overline{u}.
\end{align*}
Thus $(L,(\lambda_j)_{j\in J_0})$ is a colimit of $D$. Since $J$ and $D:J\to\mathcal C$ were arbitrary, every small diagram in $\mathcal C$ has a colimit. Therefore $\mathcal C$ is cocomplete.
[/step]