[{"_path":"/portfolio/fellow-creatures","_draft":false,"_partial":false,"_empty":false,"title":"Tasty treat: Designing a vegan chocolate eshop","description":"Building an e-commerce website from scratch might not sound like an easy task. However, having an experienced guide can make it into an exciting and fun project.","excerpt":{"type":"root","children":[{"type":"element","tag":"h1","props":{"id":"tasty-treat-designing-a-vegan-chocolate-eshop"},"children":[{"type":"text","value":"Tasty treat: Designing a vegan chocolate eshop"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Building an e-commerce website from scratch might not sound like an easy task. However, having an experienced guide can make it into an exciting and fun project."}]},{"type":"element","tag":"h2","props":{"id":"the-e-commerce-journey"},"children":[{"type":"text","value":"The e-commerce journey"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is how the journey started for me. Unsurprisingly, it was with a client..."}]},{"type":"element","tag":"h3","props":{"id":"having-a-great-client-helps"},"children":[{"type":"text","value":"Having a great client helps"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Zsolt is good friend of mine and a great mind for business. When he asked me to make his website, I went for it, even thought I had little experience with Shopify development."}]},{"type":"element","tag":"h3","props":{"id":"testing-the-waters"},"children":[{"type":"text","value":"Testing the waters"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Our first theme was built on top of a free theme and I would edit it so that it would suit Zsolt's needs as well as it could. However, there was still a need for a more specific layout and fine-grain control over the individual elements, so I decided to rebuild the theme from scratch."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is how the current iteration came to be. The shop is designed with liquid templates and advanced functionality is added with JavaScript. This includes login modal windows. Cart panel that slides from the right. Adding to your cart and updating the items through Ajax (without reloading the page), and many other details that make the shopping experience so much smoother."}]},{"type":"element","tag":"h3","props":{"id":"apps-can-be-your-friends"},"children":[{"type":"text","value":"Apps can be your friends"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Additionally, there was the need to integrate several key apps."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/subscription-payments","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Recharge Subscriptions"}]},{"type":"text","value":" for the ability to sell subscription products"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/advanced-custom-field","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Advanced Custom Fields"}]},{"type":"text","value":" for adding a bunch of important information about the products"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/connected-inventory","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Connected Inventory"}]},{"type":"text","value":" for the ability to sell products in bundles"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/product-reviews","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Customer Reviews"}]},{"type":"text","value":" for loads of stars"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/order-printer","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Order Printer"}]},{"type":"text","value":" for easily printing the package labels and receipts"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For Recharge Subscription, I made sure that the subscription products are added to cart with the correct monthly billing information. I also implemented a "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"one-click checkout"}]},{"type":"text","value":" for quick and smooth buys."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Advanced Custom Fields are used mainly for product pages where different types of information is necessary. Products can have a list of ingredients, additional images, custom description for body text and other features."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Connected Inventory is vital if you want to sell your products in bundles. It allows you to link different products so that a box of five different chocolates registers in the stock quantity of the individual products. I have set up these relationships for the bundle products so that the numbers always match."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Customer Reviews is pretty self explanatory. The key element here is the design. It was important to get the style of the reviews to match the overall theme of the shop."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For Order Printer I designed custom labels which were made exactly for particular label sheets. This allows to simply print the labels and streamlines the process of packaging and posting."}]},{"type":"element","tag":"h3","props":{"id":"images-large-but-light"},"children":[{"type":"text","value":"Images? Large but light"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"An important requirement for Fellow Creatures was image optimization. As the shop uses large images and gifs, it was essential to optimize them to make the shop load fast."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I use "},{"type":"element","tag":"a","props":{"href":"https://bulkresizephotos.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Bulk Image Resizer"}]},{"type":"text","value":" and "},{"type":"element","tag":"a","props":{"href":"https://tinypng.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Tiny PNG"}]},{"type":"text","value":" for optimizing images in advance. However, I also implement a solution which serves different sized images on different devices. On mobile, you might only need a 400x300 image, so why load 1920x1080? This greatly improves the performance for mobile shoppers."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Another important aspect of the Fellow Creatures brand was a fun and playful design. This includes the use of moving elements and images. I have designed an animated SVG strip on the homepage and a logo slider. Also, try going to the "},{"type":"element","tag":"a","props":{"href":"https://www.fellowcreatures.co.uk/collections/frontpage","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"shop page"}]},{"type":"text","value":" and hovering over a product. The image starts moving in a loop! These small touches are really what makes a website special."}]},{"type":"element","tag":"h2","props":{"id":"final-thoughts"},"children":[{"type":"text","value":"Final thoughts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All this work was worth it in my eyes. Zsolt is very happy with the site, it generates revenue, and we continue to work on further ideas and improvements."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Visit the store on "},{"type":"element","tag":"a","props":{"href":"https://www.fellowcreatures.co.uk/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"FellowCreatures.co.uk"}]},{"type":"text","value":"."}]}]},"head":{"title":"Fellow Creatures Store","description":"Find out how I developed the e-commerce website on Shopify that sells vegan chocolates.","image":"/image/portfolio/fellow-creatures.jpg"},"fields":{"image":"/image/portfolio/fellow-creatures.jpg","order":100,"skills":["Shopify","Liquid","Tailwind CSS"]},"featured":true,"type":"full","body":{"type":"root","children":[{"type":"element","tag":"h1","props":{"id":"tasty-treat-designing-a-vegan-chocolate-eshop"},"children":[{"type":"text","value":"Tasty treat: Designing a vegan chocolate eshop"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Building an e-commerce website from scratch might not sound like an easy task. However, having an experienced guide can make it into an exciting and fun project."}]},{"type":"element","tag":"h2","props":{"id":"the-e-commerce-journey"},"children":[{"type":"text","value":"The e-commerce journey"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is how the journey started for me. Unsurprisingly, it was with a client..."}]},{"type":"element","tag":"h3","props":{"id":"having-a-great-client-helps"},"children":[{"type":"text","value":"Having a great client helps"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Zsolt is good friend of mine and a great mind for business. When he asked me to make his website, I went for it, even thought I had little experience with Shopify development."}]},{"type":"element","tag":"h3","props":{"id":"testing-the-waters"},"children":[{"type":"text","value":"Testing the waters"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Our first theme was built on top of a free theme and I would edit it so that it would suit Zsolt's needs as well as it could. However, there was still a need for a more specific layout and fine-grain control over the individual elements, so I decided to rebuild the theme from scratch."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is how the current iteration came to be. The shop is designed with liquid templates and advanced functionality is added with JavaScript. This includes login modal windows. Cart panel that slides from the right. Adding to your cart and updating the items through Ajax (without reloading the page), and many other details that make the shopping experience so much smoother."}]},{"type":"element","tag":"h3","props":{"id":"apps-can-be-your-friends"},"children":[{"type":"text","value":"Apps can be your friends"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Additionally, there was the need to integrate several key apps."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/subscription-payments","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Recharge Subscriptions"}]},{"type":"text","value":" for the ability to sell subscription products"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/advanced-custom-field","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Advanced Custom Fields"}]},{"type":"text","value":" for adding a bunch of important information about the products"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/connected-inventory","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Connected Inventory"}]},{"type":"text","value":" for the ability to sell products in bundles"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/product-reviews","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Customer Reviews"}]},{"type":"text","value":" for loads of stars"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://apps.shopify.com/order-printer","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Order Printer"}]},{"type":"text","value":" for easily printing the package labels and receipts"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For Recharge Subscription, I made sure that the subscription products are added to cart with the correct monthly billing information. I also implemented a "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"one-click checkout"}]},{"type":"text","value":" for quick and smooth buys."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Advanced Custom Fields are used mainly for product pages where different types of information is necessary. Products can have a list of ingredients, additional images, custom description for body text and other features."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Connected Inventory is vital if you want to sell your products in bundles. It allows you to link different products so that a box of five different chocolates registers in the stock quantity of the individual products. I have set up these relationships for the bundle products so that the numbers always match."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Customer Reviews is pretty self explanatory. The key element here is the design. It was important to get the style of the reviews to match the overall theme of the shop."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For Order Printer I designed custom labels which were made exactly for particular label sheets. This allows to simply print the labels and streamlines the process of packaging and posting."}]},{"type":"element","tag":"h3","props":{"id":"images-large-but-light"},"children":[{"type":"text","value":"Images? Large but light"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"An important requirement for Fellow Creatures was image optimization. As the shop uses large images and gifs, it was essential to optimize them to make the shop load fast."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I use "},{"type":"element","tag":"a","props":{"href":"https://bulkresizephotos.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Bulk Image Resizer"}]},{"type":"text","value":" and "},{"type":"element","tag":"a","props":{"href":"https://tinypng.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Tiny PNG"}]},{"type":"text","value":" for optimizing images in advance. However, I also implement a solution which serves different sized images on different devices. On mobile, you might only need a 400x300 image, so why load 1920x1080? This greatly improves the performance for mobile shoppers."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Another important aspect of the Fellow Creatures brand was a fun and playful design. This includes the use of moving elements and images. I have designed an animated SVG strip on the homepage and a logo slider. Also, try going to the "},{"type":"element","tag":"a","props":{"href":"https://www.fellowcreatures.co.uk/collections/frontpage","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"shop page"}]},{"type":"text","value":" and hovering over a product. The image starts moving in a loop! These small touches are really what makes a website special."}]},{"type":"element","tag":"h2","props":{"id":"final-thoughts"},"children":[{"type":"text","value":"Final thoughts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All this work was worth it in my eyes. Zsolt is very happy with the site, it generates revenue, and we continue to work on further ideas and improvements."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Visit the store on "},{"type":"element","tag":"a","props":{"href":"https://www.fellowcreatures.co.uk/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"FellowCreatures.co.uk"}]},{"type":"text","value":"."}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"the-e-commerce-journey","depth":2,"text":"The e-commerce journey","children":[{"id":"having-a-great-client-helps","depth":3,"text":"Having a great client helps"},{"id":"testing-the-waters","depth":3,"text":"Testing the waters"},{"id":"apps-can-be-your-friends","depth":3,"text":"Apps can be your friends"},{"id":"images-large-but-light","depth":3,"text":"Images? Large but light"}]},{"id":"final-thoughts","depth":2,"text":"Final thoughts"}]}},"_type":"markdown","_id":"content:portfolio:fellow-creatures.md","_source":"content","_file":"portfolio/fellow-creatures.md","_extension":"md"},{"_path":"/portfolio/upupaepop","_draft":false,"_partial":false,"_empty":false,"title":"Letterpress in WordPress: Print studio portfolio","description":"Building a web for a designer and typographer is a wonderful experience. Not only you get to implement a beautiful design, you also learn a lot during the process!","excerpt":{"type":"root","children":[{"type":"element","tag":"h1","props":{"id":"letterpress-in-wordpress-print-studio-portfolio"},"children":[{"type":"text","value":"Letterpress in WordPress: Print studio portfolio"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Building a web for a designer and typographer is a wonderful experience. Not only you get to implement a beautiful design, you also learn a lot during the process!"}]},{"type":"element","tag":"h2","props":{"id":"client"},"children":[{"type":"text","value":"Client"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Jakub is a graphic designer and a typographer and together with his wife he owns a small printing studio. This project was focused on updating the studio's website."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Jakub wanted to "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"cut down on the maintenance costs"}]},{"type":"text","value":" of his old Wix site and combine his web with an eshop. The task was relatively simple, but the webdesign studios and online marketing agencies offered rates that far exceeded the budget. Instead, I managed to offer a "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"collaboration that was flexible and adaptable"}]},{"type":"text","value":", and I was able to deliver the project at much lower price."}]},{"type":"element","tag":"h2","props":{"id":"graphics"},"children":[{"type":"text","value":"Graphics"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Jakub created a simple design that fit his needs. He focused on clean presentation with interesting fonts and a couple of graphic elements, such as the \"scroll-to-top\" navigation hand at the bottom of the page, or a separator above the menu. The key part was "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"precision"}]},{"type":"text","value":" in transferring the design to the WordPress template."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"We decided to customize a "},{"type":"element","tag":"a","props":{"href":"https://themeforest.net/item/pinecone-creative-portfolio-and-blog-for-agency/13200056","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Pinecone"}]},{"type":"text","value":" theme from Theme Forest. By "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"creating a child theme"}]},{"type":"text","value":", I was able to apply all the customizations necessary, while preserving the original theme code. This is important in case that the theme needs update - changes made in the original theme would then be "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"lost forever"}]},{"type":"text","value":"!"}]},{"type":"element","tag":"h2","props":{"id":"image-optimization"},"children":[{"type":"text","value":"Image optimization"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Another important requirement was image optimization. The studio's portfolio is quite image-heavy and "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"serving the right image sizes in the right quality and format"}]},{"type":"text","value":" is therefore crucial for the website's performance. I integrated the "},{"type":"element","tag":"a","props":{"href":"https://cloudinary.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Cloudinary"}]},{"type":"text","value":" service into the WordPress theme, so that all images loaded into the media gallery get processed, cached and served in the right format and size. This improved the performance greatly, even when viewing a whole set of full-screen images."}]},{"type":"element","tag":"h2","props":{"id":"e-commerce"},"children":[{"type":"text","value":"E-commerce"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Finally, the website was also intended to sell the studio products. I integrated and set up "},{"type":"element","tag":"a","props":{"href":"https://woocommerce.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"WooCommerce"}]},{"type":"text","value":" to easily enable the functionality. I customized the shipping and payment options according to Jakub's needs and "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"integrated a payment gateway"}]},{"type":"text","value":" to allow customers to pay by card. Since then the studio receives the orders directly into their mailbox and all the processing can be done from the website's administration."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"By utilizing open source software, pre-built theme, and services which offer free plans, we were able to keep the project cost very low while producing high-quality deliverables. I assisted Jakub with all the necessary steps, such as "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"changing the hosting service, updating domain records, and setting up WooCommerce"}]},{"type":"text","value":". I also gave him a thorough walk-through of the admin environment and made sure he was comfortable with using the web on his own. This way, Jakub was able to focus on updating his portfolio with beautiful images and descriptions, while I was taking care of the technical details."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The collaboration worked out great. Jakub is fond of his new website and we continue working together on other website projects."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Read up on the studio projects on "},{"type":"element","tag":"a","props":{"href":"https://upupaepop.cz/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Upupaepop.cz"}]},{"type":"text","value":"."}]}]},"head":{"title":"Upupaepop","description":"Redesigning a Wix site and switching to an open source e-commerce? Piece of cake! 🍰","image":"/image/portfolio/upupaepop.jpg"},"fields":{"image":"/image/portfolio/upupaepop.jpg","order":200,"skills":["WordPress","WooCommerce"]},"featured":true,"type":"full","body":{"type":"root","children":[{"type":"element","tag":"h1","props":{"id":"letterpress-in-wordpress-print-studio-portfolio"},"children":[{"type":"text","value":"Letterpress in WordPress: Print studio portfolio"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Building a web for a designer and typographer is a wonderful experience. Not only you get to implement a beautiful design, you also learn a lot during the process!"}]},{"type":"element","tag":"h2","props":{"id":"client"},"children":[{"type":"text","value":"Client"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Jakub is a graphic designer and a typographer and together with his wife he owns a small printing studio. This project was focused on updating the studio's website."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Jakub wanted to "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"cut down on the maintenance costs"}]},{"type":"text","value":" of his old Wix site and combine his web with an eshop. The task was relatively simple, but the webdesign studios and online marketing agencies offered rates that far exceeded the budget. Instead, I managed to offer a "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"collaboration that was flexible and adaptable"}]},{"type":"text","value":", and I was able to deliver the project at much lower price."}]},{"type":"element","tag":"h2","props":{"id":"graphics"},"children":[{"type":"text","value":"Graphics"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Jakub created a simple design that fit his needs. He focused on clean presentation with interesting fonts and a couple of graphic elements, such as the \"scroll-to-top\" navigation hand at the bottom of the page, or a separator above the menu. The key part was "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"precision"}]},{"type":"text","value":" in transferring the design to the WordPress template."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"We decided to customize a "},{"type":"element","tag":"a","props":{"href":"https://themeforest.net/item/pinecone-creative-portfolio-and-blog-for-agency/13200056","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Pinecone"}]},{"type":"text","value":" theme from Theme Forest. By "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"creating a child theme"}]},{"type":"text","value":", I was able to apply all the customizations necessary, while preserving the original theme code. This is important in case that the theme needs update - changes made in the original theme would then be "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"lost forever"}]},{"type":"text","value":"!"}]},{"type":"element","tag":"h2","props":{"id":"image-optimization"},"children":[{"type":"text","value":"Image optimization"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Another important requirement was image optimization. The studio's portfolio is quite image-heavy and "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"serving the right image sizes in the right quality and format"}]},{"type":"text","value":" is therefore crucial for the website's performance. I integrated the "},{"type":"element","tag":"a","props":{"href":"https://cloudinary.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Cloudinary"}]},{"type":"text","value":" service into the WordPress theme, so that all images loaded into the media gallery get processed, cached and served in the right format and size. This improved the performance greatly, even when viewing a whole set of full-screen images."}]},{"type":"element","tag":"h2","props":{"id":"e-commerce"},"children":[{"type":"text","value":"E-commerce"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Finally, the website was also intended to sell the studio products. I integrated and set up "},{"type":"element","tag":"a","props":{"href":"https://woocommerce.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"WooCommerce"}]},{"type":"text","value":" to easily enable the functionality. I customized the shipping and payment options according to Jakub's needs and "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"integrated a payment gateway"}]},{"type":"text","value":" to allow customers to pay by card. Since then the studio receives the orders directly into their mailbox and all the processing can be done from the website's administration."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"By utilizing open source software, pre-built theme, and services which offer free plans, we were able to keep the project cost very low while producing high-quality deliverables. I assisted Jakub with all the necessary steps, such as "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"changing the hosting service, updating domain records, and setting up WooCommerce"}]},{"type":"text","value":". I also gave him a thorough walk-through of the admin environment and made sure he was comfortable with using the web on his own. This way, Jakub was able to focus on updating his portfolio with beautiful images and descriptions, while I was taking care of the technical details."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The collaboration worked out great. Jakub is fond of his new website and we continue working together on other website projects."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Read up on the studio projects on "},{"type":"element","tag":"a","props":{"href":"https://upupaepop.cz/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Upupaepop.cz"}]},{"type":"text","value":"."}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"client","depth":2,"text":"Client"},{"id":"graphics","depth":2,"text":"Graphics"},{"id":"image-optimization","depth":2,"text":"Image optimization"},{"id":"e-commerce","depth":2,"text":"E-commerce"}]}},"_type":"markdown","_id":"content:portfolio:upupaepop.md","_source":"content","_file":"portfolio/upupaepop.md","_extension":"md"},{"_path":"/portfolio/sca-department","_draft":false,"_partial":false,"_empty":false,"title":"Learning together: A university department website","description":"In my experience, university websites are notorious for being hard to read and navigate. That's why I welcomed the challenge of creating a web for my university department.","excerpt":{"type":"root","children":[{"type":"element","tag":"h1","props":{"id":"learning-together-a-university-department-website"},"children":[{"type":"text","value":"Learning together: A university department website"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In my experience, university websites are notorious for being hard to read and navigate. That's why I welcomed the challenge of creating a web for my university department."}]},{"type":"element","tag":"h2","props":{"id":"the-challenge"},"children":[{"type":"text","value":"The challenge"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I was asked to update the website of the Department of Social and Cultural Anthropology. Milan, a university researcher and lecturer who took care of the web had designed the previous version of the web using "},{"type":"element","tag":"a","props":{"href":"https://elementor.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Elementor"}]},{"type":"text","value":" and several other plugins. However, the site seemed to be lacking in design and readability. There were also requests for additional "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"content types"}]},{"type":"text","value":" and an "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"multilingual translations"}]},{"type":"text","value":"."}]},{"type":"element","tag":"h2","props":{"id":"design-first"},"children":[{"type":"text","value":"Design first"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I first supplied a "},{"type":"element","tag":"a","props":{"href":"https://www.figma.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Figma"}]},{"type":"text","value":" design for several pages to give a good idea of where I was headings. I was basing my design loosely on the previous version as there were some good elements in it. However, I redesigned and "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"simplified the content structure"}]},{"type":"text","value":" - mainly the navigation links and the content of some pages."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Milan and other members of the staff loved the design, so I moved on to the implementation. I decided for a "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"custom built them"}]},{"type":"text","value":"e, as it would give me full control over the content types and design templates. It also allows to combine the existing Gutenberg blocks to create new pages efficiently."}]},{"type":"element","tag":"h2","props":{"id":"planning-the-structure"},"children":[{"type":"text","value":"Planning the structure"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I implemented an information board which shows the newest articles and short announcements about the day-to-day matters in the department. I also "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"provided instructions"}]},{"type":"text","value":" to all staff on how to edit the content making them more comfortable with using the site."}]},{"type":"element","tag":"h3","props":{"id":"performance-and-maintainability"},"children":[{"type":"text","value":"Performance and maintainability"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"By replacing the plugin components with custom ones, I removed the overhead of the plugin which may make the website load slower. The custom code also allows for "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"better maintainability"}]},{"type":"text","value":" as the content structure of the website is managed from a single place - the Gutenberg editor - instead of being broken up into multiple plugins."}]},{"type":"element","tag":"h3","props":{"id":"always-think-about-the-user"},"children":[{"type":"text","value":"Always think about the user"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Thanks to the custom theme, I gained a fine-grain control over each part of the page so I could more easily make "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"UX improvements"}]},{"type":"text","value":" such as making the staff images link to the individual profiles. On "},{"type":"element","tag":"a","props":{"href":"https://kska.upce.cz/okatedre/lide/adam-horalek/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"lecturer's profile pages"}]},{"type":"text","value":", I used a card with tabs to more easily display various types of information."}]},{"type":"element","tag":"h2","props":{"id":"final-thoughts"},"children":[{"type":"text","value":"Final thoughts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The response to the new design was great. The theme is ready to be translated into English and I continue to make updates and implement new features in collaboration with Milan and the rest of the department."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Have a look at the live web on "},{"type":"element","tag":"a","props":{"href":"https://kska.upce.cz/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"KSKA.upce.cz"}]}]}]},"head":{"title":"University department website","description":"How to present a large variety of content to students and alumni? Let's find out!","image":"/image/portfolio/sca-department.jpg"},"fields":{"image":"/image/portfolio/sca-department.jpg","order":300,"skills":["WordPress","Twig","Tailwind CSS","Figma"]},"featured":true,"type":"full","body":{"type":"root","children":[{"type":"element","tag":"h1","props":{"id":"learning-together-a-university-department-website"},"children":[{"type":"text","value":"Learning together: A university department website"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In my experience, university websites are notorious for being hard to read and navigate. That's why I welcomed the challenge of creating a web for my university department."}]},{"type":"element","tag":"h2","props":{"id":"the-challenge"},"children":[{"type":"text","value":"The challenge"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I was asked to update the website of the Department of Social and Cultural Anthropology. Milan, a university researcher and lecturer who took care of the web had designed the previous version of the web using "},{"type":"element","tag":"a","props":{"href":"https://elementor.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Elementor"}]},{"type":"text","value":" and several other plugins. However, the site seemed to be lacking in design and readability. There were also requests for additional "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"content types"}]},{"type":"text","value":" and an "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"multilingual translations"}]},{"type":"text","value":"."}]},{"type":"element","tag":"h2","props":{"id":"design-first"},"children":[{"type":"text","value":"Design first"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I first supplied a "},{"type":"element","tag":"a","props":{"href":"https://www.figma.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Figma"}]},{"type":"text","value":" design for several pages to give a good idea of where I was headings. I was basing my design loosely on the previous version as there were some good elements in it. However, I redesigned and "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"simplified the content structure"}]},{"type":"text","value":" - mainly the navigation links and the content of some pages."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Milan and other members of the staff loved the design, so I moved on to the implementation. I decided for a "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"custom built them"}]},{"type":"text","value":"e, as it would give me full control over the content types and design templates. It also allows to combine the existing Gutenberg blocks to create new pages efficiently."}]},{"type":"element","tag":"h2","props":{"id":"planning-the-structure"},"children":[{"type":"text","value":"Planning the structure"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I implemented an information board which shows the newest articles and short announcements about the day-to-day matters in the department. I also "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"provided instructions"}]},{"type":"text","value":" to all staff on how to edit the content making them more comfortable with using the site."}]},{"type":"element","tag":"h3","props":{"id":"performance-and-maintainability"},"children":[{"type":"text","value":"Performance and maintainability"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"By replacing the plugin components with custom ones, I removed the overhead of the plugin which may make the website load slower. The custom code also allows for "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"better maintainability"}]},{"type":"text","value":" as the content structure of the website is managed from a single place - the Gutenberg editor - instead of being broken up into multiple plugins."}]},{"type":"element","tag":"h3","props":{"id":"always-think-about-the-user"},"children":[{"type":"text","value":"Always think about the user"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Thanks to the custom theme, I gained a fine-grain control over each part of the page so I could more easily make "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"UX improvements"}]},{"type":"text","value":" such as making the staff images link to the individual profiles. On "},{"type":"element","tag":"a","props":{"href":"https://kska.upce.cz/okatedre/lide/adam-horalek/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"lecturer's profile pages"}]},{"type":"text","value":", I used a card with tabs to more easily display various types of information."}]},{"type":"element","tag":"h2","props":{"id":"final-thoughts"},"children":[{"type":"text","value":"Final thoughts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The response to the new design was great. The theme is ready to be translated into English and I continue to make updates and implement new features in collaboration with Milan and the rest of the department."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Have a look at the live web on "},{"type":"element","tag":"a","props":{"href":"https://kska.upce.cz/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"KSKA.upce.cz"}]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"the-challenge","depth":2,"text":"The challenge"},{"id":"design-first","depth":2,"text":"Design first"},{"id":"planning-the-structure","depth":2,"text":"Planning the structure","children":[{"id":"performance-and-maintainability","depth":3,"text":"Performance and maintainability"},{"id":"always-think-about-the-user","depth":3,"text":"Always think about the user"}]},{"id":"final-thoughts","depth":2,"text":"Final thoughts"}]}},"_type":"markdown","_id":"content:portfolio:sca-department.md","_source":"content","_file":"portfolio/sca-department.md","_extension":"md"},{"_path":"/portfolio/besteto","_draft":false,"_partial":false,"_empty":false,"title":"Focus on value: Theme for a marketing agency website","description":"Marketing agencies know how to design results driven websites. That is why I take the opportunity to collaborate on them as a learning experience. Building a theme for Besteto was just like that.","excerpt":{"type":"root","children":[{"type":"element","tag":"h1","props":{"id":"focus-on-value-theme-for-a-marketing-agency-website"},"children":[{"type":"text","value":"Focus on value: Theme for a marketing agency website"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Marketing agencies know how to design results driven websites. That is why I take the opportunity to collaborate on them as a learning experience. Building a theme for Besteto was just like that."}]},{"type":"element","tag":"h2","props":{"id":"client"},"children":[{"type":"text","value":"Client"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Besteto is a marketing agency specializing in e-commerce. They commissioned an 8 page website to one of my colleagues and he requested my help on the project. I got to "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"code the theme from start to finish"}]},{"type":"text","value":" and learned a good deal during the process."}]},{"type":"element","tag":"h2","props":{"id":"building-fast"},"children":[{"type":"text","value":"Building fast"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Speed and efficiency"}]},{"type":"text","value":" is a key aspect of the coding work. Of course, the result still needs to be flawless. However, an hour of work can go a long way when using the proper tools and workflows."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"A big help in this area is WordPress Gutenberg. By building the website from "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"reusable blocks"}]},{"type":"text","value":", one can save hours of building and updating similar blocks of content across pages. It also makes for a great editing experience as the admin offers a real time preview of the pages in the admin UI."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For styling the code I chose "},{"type":"element","tag":"a","props":{"href":"https://tailwindcss.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Tailwind CSS"}]},{"type":"text","value":". This has become my go-to option for most projects, since it makes styling so incredibly fast and intuitive. Additionally, it allows for "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"modular solutions"}]},{"type":"text","value":" - pieces of HTML that you can reuse as styled components and they just work!"}]},{"type":"element","tag":"h2","props":{"id":"the-result"},"children":[{"type":"text","value":"The result"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The result was a clean and solid theme built in a few days. It includes a "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"blog section"}]},{"type":"text","value":" a list of services, a contact form, a pricing page... oh and it is also multilingual!"}]},{"type":"element","tag":"h2","props":{"id":"what-i-learned"},"children":[{"type":"text","value":"What I learned"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I said earlier that marketing agencies know how to build a web for results. Here are some effective strategies that may improve the user experience and conversion rates:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Informative use of icons"}]},{"type":"text","value":": On homepage, you can find a list of services easily distinguishable by icons. This could work as a dropdown menu, but it would be far less discoverable readable and appealing."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"CTAs for key page sections"}]},{"type":"text","value":": Once the potential customer finds their way onto the website, they should have an easy way of finding what they are looking for. In this case, it should be the contact. CTAs and contact forms are an ideal way to get this done."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Personal approach"}]},{"type":"text","value":": Show the customers who you are. You can do this by designing a team profile section. Put a face to your business!"}]}]},{"type":"element","tag":"h2","props":{"id":"final-thoughts"},"children":[{"type":"text","value":"Final thoughts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Although this time I did not work for my own client, the experience of building an agency website was definitely worthwhile. I am now ready to implement the ideas from their design in my own projects."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Check out the full theme on "},{"type":"element","tag":"a","props":{"href":"https://www.besteto.cz/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Besteto.cz"}]},{"type":"text","value":"."}]}]},"head":{"title":"Besteto WordPress theme","description":"Once you make a website for the marketers you really get to know how to focus on the results.","image":"/image/portfolio/besteto.jpg"},"fields":{"image":"/image/portfolio/besteto.jpg","order":400,"skills":["WordPress","Twig","Tailwind CSS"]},"featured":true,"type":"theme","body":{"type":"root","children":[{"type":"element","tag":"h1","props":{"id":"focus-on-value-theme-for-a-marketing-agency-website"},"children":[{"type":"text","value":"Focus on value: Theme for a marketing agency website"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Marketing agencies know how to design results driven websites. That is why I take the opportunity to collaborate on them as a learning experience. Building a theme for Besteto was just like that."}]},{"type":"element","tag":"h2","props":{"id":"client"},"children":[{"type":"text","value":"Client"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Besteto is a marketing agency specializing in e-commerce. They commissioned an 8 page website to one of my colleagues and he requested my help on the project. I got to "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"code the theme from start to finish"}]},{"type":"text","value":" and learned a good deal during the process."}]},{"type":"element","tag":"h2","props":{"id":"building-fast"},"children":[{"type":"text","value":"Building fast"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Speed and efficiency"}]},{"type":"text","value":" is a key aspect of the coding work. Of course, the result still needs to be flawless. However, an hour of work can go a long way when using the proper tools and workflows."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"A big help in this area is WordPress Gutenberg. By building the website from "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"reusable blocks"}]},{"type":"text","value":", one can save hours of building and updating similar blocks of content across pages. It also makes for a great editing experience as the admin offers a real time preview of the pages in the admin UI."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For styling the code I chose "},{"type":"element","tag":"a","props":{"href":"https://tailwindcss.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Tailwind CSS"}]},{"type":"text","value":". This has become my go-to option for most projects, since it makes styling so incredibly fast and intuitive. Additionally, it allows for "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"modular solutions"}]},{"type":"text","value":" - pieces of HTML that you can reuse as styled components and they just work!"}]},{"type":"element","tag":"h2","props":{"id":"the-result"},"children":[{"type":"text","value":"The result"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The result was a clean and solid theme built in a few days. It includes a "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"blog section"}]},{"type":"text","value":" a list of services, a contact form, a pricing page... oh and it is also multilingual!"}]},{"type":"element","tag":"h2","props":{"id":"what-i-learned"},"children":[{"type":"text","value":"What I learned"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I said earlier that marketing agencies know how to build a web for results. Here are some effective strategies that may improve the user experience and conversion rates:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Informative use of icons"}]},{"type":"text","value":": On homepage, you can find a list of services easily distinguishable by icons. This could work as a dropdown menu, but it would be far less discoverable readable and appealing."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"CTAs for key page sections"}]},{"type":"text","value":": Once the potential customer finds their way onto the website, they should have an easy way of finding what they are looking for. In this case, it should be the contact. CTAs and contact forms are an ideal way to get this done."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Personal approach"}]},{"type":"text","value":": Show the customers who you are. You can do this by designing a team profile section. Put a face to your business!"}]}]},{"type":"element","tag":"h2","props":{"id":"final-thoughts"},"children":[{"type":"text","value":"Final thoughts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Although this time I did not work for my own client, the experience of building an agency website was definitely worthwhile. I am now ready to implement the ideas from their design in my own projects."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Check out the full theme on "},{"type":"element","tag":"a","props":{"href":"https://www.besteto.cz/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Besteto.cz"}]},{"type":"text","value":"."}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"client","depth":2,"text":"Client"},{"id":"building-fast","depth":2,"text":"Building fast"},{"id":"the-result","depth":2,"text":"The result"},{"id":"what-i-learned","depth":2,"text":"What I learned"},{"id":"final-thoughts","depth":2,"text":"Final thoughts"}]}},"_type":"markdown","_id":"content:portfolio:besteto.md","_source":"content","_file":"portfolio/besteto.md","_extension":"md"}]