diff --git a/blogs/blog.go b/blogs/blog.go index ad110a247..8bac26055 100644 --- a/blogs/blog.go +++ b/blogs/blog.go @@ -71,17 +71,17 @@ func Get(c *gin.Context) { c.AbortWithStatus(http.StatusInternalServerError) return } - // bind data to struct var blogs Blog json.Unmarshal(responseData, &blogs) filteredItems := []Item{} existingBlogs := []Item{} - // filter weekly and newletteres for _, item := range blogs.Items { + if !strings.Contains(strings.ToLower(item.Title), "weekly") && !strings.Contains(strings.ToLower(item.Title), "newsletter") { + item.Thumbnail = extractFirstImgSrc(item.Description) item.Description = truncateTo20Words(item.Description) filteredItems = append(filteredItems, item) } @@ -150,6 +150,18 @@ func truncateTo20Words(description string) string { } return strings.Join(words, " ") + "..." } +func extractFirstImgSrc(description string) string { + imgRegex := regexp.MustCompile(`]+\bsrc="([^"]+)"[^>]*>`) + + match := imgRegex.FindStringSubmatch(description) + + if len(match) > 1 { + return match[1] + } + + return "" +} + // make array or slice unique func Unique(arr []Item) []Item { diff --git a/nuxt-frontend/assets/css/global.css b/nuxt-frontend/assets/css/global.css index 05195632c..4a9b1cc46 100644 --- a/nuxt-frontend/assets/css/global.css +++ b/nuxt-frontend/assets/css/global.css @@ -86,14 +86,6 @@ @apply text-[1.25rem] font-bold leading-[1.6rem] tracking-[0.5px] text-[#3d3d3d] md:text-[1.75rem] md:leading-8 lg:text-[2.25rem] lg:leading-[2.729rem]; } - .grecaptcha-badge { - @apply invisible; - } - - .v2-header-text { - @apply text-[4.0625rem] font-bold leading-[5.875rem] tracking-[1px] text-[#3d3d3d] md:text-[5.625rem] md:leading-[6.6875rem] lg:text-[7.5rem] lg:leading-[7.4375rem]; - } - .v2-header-2-text { @apply text-[3.125rem] font-semibold leading-[5rem] tracking-[1px] text-[#3d3d3d] md:text-[4.0625rem] md:leading-[5.875rem] lg:text-[5.625rem] lg:leading-[6.6875rem]; } @@ -135,17 +127,8 @@ @apply underline decoration-[#3d3d3dcc] decoration-solid decoration-2 underline-offset-[1rem] md:decoration-[3px]; } - .v2-button { - @apply rounded-[3rem] border-[1px] border-solid border-[#3d3d3d] bg-white px-[1.5rem] py-[0.7rem] text-center text-[#3d3d3d] hover:bg-[#3d3d3d] hover:text-[#fff] active:scale-[0.98]; - } - - .v2-button > span { - @apply mr-2.5; - } - .cta-button:hover > span, - .portfolio-nav:hover > span, - .v2-button:hover > .fa { + .portfolio-nav:hover > span { @apply text-[#fff]; } @@ -188,53 +171,76 @@ @apply text-white; } - .header-1 { - @apply font-opensans-bold tracking-[-0.08rem] xl:tracking-[-0.15rem] text-[2rem] leading-[2.6rem] lg:text-6xl lg:leading-[4.875rem]; + .mobile-header-1 { + @apply font-opensans-bold tracking-[-0.08rem] text-[2rem] leading-[2.6rem]; } - - .header-2 { - @apply font-opensans-bold tracking-[-0.08rem] xl:tracking-[-0.12rem] text-2xl leading-[2.25rem] lg:text-5xl lg:leading-[3.9rem]; + .mobile-header-2 { + @apply font-opensans-bold tracking-[-0.08rem] text-2xl leading-9; } - - .header-3 { - @apply font-opensans-semibold tracking-[-0.08rem] text-xl leading-[1.875rem] lg:text-[2rem] lg:leading-[3rem]; + .mobile-header-2-regular { + @apply font-inter-regular tracking-[-0.08rem] xl:tracking-normal text-2xl leading-9; + } + .mobile-header-2-semibold { + @apply font-inter-semibold tracking-[-0.08rem] xl:tracking-normal text-2xl leading-9; + } + .mobile-header-3 { + @apply font-opensans-semibold tracking-[-0.08rem] xl:tracking-normal text-xl leading-[1.875rem]; + } + .mobile-header-3-regular { + @apply font-inter-regular tracking-[-0.08rem] xl:tracking-normal text-xl leading-[1.875rem]; + } + .mobile-header-3-medium { + @apply font-inter-medium tracking-[-0.08rem] xl:tracking-normal text-xl leading-[1.875rem]; + } + .mobile-header-3-semibold { + @apply font-inter-semibold tracking-[-0.08rem] xl:tracking-normal text-xl leading-[1.875rem]; + } + .desk-header-1 { + @apply font-opensans-bold tracking-[-0.08rem] text-6xl leading-[4.875rem]; + } + .desk-header-2 { + @apply font-opensans-bold tracking-[-0.08rem] text-5xl leading-[3.9rem]; + } + .desk-header-3 { + @apply font-opensans-semibold tracking-[-0.08rem] text-[2rem] leading-[3rem]; } - .sub-h1-regular { - @apply text-lg leading-[1.688rem] lg:text-2xl lg:leading-[2.25rem] font-inter-regular; + @apply font-inter-regular text-lg leading-[1.688rem]; } - .sub-h1-semibold { - @apply text-lg leading-[1.688rem] lg:text-2xl lg:leading-[2.25rem] font-inter-semibold; + @apply font-inter-semibold text-lg leading-[1.688rem]; + } + .sub-h2-regular { + @apply font-inter-regular text-[1.375rem] leading-[2.063rem]; } - .sub-h2-medium { - @apply lg:text-[1.375rem] lg:leading-[2.063rem] font-inter-medium; + @apply font-inter-medium text-[1.375rem] leading-[2.063rem]; } - .sub-h3-regular { - @apply text-base lg:text-xl lg:leading-[1.875rem] font-inter-regular; + @apply font-inter-regular text-base; } - .sub-h3-medium { - @apply text-base lg:text-xl lg:leading-[1.875rem] font-inter-medium; + @apply font-inter-medium text-base; } - .sub-h3-semibold { - @apply text-base lg:text-xl lg:leading-[1.875rem] font-inter-semibold; + @apply font-inter-semibold text-base; } - .sub-h4-regular { - @apply font-inter-regular text-xs leading-[1.125rem] lg:text-lg lg:leading-[1.688rem]; + @apply font-inter-regular text-xs leading-[1.125rem]; + } + .sub-h4-medium { + @apply font-inter-medium text-xs leading-[1.125rem]; } - .sub-h4-semibold { - @apply font-inter-semibold text-xs leading-[1.125rem] lg:text-lg lg:leading-[1.688rem]; + @apply font-inter-semibold text-xs leading-[1.125rem]; + } + .background-text { + @apply font-inter-regular text-[2.5rem] leading-[1.875rem] lg:text-7xl lg:leading-[4.5rem]; } - .primary-btn { @apply h-12 mx-auto flex w-max items-center rounded-xl py-3 px-6 text-center; } + .primary-color { @apply text-[#FF9472]; } diff --git a/nuxt-frontend/assets/images/blog/bg/bg.webp b/nuxt-frontend/assets/images/blog/bg/bg.webp new file mode 100644 index 000000000..e54dd963b Binary files /dev/null and b/nuxt-frontend/assets/images/blog/bg/bg.webp differ diff --git a/nuxt-frontend/assets/images/contribution/animations/JetpackComposeAnimations.mp4 b/nuxt-frontend/assets/images/contribution/animations/JetpackComposeAnimations.mp4 index ccfddd707..eabf5605b 100644 Binary files a/nuxt-frontend/assets/images/contribution/animations/JetpackComposeAnimations.mp4 and b/nuxt-frontend/assets/images/contribution/animations/JetpackComposeAnimations.mp4 differ diff --git a/nuxt-frontend/assets/images/contribution/animations/JetpackComposeAnimations.webm b/nuxt-frontend/assets/images/contribution/animations/JetpackComposeAnimations.webm index b1344d259..536c02f04 100644 Binary files a/nuxt-frontend/assets/images/contribution/animations/JetpackComposeAnimations.webm and b/nuxt-frontend/assets/images/contribution/animations/JetpackComposeAnimations.webm differ diff --git a/nuxt-frontend/assets/images/contribution/animations/UIPilot.mp4 b/nuxt-frontend/assets/images/contribution/animations/UIPilot.mp4 index 298c71075..909395643 100644 Binary files a/nuxt-frontend/assets/images/contribution/animations/UIPilot.mp4 and b/nuxt-frontend/assets/images/contribution/animations/UIPilot.mp4 differ diff --git a/nuxt-frontend/assets/images/contribution/animations/UIPilot.webm b/nuxt-frontend/assets/images/contribution/animations/UIPilot.webm index ddd921d97..cc78b0988 100644 Binary files a/nuxt-frontend/assets/images/contribution/animations/UIPilot.webm and b/nuxt-frontend/assets/images/contribution/animations/UIPilot.webm differ diff --git a/nuxt-frontend/assets/images/contribution/animations/introShowCase.mp4 b/nuxt-frontend/assets/images/contribution/animations/introShowCase.mp4 index 65d6ab1e9..a8f5ed21d 100644 Binary files a/nuxt-frontend/assets/images/contribution/animations/introShowCase.mp4 and b/nuxt-frontend/assets/images/contribution/animations/introShowCase.mp4 differ diff --git a/nuxt-frontend/assets/images/contribution/animations/introShowCase.webm b/nuxt-frontend/assets/images/contribution/animations/introShowCase.webm index b15c836e7..139f2e851 100644 Binary files a/nuxt-frontend/assets/images/contribution/animations/introShowCase.webm and b/nuxt-frontend/assets/images/contribution/animations/introShowCase.webm differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-1600w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-1600w.webp index 92e3b49bc..991a31dca 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-1600w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-1600w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-2400w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-2400w.webp index 33f409ac7..4348e6d37 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-2400w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-2400w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-400w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-400w.webp index a2f3b5da7..f2f4af784 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-400w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-400w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-800w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-800w.webp index 37ee48be6..14ddcc915 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-800w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/cta-800w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-1600w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-1600w.webp index 5bb2b1f0c..b83c6d89f 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-1600w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-1600w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-400w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-400w.webp index 1c7893a9a..e4e62049b 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-400w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-400w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-800w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-800w.webp index 8427a990b..ec686d673 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-800w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-1-800w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-1600w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-1600w.webp index 3a10a884f..a8098cd53 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-1600w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-1600w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-400w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-400w.webp index 651261eb4..d6cdbbcb3 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-400w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-400w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-800w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-800w.webp index 10fba518a..d14d5a44f 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-800w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-2-800w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-1600w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-1600w.webp deleted file mode 100644 index c267e73e7..000000000 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-1600w.webp and /dev/null differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-400w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-400w.webp index 87b75b039..ed69b6ce5 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-400w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-400w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-800w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-800w.webp index 0cb9d4f83..0a28d584f 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-800w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/justly-3-800w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-1600w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-1600w.webp deleted file mode 100644 index a5a87b9e1..000000000 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-1600w.webp and /dev/null differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-400w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-400w.webp index ec3494b60..8a73946df 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-400w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-400w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-800w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-800w.webp index 35a87a452..84b9339eb 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-800w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/luxeradio-2-800w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/smile.mp4 b/nuxt-frontend/assets/images/portfolio/new-portfolio/smile.mp4 index d50c7a024..1e706a329 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/smile.mp4 and b/nuxt-frontend/assets/images/portfolio/new-portfolio/smile.mp4 differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/smile.webm b/nuxt-frontend/assets/images/portfolio/new-portfolio/smile.webm index 734f0c3a2..5a93d9821 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/smile.webm and b/nuxt-frontend/assets/images/portfolio/new-portfolio/smile.webm differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-1600w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-1600w.webp deleted file mode 100644 index 36b5b8744..000000000 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-1600w.webp and /dev/null differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-400w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-400w.webp index 77933941b..f4b8d70a9 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-400w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-400w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-800w.webp b/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-800w.webp index f2b77fec9..4134a7d22 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-800w.webp and b/nuxt-frontend/assets/images/portfolio/new-portfolio/togness-1-800w.webp differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness.mp4 b/nuxt-frontend/assets/images/portfolio/new-portfolio/togness.mp4 index b6a621004..84418f5a0 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness.mp4 and b/nuxt-frontend/assets/images/portfolio/new-portfolio/togness.mp4 differ diff --git a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness.webm b/nuxt-frontend/assets/images/portfolio/new-portfolio/togness.webm index e4b9e140a..5230f86ed 100644 Binary files a/nuxt-frontend/assets/images/portfolio/new-portfolio/togness.webm and b/nuxt-frontend/assets/images/portfolio/new-portfolio/togness.webm differ diff --git a/nuxt-frontend/components/android-app-development/BlackCtaSection.vue b/nuxt-frontend/components/android-app-development/BlackCtaSection.vue index f137d8f1c..89e24f6de 100644 --- a/nuxt-frontend/components/android-app-development/BlackCtaSection.vue +++ b/nuxt-frontend/components/android-app-development/BlackCtaSection.vue @@ -13,9 +13,13 @@ class="container absolute top-4 md:top-20 xl:top-32 w-full p-4 text-center text-[#FFF] xs:left-[13%] xll:left-[24%] xs:w-[75%]" >
-

Have an app idea?

+

+ Have an app idea? +

-
+
See if we can make it a reality.
@@ -25,7 +29,7 @@ to="/contact" @click.native="$mixpanel.track('tap_android_development_cta')" > - Let's Chat + Let's Chat
diff --git a/nuxt-frontend/components/android-app-development/BlogSection.vue b/nuxt-frontend/components/android-app-development/BlogSection.vue index 7f9dc76d0..869951dea 100644 --- a/nuxt-frontend/components/android-app-development/BlogSection.vue +++ b/nuxt-frontend/components/android-app-development/BlogSection.vue @@ -4,7 +4,7 @@
-

Our blogs

+

Our blogs