diff --git a/admin/docker-compose.yaml b/admin/docker-compose.yaml index c897bfdd..6dfc305e 100644 --- a/admin/docker-compose.yaml +++ b/admin/docker-compose.yaml @@ -5,8 +5,6 @@ services: image: ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/blog-admin:${GITHUB_SHA}-${GITHUB_RUN_ATTEMPT}-blog-admin deploy: replicas: 1 - volumes: - - uploads:/srv/app/public/uploads ports: - "1337:1337" environment: @@ -26,6 +24,11 @@ services: AWS_BUCKET: ${AWS_BUCKET} AWS_BUCKET_URL: ${AWS_BUCKET_URL} HR_FROM_MAIL: ${HR_FROM_MAIL} + logging: + driver: awslogs + options: + awslogs-region: ${AWS_REGION} + awslogs-group: canopas-blog-admin-logs nginx: image: nginx:latest @@ -42,7 +45,3 @@ networks: outside: external: name: "host" - -volumes: - blog-data: - uploads: diff --git a/admin/src/api/post/content-types/post/lifecycles.js b/admin/src/api/post/content-types/post/lifecycles.js index 81dcb3a2..add31d57 100644 --- a/admin/src/api/post/content-types/post/lifecycles.js +++ b/admin/src/api/post/content-types/post/lifecycles.js @@ -128,10 +128,7 @@ async function TagsInput(tags) { where: { slug }, }); - const insert = existingTag && existingTag.name != tags[i].name; - slug = insert ? slug + "-" + i : slug; - - if (existingTag == null || insert) { + if (existingTag == null) { existingTag = await strapi.db.query("api::tag.tag").create({ data: { slug, diff --git a/website/.env.example b/website/.env.example deleted file mode 100644 index b24eb455..00000000 --- a/website/.env.example +++ /dev/null @@ -1,7 +0,0 @@ -NEXT_PUBLIC_IFRAMELY_KEY= -NEXT_PUBLIC_RECAPTCHA_SITE_KEY= -NEXT_PUBLIC_MIXPANEL_PROJECT_TOKEN= -NEXT_PUBLIC_STRAPI_URL= -NEXT_PUBLIC_STRAPI_DOMAIN= -NEXT_PUBLIC_WEBSITE_URL= -NEXT_PUBLIC_API_BASE= diff --git a/website/.eslintignore b/website/.eslintignore deleted file mode 100644 index 9fe4d3ea..00000000 --- a/website/.eslintignore +++ /dev/null @@ -1,6 +0,0 @@ -.next -out -node_modules -package-lock.json -package.json -.vscode \ No newline at end of file diff --git a/website/.eslintrc.json b/website/.eslintrc.json deleted file mode 100644 index bffb357a..00000000 --- a/website/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "next/core-web-vitals" -} diff --git a/website/Dockerfile b/website/Dockerfile deleted file mode 100644 index fd07fdef..00000000 --- a/website/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -FROM node:20-alpine AS base - -FROM base AS deps -RUN apk add --no-cache libc6-compat -WORKDIR /app - -COPY package.json yarn.lock* ./ -RUN yarn install --frozen-lockfile - -# Rebuild the source code only when needed -FROM base AS builder -WORKDIR /app -COPY --from=deps /app/node_modules ./node_modules -COPY . . - -RUN yarn build - -# Production image, copy all the files and run next -FROM base AS runner -WORKDIR /app - -ENV NODE_ENV production - -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs - -RUN mkdir .next -RUN chown nextjs:nodejs .next - -COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ -COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static - -USER nextjs - -EXPOSE 3000 - -ENV PORT 3000 -# set hostname to localhost -ENV HOSTNAME "0.0.0.0" - -CMD ["node", "server.js"] \ No newline at end of file diff --git a/website/assets/css/global.css b/website/assets/css/global.css deleted file mode 100644 index ea39e0f6..00000000 --- a/website/assets/css/global.css +++ /dev/null @@ -1,288 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@font-face { - font-display: swap; - font-family: "Source CodePro"; - font-style: normal; - font-weight: 400; - src: url(./../fonts/Source-codePro.woff2) format("woff2"); -} - -@font-face { - font-display: swap; - font-family: "Poppins Regular"; - font-style: normal; - font-weight: 400; - src: url(./../fonts/Poppins-Regular.woff2) format("woff2"); -} - -@font-face { - font-display: swap; - font-family: "Poppins Medium"; - font-style: medium; - font-weight: 500; - src: url(./../fonts/Poppins-Medium.woff2) format("woff2"); -} - -input:-webkit-autofill, -input:-webkit-autofill:hover, -input:-webkit-autofill:focus, -input:-webkit-autofill:active { - transition: background-color 5000s !important; -} - -.floating-input:-webkit-autofill, -.floating-input:-webkit-autofill:hover, -.floating-input:-webkit-autofill:focus, -.floating-input:-webkit-autofill:active { - -webkit-text-fill-color: #ffffff !important; -} - -.cta-section, -.header-section, -.footer-section { - -webkit-user-select: none; - -moz-user-select: none; -} - -.cta-box-shadow { - -webkit-appearance: none; - -webkit-box-shadow: 0 10px 15px rgba(0, 0, 0, 0.25); - box-shadow: 0 10px 15px rgba(0, 0, 0, 0.25); -} - -body { - @apply font-inter font-normal break-words text-black-core/[0.87]; -} - -.content > p { - @apply pb-8; -} - -.prose > * { - @apply text-lg md:text-[1.1875rem] md:leading-8; -} - -.comment input[type="text"], -.comment input[type="email"], -.comment textarea { - @apply my-2 border border-solid border-gray-300 rounded bg-white bg-clip-padding px-3 py-1.5 font-normal text-base text-black-core/[0.75] transition ease-in-out focus:border-gray-300 focus:outline-none focus:bg-white focus:text-black-core/[0.75]; -} - -.comment input[type="submit"] { - @apply mt-3 rounded bg-blue-500 py-2 px-4 text-white font-bold hover:bg-blue-700; -} - -.gradient-text { - @apply bg-clip-text bg-gradient-to-r from-[#f2709c] via-[#ff909c] to-[#ff9472] text-transparent; -} - -.hoverable-text:hover { - @apply bg-clip-text bg-gradient-to-r from-[#f2709c] via-[#ff909c] to-[#ff9472] text-transparent; -} - -.gradient-border { - border-image: linear-gradient(to bottom, #f2709c, #ff835b) 1; -} - -.gradient-border-btn { - @apply border border-solid border-transparent rounded-[0.6rem] bg-gradient-to-r from-[#f2709c] via-[#ff909c] to-[#ff9472] shadow-[inset_2px_1000px_1px_#fff] p-[1rem] text-center hover:border hover:border-solid hover:border-transparent hover:from-[#f2709c] hover:to-[#ff9472] hover:shadow-none active:scale-[0.98]; -} - -.gradient-border-btn > a > .fab { - @apply text-[#f2709c]; -} - -.gradient-border-btn > span { - @apply my-0 mx-1.5 text-[#3d3d3d]; -} - -.gradient-border-btn:hover > span, -.gradient-border-btn:hover > span > span { - @apply text-[#fff]; -} - -.gradient-border-btn:hover > .fa, -.gradient-border-btn:hover > a > .fab, -.gradient-border-btn:hover > .arrow { - @apply text-white; -} - -.footer-icon > path, -button:hover > div > .footer-icon > path { - fill: url("#lgrad"); -} - -.gradient-border-btn:hover > a > .footer-icon > path, -button > div > .footer-icon > path { - fill: #ffffff; -} - -ul { - @apply pl-4; -} - -b, -strong { - @apply font-comme tracking-[0.01em] !text-black-core/[1] !font-medium text-[1.0625rem] md:text-[1.15625rem]; -} - -/* HighlightJS */ -/* Tomorrow Night Theme */ -/* https://jmblog.github.io/color-themes-for-google-code-highlightjs */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* https://jmblog.github.io/color-themes-for-google-code-highlightjs */ -.tomorrow-comment, -pre .hljs-comment, -pre .hljs-title { - @apply text-[#969896]; -} - -.tomorrow-red, -pre .hljs-variable, -pre .hljs-attribute, -pre .hljs-tag, -pre .hljs-regexp, -pre .ruby .hljs-constant, -pre .xml .hljs-tag .hljs-title, -pre .xml .hljs-pi, -pre .xml .hljs-doctype, -pre .html .hljs-doctype, -pre .css .id, -pre .css .hljs-class, -pre .css .hljs-pseudo { - @apply text-[#e49176]; -} - -.tomorrow-orange, -pre .hljs-number, -pre .hljs-preprocessor, -pre .hljs-built_in, -pre .hljs-literal, -pre .hljs-params, -pre .hljs-constant { - @apply text-[#de935f]; -} - -.tomorrow-yellow, -pre .hljs-class, -pre .ruby .hljs-class .hljs-title, -pre .css .hljs-rules .hljs-attribute { - @apply text-[#f0c674]; -} - -.tomorrow-green, -pre .hljs-string, -pre .hljs-value, -pre .hljs-inheritance, -pre .hljs-header, -pre .ruby .hljs-symbol, -pre .xml .hljs-cdata { - @apply text-[#b5bd68]; -} - -.tomorrow-aqua, -pre .css .hljs-hexcolor { - @apply text-[#8abeb7]; -} - -.tomorrow-blue, -pre .hljs-function, -pre .python .hljs-decorator, -pre .python .hljs-title, -pre .ruby .hljs-function .hljs-title, -pre .ruby .hljs-title .hljs-keyword, -pre .perl .hljs-sub, -pre .javascript .hljs-title, -pre .coffeescript .hljs-title { - @apply text-[#81a2be]; -} - -.tomorrow-purple, -pre .hljs-keyword, -pre .javascript .hljs-function { - @apply text-[#b294bb]; -} - -code::before, -code::after { - @apply content-none !important; -} - -.prose h1, -.prose h1 strong { - @apply font-comme text-[#000] text-[1.6875rem] md:text-[1.78125rem] lg:text-[1.95rem] xl:text-[2.0625rem] !-mb-2.5 !tracking-tight font-semibold !leading-snug mt-[3.75rem]; -} - -.prose h2, -.prose h2 strong { - @apply font-comme text-[#000] xl:text-[2.0625rem] !mb-4 !tracking-tight font-semibold; -} - -.prose hr { - @apply !my-6; -} - -.prose i, -.prose a { - @apply font-comme text-lg text-black-core/[0.87] tracking-[0.03rem] font-normal; -} - -.prose span a { - @apply font-comme text-lg text-blue-700 tracking-[0.03rem] font-normal; -} - -.prose - :where(code, code strong):not(:where([class~="not-prose"], blockquote code)) { - @apply bg-gray-200 py-0.5 px-1 rounded font-[550] tracking-wide font-source-codepro; -} - -.prose :where(pre code):not(:where([class~="not-prose"] *)) { - @apply bg-transparent text-[#dbe0e0] leading-normal tracking-[-0.022em] !break-normal; -} - -.prose :where(blockquote, blockquote i):not(:where([class~="not-prose"] *)) { - @apply not-italic !text-[1.4rem] lg:!text-[1.755rem] !leading-[2.3rem] !text-black-core/[0.75] !font-extralight tracking-wide font-inter; -} - -.prose :where(blockquote strong):not(:where([class~="not-prose"] *)) { - @apply not-italic !text-[1.4rem] lg:!text-[1.755rem] !leading-[2.3rem] !text-black-core/[0.75] !font-normal tracking-wide font-inter; -} - -.prose - :where(blockquote p:first-of-type):not( - :where([class~="not-prose"] *) - )::before { - @apply content-none; -} - -.category-swiper .swiper-slide { - @apply !w-auto text-[1.04rem] hoverable-text hover:cursor-pointer; -} - -.category-swiper .swiper-button-next:after, -.category-swiper .swiper-button-prev:after { - @apply px-7 pb-4 pt-1 text-black-900 !text-xs; -} - -.category-swiper .swiper-button-prev:after { - @apply bg-gradient-to-r from-white via-white to-[#ffffff82]; -} - -.category-swiper .swiper-button-next:after { - @apply bg-gradient-to-r from-[#ffffff82] via-white to-white; -} - -.category-swiper .swiper-button-disabled:after { - @apply opacity-0; -} - -.category-swiper .swiper-wrapper { - @apply !flex !flex-row space-x-14 md:space-x-20 !transition-all !duration-1000; -} - -.grecaptcha-badge { - @apply !hidden; -} diff --git a/website/assets/fonts/Comme-Light.woff2 b/website/assets/fonts/Comme-Light.woff2 deleted file mode 100644 index 06a44e05..00000000 Binary files a/website/assets/fonts/Comme-Light.woff2 and /dev/null differ diff --git a/website/assets/fonts/Comme-Medium.woff2 b/website/assets/fonts/Comme-Medium.woff2 deleted file mode 100644 index 781e0325..00000000 Binary files a/website/assets/fonts/Comme-Medium.woff2 and /dev/null differ diff --git a/website/assets/fonts/Comme-Regular.woff2 b/website/assets/fonts/Comme-Regular.woff2 deleted file mode 100644 index 938292c6..00000000 Binary files a/website/assets/fonts/Comme-Regular.woff2 and /dev/null differ diff --git a/website/assets/fonts/Comme-SemiBold.woff2 b/website/assets/fonts/Comme-SemiBold.woff2 deleted file mode 100644 index 421c19fd..00000000 Binary files a/website/assets/fonts/Comme-SemiBold.woff2 and /dev/null differ diff --git a/website/assets/fonts/Inter-Bold.woff2 b/website/assets/fonts/Inter-Bold.woff2 deleted file mode 100644 index 2846f29c..00000000 Binary files a/website/assets/fonts/Inter-Bold.woff2 and /dev/null differ diff --git a/website/assets/fonts/Inter-ExtraLight.woff2 b/website/assets/fonts/Inter-ExtraLight.woff2 deleted file mode 100644 index 621c7bea..00000000 Binary files a/website/assets/fonts/Inter-ExtraLight.woff2 and /dev/null differ diff --git a/website/assets/fonts/Inter-Medium.woff2 b/website/assets/fonts/Inter-Medium.woff2 deleted file mode 100644 index f92498a2..00000000 Binary files a/website/assets/fonts/Inter-Medium.woff2 and /dev/null differ diff --git a/website/assets/fonts/Inter-Regular.woff2 b/website/assets/fonts/Inter-Regular.woff2 deleted file mode 100644 index 6c2b6893..00000000 Binary files a/website/assets/fonts/Inter-Regular.woff2 and /dev/null differ diff --git a/website/assets/fonts/Inter-SemiBold.woff2 b/website/assets/fonts/Inter-SemiBold.woff2 deleted file mode 100644 index 611e90c9..00000000 Binary files a/website/assets/fonts/Inter-SemiBold.woff2 and /dev/null differ diff --git a/website/assets/fonts/Poppins-Medium.woff2 b/website/assets/fonts/Poppins-Medium.woff2 deleted file mode 100644 index ceecc77a..00000000 Binary files a/website/assets/fonts/Poppins-Medium.woff2 and /dev/null differ diff --git a/website/assets/fonts/Poppins-Regular.woff2 b/website/assets/fonts/Poppins-Regular.woff2 deleted file mode 100644 index 4aae28cf..00000000 Binary files a/website/assets/fonts/Poppins-Regular.woff2 and /dev/null differ diff --git a/website/assets/fonts/Source-codePro.woff2 b/website/assets/fonts/Source-codePro.woff2 deleted file mode 100644 index 77af0877..00000000 Binary files a/website/assets/fonts/Source-codePro.woff2 and /dev/null differ diff --git a/website/assets/images/404page_4_1.svg b/website/assets/images/404page_4_1.svg deleted file mode 100644 index 41db5822..00000000 --- a/website/assets/images/404page_4_1.svg +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/website/assets/images/404page_4_2.svg b/website/assets/images/404page_4_2.svg deleted file mode 100644 index 581dc996..00000000 --- a/website/assets/images/404page_4_2.svg +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/website/assets/images/cta/fifth-cta-800w.webp b/website/assets/images/cta/fifth-cta-800w.webp deleted file mode 100644 index c4ea05bf..00000000 Binary files a/website/assets/images/cta/fifth-cta-800w.webp and /dev/null differ diff --git a/website/assets/images/cta/first-cta-2400w.webp b/website/assets/images/cta/first-cta-2400w.webp deleted file mode 100644 index bb35f5a0..00000000 Binary files a/website/assets/images/cta/first-cta-2400w.webp and /dev/null differ diff --git a/website/assets/images/cta/first-cta-400w.webp b/website/assets/images/cta/first-cta-400w.webp deleted file mode 100644 index 79632754..00000000 Binary files a/website/assets/images/cta/first-cta-400w.webp and /dev/null differ diff --git a/website/assets/images/cta/fourth-cta-2400w.webp b/website/assets/images/cta/fourth-cta-2400w.webp deleted file mode 100644 index 0e58246e..00000000 Binary files a/website/assets/images/cta/fourth-cta-2400w.webp and /dev/null differ diff --git a/website/assets/images/cta/second-cta-2400.svg b/website/assets/images/cta/second-cta-2400.svg deleted file mode 100644 index 5e4e46d4..00000000 --- a/website/assets/images/cta/second-cta-2400.svg +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/website/assets/images/cta/second-cta-400.svg b/website/assets/images/cta/second-cta-400.svg deleted file mode 100644 index a946fbde..00000000 --- a/website/assets/images/cta/second-cta-400.svg +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/website/assets/images/emailTemplate.webp b/website/assets/images/emailTemplate.webp deleted file mode 100644 index a3aab1e1..00000000 Binary files a/website/assets/images/emailTemplate.webp and /dev/null differ diff --git a/website/assets/images/footer/new-bg.svg b/website/assets/images/footer/new-bg.svg deleted file mode 100644 index 2ed69148..00000000 --- a/website/assets/images/footer/new-bg.svg +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/website/assets/images/icon.svg b/website/assets/images/icon.svg deleted file mode 100644 index 67a2582d..00000000 --- a/website/assets/images/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/assets/images/loader.svg b/website/assets/images/loader.svg deleted file mode 100644 index 15a2594a..00000000 --- a/website/assets/images/loader.svg +++ /dev/null @@ -1,52 +0,0 @@ - - \ No newline at end of file diff --git a/website/assets/images/logo-header.svg b/website/assets/images/logo-header.svg deleted file mode 100644 index b704e1cb..00000000 --- a/website/assets/images/logo-header.svg +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/website/assets/images/small-loader.svg b/website/assets/images/small-loader.svg deleted file mode 100644 index 6e36eba8..00000000 --- a/website/assets/images/small-loader.svg +++ /dev/null @@ -1,52 +0,0 @@ - - \ No newline at end of file diff --git a/website/assets/images/user.png b/website/assets/images/user.png deleted file mode 100644 index b7a7532f..00000000 Binary files a/website/assets/images/user.png and /dev/null differ diff --git a/website/components/authorDetails.js b/website/components/authorDetails.js deleted file mode 100644 index da2f5473..00000000 --- a/website/components/authorDetails.js +++ /dev/null @@ -1,58 +0,0 @@ -import Image from "next/image"; - -export default function AuthorDetails({ postData }) { - return ( -
{date}
-- {date} -
-- Get started today -
-- Let's build the next big thing! -
-- Let's improve your business's digital strategy and - implement robust mobile apps to achieve your business objectives. - Schedule Your Free Consultation Now. -
- -- Get started today -
-- Let's build the next big thing! -
-- Let's improve your business's digital strategy and - implement robust mobile apps to achieve your business objectives. - Schedule Your Free Consultation Now. -
- -- Whether you need... -
-
-
- L
-
- et's
-
- W
-
- ork
-
-
- T
-
- ogether
-
- Not sure where to start? We also offer code and architecture - reviews, strategic planning, and more. -
- -Subscribe Successfully!
-{post.summary}
- -{post.summary}
- -{email}
-- are you sure you wish to unsubscribe from Canopas blog? -
-- Unsubscribe Successfully! -
-