1
0
mirror of https://github.com/kremalicious/portfolio.git synced 2024-12-22 09:13:19 +01:00

more tests

This commit is contained in:
Matthias Kretschmann 2019-04-14 19:00:14 +02:00
parent 877cb4a1c1
commit 6bdcda3141
Signed by: m
GPG Key ID: 606EEEF3C479A91F
10 changed files with 842 additions and 393 deletions

View File

@ -4,8 +4,9 @@ module.exports = {
},
moduleNameMapper: {
'.+\\.(css|styl|less|sass|scss)$': 'identity-obj-proxy',
'.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
'<rootDir>/jest/__mocks__/file-mock.js'
'.+\\.(jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
'<rootDir>/jest/__mocks__/file-mock.js',
'\\.svg': '<rootDir>/jest/__mocks__/svgr-mock.js'
},
testPathIgnorePatterns: ['node_modules', '.cache', 'public', 'coverage'],
transformIgnorePatterns: ['node_modules/(?!(gatsby)/)'],

View File

@ -1,351 +0,0 @@
{
"allProjectsYaml": {
"edges": [
{
"node": {
"title": "Ocean Protocol",
"slug": "/oceanprotocol/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAABpUlEQVQoz21R2Y7BYBT2CmKJJbHUWNpKLNFEEcszeTk8ApFyQQxxYzDUNq226DqfykxCnIs//396vvMtdWSz2VwuV6lUWJYtFousXeVyOZPJNJtNy7IURRkOhxzH9fv9zWaDTqvVIkkSKAeGCoVCPp/3+/3hcDgajUYiEYIgcA+FQqPR6Ha7cXb1er3ZbPYKZhgmkUgEg8FarVatVuv1eqPRSKfTLpdrMBhg+nq9apqm6zrON8wURTmdTp/PRxCxVIrEIo/Hg2e32z0cDtvt9oJSLtvvu+xOp/MEBo/b7fZ6vbGPFEXnYAHgQCAw4DhZlnmeV1UVvKIgANxut5/ApVIpmUySJIX4CgyDb/F4nKZpeMY0BJumCfPQ/yobaSEM6Nrv95hGtqvVShTF4/F4URRd1UzLlCRpOp0+0n5iBngymaBrGAa/47+WSyzCE2xQi5DQByecY/ur5zv4c2IYJuxZOlRaIMT0A2z91c2uN7LBbOqm8CNoqmZohiJhj/z/b3BfLBan0wkS3oDH4/H5fF5/r++p6jpv10MzpmF4Pp/vdrsX8C+f4ZF4JE8MIwAAAABJRU5ErkJggg==",
"aspectRatio": 1.8,
"src": "/static/4bfe75568d863d8aab3bd7670c7e1680/fbd15/oceanprotocol-01.png",
"srcSet": "/static/4bfe75568d863d8aab3bd7670c7e1680/5c3fb/oceanprotocol-01.png 245w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/4609e/oceanprotocol-01.png 490w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/fbd15/oceanprotocol-01.png 980w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/03004/oceanprotocol-01.png 1470w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/d901a/oceanprotocol-01.png 1960w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/1a778/oceanprotocol-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/4bfe75568d863d8aab3bd7670c7e1680/9a0bd/oceanprotocol-01.webp",
"srcSetWebp": "/static/4bfe75568d863d8aab3bd7670c7e1680/8fa18/oceanprotocol-01.webp 245w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/a8584/oceanprotocol-01.webp 490w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/9a0bd/oceanprotocol-01.webp 980w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/7a661/oceanprotocol-01.webp 1470w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/3eee5/oceanprotocol-01.webp 1960w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/d8a41/oceanprotocol-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "IPDB",
"slug": "/ipdb/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACeklEQVQoz2OoXbOnYf3+5k2HmjYeBCIgA4HAIk1AKTAXIgshgVqAGhnq1+3Lnb06qmNGQu/c+N65sd2zY7pmQRCQjcaFkJHt03NmrWpYt4+hbesRp4IGJn1HadcwMcdALjMPNhNXIGI1duU0c+e28OQ08+Cx9OKy8OS18eG29BawC2A0cHYpam7bcoQBiIEsJiNXQYcgfnswcgwRdAoTdA4Xco0Uco0SdI3icYrgdYnkdY3idonkc4thcwhzrewGOp6hZfNhl/JOHpco4+Qyg8QS/cQSvYQSw+Qy1ag8hbAsIJIOSudzj+X3iONxjZEJzZYITGOxC/Gt7Z+85zRD57Yj7pU9nM6RUqEZEsFp4sHp8mFZ8qFZYn7J/B7xAp7xvG6xwl4J0gGpnE4RhmlVKtH5DFaBST2z9996zLDr2oOErpmcDhFmYcWGgXlGAXlyARmi/ikiPkm8bjFC3gnczpGuha2htf08TpHJExdGt09nsPBL6Z0L0nzwztOYjmlMZgGZ8Z2dVYsaiubIOicw2YcwWAQk9sw+9fiVQ26DZ0lb3qSFrDYhgXX9jgVNDHpu8Z0zDwA17752v2rhBsui1tTZKyccPNu885h7TZ9zWZdTedfGi7c+///ft/lA1aJN07Yfcavo3nrp9oKDZ0yy66sWbdh97QHD1ou3Fhw6N2H3yYm7TnZvPQJEQHb/rpOT9p7u2nq4ZumWlvV7u7cerVmypWvTgXmHzs0/eHbu4fOLjpwHamTYdP7mlnPX91+/f/jmwxN3n5y5/+zcg+eXHr+49uTVrRdv77569+D1+2cfPr/+8u3Vpy9vPn999+Xbr99/Lzx4tvbMdQBFWkOvtL+i6gAAAABJRU5ErkJggg==",
"aspectRatio": 1.8,
"src": "/static/acb1835345fea2d0585c1091a7a5e2c1/fbd15/ipdb-01.png",
"srcSet": "/static/acb1835345fea2d0585c1091a7a5e2c1/5c3fb/ipdb-01.png 245w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/4609e/ipdb-01.png 490w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/fbd15/ipdb-01.png 980w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/03004/ipdb-01.png 1470w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/d901a/ipdb-01.png 1960w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/1a778/ipdb-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/acb1835345fea2d0585c1091a7a5e2c1/9a0bd/ipdb-01.webp",
"srcSetWebp": "/static/acb1835345fea2d0585c1091a7a5e2c1/8fa18/ipdb-01.webp 245w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/a8584/ipdb-01.webp 490w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/9a0bd/ipdb-01.webp 980w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/7a661/ipdb-01.webp 1470w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/3eee5/ipdb-01.webp 1960w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/d8a41/ipdb-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Berlin Innovation Ventures",
"slug": "/biv/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACPUlEQVQozy3Q2U7bQBQGYL9KK7aEJTOeGcfJNHGwHa9x7MSQhSzeEgRJWQKCQhAFCi2halFVcVf1AXrbJ+xAkX6dq/nn0zlcEVdkXNWRayOvimqbQrOX3RpkuyPSm+D+mZBcCcMZSh7J7hMZ38H4FkQzkHwHgx9gyFFcKWFHxVWTdy3B99ajSBvtKuNJaXye255JRz+lk9/84A89+Vu6fkDDKxB8AfFXkDyCAZfDduEFN5DLJl1vR82DnrETKMOd0uCDNrlRj2Y4fKL7v0rnNyj5CINbEN+D5BsrC9ii2JZwpYyrRewsFz3VjfzGKGjsJd74uD2d+seXUjgrDh+KhxcovoDBDYw+g/gBJBzGpviKO4Wsmyl3qBu/c/qKm5hW0nBGW3IwoJv7+a1TaXyCwynoMfwTjO5BzEFiMjyPbbY5FSoZ2QfqZkZprsobQGlRPVDV0BPdbqE7VMcHuHcGegy/huEdK2eIgZ5xi+EiMpdEbUnUF7MGS4pWUtRZzjtQtIS8Q/JeABtnsM9yCUOGcytEh8Qg2GRnF3hjHqtAcvn1GpvpnJnOWSvUTtPKomi8QXIL1k9h/xQ+41cw5NJEW3vFbYSMBaLqG7EfvHe7u1ipr0meoLVIuQlKNfZvE9aPYZflBQ+4RaIxHGCDbc4jbYGUdT+S3X7BbqdEnXWI1hL0dqbozmGlwdcP+e4Edhg+hX2OvU4RbZXoiJgAafNEXaHWHFLeQplRrLNWqK4Wqqmswco+rO3xnX3Y+Y//A5wGw6r7Q4qWAAAAAElFTkSuQmCC",
"aspectRatio": 1.8,
"src": "/static/ed917fad5fb6829ce2234fabcbea9b49/fbd15/biv-01.png",
"srcSet": "/static/ed917fad5fb6829ce2234fabcbea9b49/5c3fb/biv-01.png 245w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/4609e/biv-01.png 490w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/fbd15/biv-01.png 980w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/03004/biv-01.png 1470w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/d901a/biv-01.png 1960w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/1a778/biv-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/ed917fad5fb6829ce2234fabcbea9b49/9a0bd/biv-01.webp",
"srcSetWebp": "/static/ed917fad5fb6829ce2234fabcbea9b49/8fa18/biv-01.webp 245w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/a8584/biv-01.webp 490w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/9a0bd/biv-01.webp 980w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/7a661/biv-01.webp 1470w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/3eee5/biv-01.webp 1960w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/d8a41/biv-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "9984 >> Summit 2017",
"slug": "/9984/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACX0lEQVQozz2S3U/TYBTG+xd4YVQiG1u/x0TNZBmwUdgQ2YUS4xeROREWCCAx8dYYom6GiQZvvDDeG43IjcYLFFoFKV8DTCYJySq2TdfWdaV1JHLvGTMmJ+9X3t95nvO+B3GihMNNuHCqBiOdGFle4JSLoA9WHe3rH7Asa2P92yK/tJndhMisZHRNZznOgRJwH3HuTzUEBftqFAcSTlDKc7jaeeVqTFHyD++lw60dIwO3hvtHIuEoN8Pxi4uAODACAcxFUHTdiZP1AX9DKNDI+AKNdb56nPYecbjeTE49SqZDwXB/z2DXxVgrc6YCg0EIxE3SALtIujt+Y/zJxINkamz8cWosfT+ZunN39OsCnxxNNje3DSVu9sYTDNPOzXxe4PkyQtAAe4AHz40t4Uvxa13x65ClKxY/e/4C09b+7v2Hp+mJUDAy2Dvc093XEGDYT2zZNk4Cj2BUrRunq1D0FOa7jV0+R0Vc3lqM8kLxBw5VvXz1+vmzF9FoJygPJoaiHZ1z3DwoQ80VZdpN0FCz398UDXaEQ6f9QaaJiTSEWshjxyffTpnF4vb2Ns8vZbPfJVEyTXOW5dwV22AARKanPwo/hIWV5eW1zMrq6tr6xtbWVi6XE0VREARgNE3VdV1VNcuyZ2bZ8neSNOJwl78HnJjmTk4QfooihCjBbc0wDEVRVDUPgGXbml7QVcUwiizL7TcFgcBToaRnbm4e+gEASZIhBYQsyyAFo21Zf/b2dku/LbuU1zXb3rdNespNAo8GLfHlPyz/g0GzAsuSVDD0gmHslkq/ioa5Y8+yLMBQ81/JFkGTFI9hcQAAAABJRU5ErkJggg==",
"aspectRatio": 1.8,
"src": "/static/ce6c8319412d8d0b8c659f67d173a97c/fbd15/9984-01.png",
"srcSet": "/static/ce6c8319412d8d0b8c659f67d173a97c/5c3fb/9984-01.png 245w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/4609e/9984-01.png 490w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/fbd15/9984-01.png 980w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/03004/9984-01.png 1470w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/d901a/9984-01.png 1960w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/1a778/9984-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/ce6c8319412d8d0b8c659f67d173a97c/9a0bd/9984-01.webp",
"srcSetWebp": "/static/ce6c8319412d8d0b8c659f67d173a97c/8fa18/9984-01.webp 245w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/a8584/9984-01.webp 490w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/9a0bd/9984-01.webp 980w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/7a661/9984-01.webp 1470w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/3eee5/9984-01.webp 1960w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/d8a41/9984-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "BigchainDB",
"slug": "/bigchaindb/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACdklEQVQozy2QzU/TcACGe1QCipkEwYNcDAwECYVB2WpHu3bf69avdW3X/dpubbcpI4AwcFMZDBRBQMAIiTGKBxJNOHDQRBMSD/pvOXTJkzfv5cmbvNAVgvvPVZJvCyXbE9JNId2pgFuG0ZfRfXHgF02KNwIpi+QNis+SjDYlGe6jKnayCjVlH9cSEK7R0g0u3SGBLqB326ZTz5IJEJLsiJwPp+yQaAUlm2L0KdlA3z/HT9f/yTjbSnKOmOxIyJ1J9bYC7mh6j51zGhrOAlopxtVHdLoYEM3I3Kw/beGSgX1c8X3daC53R9VeKd+rmE7NGrDtwVIBXijBy9NuCRAxFY83IXiNoNUpScc/r1Fnm5dya0DoVQvDpfnRpbJwsMMf7cJbFXin4jqpu0AG8cYRisGiKTSYREhmkmAQRiRO64HzV1ALJbRFkndnp4fWlkdXyvh+PXjwwru7gr6pThxXxtOKG2cm/ZwnyE+S8XGCHvfGGjL1ZSP8bRtqC4vX6VSPqToXrL5ZY7BswU+LcK2IbJXcezOoIhEhEQ3yCE4Pu7B7I57+QQShBf/Zy+iPHajxsINVYE72iKpHzmAZHTdMDOhYRvNq+hgtwWEJjqRccWmMlWFedgnKRFYPnW/GLvagdlbpSKooA/wJPcjloqIdFfNh3vQnDDIGRtRC/8zcUPmxq1a9v7o0sL44cvBs7FMt8n2b+bUPOZJqpww8LKAEgxKzlJi7zGSjZElWG52fGaiXh+uLD47XsLc195uK513V/eFJ9Odr7vch1CGDroyONmTW8LG6j2tCNpIB3nTOm8t7NZOw8j67QNh5Kl8g5x4mLna5P4d/AeiH3hcCUBBDAAAAAElFTkSuQmCC",
"aspectRatio": 1.8,
"src": "/static/fad33c2d37f62e5be6f9c155583ba3fc/fbd15/bigchaindb-01.png",
"srcSet": "/static/fad33c2d37f62e5be6f9c155583ba3fc/5c3fb/bigchaindb-01.png 245w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/4609e/bigchaindb-01.png 490w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/fbd15/bigchaindb-01.png 980w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/03004/bigchaindb-01.png 1470w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/d901a/bigchaindb-01.png 1960w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/1a778/bigchaindb-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/fad33c2d37f62e5be6f9c155583ba3fc/9a0bd/bigchaindb-01.webp",
"srcSetWebp": "/static/fad33c2d37f62e5be6f9c155583ba3fc/8fa18/bigchaindb-01.webp 245w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/a8584/bigchaindb-01.webp 490w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/9a0bd/bigchaindb-01.webp 980w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/7a661/bigchaindb-01.webp 1470w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/3eee5/bigchaindb-01.webp 1960w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/d8a41/bigchaindb-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "ChartMogul",
"slug": "/chartmogul/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAABvUlEQVQoz11STW/UMBDd3ws/gANCnODEBQkhgUAgsVWRSg8VoFL6seXIx2FhQVQgKNul1caJEzv+iu2xw9jZIspIGU0m8+a9F3vUDxFjDCHmAABsbL+eXL50Zfxw7evnIynll+N3W58erU/urW9sfpzOonM4PUKYB0CE62zIeIgp4z5mzOb+4Z3b9x/cfby3/WY8fnpwMJGkjIsT/WuOBCOcc84N9F3XGSmDMbSqioIcNQ0xGpxfe7Jx7eqNm9dvPX/2cv72vZzNurKMA9hnML70AIu2nRRLwpgUwmX937/9mE5nWGht9ncOX2y90kqHHEm2QQMr633l/Qchu3PnmE1nUBCllHMOAYYx5IvJc9/ztqVlKWpa1bQhS7H8TU7nDSVJjkd68N4jj7Xoz4OH1PZ+Be601oIzSnhFmqoQjBrBjBIBgDUNElprsbZGO2O8tYl5ACfPebGUSiqFGdeH3Oz/iXyUAZ+V7AtggKosUX/LeV3XQggsEkbpPttLh3d+Ef4Ho7HTs7Nkvq4LQlohsMAhsbPrThbq5zEYg5sZY7h3gFwAE0KUUviNcY76cVH62+iibZ0QfR5zOf4y/wHm/msJbhsvfgAAAABJRU5ErkJggg==",
"aspectRatio": 1.8,
"src": "/static/65f6e4c810abdf72631369b5b196a0fa/fbd15/chartmogul-01.png",
"srcSet": "/static/65f6e4c810abdf72631369b5b196a0fa/5c3fb/chartmogul-01.png 245w,\n/static/65f6e4c810abdf72631369b5b196a0fa/4609e/chartmogul-01.png 490w,\n/static/65f6e4c810abdf72631369b5b196a0fa/fbd15/chartmogul-01.png 980w,\n/static/65f6e4c810abdf72631369b5b196a0fa/03004/chartmogul-01.png 1470w,\n/static/65f6e4c810abdf72631369b5b196a0fa/d901a/chartmogul-01.png 1960w,\n/static/65f6e4c810abdf72631369b5b196a0fa/1a778/chartmogul-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/65f6e4c810abdf72631369b5b196a0fa/9a0bd/chartmogul-01.webp",
"srcSetWebp": "/static/65f6e4c810abdf72631369b5b196a0fa/8fa18/chartmogul-01.webp 245w,\n/static/65f6e4c810abdf72631369b5b196a0fa/a8584/chartmogul-01.webp 490w,\n/static/65f6e4c810abdf72631369b5b196a0fa/9a0bd/chartmogul-01.webp 980w,\n/static/65f6e4c810abdf72631369b5b196a0fa/7a661/chartmogul-01.webp 1470w,\n/static/65f6e4c810abdf72631369b5b196a0fa/3eee5/chartmogul-01.webp 1960w,\n/static/65f6e4c810abdf72631369b5b196a0fa/d8a41/chartmogul-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "ShareTheMeal",
"slug": "/sharethemeal/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACjklEQVQoz03L209SARwH8PNf9Bf00PKph7aeWj231mzN0BaaiZfMXPOCt3DqJHSCyU2UywGOcvMCHrlf5Bwu5yBxkIuCKDqtNEGUgTpdC2JZm9/9Xn7f3+8DQDt5lm+3bcF9m9x+l9L7sIt1r3ngTi2VCvus2aIxXVB9u5Jv58DEqSh2PL2eFkSO+KFDbvBHSQFgPCPdPKnizd963ljBgobs0WohXNZIa9Ni4kRWsX8l2zkXxk+nNjKT0TQ/kuKGS/gnh/jOcG0CfSaCjsTrRTqWyUscZtR4+NWIqJIhbhBoOFhCGNgV+rcF3g2uc42DhJn2IMOAcXzJ6fVjJpYERt2JEXxPANsCqNZzcMoBZyV9bcKB3sGWhhCGriCoUCx+/bbu0dPyuvetbrvZsqCSIAFuJM3Ck8CEf49JHMyYEEQxDWoNL0mk0YrHbPITVdsbbF4qYI19qiGV1fbc71dU9Y8TdgOuU4IOHyecYmLbwJAtPOzdEcO2NVgRNcyJKqs4FBK/tUbe/tbKY38eHKS0UB90jtPk9I+TEGaES5indw57kgw0DnQv4T2WCFupdYA8p1q2PKOqhlwUBdJlWqMZQ6RZ1zM4US6zyyLKeoVFL51aUUjGNMYOfaDfHAQ6tZ4+2zp3Xm+Wch0aSKtbpELwhNkjUC+xZzVNhhDZm6Lp7F88W/Q5i0MFGiX8KbOb7k12wz6gY9HTMudWesO/znL5bPbyLHdxckS4VrZ8rhBqxQJBNBJHcPw4l0tl85fn+YtsRhfdH3ZtlSBQLVh4wdbIXcFisfi7UCj+DYpa/cQqiqNfVz0xAvXjzuv++g75Yu9UznrQADRBZrJoWeOP3cT/Hm+shf9TitQbbVYjH5SOP1D30ATATnfaAAAAAElFTkSuQmCC",
"aspectRatio": 1.8,
"src": "/static/d00971ec082602b2f0757e795ef3669e/fbd15/sharethemeal-01.png",
"srcSet": "/static/d00971ec082602b2f0757e795ef3669e/5c3fb/sharethemeal-01.png 245w,\n/static/d00971ec082602b2f0757e795ef3669e/4609e/sharethemeal-01.png 490w,\n/static/d00971ec082602b2f0757e795ef3669e/fbd15/sharethemeal-01.png 980w,\n/static/d00971ec082602b2f0757e795ef3669e/03004/sharethemeal-01.png 1470w,\n/static/d00971ec082602b2f0757e795ef3669e/d901a/sharethemeal-01.png 1960w,\n/static/d00971ec082602b2f0757e795ef3669e/1a778/sharethemeal-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/d00971ec082602b2f0757e795ef3669e/9a0bd/sharethemeal-01.webp",
"srcSetWebp": "/static/d00971ec082602b2f0757e795ef3669e/8fa18/sharethemeal-01.webp 245w,\n/static/d00971ec082602b2f0757e795ef3669e/a8584/sharethemeal-01.webp 490w,\n/static/d00971ec082602b2f0757e795ef3669e/9a0bd/sharethemeal-01.webp 980w,\n/static/d00971ec082602b2f0757e795ef3669e/7a661/sharethemeal-01.webp 1470w,\n/static/d00971ec082602b2f0757e795ef3669e/3eee5/sharethemeal-01.webp 1960w,\n/static/d00971ec082602b2f0757e795ef3669e/d8a41/sharethemeal-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "ezeep",
"slug": "/ezeep/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACPElEQVQoz02O3W/SYBSH+1d64RIvnLfuQg1ziRd+xNEPCmyT4Jwm3kxJGJQWIhvxQjeWgR9DQraSbbitLUILbSkttH37tt3r0GQnT07OxXnO72AJZu4v+ds3STJzseytX519ywnUsdlV9QtZRR3Npg15oRlHa8wclmDuIej83ZvEmXkye6dxVjMs0Fc1WRtd9qTeUJU1XTcdXmjF8/PIwujCQrywsMZFVtnFV9w/UtzjlcKjZqdhg1AzTcVQNGukGAPZGDow5IWjGHMfiUhepJlIZhfPfMVzVWKrSm5Vo7n9l7nqMntAlb4lOn/a8tg6PLuQNL2v9ywH8mI7xkSQiNHccyL3JMk9TJeXUp+WVkoPUuUXG5WN9e319M7rdDndlk77ir5brQtSHyWbNuDFU4p5GmOfYTRLEgxOZOk362RyM06X0+XvtcaJpJtANz3NcA3bHcuq0uBHXcWBgQfDk26HKhAxlsQobpViU3t86wffrrf5n+e/BUXva5rtAgd4qE+nE+BDE7g2cCfTSRiGgiKS7CrFrWEE+zZefO8AN/xfEB0PQx/6aIB+gJ5FnIuibhizhUuliyySe4fh7Ae6mJm6DoTQBcD3fdt1g8D3PA94yIa5vXp+r5Yuff7SPD7kTw1zIqlKtLBJcB+xKMdQJXaKBD/wZwWvmY0Qti5E07Z7Y0sejY7PjlzHEYeDZTaPFwtYtLhDlSqm7Xi+780keC1BFA5R/siaGFJPOTgcC92Jiz4PLgfDKLeNlypXESAMDTlaBocAAAAASUVORK5CYII=",
"aspectRatio": 1.8,
"src": "/static/0bf3f682179b1dd551b43b3533d0f103/fbd15/ezeep-01.png",
"srcSet": "/static/0bf3f682179b1dd551b43b3533d0f103/5c3fb/ezeep-01.png 245w,\n/static/0bf3f682179b1dd551b43b3533d0f103/4609e/ezeep-01.png 490w,\n/static/0bf3f682179b1dd551b43b3533d0f103/fbd15/ezeep-01.png 980w,\n/static/0bf3f682179b1dd551b43b3533d0f103/03004/ezeep-01.png 1470w,\n/static/0bf3f682179b1dd551b43b3533d0f103/d901a/ezeep-01.png 1960w,\n/static/0bf3f682179b1dd551b43b3533d0f103/1a778/ezeep-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/0bf3f682179b1dd551b43b3533d0f103/9a0bd/ezeep-01.webp",
"srcSetWebp": "/static/0bf3f682179b1dd551b43b3533d0f103/8fa18/ezeep-01.webp 245w,\n/static/0bf3f682179b1dd551b43b3533d0f103/a8584/ezeep-01.webp 490w,\n/static/0bf3f682179b1dd551b43b3533d0f103/9a0bd/ezeep-01.webp 980w,\n/static/0bf3f682179b1dd551b43b3533d0f103/7a661/ezeep-01.webp 1470w,\n/static/0bf3f682179b1dd551b43b3533d0f103/3eee5/ezeep-01.webp 1960w,\n/static/0bf3f682179b1dd551b43b3533d0f103/d8a41/ezeep-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Mr. Reader",
"slug": "/mrreader/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAAAk0lEQVQoz2O4d/0I2YiBJprvXjt879qh+9cPgxgkaQZqeHLv/KN7lx7cuQBk4NKP0+YrVy6m5ZWERMVfvHju/o2jJGgGql67YUN9Z39TR+/adetJ0wx059KVq/qnz588e/GyVatJc/aDm0ePHNi0f9/Wgwe2ARlALml+fnTr2KNbRx/eOgpkkBFVR+5eB6NrtEkkAOCuF+GmwTHOAAAAAElFTkSuQmCC",
"aspectRatio": 1.8,
"src": "/static/7d47f4d930476068faaa9e3b76a0c639/fbd15/mrreader-01.png",
"srcSet": "/static/7d47f4d930476068faaa9e3b76a0c639/5c3fb/mrreader-01.png 245w,\n/static/7d47f4d930476068faaa9e3b76a0c639/4609e/mrreader-01.png 490w,\n/static/7d47f4d930476068faaa9e3b76a0c639/fbd15/mrreader-01.png 980w,\n/static/7d47f4d930476068faaa9e3b76a0c639/03004/mrreader-01.png 1470w,\n/static/7d47f4d930476068faaa9e3b76a0c639/d901a/mrreader-01.png 1960w,\n/static/7d47f4d930476068faaa9e3b76a0c639/1a778/mrreader-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/7d47f4d930476068faaa9e3b76a0c639/9a0bd/mrreader-01.webp",
"srcSetWebp": "/static/7d47f4d930476068faaa9e3b76a0c639/8fa18/mrreader-01.webp 245w,\n/static/7d47f4d930476068faaa9e3b76a0c639/a8584/mrreader-01.webp 490w,\n/static/7d47f4d930476068faaa9e3b76a0c639/9a0bd/mrreader-01.webp 980w,\n/static/7d47f4d930476068faaa9e3b76a0c639/7a661/mrreader-01.webp 1470w,\n/static/7d47f4d930476068faaa9e3b76a0c639/3eee5/mrreader-01.webp 1960w,\n/static/7d47f4d930476068faaa9e3b76a0c639/d8a41/mrreader-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "iPixelPad",
"slug": "/ipixelpad/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAAAi0lEQVQoz82RwQqDMAyGff/3GYMhjHnYDh72DAOpjWnTLBuKN39BBjpkzJPwXfonX5PSLKbnZrLdyKIjQWZhEBW1HzI0CgmovdAtU2g4IlzcOJNZtO36/HI95oXz/KhcExOoagKH0/lW3t9thy3WJltN7HxDLAB9AL7n6DyhtFj++832YS3Z4Vf9xQD/bmVrONF0CgAAAABJRU5ErkJggg==",
"aspectRatio": 1.8,
"src": "/static/6f255d7df0c12b2ec3bd78e92e87e121/fbd15/ipixelpad-01.png",
"srcSet": "/static/6f255d7df0c12b2ec3bd78e92e87e121/5c3fb/ipixelpad-01.png 245w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/4609e/ipixelpad-01.png 490w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/fbd15/ipixelpad-01.png 980w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/03004/ipixelpad-01.png 1470w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/d901a/ipixelpad-01.png 1960w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/1a778/ipixelpad-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/6f255d7df0c12b2ec3bd78e92e87e121/9a0bd/ipixelpad-01.webp",
"srcSetWebp": "/static/6f255d7df0c12b2ec3bd78e92e87e121/8fa18/ipixelpad-01.webp 245w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/a8584/ipixelpad-01.webp 490w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/9a0bd/ipixelpad-01.webp 980w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/7a661/ipixelpad-01.webp 1470w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/3eee5/ipixelpad-01.webp 1960w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/d8a41/ipixelpad-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Out Of Whale Oil",
"slug": "/outofwhaleoil/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAwABAv/EABUBAQEAAAAAAAAAAAAAAAAAAAAD/9oADAMBAAIQAxAAAAEzw5S6jj//xAAXEAEBAQEAAAAAAAAAAAAAAAAAEQEQ/9oACAEBAAEFAqqt7//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABgQAQEAAwAAAAAAAAAAAAAAAAEQAEGx/9oACAEBAAE/IXC99sz/2gAMAwEAAgADAAAAEMsP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFhEAAwAAAAAAAAAAAAAAAAAAEBEh/9oACAECAQE/EHB//8QAGhABAAIDAQAAAAAAAAAAAAAAAQAREDFRIf/aAAgBAQABPxACA0DlWj73E9jcf//Z",
"aspectRatio": 1.8,
"src": "/static/86ce88b849146660420149407ae47868/57c51/outofwhaleoil-01.jpg",
"srcSet": "/static/86ce88b849146660420149407ae47868/d3334/outofwhaleoil-01.jpg 245w,\n/static/86ce88b849146660420149407ae47868/c6eb9/outofwhaleoil-01.jpg 490w,\n/static/86ce88b849146660420149407ae47868/57c51/outofwhaleoil-01.jpg 980w,\n/static/86ce88b849146660420149407ae47868/1935f/outofwhaleoil-01.jpg 1470w,\n/static/86ce88b849146660420149407ae47868/5e176/outofwhaleoil-01.jpg 1960w,\n/static/86ce88b849146660420149407ae47868/c7ccf/outofwhaleoil-01.jpg 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/86ce88b849146660420149407ae47868/9a0bd/outofwhaleoil-01.webp",
"srcSetWebp": "/static/86ce88b849146660420149407ae47868/8fa18/outofwhaleoil-01.webp 245w,\n/static/86ce88b849146660420149407ae47868/a8584/outofwhaleoil-01.webp 490w,\n/static/86ce88b849146660420149407ae47868/9a0bd/outofwhaleoil-01.webp 980w,\n/static/86ce88b849146660420149407ae47868/7a661/outofwhaleoil-01.webp 1470w,\n/static/86ce88b849146660420149407ae47868/3eee5/outofwhaleoil-01.webp 1960w,\n/static/86ce88b849146660420149407ae47868/d8a41/outofwhaleoil-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Martin-Luther-Universität Halle-Wittenberg",
"slug": "/unihalle/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAABcklEQVQoz6WP206DQBRF/f9vqCZNSn/AFx+Mibfe3oytVgq0BYa5AS3MADMMtJ7Gmto3jSd7JnPZ62Sfi/0/6qLQye8ldaLMxueBVNUBzitykiJCkbOXM+FtiXWTPLwNozQ+wGc5dvu22f0hNqxSZWO7P/F6N0/dzmXn8bU3svuDuTWY9wcf1mhhjRfW5KP7OLt6nndHdm9oW4XaHmFda5aEPEUIL1fLBSLriHk0DnzkrUPPR24QeRi7mK0J98EJAuQIN01j6gYCa6XLQlSVUrqqtdG6NqbRcFB1DYZ235q2MS2YoY6wMSbPs6KQlFLXcT33uxyHEiKFiDkPAn+zSUWeC3EQICdYZNtSCkoi17FR6DOKOSMRCmGXIk9YGoW4yCCWkHkGOsGQiTMWM05Y4ATTkDg+Xtj+FLMgiRP4el8NX9w7Gw0wXcUs5oxq/WNmuECzsirBvNmmRSkzmcEV+tamfg/vJ871DN3mJYOZwfw18ydc+mhI346lowAAAABJRU5ErkJggg==",
"aspectRatio": 1.8,
"src": "/static/abcea3265322bfbc06599d7eb173e57a/fbd15/unihalle-01.png",
"srcSet": "/static/abcea3265322bfbc06599d7eb173e57a/5c3fb/unihalle-01.png 245w,\n/static/abcea3265322bfbc06599d7eb173e57a/4609e/unihalle-01.png 490w,\n/static/abcea3265322bfbc06599d7eb173e57a/fbd15/unihalle-01.png 980w,\n/static/abcea3265322bfbc06599d7eb173e57a/03004/unihalle-01.png 1470w,\n/static/abcea3265322bfbc06599d7eb173e57a/d901a/unihalle-01.png 1960w,\n/static/abcea3265322bfbc06599d7eb173e57a/1a778/unihalle-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/abcea3265322bfbc06599d7eb173e57a/9a0bd/unihalle-01.webp",
"srcSetWebp": "/static/abcea3265322bfbc06599d7eb173e57a/8fa18/unihalle-01.webp 245w,\n/static/abcea3265322bfbc06599d7eb173e57a/a8584/unihalle-01.webp 490w,\n/static/abcea3265322bfbc06599d7eb173e57a/9a0bd/unihalle-01.webp 980w,\n/static/abcea3265322bfbc06599d7eb173e57a/7a661/unihalle-01.webp 1470w,\n/static/abcea3265322bfbc06599d7eb173e57a/3eee5/unihalle-01.webp 1960w,\n/static/abcea3265322bfbc06599d7eb173e57a/d8a41/unihalle-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Coffee Cup",
"slug": "/coffeecup/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAAA0klEQVQoz2Po6J9CNmKgvub2vslwRueEqV0TpxGrubVnYv+02UA9rb2TuidNB3Lr27qBDAKagRpauiesWrfx6tVr585fmjRzXlVDq56+nomRYW5RKVA/3EU4bT556lRFtPuONUv2HTnp5hukL80XYqlqaWOHaTmqzUA3906av3jpwql9+/fsnLtkZVZhqZqSvJKkcERsQu+UmYRtBrp8yuyFE2fMATK6J80orW3KL6vGGmZYNAN93tY7CYiAjI7+yd2Tp/dMnkFmPAOdiuZa6iQSALHTaMTbgB9zAAAAAElFTkSuQmCC",
"aspectRatio": 1.8,
"src": "/static/c6b5a93dc77983bf55a511a6847cbbbe/fbd15/coffeecup-01.png",
"srcSet": "/static/c6b5a93dc77983bf55a511a6847cbbbe/5c3fb/coffeecup-01.png 245w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/4609e/coffeecup-01.png 490w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/fbd15/coffeecup-01.png 980w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/03004/coffeecup-01.png 1470w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/d901a/coffeecup-01.png 1960w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/1a778/coffeecup-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/c6b5a93dc77983bf55a511a6847cbbbe/9a0bd/coffeecup-01.webp",
"srcSetWebp": "/static/c6b5a93dc77983bf55a511a6847cbbbe/8fa18/coffeecup-01.webp 245w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/a8584/coffeecup-01.webp 490w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/9a0bd/coffeecup-01.webp 980w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/7a661/coffeecup-01.webp 1470w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/3eee5/coffeecup-01.webp 1960w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/d8a41/coffeecup-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Project Purple",
"slug": "/projectpurple/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAABcklEQVQoz21Su07DQBDMt8TP2AFREMln++58ju1zYkFBSBGHKpEQTYoIUYBQCigjSio+jI4eJMQvMGeHPCyktbS7t+PZnd0WaZMD00ioh9Sg3OSRFXErYiZHGOihr/neYXELn1dZjQz0ANXCjvudfuqkMDiRJbjJqBGS9gZfQ1reHhj/piYTlgAmczJhJMJKpSsRCitmBgv0HfkOXMehQaMKKR156Y9X0+X9cH5+cpZ3cyTxFOqUaP5B22RDG1S0MUqlM7iWs5/Xt6+nl7I3yrvD3JWx3cfw/j64YvZgO7CbD7rFtDf6WD6+39yWpxf5UfEHZrVszZnVwAaDVBgS1TM2+X54/rxbXXljMEsFjptgslWr7VOd1moNj4t5MV9PF+tyUfIJJMhcaCaU4FpzVaptOGpPBgMDpE5sKJRGZpZ1lNpIYvOB9p/aG83VnsN6z0knydwMBieyBZI4Hm+v5+aqthcG/vrC1JGZHCGSeGpU/gKjrZYulxsYiwAAAABJRU5ErkJggg==",
"aspectRatio": 1.8,
"src": "/static/8cc647e8b1490931daa6580a40883e29/fbd15/projectpurple-01.png",
"srcSet": "/static/8cc647e8b1490931daa6580a40883e29/5c3fb/projectpurple-01.png 245w,\n/static/8cc647e8b1490931daa6580a40883e29/4609e/projectpurple-01.png 490w,\n/static/8cc647e8b1490931daa6580a40883e29/fbd15/projectpurple-01.png 980w,\n/static/8cc647e8b1490931daa6580a40883e29/03004/projectpurple-01.png 1470w,\n/static/8cc647e8b1490931daa6580a40883e29/d901a/projectpurple-01.png 1960w,\n/static/8cc647e8b1490931daa6580a40883e29/1a778/projectpurple-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/8cc647e8b1490931daa6580a40883e29/9a0bd/projectpurple-01.webp",
"srcSetWebp": "/static/8cc647e8b1490931daa6580a40883e29/8fa18/projectpurple-01.webp 245w,\n/static/8cc647e8b1490931daa6580a40883e29/a8584/projectpurple-01.webp 490w,\n/static/8cc647e8b1490931daa6580a40883e29/9a0bd/projectpurple-01.webp 980w,\n/static/8cc647e8b1490931daa6580a40883e29/7a661/projectpurple-01.webp 1470w,\n/static/8cc647e8b1490931daa6580a40883e29/3eee5/projectpurple-01.webp 1960w,\n/static/8cc647e8b1490931daa6580a40883e29/d8a41/projectpurple-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Allinnia Creative Group",
"slug": "/allinnia/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAAB3UlEQVQoz2WSXW/TMBSG97MQoGLHsR3nO3E+2zTaxLICEks02DRUkPgPa5v2aog1nVYESMDl0IQ2Nib2ozgVlViH9Mq+8PMc28deE5p2O5xSlShUVVVCYNQ4/xeN34HXlg5jKsEKarWzrHjyLM/zXq+3sb4eSOk4DtMAEoqCoa6qEEbZiqwL4Xuu59gbj4ud/Te7+/2d3b2yLIuiyNIkjcJEetKxfM+DAHxnZwoRnMFaEodRIH3PsUwD1vKqyvZepf23XtHTGAV0Qd6SBYM7YkSI4jh2FIa2bVqmbgihG3ref+1XL8TLPn1aqQuGULoiQ0WqKpgo2LCsMIpdX/pBAHFlYFu2wakNZ9U4VIdWsv9lMKHRuuO5MnzEBBFWi3CkWY6MmGGZroSGLxpGlBVZ1wS8CkYtODnjwrTdB0jFTNx7iO5jynWbcKGbNkJYwQgjBJuDspThnaT0q2q73H7eybpRnPpBmLSzIIrDOE07eafbjZO03ckAqMpS+j4oCxnuAv+h2NycNdPp9H09qkfD0WQyGY1gHhwMBoPh8N3hYV3X4/F4Oj2azRqAQQFxKW9tFfP5yfGs+fzp4/fT04uL88ufMJz/ODu7urq8ufl9ff3r29cvx03zYT4H+K/8B4qs529Biz/wAAAAAElFTkSuQmCC",
"aspectRatio": 1.8,
"src": "/static/d86855c9ee74e8dfbf169ded0631f5c3/fbd15/allinnia-01.png",
"srcSet": "/static/d86855c9ee74e8dfbf169ded0631f5c3/5c3fb/allinnia-01.png 245w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/4609e/allinnia-01.png 490w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/fbd15/allinnia-01.png 980w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/03004/allinnia-01.png 1470w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/d901a/allinnia-01.png 1960w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/1a778/allinnia-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/d86855c9ee74e8dfbf169ded0631f5c3/9a0bd/allinnia-01.webp",
"srcSetWebp": "/static/d86855c9ee74e8dfbf169ded0631f5c3/8fa18/allinnia-01.webp 245w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/a8584/allinnia-01.webp 490w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/9a0bd/allinnia-01.webp 980w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/7a661/allinnia-01.webp 1470w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/3eee5/allinnia-01.webp 1960w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/d8a41/allinnia-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Aperture Loupe",
"slug": "/apertureloupe/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAAA60lEQVQoz2Mwdw0gGzFQR7OFWyBWFbjEEZotXAOMnXxNXfwxVRg7+pi7BJm7BmHXDDQbqCI0MdvBNxyo39TZD2Ib0ERTV/+ghHRLD1cjR2cz10ALN2yazVz87X3CFq3dsu3AcVvvMKBZUP0ugaZBgW0H2pfN6DCx9gQabYHVz0Bnb9xz+NDpi04B0Z5hCSDNbgEWzv463oHzj93ZsfyMjau/a1i0mbO/uRuGZqBrbbzD7HzCzV383ULiLd2hnjR18rN2j7Nxj7L0CHYOjEUOQpSoAuoHIiDDxMkPIe4WYOYCDEs/iAIaxDMZCAD7frs/RC/bLQAAAABJRU5ErkJggg==",
"aspectRatio": 1.8,
"src": "/static/04fa21ff7752ace46c954f5995deb0d5/fbd15/apertureloupe-01.png",
"srcSet": "/static/04fa21ff7752ace46c954f5995deb0d5/5c3fb/apertureloupe-01.png 245w,\n/static/04fa21ff7752ace46c954f5995deb0d5/4609e/apertureloupe-01.png 490w,\n/static/04fa21ff7752ace46c954f5995deb0d5/fbd15/apertureloupe-01.png 980w,\n/static/04fa21ff7752ace46c954f5995deb0d5/03004/apertureloupe-01.png 1470w,\n/static/04fa21ff7752ace46c954f5995deb0d5/d901a/apertureloupe-01.png 1960w,\n/static/04fa21ff7752ace46c954f5995deb0d5/1a778/apertureloupe-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/04fa21ff7752ace46c954f5995deb0d5/9a0bd/apertureloupe-01.webp",
"srcSetWebp": "/static/04fa21ff7752ace46c954f5995deb0d5/8fa18/apertureloupe-01.webp 245w,\n/static/04fa21ff7752ace46c954f5995deb0d5/a8584/apertureloupe-01.webp 490w,\n/static/04fa21ff7752ace46c954f5995deb0d5/9a0bd/apertureloupe-01.webp 980w,\n/static/04fa21ff7752ace46c954f5995deb0d5/7a661/apertureloupe-01.webp 1470w,\n/static/04fa21ff7752ace46c954f5995deb0d5/3eee5/apertureloupe-01.webp 1960w,\n/static/04fa21ff7752ace46c954f5995deb0d5/d8a41/apertureloupe-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Adiumeetie",
"slug": "/adiumeetie/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsSAAALEgHS3X78AAACcUlEQVQozxXLS2/ScAAA8B79An4KE28e9ObNr+DJxINePHjwAyzZYQeTGePiZlwILku2lPEYjAJtB2MUWKGllJa29P3uvw/Yyuq2ozP5XX/QUlmldnobZlmcZcssS7LUS5fqKpaWEZ9EXBzMooCPAiH2F7GnxJ4eO0ZsG7FpxlDqpn9X2d3t3cPfh/v0/hZkqbVeLq7DWQKmkccAlwkcFtgcsAVgy6GlhIYCVB3IOoDWYJ1d/89JlLiGC6wA6IHBmgZt2SPfIj2TcvWJpzGuxnu6FMgLfyEHkhbwWgCt7NVNcLMO18PesIU1v27ubnzZRvEm1sSUnqldOcrIlsaWxDiy4D1OWQ0UE0gmEE0ABVwI5qFHB8Q5cXwEv3j67tmTtzvf9s8xXOhqKuVqrC+zvsA6PO/woqtZoe0nFkjsMIH0tqV3LLVhduuXxVLp46u9989/HeZhtIWKV6bMmh2sj1TbFCWMGYMVbd0JHbAEySpZrqB5UZ7DyvRYwBHs6E/l+DVXeCkdfK+iWEMgzTknb3za+fBms0MMhoxJSzav+6oX+mGURBFE/+bpvXk7RyCNeq1WJ7apqy22Wq63mi2qq3SJYXELP/ncbfYIfCA1zpmhZE01R3F91/eh/s9Jf5fpbJONHxfIXuc0h1cOsOrhRQ3u48ishU4QbIxeMI0BVx/Oz4gZNlUI0aBUe2bYUDc/7uapizzVzlHYPtXapxs5unZIVwp0pTqporN6T6gOxPJAKI/E08nijJGbnIrzWkfQIBwmH6Ew2YRJBCbPYPIUJosweVIgCyXyBKGLOFNoM4XLWWHAFUdCiRLLtFihpQot/gNHxQ0oPFVlPAAAAABJRU5ErkJggg==",
"aspectRatio": 1.8,
"src": "/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/fbd15/adiumeetie-01.png",
"srcSet": "/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/5c3fb/adiumeetie-01.png 245w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/4609e/adiumeetie-01.png 490w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/fbd15/adiumeetie-01.png 980w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/03004/adiumeetie-01.png 1470w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/d901a/adiumeetie-01.png 1960w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/1a778/adiumeetie-01.png 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/9a0bd/adiumeetie-01.webp",
"srcSetWebp": "/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/8fa18/adiumeetie-01.webp 245w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/a8584/adiumeetie-01.webp 490w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/9a0bd/adiumeetie-01.webp 980w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/7a661/adiumeetie-01.webp 1470w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/3eee5/adiumeetie-01.webp 1960w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/d8a41/adiumeetie-01.webp 2880w"
}
}
}
}
},
{
"node": {
"title": "Niépce's Camera Obscura",
"slug": "/niepces-camera-obscura/",
"img": {
"childImageSharp": {
"fluid": {
"base64": "data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMBAgX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABy2KkqAn/xAAYEAACAwAAAAAAAAAAAAAAAAAAAREgIf/aAAgBAQABBQJGRT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAWEAADAAAAAAAAAAAAAAAAAAAAIDH/2gAIAQEABj8CKv8A/8QAGBABAAMBAAAAAAAAAAAAAAAAAQAQEUH/2gAIAQEAAT8hjN1Q8MojX//aAAwDAQACAAMAAAAQsz//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAbEAEAAgIDAAAAAAAAAAAAAAABABEQMUFRcf/aAAgBAQABPxAjtqXCjotfrxHccT3j/9k=",
"aspectRatio": 1.8,
"src": "/static/d40b5eff60152eada7bbbc6c03f5c8a8/57c51/niepces-camera-obscura-01.jpg",
"srcSet": "/static/d40b5eff60152eada7bbbc6c03f5c8a8/d3334/niepces-camera-obscura-01.jpg 245w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/c6eb9/niepces-camera-obscura-01.jpg 490w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/57c51/niepces-camera-obscura-01.jpg 980w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/1935f/niepces-camera-obscura-01.jpg 1470w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/5e176/niepces-camera-obscura-01.jpg 1960w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/c7ccf/niepces-camera-obscura-01.jpg 2880w",
"sizes": "(max-width: 980px) 100vw, 980px",
"srcWebp": "/static/d40b5eff60152eada7bbbc6c03f5c8a8/9a0bd/niepces-camera-obscura-01.webp",
"srcSetWebp": "/static/d40b5eff60152eada7bbbc6c03f5c8a8/8fa18/niepces-camera-obscura-01.webp 245w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/a8584/niepces-camera-obscura-01.webp 490w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/9a0bd/niepces-camera-obscura-01.webp 980w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/7a661/niepces-camera-obscura-01.webp 1470w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/3eee5/niepces-camera-obscura-01.webp 1960w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/d8a41/niepces-camera-obscura-01.webp 2880w"
}
}
}
}
}
]
},
"projectImageFiles": {
"edges": []
}
}

