diff --git a/src/hooks/MountEffects.js b/src/hooks/MountEffects.js
new file mode 100644
index 0000000000000000000000000000000000000000..649600eda5bdc05217533c71d665e6a0411c5ac3
--- /dev/null
+++ b/src/hooks/MountEffects.js
@@ -0,0 +1,22 @@
+import { useEffect, useRef } from "react";
+
+function useMountEffect(effect, deps=[], afterMount) {
+  const didMountRef = useRef(false);
+
+  useEffect(() => {
+    let cleanup = null;
+    if (didMountRef.current === afterMount) { 
+      cleanup = effect();
+    }
+    didMountRef.current = true;
+    return cleanup;
+  }, deps);
+}
+
+export function useEffectOnMount(effect) {
+  useMountEffect(effect, [], false);
+}
+
+export function useEffectAfterMount(effect, deps) {
+  useMountEffect(effect, deps, true);
+}
\ No newline at end of file