diff --git a/src/constants/cells.ts b/src/constants/cells.ts
new file mode 100644
index 00000000..8953fd59
--- /dev/null
+++ b/src/constants/cells.ts
@@ -0,0 +1,93 @@
+export const BLOCK_TYPES = {
+  IMAGE: 'IMAGE',
+  TEXT: 'TEXT',
+  VIDEO: 'VIDEO',
+  AUDIO: 'AUDIO',
+  COVER: 'COVER',
+};
+
+export const CELL_TYPES = {
+  IMAGE: 'IMAGE',
+  POST: 'POST',
+  MEDIA: 'MEDIA',
+  DEFAULT: 'DEFAULT',
+};
+
+export interface IFile {
+  id: number,
+  cell_id: number,
+  type: string,
+  mime: string,
+  name: string,
+  path: string,
+  createdAt: string,
+  updatedAt: string,
+  owner: number,
+}
+
+export interface IBlock {
+  block_id: number,
+}
+
+export interface ICell {
+  type: string,
+  tmp_file_id: number,
+  tmp_block_id: number,
+  cell_id: number,
+  locked_blocks: string[],
+  initial_blocks: string[],
+  available_blocks: string[],
+  blocks: IBlock[],
+  is_published: boolean,
+  is_starred: boolean,
+}
+
+export const DEFAULT_CELL: ICell = {
+  type: CELL_TYPES.DEFAULT,
+  tmp_file_id: 0,
+  tmp_block_id: 0,
+  cell_id: 0,
+  locked_blocks: [],
+  initial_blocks: [],
+  available_blocks: [],
+  blocks: [],
+  is_published: true,
+  is_starred: false,
+};
+
+export const DEFAULT_BLOCK: IBlock = {
+  block_id: 0,
+};
+
+
+export const DEFAULT_FILE: IFile = {
+  id: 0,
+  cell_id: 0,
+  type: '',
+  mime: '',
+  name: '',
+  path: '',
+  createdAt: '',
+  updatedAt: '',
+  owner: 0,
+};
+
+interface IBlocks { // todo: continue here
+  // [x: string]: IBlockImage | IBlockMedia
+}
+
+export const BLOCKS: IBlocks = {
+  [BLOCK_TYPES.IMAGE]: {
+    ...DEFAULT_BLOCK,
+    files: [], // todo: files here
+  }
+};
+
+export const CELLS = {
+  [CELL_TYPES.IMAGE]: {
+    ...DEFAULT_CELL,
+    locked_blocks: [BLOCK_TYPES.IMAGE],
+    available_blocks: [BLOCK_TYPES.IMAGE, BLOCK_TYPES.TEXT],
+  },
+};
+