diff --git a/src/draw.ts b/src/draw.ts
index 3564214..b28845d 100644
--- a/src/draw.ts
+++ b/src/draw.ts
@@ -1,5 +1,43 @@
 import { DominionCard } from "./types.ts";
 
+const imageCache: Record<string, HTMLImageElement> = {};
+export const loadImage = (
+	key: string,
+	src: string
+): Promise<HTMLImageElement> => {
+	return new Promise((resolve) => {
+		if (key in imageCache && imageCache[key]) {
+			resolve(imageCache[key]);
+		}
+		const img = new Image();
+		img.onload = () => {
+			imageCache[key] = img;
+			resolve(img);
+		};
+		img.src = src;
+	});
+};
+
+const imageList = [
+	{
+		key: "card",
+		src: "/assets/CardColorOne.png",
+	},
+];
+
+for (const imageInfo of imageList) {
+	const { key, src } = imageInfo;
+	await loadImage(key, src);
+}
+
+export const getImage = (key: string) => {
+	const image = imageCache[key];
+	if (!image) {
+		throw Error(`Tried to get an invalid image ${key}`);
+	}
+	return image;
+};
+
 export const drawCard = (
 	context: CanvasRenderingContext2D,
 	card: DominionCard
@@ -19,7 +57,7 @@ const drawStandardCard = async (
 	const h = context.canvas.height;
 	context.save();
 	context.fillStyle = "brown";
-	context.fillRect(0, 0, w, h);
+	context.drawImage(getImage("card"), 0, 0);
 	context.restore();
 };
 
diff --git a/src/static/assets/BaseCardBrown.png b/src/static/assets/BaseCardBrown.png
new file mode 100644
index 0000000..27fe253
Binary files /dev/null and b/src/static/assets/BaseCardBrown.png differ
diff --git a/src/static/assets/BaseCardColorOne.png b/src/static/assets/BaseCardColorOne.png
new file mode 100644
index 0000000..466e694
Binary files /dev/null and b/src/static/assets/BaseCardColorOne.png differ
diff --git a/src/static/assets/BaseCardGray.png b/src/static/assets/BaseCardGray.png
new file mode 100644
index 0000000..468bd4b
Binary files /dev/null and b/src/static/assets/BaseCardGray.png differ
diff --git a/src/static/assets/BaseCardIcon.png b/src/static/assets/BaseCardIcon.png
new file mode 100644
index 0000000..0524d8c
Binary files /dev/null and b/src/static/assets/BaseCardIcon.png differ
diff --git a/src/static/assets/CardBrown.png b/src/static/assets/CardBrown.png
new file mode 100644
index 0000000..944e861
Binary files /dev/null and b/src/static/assets/CardBrown.png differ
diff --git a/src/static/assets/CardColorOne.png b/src/static/assets/CardColorOne.png
new file mode 100644
index 0000000..0215d90
Binary files /dev/null and b/src/static/assets/CardColorOne.png differ
diff --git a/src/static/assets/CardColorThree.png b/src/static/assets/CardColorThree.png
new file mode 100644
index 0000000..4cdb8a7
Binary files /dev/null and b/src/static/assets/CardColorThree.png differ
diff --git a/src/static/assets/CardColorTwo.png b/src/static/assets/CardColorTwo.png
new file mode 100644
index 0000000..08d36a6
Binary files /dev/null and b/src/static/assets/CardColorTwo.png differ
diff --git a/src/static/assets/CardColorTwoBig.png b/src/static/assets/CardColorTwoBig.png
new file mode 100644
index 0000000..0d28ad3
Binary files /dev/null and b/src/static/assets/CardColorTwoBig.png differ
diff --git a/src/static/assets/CardColorTwoNight.png b/src/static/assets/CardColorTwoNight.png
new file mode 100644
index 0000000..e5f5a6e
Binary files /dev/null and b/src/static/assets/CardColorTwoNight.png differ
diff --git a/src/static/assets/CardColorTwoSmall.png b/src/static/assets/CardColorTwoSmall.png
new file mode 100644
index 0000000..fd49557
Binary files /dev/null and b/src/static/assets/CardColorTwoSmall.png differ
diff --git a/src/static/assets/CardGray.png b/src/static/assets/CardGray.png
new file mode 100644
index 0000000..9ed4a07
Binary files /dev/null and b/src/static/assets/CardGray.png differ
diff --git a/src/static/assets/CardPortraitIcon.png b/src/static/assets/CardPortraitIcon.png
new file mode 100644
index 0000000..30d25b2
Binary files /dev/null and b/src/static/assets/CardPortraitIcon.png differ
diff --git a/src/static/assets/Coin.png b/src/static/assets/Coin.png
new file mode 100644
index 0000000..13d9a7f
Binary files /dev/null and b/src/static/assets/Coin.png differ
diff --git a/src/static/assets/Debt.png b/src/static/assets/Debt.png
new file mode 100644
index 0000000..63c6ed2
Binary files /dev/null and b/src/static/assets/Debt.png differ
diff --git a/src/static/assets/DescriptionFocus.png b/src/static/assets/DescriptionFocus.png
new file mode 100644
index 0000000..697cb93
Binary files /dev/null and b/src/static/assets/DescriptionFocus.png differ
diff --git a/src/static/assets/DoubleColorOne.png b/src/static/assets/DoubleColorOne.png
new file mode 100644
index 0000000..36d01d6
Binary files /dev/null and b/src/static/assets/DoubleColorOne.png differ
diff --git a/src/static/assets/DoubleUncoloredDetails.png b/src/static/assets/DoubleUncoloredDetails.png
new file mode 100644
index 0000000..2449445
Binary files /dev/null and b/src/static/assets/DoubleUncoloredDetails.png differ
diff --git a/src/static/assets/EventBrown.png b/src/static/assets/EventBrown.png
new file mode 100644
index 0000000..69a0247
Binary files /dev/null and b/src/static/assets/EventBrown.png differ
diff --git a/src/static/assets/EventBrown2.png b/src/static/assets/EventBrown2.png
new file mode 100644
index 0000000..6e845ee
Binary files /dev/null and b/src/static/assets/EventBrown2.png differ
diff --git a/src/static/assets/EventColorOne.png b/src/static/assets/EventColorOne.png
new file mode 100644
index 0000000..1f38e93
Binary files /dev/null and b/src/static/assets/EventColorOne.png differ
diff --git a/src/static/assets/EventColorTwo.png b/src/static/assets/EventColorTwo.png
new file mode 100644
index 0000000..f4e3af9
Binary files /dev/null and b/src/static/assets/EventColorTwo.png differ
diff --git a/src/static/assets/EventHeirloom.png b/src/static/assets/EventHeirloom.png
new file mode 100644
index 0000000..0389fd6
Binary files /dev/null and b/src/static/assets/EventHeirloom.png differ
diff --git a/src/static/assets/Heirloom.png b/src/static/assets/Heirloom.png
new file mode 100644
index 0000000..88d3aae
Binary files /dev/null and b/src/static/assets/Heirloom.png differ
diff --git a/src/static/assets/MatBannerBottom.png b/src/static/assets/MatBannerBottom.png
new file mode 100644
index 0000000..9f8eb87
Binary files /dev/null and b/src/static/assets/MatBannerBottom.png differ
diff --git a/src/static/assets/MatBannerTop.png b/src/static/assets/MatBannerTop.png
new file mode 100644
index 0000000..50a5d21
Binary files /dev/null and b/src/static/assets/MatBannerTop.png differ
diff --git a/src/static/assets/MatIcon.png b/src/static/assets/MatIcon.png
new file mode 100644
index 0000000..b12dc14
Binary files /dev/null and b/src/static/assets/MatIcon.png differ
diff --git a/src/static/assets/PileMarkerColorOne.png b/src/static/assets/PileMarkerColorOne.png
new file mode 100644
index 0000000..e874d57
Binary files /dev/null and b/src/static/assets/PileMarkerColorOne.png differ
diff --git a/src/static/assets/PileMarkerGrey.png b/src/static/assets/PileMarkerGrey.png
new file mode 100644
index 0000000..7fbd8ed
Binary files /dev/null and b/src/static/assets/PileMarkerGrey.png differ
diff --git a/src/static/assets/PileMarkerIcon.png b/src/static/assets/PileMarkerIcon.png
new file mode 100644
index 0000000..f313aaa
Binary files /dev/null and b/src/static/assets/PileMarkerIcon.png differ
diff --git a/src/static/assets/Potion.png b/src/static/assets/Potion.png
new file mode 100644
index 0000000..90cf604
Binary files /dev/null and b/src/static/assets/Potion.png differ
diff --git a/src/static/assets/Sun.png b/src/static/assets/Sun.png
new file mode 100644
index 0000000..4648da1
Binary files /dev/null and b/src/static/assets/Sun.png differ
diff --git a/src/static/assets/TraitBrown.png b/src/static/assets/TraitBrown.png
new file mode 100644
index 0000000..b21ea5b
Binary files /dev/null and b/src/static/assets/TraitBrown.png differ
diff --git a/src/static/assets/TraitBrownSide.png b/src/static/assets/TraitBrownSide.png
new file mode 100644
index 0000000..9cecd4b
Binary files /dev/null and b/src/static/assets/TraitBrownSide.png differ
diff --git a/src/static/assets/TraitColorOne.png b/src/static/assets/TraitColorOne.png
new file mode 100644
index 0000000..201b036
Binary files /dev/null and b/src/static/assets/TraitColorOne.png differ
diff --git a/src/static/assets/TraitColorOneSide.png b/src/static/assets/TraitColorOneSide.png
new file mode 100644
index 0000000..55db55f
Binary files /dev/null and b/src/static/assets/TraitColorOneSide.png differ
diff --git a/src/static/assets/Traveller.png b/src/static/assets/Traveller.png
new file mode 100644
index 0000000..c88255f
Binary files /dev/null and b/src/static/assets/Traveller.png differ
diff --git a/src/static/assets/VP-Token.png b/src/static/assets/VP-Token.png
new file mode 100644
index 0000000..5f267fc
Binary files /dev/null and b/src/static/assets/VP-Token.png differ
diff --git a/src/static/assets/VP.png b/src/static/assets/VP.png
new file mode 100644
index 0000000..108ded4
Binary files /dev/null and b/src/static/assets/VP.png differ