diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..8bdd14d
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,31 @@
+# Changelog
+
+All notable changes to this project will be documented in this file. 
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [0.4.0] - 2023-07-17
+
+- [#89](https://github.com/unity-sds/unity-ads-deployment/issues/89) - Verify Dockstore database can be restored after rebuild
+- [#100](https://github.com/unity-sds/unity-ads-deployment/issues/100) - Deploy a Docker container registry system
+- [#107](https://github.com/unity-sds/unity-ads-deployment/issues/107) - Deploy unity-app-generator into Gitlab runner Terraform scripts
+- [#113](https://github.com/unity-sds/unity-ads-deployment/issues/113) - Apply cost tags to Dockstore
+
+## [0.3.0] - 2023-04-11
+
+- [#39](https://github.com/unity-sds/unity-ads-deployment/issues/39) - Document Dockstore Deployment
+- [#51](https://github.com/unity-sds/unity-ads-deployment/issues/51) - Document Gitlab Runner Deployment
+- [#58](https://github.com/unity-sds/unity-ads-deployment/issues/58) - Exercise Jupyterlab with an Example Algorithm
+- [#62](https://github.com/unity-sds/unity-ads-deployment/issues/62) - Define Application Package Source Artifacts
+- [#73](https://github.com/unity-sds/unity-ads-deployment/issues/73) - Build Unity Application Package Generator
+- [#74](https://github.com/unity-sds/unity-ads-deployment/issues/74) - Parameterize Dockstore Deployment
+- [#78](https://github.com/unity-sds/unity-ads-deployment/issues/78) - Build and deploy Jupyter stacks automatically
+- [#79](https://github.com/unity-sds/unity-ads-deployment/issues/79) - Add Dockstore API access to Unity.py
+- [#80](https://github.com/unity-sds/unity-ads-deployment/issues/80) - Create a simple Docker project pipeline for testing the Gitlab Docker executor
+- [#87](https://github.com/unity-sds/unity-ads-deployment/issues/87) - Convert Unity.py Application Package API to use Hosted Workflows
+- [#90](https://github.com/unity-sds/unity-ads-deployment/issues/90) - Create a simple Gitlab project to trigger building other projects
+- [#94](https://github.com/unity-sds/unity-ads-deployment/issues/94) - Create script for checking Dockstore deployment health
+- [#97](https://github.com/unity-sds/unity-ads-deployment/issues/97) - Load Balancer settings investigation
+- [#99](https://github.com/unity-sds/unity-ads-deployment/issues/99) - Add MCP Gitlab runner deployment scripts to Github
+- [#102](https://github.com/unity-sds/unity-ads-deployment/issues/102) - Modify Dockstore to use latest AMI
\ No newline at end of file