diff --git a/web/public/assets/avif/landing-banner-cat.avif b/web/public/assets/avif/landing-banner-cat.avif
new file mode 100644
index 000000000..8e257029e
Binary files /dev/null and b/web/public/assets/avif/landing-banner-cat.avif differ
diff --git a/web/public/prerendered/index.html b/web/public/prerendered/index.html
index 79e91800e..f6fd7616d 100644
--- a/web/public/prerendered/index.html
+++ b/web/public/prerendered/index.html
@@ -4,7 +4,7 @@
봄봄 | 읽고 남기고 쌓는 뉴스레터 리딩 플랫폼
@@ -145,6 +145,11 @@
.newsletter-card:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
+ .newsletter-card a {
+ text-decoration: none;
+ color: inherit;
+ display: block;
+ }
.newsletter-card img {
width: 80px;
height: 80px;
@@ -188,9 +193,8 @@
@@ -204,160 +208,146 @@
-
-
-
+
+
+
+
+
-
- 하버드비즈니스리뷰
-
- 업무에 최신 경영 지식이 필요하신가요? HBR 최신 아티클을 매주
- 뉴스레터로 만나보세요!
-
+
+
+ Daily Byte
+ 하루 10분, 경제를 읽는 가장 쉬운 방법
+
+
+
+
+
+
+ 긱뉴스
+ 매주 월요일 아침, 지난 일주일간의 GeekNews 중 엄선한 뉴스들을 이메일로 보내드립니다.
+
+
+
+
+
+
+ 어피티
+ 매일 아침 나에게 찾아오는 경제뉴스, 한국 경제 뉴스레터 1위 어피티입니다.
+
+
+
+
+
+
+ 뉴닉
+ 세상이 궁금해? 쉽고 재밌는 지식 플랫폼, 뉴닉!
+
-
- 한경 CFO insight
-
- 경영 혁신의 최전선에서 활약하는 CFO들을 위해 최신 자본시장 소식과
- 산업계 동향을 매주 목요일 뉴스레터로 전해 드리겠습니다
-
+
+
+ 디그
+ 세상 돌아가는 경제 이야기, 하루 5분 디그로 편하게 읽어보세요.
+
-
- 5분 칼럼
-
- "아하, 그런 거였구나." 무릎을 탁 치게 만드는 세상에 대한 통찰과
- 해석을 지금 만나보세요.
-
+
+
+ 캐릿
+ Z세대를 위한 트렌드 브리핑 뉴스레터. MZ세대가 주목하는 라이프스타일과 콘텐츠를 소개합니다.
+
-
- Daily Byte
- 하루 10분, 경제를 읽는 가장 쉬운 방법
+
+
+ 우아한테크
+ 매월, 우아한형제들의 개발 및 기술 관련 소식을 전해드립니다.
+
-
- Daily Skimm
-
- The Daily Skimm newsletter provides a concise roundup of top news
- and current events in an engaging and conversational format.
-
+
+
+ H:730
+ 쉴 새 없이 쏟아지는 뉴스 더미에서 독자님께 꼭 필요한 뉴스를 골라 배달합니다.
+
-
- FE News
-
- FE News는 네이버 FE 엔지니어들이 엄선한 양질의 FE 및 주요한 기술
- 소식들을 큐레이션 해 공유하는 것을 목표로 합니다.
-
+
+
+ 머니네버슬립
+ 미국의 경제와 기업, 그리고 주식에 대해 이야기해요. 읽다 보면 어느새 지식이 수북하게 쌓여있을 거에요!
+
-
- fig.1
- 우리 주변 사소한 것들의 역사를 조사합니다.
+
+
+ 노마드코더
+ 최신 개발 Dev 뉴스. AI 소식, 사이드프로젝트, UIUX, 서비스기획 등 다양한 주제. 매주 금요일 발송.
+
-
- 뉴닉
- 세상이 궁금해? 쉽고 재밌는 지식 플랫폼, 뉴닉!
+
+
+ 미라클레터
+ 테크 트렌드, 글로벌 트렌드, 실리콩밸리 현장 소식을 인사이트 있게 담아서 주3회 발송합니다.
+
-
- 디그
- 세상 돌아가는 경제 이야기, 하루 5분 디그로 편하게 읽어보세요.
+
+
+ FE News
+ FE News는 네이버 FE 엔지니어들이 엄선한 양질의 FE 및 주요한 기술 소식들을 큐레이션 해 공유합니다.
+
-
- 노마드코더
-
- 최신 개발 Dev 뉴스. IT 이슈 등 개발자의 일과 성장에 도움이 되는
- 정보를 모아 보내드려요.
-
+
+
+ 조쉬의 뉴스레터
+ 퀄리티 있는 AI, 비즈니스, 프로덕트 이야기를 들려드려요.
+
-
- 어피티
-
- 매일 아침 나에게 찾아오는 경제뉴스, 한국 경제 뉴스레터 1위
- 어피티입니다.
-
+
+
+ 요즘IT
+ 개발, 디자인, 기획 등 다양한 분야의 IT 이야기를 담고 있는 매거진. 일주일에 한 번 트렌디한 소식을 선별해 발송합니다.
+
-
- 요즘IT
-
- 개발, 디자인, 기획 등 다양한 분야의 IT 이야기를 담고 있는 매거진
- 요즘IT
-
+
+
+ 하버드비즈니스리뷰
+ 업무에 최신 경영 지식이 필요하신가요? HBR 최신 아티클을 매주 뉴스레터로 만나보세요!
+
-
- 캐릿
-
- Z세대를 위한 트렌드 브리핑 뉴스레터. MZ세대가 주목하는
- 라이프스타일과 콘텐츠를 소개합니다.
-
+
+
+ fig.1
+ 우리 주변 사소한 것들의 역사를 조사합니다.
+
diff --git a/web/public/sitemap.xml b/web/public/sitemap.xml
index 1bb1f16c9..82bb5f674 100644
--- a/web/public/sitemap.xml
+++ b/web/public/sitemap.xml
@@ -12,11 +12,4 @@
1.0
-
-
- https://www.bombom.news/landing
- 2026-03-25T00:00:00+00:00
- monthly
- 0.8
-
\ No newline at end of file
diff --git a/web/src/components/Carousel/CarouselSlide.tsx b/web/src/components/Carousel/CarouselSlide.tsx
index 48bdf4d76..77612846c 100644
--- a/web/src/components/Carousel/CarouselSlide.tsx
+++ b/web/src/components/Carousel/CarouselSlide.tsx
@@ -19,5 +19,6 @@ const CarouselSlide = ({ children }: PropsWithChildren) => {
export default CarouselSlide;
const Slide = styled.li`
+ min-width: 0;
flex: 0 0 100%;
`;
diff --git a/web/src/pages/recommend/components/LandingIntroBanner/LandingIntroBanner.tsx b/web/src/pages/recommend/components/LandingIntroBanner/LandingIntroBanner.tsx
new file mode 100644
index 000000000..e13462cf5
--- /dev/null
+++ b/web/src/pages/recommend/components/LandingIntroBanner/LandingIntroBanner.tsx
@@ -0,0 +1,128 @@
+import styled from '@emotion/styled';
+import { Link } from '@tanstack/react-router';
+import { useDevice } from '@/hooks/useDevice';
+import type { Device } from '@/hooks/useDevice';
+import landingCharacter from '#/assets/avif/landing-banner-cat.avif';
+
+const LandingIntroBanner = () => {
+ const device = useDevice();
+
+ return (
+
+
+
+
+
+ 봄봄이 처음이라면
+
+ 봄봄 서비스를 소개합니다.
+
+ 서비스 소개 보기
+
+
+
+
+ );
+};
+
+export default LandingIntroBanner;
+
+const Container = styled(Link)`
+ overflow: hidden;
+ position: relative;
+ width: 100%;
+ padding: 0 clamp(40px, 5vw, 56px);
+ border-radius: 24px;
+
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ background:
+ radial-gradient(
+ ellipse at top left,
+ rgb(254 94 4 / 9%) 0%,
+ rgb(254 94 4 / 4%) 44%,
+ transparent 68%
+ ),
+ linear-gradient(135deg, #fff6ef 0%, #fffaf2 48%, #fff1e8 100%);
+
+ cursor: pointer;
+`;
+
+const Content = styled.div`
+ width: 100%;
+ max-width: min(420px, 90%);
+
+ display: grid;
+ gap: 12px;
+ align-items: center;
+
+ grid-template-columns: 1fr auto;
+`;
+
+const TextWrapper = styled.div`
+ width: 100%;
+
+ display: flex;
+ gap: 12px;
+ flex-direction: column;
+`;
+
+const TextGroup = styled.div`
+ display: flex;
+ gap: 8px;
+ flex-direction: column;
+`;
+
+const Title = styled.p<{ device: Device }>`
+ width: calc(100% + clamp(80px, 20vw, 175px) + 12px);
+
+ color: ${({ theme }) => theme.colors.textPrimary};
+ font: ${({ device, theme }) => {
+ if (device === 'mobile') {
+ return theme.fonts.t8Bold;
+ }
+ if (device === 'tablet') {
+ return theme.fonts.t9Bold;
+ }
+ return theme.fonts.t12Bold;
+ }};
+`;
+
+const Description = styled.p<{ device: Device }>`
+ color: ${({ theme }) => theme.colors.textSecondary};
+ font: ${({ device, theme }) => {
+ if (device === 'mobile') {
+ return theme.fonts.t5Regular;
+ }
+ if (device === 'tablet') {
+ return theme.fonts.t6Regular;
+ }
+ return theme.fonts.t7Regular;
+ }};
+
+ word-break: keep-all;
+`;
+
+const Highlight = styled.span`
+ color: ${({ theme }) => theme.colors.primaryBomBom};
+`;
+
+const ActionText = styled.span<{ device: Device }>`
+ padding: ${({ device }) => (device === 'mobile' ? '4px 10px' : '8px 12px')};
+ border-radius: 24px;
+
+ align-self: flex-start;
+
+ background: ${({ theme }) => theme.colors.primaryBomBom};
+ color: ${({ theme }) => theme.colors.white};
+ font: ${({ theme }) => theme.fonts.t4Bold};
+ letter-spacing: -0.01em;
+ white-space: nowrap;
+`;
+
+const CharacterImage = styled.img`
+ width: clamp(84px, 20vw, 175px);
+ height: auto;
+`;
diff --git a/web/src/pages/recommend/components/SlideCardList/SlideCardList.tsx b/web/src/pages/recommend/components/SlideCardList/SlideCardList.tsx
index 272fd0ff3..26950d925 100644
--- a/web/src/pages/recommend/components/SlideCardList/SlideCardList.tsx
+++ b/web/src/pages/recommend/components/SlideCardList/SlideCardList.tsx
@@ -1,4 +1,5 @@
import styled from '@emotion/styled';
+import LandingIntroBanner from '../LandingIntroBanner/LandingIntroBanner';
import BlogOpenBanner from '../PromotionBanner/BlogOpenBanner';
import MaeilMailPromotionBanner from '../PromotionBanner/MaeilMailPromotionBanner';
import { Carousel } from '@/components/Carousel/Carousel';
@@ -23,6 +24,11 @@ const SlideCardList = () => {
+
+
+
+
+
diff --git a/web/src/routes/_bombom.tsx b/web/src/routes/_bombom.tsx
index bae851ec4..f561bd320 100644
--- a/web/src/routes/_bombom.tsx
+++ b/web/src/routes/_bombom.tsx
@@ -3,7 +3,6 @@ import { queries } from '@/apis/queries';
import AppInstallPromptModal from '@/components/AppInstallPromptModal/AppInstallPromptModal';
import BomBomPageLayout from '@/components/PageLayout/BomBomPageLayout';
import { useWebViewRegisterToken } from '@/libs/webview/useWebViewRegisterToken';
-import { LANDING_VISITED_KEY } from '@/pages/landing/constants/localStorage';
let isFirstVisit = true;
@@ -13,11 +12,6 @@ export const Route = createFileRoute('/_bombom')({
context,
location,
}): Promise> => {
- const hasVisitedLanding = localStorage.getItem(LANDING_VISITED_KEY);
- if (!hasVisitedLanding) {
- return redirect({ to: '/landing' });
- }
-
if (!isFirstVisit) return;
const { queryClient } = context;
diff --git a/web/src/routes/landing.tsx b/web/src/routes/landing.tsx
index 8d97c1f16..da5fcc9f1 100644
--- a/web/src/routes/landing.tsx
+++ b/web/src/routes/landing.tsx
@@ -23,6 +23,7 @@ export const Route = createFileRoute('/landing')({
title: '봄봄 | 읽고 남기고 쌓는 뉴스레터 리딩 플랫폼',
},
],
+ links: [{ rel: 'canonical', href: 'https://www.bombom.news/landing' }],
}),
component: LandingPage,
});