View File

@ -0,0 +1,727 @@
{
"allProjectsYaml": {
"edges": [
{
"node": {
"title": "Ocean Protocol",
"slug": "/oceanprotocol/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/4bfe75568d863d8aab3bd7670c7e1680/55230/oceanprotocol-01.png",
"srcSet": "/static/4bfe75568d863d8aab3bd7670c7e1680/566d0/oceanprotocol-01.png 300w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/bd9e5/oceanprotocol-01.png 600w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/55230/oceanprotocol-01.png 1200w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/ea0ed/oceanprotocol-01.png 1800w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/9f094/oceanprotocol-01.png 2400w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/1a778/oceanprotocol-01.png 2880w",
"srcWebp": "/static/4bfe75568d863d8aab3bd7670c7e1680/a1b27/oceanprotocol-01.webp",
"srcSetWebp": "/static/4bfe75568d863d8aab3bd7670c7e1680/91d38/oceanprotocol-01.webp 300w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/2ead2/oceanprotocol-01.webp 600w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/a1b27/oceanprotocol-01.webp 1200w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/aae66/oceanprotocol-01.webp 1800w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/6de27/oceanprotocol-01.webp 2400w,\n/static/4bfe75568d863d8aab3bd7670c7e1680/d8a41/oceanprotocol-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/4bfe75568d863d8aab3bd7670c7e1680/1a778/oceanprotocol-01.png",
"originalName": "oceanprotocol-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "Since 2017 I'm leading the UI design & development of Ocean Protocol, iterating on a components-based UI design system spanning all of Ocean Protocol's web properties. Additionally, I conceptualize, execute and iterate on the creative and visual direction of the Ocean Protocol brand.\nMost web interfaces are single-page JavaScript applications built with React, pulling their data from JSON files and various micro services. All design & development is embedded in a continous deployment process via GitHub & Travis.\nInitial website in collaboration with [Balance](https://balance.io/). Key visuals in collaboration with [Wojciech Hupert](https://twitter.com/wojciechhupert).\n",
"links": [
{
"title": "oceanprotocol.com",
"type": "website",
"url": "https://oceanprotocol.com"
},
{
"title": "docs.oceanprotocol.com",
"type": "website",
"url": "https://docs.oceanprotocol.com"
},
{
"title": "Styleguide",
"type": null,
"url": "https://oceanprotocol.com/art"
},
{
"title": "@oceanprotocol/art",
"type": "github",
"url": "https://github.com/oceanprotocol/art"
},
{
"title": "@oceanprotocol/docs",
"type": "github",
"url": "https://github.com/oceanprotocol/docs"
}
],
"techstack": [
"Sketch",
"Affinity Designer",
"React",
"Gatsby",
"HTML",
"SCSS",
"JavaScript",
"Travis",
"AWS S3",
"Cloudflare"
]
}
},
{
"node": {
"title": "IPDB",
"slug": "/ipdb/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/acb1835345fea2d0585c1091a7a5e2c1/55230/ipdb-01.png",
"srcSet": "/static/acb1835345fea2d0585c1091a7a5e2c1/566d0/ipdb-01.png 300w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/bd9e5/ipdb-01.png 600w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/55230/ipdb-01.png 1200w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/ea0ed/ipdb-01.png 1800w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/9f094/ipdb-01.png 2400w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/1a778/ipdb-01.png 2880w",
"srcWebp": "/static/acb1835345fea2d0585c1091a7a5e2c1/a1b27/ipdb-01.webp",
"srcSetWebp": "/static/acb1835345fea2d0585c1091a7a5e2c1/91d38/ipdb-01.webp 300w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/2ead2/ipdb-01.webp 600w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/a1b27/ipdb-01.webp 1200w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/aae66/ipdb-01.webp 1800w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/6de27/ipdb-01.webp 2400w,\n/static/acb1835345fea2d0585c1091a7a5e2c1/d8a41/ipdb-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/acb1835345fea2d0585c1091a7a5e2c1/1a778/ipdb-01.png",
"originalName": "ipdb-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "From 20152017 I was leading the UI design & development of all IPDB web properties and additonally iterated on the creative and visual direction of the IPDB brand.\nThe main website is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it. All design & development is embedded in a continous deployment process via GitHub & Travis.\nBranding and key visuals in collaboration with [Wojciech Hupert](https://twitter.com/wojciechhupert).\n",
"links": [
{
"title": "Link",
"type": null,
"url": "https://ipdb.io"
},
{
"title": "Styleguide",
"type": null,
"url": "https://ipdb.io/styleguide/"
},
{
"title": "GitHub",
"type": null,
"url": "https://github.com/ipdb/website"
}
],
"techstack": [
"Sketch",
"Jekyll",
"Gulp",
"HTML",
"SCSS",
"JavaScript",
"Travis",
"AWS S3",
"Cloudflare",
"3Scale"
]
}
},
{
"node": {
"title": "Berlin Innovation Ventures",
"slug": "/biv/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/ed917fad5fb6829ce2234fabcbea9b49/55230/biv-01.png",
"srcSet": "/static/ed917fad5fb6829ce2234fabcbea9b49/566d0/biv-01.png 300w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/bd9e5/biv-01.png 600w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/55230/biv-01.png 1200w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/ea0ed/biv-01.png 1800w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/9f094/biv-01.png 2400w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/1a778/biv-01.png 2880w",
"srcWebp": "/static/ed917fad5fb6829ce2234fabcbea9b49/a1b27/biv-01.webp",
"srcSetWebp": "/static/ed917fad5fb6829ce2234fabcbea9b49/91d38/biv-01.webp 300w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/2ead2/biv-01.webp 600w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/a1b27/biv-01.webp 1200w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/aae66/biv-01.webp 1800w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/6de27/biv-01.webp 2400w,\n/static/ed917fad5fb6829ce2234fabcbea9b49/d8a41/biv-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/ed917fad5fb6829ce2234fabcbea9b49/1a778/biv-01.png",
"originalName": "biv-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "I designed & developed the website and a basic branding for the Berlin-based VC firm Berlin Innovation Ventures. The main website is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it.\n",
"links": [
{
"title": "Link",
"type": null,
"url": "http://berlininnovation.vc"
}
],
"techstack": [
"Sketch",
"Jekyll",
"Gulp",
"HTML",
"SCSS",
"JavaScript"
]
}
},
{
"node": {
"title": "9984 >> Summit 2017",
"slug": "/9984/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/ce6c8319412d8d0b8c659f67d173a97c/55230/9984-01.png",
"srcSet": "/static/ce6c8319412d8d0b8c659f67d173a97c/566d0/9984-01.png 300w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/bd9e5/9984-01.png 600w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/55230/9984-01.png 1200w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/ea0ed/9984-01.png 1800w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/9f094/9984-01.png 2400w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/1a778/9984-01.png 2880w",
"srcWebp": "/static/ce6c8319412d8d0b8c659f67d173a97c/a1b27/9984-01.webp",
"srcSetWebp": "/static/ce6c8319412d8d0b8c659f67d173a97c/91d38/9984-01.webp 300w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/2ead2/9984-01.webp 600w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/a1b27/9984-01.webp 1200w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/aae66/9984-01.webp 1800w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/6de27/9984-01.webp 2400w,\n/static/ce6c8319412d8d0b8c659f67d173a97c/d8a41/9984-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/ce6c8319412d8d0b8c659f67d173a97c/1a778/9984-01.png",
"originalName": "9984-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "In 2017 I was leading the UI design & development for the 9984 >> Summit, the first joint summit of BigchainDB & IPDB. Additionally, I conceptualized, executed and iterated on the creative and visual direction of the 9984 brand.\nThe main website is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it. All design & development is embedded in a continous deployment process via GitHub & Travis.\nBranding and key visuals in collaboration with [Cristina Vulpe](https://www.linkedin.com/in/cristina-vulpe-41469262) & [Wojciech Hupert](https://twitter.com/wojciechhupert).\n",
"links": [
{
"title": "Link",
"type": null,
"url": "https://2017.9984.io"
},
{
"title": "Styleguide",
"type": null,
"url": "https://2017.9984.io/styleguide/"
},
{
"title": "GitHub",
"type": null,
"url": "https://github.com/9984/2017.9984.io"
}
],
"techstack": [
"Sketch",
"Jekyll",
"Gulp",
"HTML",
"SCSS",
"JavaScript",
"Travis",
"AWS S3",
"Cloudflare"
]
}
},
{
"node": {
"title": "BigchainDB",
"slug": "/bigchaindb/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/fad33c2d37f62e5be6f9c155583ba3fc/55230/bigchaindb-01.png",
"srcSet": "/static/fad33c2d37f62e5be6f9c155583ba3fc/566d0/bigchaindb-01.png 300w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/bd9e5/bigchaindb-01.png 600w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/55230/bigchaindb-01.png 1200w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/ea0ed/bigchaindb-01.png 1800w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/9f094/bigchaindb-01.png 2400w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/1a778/bigchaindb-01.png 2880w",
"srcWebp": "/static/fad33c2d37f62e5be6f9c155583ba3fc/a1b27/bigchaindb-01.webp",
"srcSetWebp": "/static/fad33c2d37f62e5be6f9c155583ba3fc/91d38/bigchaindb-01.webp 300w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/2ead2/bigchaindb-01.webp 600w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/a1b27/bigchaindb-01.webp 1200w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/aae66/bigchaindb-01.webp 1800w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/6de27/bigchaindb-01.webp 2400w,\n/static/fad33c2d37f62e5be6f9c155583ba3fc/d8a41/bigchaindb-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/fad33c2d37f62e5be6f9c155583ba3fc/1a778/bigchaindb-01.png",
"originalName": "bigchaindb-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "Since 2016 I'm leading the UI design & development of all BigchainDB web properties. I created the initial BigchainDB brand and further conceptualize, execute and iterate on the creative and visual direction of BigchainDB. This includes creating and iterating on a components-based UI design system for all of BigchainDB's web properties.\nThe main website is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it, pulling data from various external sources and microservices. All design & development is embedded in a continous deployment process via GitHub & Travis.\nBranding & key visuals in collaboration with [Wojciech Hupert](https://twitter.com/wojciechhupert).\n",
"links": [
{
"title": "Link",
"type": null,
"url": "https://www.bigchaindb.com"
},
{
"title": "Styleguide",
"type": null,
"url": "https://www.bigchaindb.com/styleguide/"
},
{
"title": "GitHub",
"type": null,
"url": "https://github.com/bigchaindb/site"
},
{
"title": "Dribbble",
"type": null,
"url": "https://dribbble.com/shots/2522184-BigchainDB-site"
}
],
"techstack": [
"Sketch",
"Affinity Designer",
"Illustrator",
"Jekyll",
"Gulp",
"HTML",
"SCSS",
"JavaScript",
"Travis",
"AWS S3",
"Cloudflare"
]
}
},
{
"node": {
"title": "ChartMogul",
"slug": "/chartmogul/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/65f6e4c810abdf72631369b5b196a0fa/55230/chartmogul-01.png",
"srcSet": "/static/65f6e4c810abdf72631369b5b196a0fa/566d0/chartmogul-01.png 300w,\n/static/65f6e4c810abdf72631369b5b196a0fa/bd9e5/chartmogul-01.png 600w,\n/static/65f6e4c810abdf72631369b5b196a0fa/55230/chartmogul-01.png 1200w,\n/static/65f6e4c810abdf72631369b5b196a0fa/ea0ed/chartmogul-01.png 1800w,\n/static/65f6e4c810abdf72631369b5b196a0fa/9f094/chartmogul-01.png 2400w,\n/static/65f6e4c810abdf72631369b5b196a0fa/1a778/chartmogul-01.png 2880w",
"srcWebp": "/static/65f6e4c810abdf72631369b5b196a0fa/a1b27/chartmogul-01.webp",
"srcSetWebp": "/static/65f6e4c810abdf72631369b5b196a0fa/91d38/chartmogul-01.webp 300w,\n/static/65f6e4c810abdf72631369b5b196a0fa/2ead2/chartmogul-01.webp 600w,\n/static/65f6e4c810abdf72631369b5b196a0fa/a1b27/chartmogul-01.webp 1200w,\n/static/65f6e4c810abdf72631369b5b196a0fa/aae66/chartmogul-01.webp 1800w,\n/static/65f6e4c810abdf72631369b5b196a0fa/6de27/chartmogul-01.webp 2400w,\n/static/65f6e4c810abdf72631369b5b196a0fa/d8a41/chartmogul-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/65f6e4c810abdf72631369b5b196a0fa/1a778/chartmogul-01.png",
"originalName": "chartmogul-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "From 20152017 I was co-designing and leading the UI design & development of various ChartMogul web properties. This included the creation of a components-based UI design system and implementing it across all web touch points.\nThe main website with its landing pages is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it, while the blog is running on WordPress with its own custom theme. All embedded in an automated development & deployment workflow via GitHub and Travis.\nBesides designing and implementing new features, I maintained the front-end of the ChartMogul application and implemented the UI design system by refactoring most of its front-end codebase.\nAll branding, design & key visuals directed by Michelle Myung.\n",
"links": [
{
"title": "Link",
"type": null,
"url": "https://chartmogul.com/"
},
{
"title": "Styleguide",
"type": null,
"url": "https://chartmogul.com/styleguide/"
},
{
"title": "Dribbble",
"type": null,
"url": "https://dribbble.com/kremalicious/projects/311439-ChartMogul"
}
],
"techstack": [
"Sketch",
"Affinity Designer",
"Illustrator",
"HTML",
"SCSS",
"JavaScript",
"PHP",
"Jekyll",
"Gulp",
"WordPress",
"Travis",
"AWS S3",
"Cloudflare",
"Ruby on Rails",
"Backbone.js"
]
}
},
{
"node": {
"title": "ShareTheMeal",
"slug": "/sharethemeal/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/d00971ec082602b2f0757e795ef3669e/55230/sharethemeal-01.png",
"srcSet": "/static/d00971ec082602b2f0757e795ef3669e/566d0/sharethemeal-01.png 300w,\n/static/d00971ec082602b2f0757e795ef3669e/bd9e5/sharethemeal-01.png 600w,\n/static/d00971ec082602b2f0757e795ef3669e/55230/sharethemeal-01.png 1200w,\n/static/d00971ec082602b2f0757e795ef3669e/ea0ed/sharethemeal-01.png 1800w,\n/static/d00971ec082602b2f0757e795ef3669e/9f094/sharethemeal-01.png 2400w,\n/static/d00971ec082602b2f0757e795ef3669e/1a778/sharethemeal-01.png 2880w",
"srcWebp": "/static/d00971ec082602b2f0757e795ef3669e/a1b27/sharethemeal-01.webp",
"srcSetWebp": "/static/d00971ec082602b2f0757e795ef3669e/91d38/sharethemeal-01.webp 300w,\n/static/d00971ec082602b2f0757e795ef3669e/2ead2/sharethemeal-01.webp 600w,\n/static/d00971ec082602b2f0757e795ef3669e/a1b27/sharethemeal-01.webp 1200w,\n/static/d00971ec082602b2f0757e795ef3669e/aae66/sharethemeal-01.webp 1800w,\n/static/d00971ec082602b2f0757e795ef3669e/6de27/sharethemeal-01.webp 2400w,\n/static/d00971ec082602b2f0757e795ef3669e/d8a41/sharethemeal-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/d00971ec082602b2f0757e795ef3669e/1a778/sharethemeal-01.png",
"originalName": "sharethemeal-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "ShareTheMeal is an app from the United Nations World Food Programme (WFP) that enables people to \"share their meals\" with children in need. In 2015 I was consulting, co-designing and leading the front-end development of the ShareTheMeal website and various parts of the ShareTheMeal apps for iOS & Android.\nThe main website is a static site built with Jekyll and a custom Gulp-based build pipeline in front of it, embedded in a continous deployment process via GitHub & Travis.\n",
"links": [
{
"title": "Link",
"type": null,
"url": "https://sharethemeal.org/"
}
],
"techstack": [
"Sketch",
"Illustrator",
"Jekyll",
"Gulp",
"HTML",
"SCSS",
"JavaScript",
"Travis",
"AWS S3",
"Cloudflare",
"Node.js"
]
}
},
{
"node": {
"title": "ezeep",
"slug": "/ezeep/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/0bf3f682179b1dd551b43b3533d0f103/55230/ezeep-01.png",
"srcSet": "/static/0bf3f682179b1dd551b43b3533d0f103/566d0/ezeep-01.png 300w,\n/static/0bf3f682179b1dd551b43b3533d0f103/bd9e5/ezeep-01.png 600w,\n/static/0bf3f682179b1dd551b43b3533d0f103/55230/ezeep-01.png 1200w,\n/static/0bf3f682179b1dd551b43b3533d0f103/ea0ed/ezeep-01.png 1800w,\n/static/0bf3f682179b1dd551b43b3533d0f103/9f094/ezeep-01.png 2400w,\n/static/0bf3f682179b1dd551b43b3533d0f103/1a778/ezeep-01.png 2880w",
"srcWebp": "/static/0bf3f682179b1dd551b43b3533d0f103/a1b27/ezeep-01.webp",
"srcSetWebp": "/static/0bf3f682179b1dd551b43b3533d0f103/91d38/ezeep-01.webp 300w,\n/static/0bf3f682179b1dd551b43b3533d0f103/2ead2/ezeep-01.webp 600w,\n/static/0bf3f682179b1dd551b43b3533d0f103/a1b27/ezeep-01.webp 1200w,\n/static/0bf3f682179b1dd551b43b3533d0f103/aae66/ezeep-01.webp 1800w,\n/static/0bf3f682179b1dd551b43b3533d0f103/6de27/ezeep-01.webp 2400w,\n/static/0bf3f682179b1dd551b43b3533d0f103/d8a41/ezeep-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/0bf3f682179b1dd551b43b3533d0f103/1a778/ezeep-01.png",
"originalName": "ezeep-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "From 20122015 I worked at ezeep, where I helped creating an unprecedented, market-leading & award-winning user experience based on the principles of emotional design way ahead of all competitors. This included conceptualizing executing, and iterating on the creative & visual direction of the ezeep brand.\nI was leading the UI design & development of all ezeep touch points and - as a product designer - defined the ezeep product based on user and market research in an iterative process. On top of that, I designed and helped building all app experiences of ezeep on Windows, macOS, iOS, and Android.\nezeep was acquired by [Cortado AG](https://www.cortado.com) in 2015 and became part of their [ThinPrint Cloud Services](https://www.thinprintcloud.com) suite of products.\n",
"links": [
{
"title": "Info",
"type": null,
"url": "https://kremalicious.com/enterprise-software-sucks/"
},
{
"title": "Dribbble",
"type": null,
"url": "https://dribbble.com/kremalicious/projects/84318-ezeep"
}
],
"techstack": [
"Photoshop",
"Illustrator",
"InDesign",
"Sketch",
"HTML",
"SCSS",
"JavaScript",
"PHP",
"WordPress",
"Travis",
"AWS",
"Cloudflare",
"Node.js",
"Backbone.js",
"Electron"
]
}
},
{
"node": {
"title": "Mr. Reader",
"slug": "/mrreader/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/7d47f4d930476068faaa9e3b76a0c639/55230/mrreader-01.png",
"srcSet": "/static/7d47f4d930476068faaa9e3b76a0c639/566d0/mrreader-01.png 300w,\n/static/7d47f4d930476068faaa9e3b76a0c639/bd9e5/mrreader-01.png 600w,\n/static/7d47f4d930476068faaa9e3b76a0c639/55230/mrreader-01.png 1200w,\n/static/7d47f4d930476068faaa9e3b76a0c639/ea0ed/mrreader-01.png 1800w,\n/static/7d47f4d930476068faaa9e3b76a0c639/9f094/mrreader-01.png 2400w,\n/static/7d47f4d930476068faaa9e3b76a0c639/1a778/mrreader-01.png 2880w",
"srcWebp": "/static/7d47f4d930476068faaa9e3b76a0c639/a1b27/mrreader-01.webp",
"srcSetWebp": "/static/7d47f4d930476068faaa9e3b76a0c639/91d38/mrreader-01.webp 300w,\n/static/7d47f4d930476068faaa9e3b76a0c639/2ead2/mrreader-01.webp 600w,\n/static/7d47f4d930476068faaa9e3b76a0c639/a1b27/mrreader-01.webp 1200w,\n/static/7d47f4d930476068faaa9e3b76a0c639/aae66/mrreader-01.webp 1800w,\n/static/7d47f4d930476068faaa9e3b76a0c639/6de27/mrreader-01.webp 2400w,\n/static/7d47f4d930476068faaa9e3b76a0c639/d8a41/mrreader-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/7d47f4d930476068faaa9e3b76a0c639/1a778/mrreader-01.png",
"originalName": "mrreader-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "While working with indy iOS developer Curious Times in 2012, I designed the app icon, a custom theme, and various promotion materials for Mr. Reader, a powerful and highly loved RSS feed reader for iPad.\n",
"links": null,
"techstack": ["Photoshop"]
}
},
{
"node": {
"title": "iPixelPad",
"slug": "/ipixelpad/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/6f255d7df0c12b2ec3bd78e92e87e121/55230/ipixelpad-01.png",
"srcSet": "/static/6f255d7df0c12b2ec3bd78e92e87e121/566d0/ipixelpad-01.png 300w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/bd9e5/ipixelpad-01.png 600w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/55230/ipixelpad-01.png 1200w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/ea0ed/ipixelpad-01.png 1800w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/9f094/ipixelpad-01.png 2400w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/1a778/ipixelpad-01.png 2880w",
"srcWebp": "/static/6f255d7df0c12b2ec3bd78e92e87e121/a1b27/ipixelpad-01.webp",
"srcSetWebp": "/static/6f255d7df0c12b2ec3bd78e92e87e121/91d38/ipixelpad-01.webp 300w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/2ead2/ipixelpad-01.webp 600w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/a1b27/ipixelpad-01.webp 1200w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/aae66/ipixelpad-01.webp 1800w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/6de27/ipixelpad-01.webp 2400w,\n/static/6f255d7df0c12b2ec3bd78e92e87e121/d8a41/ipixelpad-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/6f255d7df0c12b2ec3bd78e92e87e121/1a778/ipixelpad-01.png",
"originalName": "ipixelpad-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "So, what to do when everyone seem to release iPad icons but fail to include some crisp small size icons? Pushing the pixels for yourself of course. So heres my take on the smaller sizes of an Apple iPad icon, called iPixelPad.\nReleased as a goodie on [kremalicious.com](https://kremalicious.com/ipixelpad/).\n",
"links": [
{
"title": "Download",
"type": null,
"url": "https://kremalicious.com/ipixelpad/"
}
],
"techstack": ["Photoshop"]
}
},
{
"node": {
"title": "Out Of Whale Oil",
"slug": "/outofwhaleoil/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/86ce88b849146660420149407ae47868/40570/outofwhaleoil-01.jpg",
"srcSet": "/static/86ce88b849146660420149407ae47868/7bafc/outofwhaleoil-01.jpg 300w,\n/static/86ce88b849146660420149407ae47868/a5a41/outofwhaleoil-01.jpg 600w,\n/static/86ce88b849146660420149407ae47868/40570/outofwhaleoil-01.jpg 1200w,\n/static/86ce88b849146660420149407ae47868/6a8f4/outofwhaleoil-01.jpg 1800w,\n/static/86ce88b849146660420149407ae47868/3e55d/outofwhaleoil-01.jpg 2400w,\n/static/86ce88b849146660420149407ae47868/c7ccf/outofwhaleoil-01.jpg 2880w",
"srcWebp": "/static/86ce88b849146660420149407ae47868/a1b27/outofwhaleoil-01.webp",
"srcSetWebp": "/static/86ce88b849146660420149407ae47868/91d38/outofwhaleoil-01.webp 300w,\n/static/86ce88b849146660420149407ae47868/2ead2/outofwhaleoil-01.webp 600w,\n/static/86ce88b849146660420149407ae47868/a1b27/outofwhaleoil-01.webp 1200w,\n/static/86ce88b849146660420149407ae47868/aae66/outofwhaleoil-01.webp 1800w,\n/static/86ce88b849146660420149407ae47868/6de27/outofwhaleoil-01.webp 2400w,\n/static/86ce88b849146660420149407ae47868/d8a41/outofwhaleoil-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/86ce88b849146660420149407ae47868/c7ccf/outofwhaleoil-01.jpg",
"originalName": "outofwhaleoil-01.jpg",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "Tribute wallpaper pack inspired by the Futurama movie _Into The Wild Green Yonder_. Released as a goodie on [kremalicious.com](https://kremalicious.com/out-of-whale-oil/).\n",
"links": [
{
"title": "Download",
"type": null,
"url": "https://kremalicious.com/out-of-whale-oil/"
}
],
"techstack": ["Photoshop"]
}
},
{
"node": {
"title": "Martin-Luther-Universität Halle-Wittenberg",
"slug": "/unihalle/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/abcea3265322bfbc06599d7eb173e57a/55230/unihalle-01.png",
"srcSet": "/static/abcea3265322bfbc06599d7eb173e57a/566d0/unihalle-01.png 300w,\n/static/abcea3265322bfbc06599d7eb173e57a/bd9e5/unihalle-01.png 600w,\n/static/abcea3265322bfbc06599d7eb173e57a/55230/unihalle-01.png 1200w,\n/static/abcea3265322bfbc06599d7eb173e57a/ea0ed/unihalle-01.png 1800w,\n/static/abcea3265322bfbc06599d7eb173e57a/9f094/unihalle-01.png 2400w,\n/static/abcea3265322bfbc06599d7eb173e57a/1a778/unihalle-01.png 2880w",
"srcWebp": "/static/abcea3265322bfbc06599d7eb173e57a/a1b27/unihalle-01.webp",
"srcSetWebp": "/static/abcea3265322bfbc06599d7eb173e57a/91d38/unihalle-01.webp 300w,\n/static/abcea3265322bfbc06599d7eb173e57a/2ead2/unihalle-01.webp 600w,\n/static/abcea3265322bfbc06599d7eb173e57a/a1b27/unihalle-01.webp 1200w,\n/static/abcea3265322bfbc06599d7eb173e57a/aae66/unihalle-01.webp 1800w,\n/static/abcea3265322bfbc06599d7eb173e57a/6de27/unihalle-01.webp 2400w,\n/static/abcea3265322bfbc06599d7eb173e57a/d8a41/unihalle-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/abcea3265322bfbc06599d7eb173e57a/1a778/unihalle-01.png",
"originalName": "unihalle-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "From 20092012 I worked at the IT services department of [Martin-Luther-Universität Halle-Wittenberg](http://www.uni-halle.de) where I conceptualized, designed & implemented numerous in-house and public facing interfaces for thousands of students and staff.\nAdditionally, I conceptualized, designed, created, and maintained the blog network & community for all students & staff.\n",
"links": [
{
"title": "Link",
"type": null,
"url": "http://blogs.urz-uni-halle.de"
},
{
"title": "Dribbble",
"type": null,
"url": "https://dribbble.com/kremalicious/projects/690029-MLU"
}
],
"techstack": [
"Photoshop",
"Illustrator",
"HTML",
"SCSS",
"JavaScript",
"PHP",
"Ruby on Rails",
"WordPress",
"Ilias",
"Stud.IP"
]
}
},
{
"node": {
"title": "Coffee Cup",
"slug": "/coffeecup/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/c6b5a93dc77983bf55a511a6847cbbbe/55230/coffeecup-01.png",
"srcSet": "/static/c6b5a93dc77983bf55a511a6847cbbbe/566d0/coffeecup-01.png 300w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/bd9e5/coffeecup-01.png 600w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/55230/coffeecup-01.png 1200w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/ea0ed/coffeecup-01.png 1800w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/9f094/coffeecup-01.png 2400w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/1a778/coffeecup-01.png 2880w",
"srcWebp": "/static/c6b5a93dc77983bf55a511a6847cbbbe/a1b27/coffeecup-01.webp",
"srcSetWebp": "/static/c6b5a93dc77983bf55a511a6847cbbbe/91d38/coffeecup-01.webp 300w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/2ead2/coffeecup-01.webp 600w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/a1b27/coffeecup-01.webp 1200w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/aae66/coffeecup-01.webp 1800w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/6de27/coffeecup-01.webp 2400w,\n/static/c6b5a93dc77983bf55a511a6847cbbbe/d8a41/coffeecup-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/c6b5a93dc77983bf55a511a6847cbbbe/1a778/coffeecup-01.png",
"originalName": "coffeecup-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "Desktop icons showing the fuel of most designers. Released as a goodie on [kremalicious.com](https://kremalicious.com/coffee-cup-icon/).\n",
"links": [
{
"title": "Download",
"type": null,
"url": "https://kremalicious.com/coffee-cup-icon/"
}
],
"techstack": ["Photoshop"]
}
},
{
"node": {
"title": "Project Purple",
"slug": "/projectpurple/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/8cc647e8b1490931daa6580a40883e29/55230/projectpurple-01.png",
"srcSet": "/static/8cc647e8b1490931daa6580a40883e29/566d0/projectpurple-01.png 300w,\n/static/8cc647e8b1490931daa6580a40883e29/bd9e5/projectpurple-01.png 600w,\n/static/8cc647e8b1490931daa6580a40883e29/55230/projectpurple-01.png 1200w,\n/static/8cc647e8b1490931daa6580a40883e29/ea0ed/projectpurple-01.png 1800w,\n/static/8cc647e8b1490931daa6580a40883e29/9f094/projectpurple-01.png 2400w,\n/static/8cc647e8b1490931daa6580a40883e29/1a778/projectpurple-01.png 2880w",
"srcWebp": "/static/8cc647e8b1490931daa6580a40883e29/a1b27/projectpurple-01.webp",
"srcSetWebp": "/static/8cc647e8b1490931daa6580a40883e29/91d38/projectpurple-01.webp 300w,\n/static/8cc647e8b1490931daa6580a40883e29/2ead2/projectpurple-01.webp 600w,\n/static/8cc647e8b1490931daa6580a40883e29/a1b27/projectpurple-01.webp 1200w,\n/static/8cc647e8b1490931daa6580a40883e29/aae66/projectpurple-01.webp 1800w,\n/static/8cc647e8b1490931daa6580a40883e29/6de27/projectpurple-01.webp 2400w,\n/static/8cc647e8b1490931daa6580a40883e29/d8a41/projectpurple-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/8cc647e8b1490931daa6580a40883e29/1a778/projectpurple-01.png",
"originalName": "projectpurple-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "It had been revealed the original iPhone was developed in a locked down building under the name Project Purple and because of the secrecy involved, the team decorated the building with Fight Club references. Perfect story to create a wallpaper out of it.\nReleased as a goodie on [kremalicious.com](https://kremalicious.com/projectpurple/).\n",
"links": [
{
"title": "Download",
"type": null,
"url": "https://kremalicious.com/projectpurple/"
}
],
"techstack": ["Photoshop"]
}
},
{
"node": {
"title": "Allinnia Creative Group",
"slug": "/allinnia/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/d86855c9ee74e8dfbf169ded0631f5c3/55230/allinnia-01.png",
"srcSet": "/static/d86855c9ee74e8dfbf169ded0631f5c3/566d0/allinnia-01.png 300w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/bd9e5/allinnia-01.png 600w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/55230/allinnia-01.png 1200w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/ea0ed/allinnia-01.png 1800w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/9f094/allinnia-01.png 2400w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/1a778/allinnia-01.png 2880w",
"srcWebp": "/static/d86855c9ee74e8dfbf169ded0631f5c3/a1b27/allinnia-01.webp",
"srcSetWebp": "/static/d86855c9ee74e8dfbf169ded0631f5c3/91d38/allinnia-01.webp 300w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/2ead2/allinnia-01.webp 600w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/a1b27/allinnia-01.webp 1200w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/aae66/allinnia-01.webp 1800w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/6de27/allinnia-01.webp 2400w,\n/static/d86855c9ee74e8dfbf169ded0631f5c3/d8a41/allinnia-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/d86855c9ee74e8dfbf169ded0631f5c3/1a778/allinnia-01.png",
"originalName": "allinnia-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "In 2009 I created the branding, website, and various key visuals for professional music production studio Allinnia Creative Group, reflecting their own musical compositions.\nThe website was built from scratch as a simple PHP application with a store and music listening functionality.\n",
"links": null,
"techstack": ["Photoshop", "HTML", "CSS", "JavaScript", "PHP"]
}
},
{
"node": {
"title": "Aperture Loupe",
"slug": "/apertureloupe/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/04fa21ff7752ace46c954f5995deb0d5/55230/apertureloupe-01.png",
"srcSet": "/static/04fa21ff7752ace46c954f5995deb0d5/566d0/apertureloupe-01.png 300w,\n/static/04fa21ff7752ace46c954f5995deb0d5/bd9e5/apertureloupe-01.png 600w,\n/static/04fa21ff7752ace46c954f5995deb0d5/55230/apertureloupe-01.png 1200w,\n/static/04fa21ff7752ace46c954f5995deb0d5/ea0ed/apertureloupe-01.png 1800w,\n/static/04fa21ff7752ace46c954f5995deb0d5/9f094/apertureloupe-01.png 2400w,\n/static/04fa21ff7752ace46c954f5995deb0d5/1a778/apertureloupe-01.png 2880w",
"srcWebp": "/static/04fa21ff7752ace46c954f5995deb0d5/a1b27/apertureloupe-01.webp",
"srcSetWebp": "/static/04fa21ff7752ace46c954f5995deb0d5/91d38/apertureloupe-01.webp 300w,\n/static/04fa21ff7752ace46c954f5995deb0d5/2ead2/apertureloupe-01.webp 600w,\n/static/04fa21ff7752ace46c954f5995deb0d5/a1b27/apertureloupe-01.webp 1200w,\n/static/04fa21ff7752ace46c954f5995deb0d5/aae66/apertureloupe-01.webp 1800w,\n/static/04fa21ff7752ace46c954f5995deb0d5/6de27/apertureloupe-01.webp 2400w,\n/static/04fa21ff7752ace46c954f5995deb0d5/d8a41/apertureloupe-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/04fa21ff7752ace46c954f5995deb0d5/1a778/apertureloupe-01.png",
"originalName": "apertureloupe-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "When Apple released their professional photography app _Aperture_ in 2008, the loupe tool in there was something really novel and just fun to play with. Inspired by that, I created this macOS desktop icon.\n",
"links": null,
"techstack": ["Photoshop"]
}
},
{
"node": {
"title": "Adiumeetie",
"slug": "/adiumeetie/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/55230/adiumeetie-01.png",
"srcSet": "/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/566d0/adiumeetie-01.png 300w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/bd9e5/adiumeetie-01.png 600w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/55230/adiumeetie-01.png 1200w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/ea0ed/adiumeetie-01.png 1800w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/9f094/adiumeetie-01.png 2400w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/1a778/adiumeetie-01.png 2880w",
"srcWebp": "/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/a1b27/adiumeetie-01.webp",
"srcSetWebp": "/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/91d38/adiumeetie-01.webp 300w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/2ead2/adiumeetie-01.webp 600w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/a1b27/adiumeetie-01.webp 1200w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/aae66/adiumeetie-01.webp 1800w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/6de27/adiumeetie-01.webp 2400w,\n/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/d8a41/adiumeetie-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/d58bb3fcb97a3fbaa31ec8f1e4703c7e/1a778/adiumeetie-01.png",
"originalName": "adiumeetie-01.png",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "A macOS replacement desktop icon created in 2009 for the popular Mac IM client Adium following the style of atebits excellent Tweetie for Mac icon. Released as a goodie on [kremalicious.com](https://kremalicious.com/adiumeetie/).\n",
"links": [
{
"title": "Download",
"type": null,
"url": "https://kremalicious.com/adiumeetie/"
}
],
"techstack": ["Photoshop"]
}
},
{
"node": {
"title": "Niépce's Camera Obscura",
"slug": "/niepces-camera-obscura/",
"img": {
"childImageSharp": {
"fluid": {
"aspectRatio": 1.8,
"src": "/static/d40b5eff60152eada7bbbc6c03f5c8a8/40570/niepces-camera-obscura-01.jpg",
"srcSet": "/static/d40b5eff60152eada7bbbc6c03f5c8a8/7bafc/niepces-camera-obscura-01.jpg 300w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/a5a41/niepces-camera-obscura-01.jpg 600w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/40570/niepces-camera-obscura-01.jpg 1200w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/6a8f4/niepces-camera-obscura-01.jpg 1800w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/3e55d/niepces-camera-obscura-01.jpg 2400w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/c7ccf/niepces-camera-obscura-01.jpg 2880w",
"srcWebp": "/static/d40b5eff60152eada7bbbc6c03f5c8a8/a1b27/niepces-camera-obscura-01.webp",
"srcSetWebp": "/static/d40b5eff60152eada7bbbc6c03f5c8a8/91d38/niepces-camera-obscura-01.webp 300w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/2ead2/niepces-camera-obscura-01.webp 600w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/a1b27/niepces-camera-obscura-01.webp 1200w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/aae66/niepces-camera-obscura-01.webp 1800w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/6de27/niepces-camera-obscura-01.webp 2400w,\n/static/d40b5eff60152eada7bbbc6c03f5c8a8/d8a41/niepces-camera-obscura-01.webp 2880w",
"sizes": "(max-width: 1200px) 100vw, 1200px",
"originalImg": "/static/d40b5eff60152eada7bbbc6c03f5c8a8/c7ccf/niepces-camera-obscura-01.jpg",
"originalName": "niepces-camera-obscura-01.jpg",
"presentationWidth": 1200,
"presentationHeight": 667
}
}
},
"description": "In 2008 I used the camera obscura as it was used by Nicéphore Niépce in 1826 to create an Aperture and iPhoto replacement icon.\nNicéphore Niépce made it first possible to preserve an image taken with a camera obscura in 1826 or 1827 by using a special mixture of bitumen on a glass or metal plate, naming it Heliography. This first preserved image 'View from the Window at Le Gras' is the one you can see in the iPhoto icon.\n",
"links": [
{
"title": "Info",
"type": null,
"url": "https://kremalicious.com/niepces-camera-obscura-and-the-history-of-the-first-photograph/"
}
],
"techstack": ["Photoshop"]
}
}
]
}
}

View File

@ -1 +1 @@
module.exports = 'test-file-stub'
module.exports = 'div'

View File

@ -0,0 +1 @@
module.exports = { ReactComponent: 'svg' }

View File

@ -0,0 +1,43 @@
import React from 'react'
import PropTypes from 'prop-types'
import { ReactComponent as Link } from '../../images/link.svg'
import { ReactComponent as Download } from '../../images/download.svg'
import { ReactComponent as Info } from '../../images/info.svg'
import { ReactComponent as Styleguide } from '../../images/styleguide.svg'
import { ReactComponent as GitHub } from '../../images/github.svg'
import { ReactComponent as Dribbble } from '../../images/dribbble.svg'
const LinkIcon = ({ title, type, ...props }) => {
let typeOrTitle = type ? type : title
switch (typeOrTitle) {
case 'website':
case 'Link':
return <Link {...props} />
case 'github':
case 'GitHub':
return <GitHub {...props} />
case 'dribbble':
case 'Dribbble':
return <Dribbble {...props} />
case 'info':
case 'Info':
return <Info {...props} />
case 'download':
case 'Download':
return <Download {...props} />
case 'styleguide':
case 'Styleguide':
return <Styleguide {...props} />
default:
return null
}
}
LinkIcon.propTypes = {
title: PropTypes.string,
type: PropTypes.string
}
export default LinkIcon

View File

@ -0,0 +1,24 @@
import React from 'react'
import { render } from 'react-testing-library'
import LinkIcon from './LinkIcon'
describe('LinkIcon', () => {
const link = {
title: 'my project',
type: 'website'
}
it('renders correctly', () => {
const { container } = render(
<LinkIcon title={link.title} type={link.type} />
)
expect(container.firstChild.nodeName).toBe('svg')
})
it('does not render with unknown type', () => {
const link = { type: 'whatever' }
const { container } = render(<LinkIcon type={link.type} />)
expect(container.firstChild).not.toBeInTheDocument()
})
})

View File

@ -0,0 +1,17 @@
import React from 'react'
import { render } from 'react-testing-library'
import ProjectImage from './ProjectImage'
import data from '../../../jest/__fixtures__/projects.json'
describe('ProjectImage', () => {
it('renders correctly', () => {
const { node } = data.allProjectsYaml.edges[0]
const { fluid } = node.img.childImageSharp
const { container } = render(
<ProjectImage fluid={fluid} alt={node.title} />
)
expect(container.firstChild).toBeInTheDocument()
})
})

View File

@ -2,48 +2,11 @@ import React, { PureComponent } from 'react'
import PropTypes from 'prop-types'
import Button from '../atoms/Button'
import { ReactComponent as Link } from '../../images/link.svg'
import { ReactComponent as Download } from '../../images/download.svg'
import { ReactComponent as Info } from '../../images/info.svg'
import { ReactComponent as Styleguide } from '../../images/styleguide.svg'
import { ReactComponent as GitHub } from '../../images/github.svg'
import { ReactComponent as Dribbble } from '../../images/dribbble.svg'
import LinkIcon from '../atoms/LinkIcon'
import icons from '../atoms/Icons.module.scss'
import styles from './ProjectLinks.module.scss'
const LinkIcon = ({ title, type, ...props }) => {
let typeOrTitle = type ? type : title
switch (typeOrTitle) {
case 'website':
case 'Link':
return <Link {...props} />
case 'github':
case 'GitHub':
return <GitHub {...props} />
case 'dribbble':
case 'Dribbble':
return <Dribbble {...props} />
case 'info':
case 'Info':
return <Info {...props} />
case 'download':
case 'Download':
return <Download {...props} />
case 'styleguide':
case 'Styleguide':
return <Styleguide {...props} />
default:
return null
}
}
LinkIcon.propTypes = {
title: PropTypes.string,
type: PropTypes.string
}
export default class ProjectLinks extends PureComponent {
static propTypes = {
links: PropTypes.array
@ -62,7 +25,7 @@ export default class ProjectLinks extends PureComponent {
return (
<li key={title}>
<Button href={url}>
<Button href={url} data-testid="link">
<LinkIcon title={title} type={type} className={icons.icon} />
{title}
</Button>

View File

@ -0,0 +1,24 @@
import React from 'react'
import { render } from 'react-testing-library'
import ProjectLinks from './ProjectLinks'
describe('ProjectLinks', () => {
const links = [
{
title: 'my project',
type: 'website',
url: 'https://hello.com'
}
]
it('renders correctly', () => {
const { container, getByTestId } = render(<ProjectLinks links={links} />)
expect(container.firstChild).toBeInTheDocument()
expect(getByTestId('link').nodeName).toBe('A')
expect(getByTestId('link').textContent).toBe('my project')
expect(getByTestId('link').attributes.href.textContent).toBe(
'https://hello.com'
)
})
})