- Add terms.html, privacy.html, sla.html
- Update lastmod dates
- Set appropriate priority and changefreq
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add skip link for keyboard navigation
- Add ARIA labels to interactive elements
- Add aria-hidden to decorative elements (ASCII logo, icons)
- Add aria-live regions for dynamic content
- Add scope="col" to table headers
- Fix footer contrast (remove opacity-50)
- Add prefers-reduced-motion support
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add SRI hash to Alpine.js (integrity + crossorigin)
- Remove Tailwind CDN, use prebuilt style.css only
- Add CSS variables for terminal theme colors
- Restrict CORS to https://hosting.anvil.it.com
Performance: ~500ms LCP improvement (no JIT compilation)
Security: CDN tampering protection, API access restriction
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add typing animation for hero headlines
- Headlines: 거뜬합니다, 최적의 컨디션, 멈추지 않습니다, 아시아 전역 커버, AI가 합니다
- Remove progress dots for cleaner UI
- Update regions: 도쿄 · 오사카 · 서울 · 싱가포르
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 5 rotating promotional commands with typing effect
- Progress bar and navigation dots
- Messages: instant deploy, DDoS protection, pricing, Telegram bot, regions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add dynamic pricing section with kubectl-style table UI
- Implement region tabs (Tokyo 1-3, Osaka 1-2, Seoul 1, Singapore 1)
- Integrate with existing /api/pricing endpoint
- Add localStorage caching with 1-hour TTL
- Apply terminal theme (Fira Code, GitHub Dark colors)
- Sort by price, filter by region
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- index.html: GitHub Dark 테마 터미널 스타일 랜딩 페이지
- terms.html, privacy.html, sla.html: 법적 페이지 터미널 UI 적용
- ASCII 아트 로고, vim 상태바, JSON 코드 블록
- Fira Code 모노스페이스 폰트, 터미널 그린 컬러 팔레트
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Hero 섹션: 서버 만들기 버튼 → AI와 대화하기 버튼으로 변경
- Hero 섹션: 핑 위젯 제거
- 텔레그램 데모: 위자드 흐름(용도→기술스택→규모→추천)을 자연스러운 대화체로 변경
- 위자드 모달 전체 제거
- 네이버 Search Advisor 인증 파일 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## 변경사항
- app.js (1370줄) → 7개 모듈 (1427줄)
- ES6 import/export 문법 사용
- Alpine.js 호환성 유지 (window 전역 노출)
## 모듈 구조
- js/config.js: 상수/설정 (WIZARD_CONFIG, PRICING_DATA, MOCK_*)
- js/api.js: ApiService
- js/utils.js: formatPrice, switchTab, ping 시뮬레이션
- js/wizard.js: 서버 추천 마법사 로직
- js/pricing.js: 가격표 컴포넌트
- js/dashboard.js: 대시보드 및 텔레그램 연동
- js/app.js: 메인 통합 (모든 모듈 import)
## HTML 변경
- <script type="module" src="js/app.js">로 변경
- 기존 기능 모두 정상 작동
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove old Server Launcher Modal from index.html (210 lines)
- Remove launcher state variables and methods from app.js
- Remove unused constants: LAUNCHER_PRICES, PLAN_SPECS, REGIONS, OS_LIST, PAYMENT_METHODS, DEPLOY_TIMING
- Remove deprecated API methods for deleted functions
- Preserve: wizard, pricing table, dashboard functionality
Total reduction: ~440+ lines of unused code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 그리드 배경 패턴 추가 (.hero-grid-bg)
- 타이틀 그라디언트 텍스트 효과 (.hero-title-gradient)
- Telegram 데모에 펄스 글로우 효과 (.hero-glow)
- CTA 버튼 그라디언트 + 호버 스케일 효과 (.btn-gradient)
- 순차 페이드인 애니메이션 (.animate-fade-in-*)
- Ping 위젯 스타일 개선 (두꺼운 바, backdrop-blur-md)
- 배지 호버 효과 및 화살표 아이콘 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 가격표 섹션을 페이지 하단에서 히어로 바로 아래로 이동
- 상단 패딩 축소 (py-24 → pt-12 pb-24)
- 서브탭(서울/글로벌 타입) 스타일을 메인탭과 동일하게 통일
- Pages Functions API 프록시 추가 (functions/)
- wrangler.toml 및 TypeScript 설정 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 도쿄/오사카/싱가폴을 단일 탭으로 통합 (동일 가격)
- Linode 인스턴스 타입별 서브탭 필터링 추가
- 서브탭 설명 개선 (공유 CPU, 전용 CPU, AMD EPYC, 대용량 RAM)
- GPU Japan 렌더링 이슈 수정 (template key 중복 문제)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 텔레그램 환경 감지 시 대시보드 모드 자동 활성화
- 내 서버 목록/관리 (시작/중지/삭제)
- 사용량/비용 통계
- 알림 센터
- Mock 데이터로 UI 테스트 가능
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add rolling text animation for key features (4 phrases, 4s interval)
- Reduce hero section top padding (pt-32 → pt-24)
- Reduce Telegram chat window height (420px → 320px)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add mesh-bg class with layered gradients (blue/purple tones)
- Apply to body element for site-wide effect
- CSS-only implementation for minimal performance impact
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change 40Gbps to 25Gbps Private Network (Vultr bare metal spec)
- Remove CN2 from Premium Network description (not supported)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change "API & Webhooks" to "AI 자동화" in tech cards
- Update badge from "Infrastructure as Code" to "AI-Powered Automation"
- Replace "Webhook Integration" and "Full API Access" with:
- 텔레그램 봇: 자연어로 서버 생성, 설정, 모니터링 요청
- 엔지니어 + AI 협업: 복잡한 문제는 전문 엔지니어가 AI와 함께 해결
- Update image alt text to reflect Telegram bot workflow
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Switch from Pretendard web font to system fonts
- Remove 2.3MB of Pretendard font files
- Add WebP image format for n8n workflow
- Update CSP to remove CDN font dependencies
- Add critical CSS inline, dns-prefetch, image optimization
Metrics improvement:
- FCP: 13.4s → 2.0s
- LCP: 14.1s → 2.6s
- Performance: 55 → 95
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Download JetBrains Mono and Pretendard fonts (woff2)
- Add fonts.css with @font-face declarations
- Remove Google Fonts external dependencies
- Update CSP to remove fonts.googleapis.com
- Update all HTML files to use local fonts
Improves FCP/LCP by eliminating external font requests.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Company does not collect, store, or process personal data
- All interactions via Telegram (managed by Telegram)
- Payments via external processors
- Static website with no cookies or tracking
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add DEPLOY_TIMING constants for deployment simulation
- Add null checks in switchTab function for consistency
- Add role="radiogroup" and fieldset/legend to wizard steps
- Add role="log" and aria-live="polite" to chat container
- Add bottom border to active pricing region button for better visual distinction
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Alpine.js requires unsafe-eval for dynamic expression evaluation
in x-text, x-for, and other reactive directives.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Content Security Policy meta tag for XSS protection
- Add width/height to image for CLS prevention
- Add aria-hidden to decorative SVG icons (7 locations)
- Refactor inline onclick to addEventListener for CSP compliance
- Add visibility-aware setInterval for ping updates
- Add keyboard navigation (Arrow keys) for tab panels
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Critical fixes:
- Add defer to app.js for non-blocking loading
- Add skip link and main landmark for accessibility
- Fix ARIA tab state dynamic updates
High priority fixes:
- Add rel="noopener noreferrer" to external links
- Implement non-blocking Google Fonts loading
- Improve color contrast (text-slate-500 → text-slate-400)
- Consolidate price data to single source (PRICING_DATA)
- Add TELEGRAM_BOT_URL constant
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>