diff --git a/ts/components/Countdown.md b/ts/components/Countdown.md
deleted file mode 100644
index 24a886157..000000000
--- a/ts/components/Countdown.md
+++ /dev/null
@@ -1,23 +0,0 @@
-#### New timer
-
-```jsx
-
- console.log('onComplete - new timer')}
- />
-
-```
-
-#### Already started
-
-```jsx
-
- console.log('onComplete - already started')}
- />
-
-```
diff --git a/ts/components/Countdown.stories.tsx b/ts/components/Countdown.stories.tsx
new file mode 100644
index 000000000..03781566d
--- /dev/null
+++ b/ts/components/Countdown.stories.tsx
@@ -0,0 +1,44 @@
+import React from 'react';
+
+import { action } from '@storybook/addon-actions';
+import { date, number } from '@storybook/addon-knobs';
+import { storiesOf } from '@storybook/react';
+
+import { Countdown, Props } from './Countdown';
+
+const defaultDuration = 10 * 1000;
+const createProps = (overrideProps: Partial = {}): Props => ({
+ duration: number('duration', overrideProps.duration || defaultDuration),
+ expiresAt: date(
+ 'expiresAt',
+ overrideProps.expiresAt
+ ? new Date(overrideProps.expiresAt)
+ : new Date(Date.now() + defaultDuration)
+ ),
+ onComplete: action('onComplete'),
+});
+
+const story = storiesOf('Components/Countdown', module);
+
+story.add('Just Started', () => {
+ const props = createProps();
+
+ return ;
+});
+
+story.add('In Progress', () => {
+ const props = createProps({
+ duration: 3 * defaultDuration,
+ expiresAt: Date.now() + defaultDuration,
+ });
+
+ return ;
+});
+
+story.add('Done', () => {
+ const props = createProps({
+ expiresAt: Date.now() - defaultDuration,
+ });
+
+ return ;
+});
diff --git a/ts/components/Countdown.tsx b/ts/components/Countdown.tsx
index f624096b1..86cabe824 100644
--- a/ts/components/Countdown.tsx
+++ b/ts/components/Countdown.tsx
@@ -1,7 +1,7 @@
import React from 'react';
// import classNames from 'classnames';
-interface Props {
+export interface Props {
duration: number;
expiresAt: number;
onComplete?: () => unknown;