First the easy part:
\begin{align}
\frac d {dx} b^x & = \lim_{h\to 0} \frac{b^{x+h} - b^x} h \\[10pt]
& = \lim_{h\to0} \left( b^x\ \frac{b^h - 1} h \right) & & (\text{just algebra}) \\[10pt]
& = b^x \lim_{h\to0} \frac{b^h - 1} h & & (\text{because $b^x$ does not change as $h$ changes}) \\[10pt]
& = (b^x\cdot\text{constant}). & & (\text{The limit is a “constant'' because it} \\
& & & \phantom{({}} \text{ does not change as $x$ changes.})
\end{align}
Next we need this fact:
$$
\text{If } b=e\approx 2.71828\ldots \text{then the “constant'' is $1$; otherwise it is some other number.}
$$
How do we know that? More on that below.
Hence we have $\dfrac d{dx} e^x = e^x\cdot 1$.
What then is the “constant” when $b\ne e$? Here one can use the chain rule:
\begin{align}
\frac d {dx} b^x = \frac d {dx} e^{x\log_e b} = e^{x\log_e b} \cdot \frac d{dx} (x\log_e b) = b^x \frac d{dx} (x\log_e b) = \cdots.
\end{align}
And
$$
\frac d{dx} (x\log_e b) = \log_e b
$$
for the same reason that $\dfrac d {dx} (x\cdot5) = 5$, i.e. $\log_e b$ is a constant, meaning it does not change as $x$ changes.
The proof of the chain rule involves a slight subtlety that does not come up in most of the basic proofs involving derivatives. I've posted on that here before.
One can show that this "natural" base, $e$, must be more than $2$ by observing that $\dfrac{2^1 - 2^0}{1-0} = 1$, so $2^x$ must be changing more slowly than $1$ when $x=0$, and that the natural base must be less than $4$ because $\dfrac{4^0 - 4^{-1/2}}{0 - (-1/2)} =1$, so $4^x$ must be changing at a rate faster than $1$ when $x=0$. So we've narrowed it down to somewhere between $2$ and $4$. Narrowing it down to $2.71828\ldots$ by this method is inefficient; but other more efficient methods exist.