{"id":110,"date":"2020-07-18T11:28:30","date_gmt":"2020-07-18T11:28:30","guid":{"rendered":"https:\/\/www.twsgo.com\/blog\/?p=110"},"modified":"2025-05-09T17:36:42","modified_gmt":"2025-05-09T17:36:42","slug":"building-complex-environments","status":"publish","type":"post","link":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/","title":{"rendered":"Sharing our experience building complex environments (DevOps project)"},"content":{"rendered":"<p class=\"\" data-start=\"188\" data-end=\"470\">In this DevOps project, Team Work Spirit designed and implemented a solution for development and production environments using a unique DevOps approach and an unconventional combination of technologies. We\u2019d love to share our experience with other teams considering building complex architecture in AWS. Learn more about <a href=\"https:\/\/aws.amazon.com\/devops\/\" target=\"_blank\" rel=\"noopener\">DevOps best practices on AWS<\/a>.<\/p>\n<h2 data-start=\"188\" data-end=\"470\"><strong style=\"text-wrap-mode: initial;\" data-start=\"472\" data-end=\"504\">About the Client: Fundopolis<\/strong><\/h2>\n<p class=\"\" data-start=\"506\" data-end=\"763\">Fundopolis, our client, is building a new approach to investing\u2014a financial system and community that makes investing simpler, more accessible, and more enjoyable. Their goal is to empower everyone to invest in the people and ideas that matter most to them.<\/p>\n<h3 data-start=\"506\" data-end=\"763\"><strong style=\"text-wrap-mode: initial;\" data-start=\"765\" data-end=\"777\">Our Role in the DevOps Project<\/strong><\/h3>\n<p class=\"\" data-start=\"779\" data-end=\"937\">As the <a href=\"https:\/\/www.twsgo.com\/devops\" target=\"_blank\" rel=\"noopener\">DevOps team<\/a>, our task was to define and implement the hosting setup for development, staging, production, and CI\/CD environments\u2014all fully cloud-based.<\/p>\n<h3 data-start=\"779\" data-end=\"937\"><strong style=\"text-wrap-mode: initial;\" data-start=\"939\" data-end=\"960\">Technologies Used<\/strong><\/h3>\n<ul data-start=\"962\" data-end=\"1417\">\n<li class=\"\" data-start=\"962\" data-end=\"1120\">\n<p class=\"\" data-start=\"964\" data-end=\"1120\">AWS (VPC, CloudTrail, IAM, ECS, ELB, CloudWatch, EC2, ASG, ECR, RDS, S3, S3 Glacier, KMS, DAX, Route 53, CloudFront, CloudFormation, AWS Backup, DynamoDB)<\/p>\n<\/li>\n<li class=\"\" data-start=\"1121\" data-end=\"1132\">\n<p class=\"\" data-start=\"1123\" data-end=\"1132\">Jenkins<\/p>\n<\/li>\n<li class=\"\" data-start=\"1133\" data-end=\"1161\">\n<p class=\"\" data-start=\"1135\" data-end=\"1161\">Apache ModSecurity proxy<\/p>\n<\/li>\n<li class=\"\" data-start=\"1162\" data-end=\"1234\">\n<p class=\"\" data-start=\"1164\" data-end=\"1234\">OpenVPN AS for managing access to different parts of the application<\/p>\n<\/li>\n<li class=\"\" data-start=\"1235\" data-end=\"1301\">\n<p class=\"\" data-start=\"1237\" data-end=\"1301\">Cloudflare for web app protection and performance optimization<\/p>\n<\/li>\n<li class=\"\" data-start=\"1302\" data-end=\"1312\">\n<p class=\"\" data-start=\"1304\" data-end=\"1312\">Docker<\/p>\n<\/li>\n<li class=\"\" data-start=\"1313\" data-end=\"1324\">\n<p class=\"\" data-start=\"1315\" data-end=\"1324\">Graylog<\/p>\n<\/li>\n<li class=\"\" data-start=\"1325\" data-end=\"1335\">\n<p class=\"\" data-start=\"1327\" data-end=\"1335\">Zabbix<\/p>\n<\/li>\n<li class=\"\" data-start=\"1336\" data-end=\"1347\">\n<p class=\"\" data-start=\"1338\" data-end=\"1347\">Grafana<\/p>\n<\/li>\n<li class=\"\" data-start=\"1348\" data-end=\"1359\">\n<p class=\"\" data-start=\"1350\" data-end=\"1359\">Varnish<\/p>\n<\/li>\n<li class=\"\" data-start=\"1360\" data-end=\"1417\">\n<p class=\"\" data-start=\"1362\" data-end=\"1417\">Custom webhooks for third-party services (Auth0, Netki)<\/p>\n<\/li>\n<\/ul>\n<h3 data-start=\"1419\" data-end=\"1446\"><strong data-start=\"1419\" data-end=\"1446\">DevOps Project Delivery Phases<\/strong><\/h3>\n<ol data-start=\"1448\" data-end=\"2064\">\n<li class=\"\" data-start=\"1448\" data-end=\"1748\">\n<p class=\"\" data-start=\"1451\" data-end=\"1748\"><strong data-start=\"1451\" data-end=\"1478\">Assessment and Planning<\/strong><br data-start=\"1478\" data-end=\"1481\" \/>We began with an analysis of hosting requirements based on the system architecture and deployment roadmap. This phase included creating a hosting plan, selecting AWS services for each environment, defining security configurations, and outlining future scalability.<\/p>\n<\/li>\n<li class=\"\" data-start=\"1750\" data-end=\"1921\">\n<p class=\"\" data-start=\"1753\" data-end=\"1921\"><strong data-start=\"1753\" data-end=\"1786\">Development Environment Setup<\/strong><br data-start=\"1786\" data-end=\"1789\" \/>We implemented the development environment using Infrastructure as Code (IaC) principles to ensure repeatability and consistency.<\/p>\n<\/li>\n<li class=\"\" data-start=\"1923\" data-end=\"2064\">\n<p class=\"\" data-start=\"1926\" data-end=\"2064\"><strong data-start=\"1926\" data-end=\"1962\">CI\/CD and Production Environment<\/strong><br data-start=\"1962\" data-end=\"1965\" \/>We built CI\/CD pipelines and implemented the production environment using the same IaC approach.<\/p>\n<\/li>\n<\/ol>\n<h3 data-start=\"2066\" data-end=\"2094\"><strong data-start=\"2066\" data-end=\"2094\">Challenges and Solutions<\/strong><\/h3>\n<ol data-start=\"2096\" data-end=\"3347\">\n<li class=\"\" data-start=\"2096\" data-end=\"2479\">\n<p class=\"\" data-start=\"2099\" data-end=\"2479\"><strong data-start=\"2099\" data-end=\"2113\">Monitoring<\/strong><br data-start=\"2113\" data-end=\"2116\" \/>We chose Zabbix for monitoring all nodes, as it provides more comprehensive metrics than AWS CloudWatch. However, Zabbix does not natively support Amazon Linux (used in ECS clusters). To address this, we deployed Zabbix agents inside Docker containers running on ECS instances. This allowed us to use standard images instead of building the agents from source.<\/p>\n<\/li>\n<li class=\"\" data-start=\"2481\" data-end=\"2814\">\n<p class=\"\" data-start=\"2484\" data-end=\"2814\"><strong data-start=\"2484\" data-end=\"2510\">IAM Roles and Policies<\/strong><br data-start=\"2510\" data-end=\"2513\" \/>Defining and assigning proper IAM roles and policies took considerable time. We needed to manage cross-account access with strict limitations, ensuring only specific users could assume certain roles. This involved configuring trust relationships and permission boundaries across three AWS accounts.<\/p>\n<\/li>\n<li class=\"\" data-start=\"2816\" data-end=\"3151\">\n<p class=\"\" data-start=\"2819\" data-end=\"3151\"><strong data-start=\"2819\" data-end=\"2838\">KMS Integration<\/strong><br data-start=\"2838\" data-end=\"2841\" \/>We integrated AWS KMS with S3 and IAM to control access to encrypted data. Each file replication process involved both a decryption key (for the source region) and an encryption key (for the destination region). We created a CloudFormation template to automate key creation and assignment during deployment.<\/p>\n<\/li>\n<li class=\"\" data-start=\"3153\" data-end=\"3347\">\n<p class=\"\" data-start=\"3156\" data-end=\"3347\"><strong data-start=\"3156\" data-end=\"3177\">ECS Configuration<\/strong><br data-start=\"3177\" data-end=\"3180\" \/>All services were launched using EC2 user data scripts. As a result, the CloudFormation templates required precise attention to detail to ensure smooth deployments.<\/p>\n<\/li>\n<\/ol>\n<h3 data-start=\"3349\" data-end=\"3371\"><strong data-start=\"3349\" data-end=\"3371\">Project Complexity<\/strong><\/h3>\n<p class=\"\" data-start=\"3373\" data-end=\"3666\">One of the primary challenges was managing three separate AWS accounts, all integrated through centralized Jenkins pipelines for CI\/CD. Additionally, Graylog was configured to collect logs from services running across all three accounts, adding another layer of complexity to the architecture.<\/p>\n<h2 data-start=\"93\" data-end=\"107\"><strong data-start=\"93\" data-end=\"107\">Conclusion<\/strong><\/h2>\n<p class=\"\" data-start=\"109\" data-end=\"336\">Working on this project with Fundopolis was both exciting and challenging. It gave us the opportunity to dive deep into AWS and bring together a powerful mix of tools to support a secure, scalable, and cloud ecosystem.<\/p>\n<p class=\"\" data-start=\"109\" data-end=\"336\"><span style=\"text-wrap-mode: initial;\">From juggling multiple AWS accounts to fine-tuning IAM roles and getting around monitoring limitations, we tackled some tough problems\u2014but the results were worth it. With everything running through Infrastructure as Code, and a solid CI\/CD pipeline in place, the setup is not only efficient but also easy to maintain and scale as the platform grows.<\/span><\/p>\n<p class=\"\" data-start=\"109\" data-end=\"336\"><span style=\"text-wrap-mode: initial;\">If your team is facing similar challenges or thinking about building something complex in the cloud, we\u2019re happy to share more of what we\u2019ve learned along the way.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently Team Work Spirit designed and implemented the solution for development and production environments using an unusual approach and combination of technologies, and we\u2019d love to share this experience with other teams who consider building complex architecture in AWS.<\/p>\n","protected":false},"author":1,"featured_media":332,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[],"class_list":["post-110","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AWS DevOps for Fundopolis: Building Scalable Environments<\/title>\n<meta name=\"description\" content=\"Explore how Team Work Spirit helped Fundopolis build secure, scalable AWS environments with DevOps practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS DevOps for Fundopolis: Building Scalable Environments\" \/>\n<meta property=\"og:description\" content=\"Explore how Team Work Spirit helped Fundopolis build secure, scalable AWS environments with DevOps practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/\" \/>\n<meta property=\"og:site_name\" content=\"Team Work Spirit\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-18T11:28:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-09T17:36:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Team Work Spirit\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Team Work Spirit\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/\"},\"author\":{\"name\":\"Team Work Spirit\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/#\/schema\/person\/102509e3b4ef1a8ee77913149655cbd0\"},\"headline\":\"Sharing our experience building complex environments (DevOps project)\",\"datePublished\":\"2020-07-18T11:28:30+00:00\",\"dateModified\":\"2025-05-09T17:36:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/\"},\"wordCount\":627,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg\",\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/\",\"url\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/\",\"name\":\"AWS DevOps for Fundopolis: Building Scalable Environments\",\"isPartOf\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg\",\"datePublished\":\"2020-07-18T11:28:30+00:00\",\"dateModified\":\"2025-05-09T17:36:42+00:00\",\"description\":\"Explore how Team Work Spirit helped Fundopolis build secure, scalable AWS environments with DevOps practices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#primaryimage\",\"url\":\"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg\",\"contentUrl\":\"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg\",\"width\":1080,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.twsgo.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sharing our experience building complex environments (DevOps project)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/#website\",\"url\":\"https:\/\/www.twsgo.com\/blog\/\",\"name\":\"Team Work Spirit\",\"description\":\"TWS Blog\",\"publisher\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.twsgo.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/#organization\",\"name\":\"Team Work Spirit\",\"url\":\"https:\/\/www.twsgo.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/05\/logo.png\",\"contentUrl\":\"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/05\/logo.png\",\"width\":180,\"height\":150,\"caption\":\"Team Work Spirit\"},\"image\":{\"@id\":\"https:\/\/www.twsgo.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/team-work-spirit\/\",\"https:\/\/www.upwork.com\/agencies\/521590411896463360\/\",\"https:\/\/clutch.co\/profile\/team-work-spirit\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/#\/schema\/person\/102509e3b4ef1a8ee77913149655cbd0\",\"name\":\"Team Work Spirit\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.twsgo.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/06\/cropped-cropped-IMG_4355-96x96.webp\",\"contentUrl\":\"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/06\/cropped-cropped-IMG_4355-96x96.webp\",\"caption\":\"Team Work Spirit\"},\"url\":\"https:\/\/www.twsgo.com\/blog\/author\/wpuser\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AWS DevOps for Fundopolis: Building Scalable Environments","description":"Explore how Team Work Spirit helped Fundopolis build secure, scalable AWS environments with DevOps practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/","og_locale":"en_US","og_type":"article","og_title":"AWS DevOps for Fundopolis: Building Scalable Environments","og_description":"Explore how Team Work Spirit helped Fundopolis build secure, scalable AWS environments with DevOps practices.","og_url":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/","og_site_name":"Team Work Spirit","article_published_time":"2020-07-18T11:28:30+00:00","article_modified_time":"2025-05-09T17:36:42+00:00","og_image":[{"width":1080,"height":1080,"url":"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg","type":"image\/jpeg"}],"author":"Team Work Spirit","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Team Work Spirit","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#article","isPartOf":{"@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/"},"author":{"name":"Team Work Spirit","@id":"https:\/\/www.twsgo.com\/blog\/#\/schema\/person\/102509e3b4ef1a8ee77913149655cbd0"},"headline":"Sharing our experience building complex environments (DevOps project)","datePublished":"2020-07-18T11:28:30+00:00","dateModified":"2025-05-09T17:36:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/"},"wordCount":627,"commentCount":1,"publisher":{"@id":"https:\/\/www.twsgo.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#primaryimage"},"thumbnailUrl":"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg","articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/","url":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/","name":"AWS DevOps for Fundopolis: Building Scalable Environments","isPartOf":{"@id":"https:\/\/www.twsgo.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#primaryimage"},"image":{"@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#primaryimage"},"thumbnailUrl":"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg","datePublished":"2020-07-18T11:28:30+00:00","dateModified":"2025-05-09T17:36:42+00:00","description":"Explore how Team Work Spirit helped Fundopolis build secure, scalable AWS environments with DevOps practices.","breadcrumb":{"@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.twsgo.com\/blog\/building-complex-environments\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#primaryimage","url":"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg","contentUrl":"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/04\/How-to-hire-DevOps-Engineers.jpg","width":1080,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.twsgo.com\/blog\/building-complex-environments\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.twsgo.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Sharing our experience building complex environments (DevOps project)"}]},{"@type":"WebSite","@id":"https:\/\/www.twsgo.com\/blog\/#website","url":"https:\/\/www.twsgo.com\/blog\/","name":"Team Work Spirit","description":"TWS Blog","publisher":{"@id":"https:\/\/www.twsgo.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.twsgo.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.twsgo.com\/blog\/#organization","name":"Team Work Spirit","url":"https:\/\/www.twsgo.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.twsgo.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/05\/logo.png","contentUrl":"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/05\/logo.png","width":180,"height":150,"caption":"Team Work Spirit"},"image":{"@id":"https:\/\/www.twsgo.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/team-work-spirit\/","https:\/\/www.upwork.com\/agencies\/521590411896463360\/","https:\/\/clutch.co\/profile\/team-work-spirit"]},{"@type":"Person","@id":"https:\/\/www.twsgo.com\/blog\/#\/schema\/person\/102509e3b4ef1a8ee77913149655cbd0","name":"Team Work Spirit","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.twsgo.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/06\/cropped-cropped-IMG_4355-96x96.webp","contentUrl":"https:\/\/www.twsgo.com\/blog\/wp-content\/uploads\/2025\/06\/cropped-cropped-IMG_4355-96x96.webp","caption":"Team Work Spirit"},"url":"https:\/\/www.twsgo.com\/blog\/author\/wpuser\/"}]}},"_links":{"self":[{"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/posts\/110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/comments?post=110"}],"version-history":[{"count":14,"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/posts\/110\/revisions"}],"predecessor-version":[{"id":432,"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/posts\/110\/revisions\/432"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/media\/332"}],"wp:attachment":[{"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/media?parent=110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/categories?post=110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.twsgo.com\/blog\/wp-json\/wp\/v2\/tags?post=110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}