/* Skyline Bulletin — Simple, responsive "Coming Soon" page File: src/App.tsx (React + Vite + TypeScript) This single-file starter provides a focused, responsive "Coming Soon" landing page with: - Hero with headline, subtitle, and email capture - Responsive layout that works on mobile, tablet, desktop - Accessible form (no backend; front-end mock) and success state - Small features list and social links area - Plain CSS inlined as separate file content below (create src/styles.css) - No Tailwind; uses modern CSS with CSS variables and flex/grid How to use: 1. Create a Vite + React + TS project if you haven't: `npm create vite@latest skyline-bulletin -- --template react-ts` 2. Install optional icons (lucide-react) if you want icons: `npm install lucide-react` 3. Replace src/App.tsx with this file and create src/styles.css with the CSS provided below. 4. Run `npm run dev`. */ import React, { useState } from "react"; import { Mail, Twitter, Linkedin, Sun, Moon } from "lucide-react"; import "./styles.css"; import logo from "./assets/Skybulletin_logo.jpeg"; export default function App(){ const [email, setEmail] = useState(""); const [subscribed, setSubscribed] = useState(false); const [theme, setTheme] = useState<"light"|"dark">("light"); const onSubmit = (e: React.FormEvent) => { e.preventDefault(); if (!email) return; // mock subscribe setSubscribed(true); }; return (
Skyline Bulletin logo
Skyline Bulletin

Skyline Bulletin — Coming Soon

Short, verified, people-first news. Clean design. No noise. Launching soon.

{subscribed ? (
Thanks — you’re on the list.

We’ll email you when Skyline Bulletin launches.

) : (
setEmail(e.target.value)} required />
)}
No advertisment • Human-first Expected launch: Q4
Concise briefs

Quick reads for busy days.

Verified sources

Transparent sourcing and context.

People-first

Human editorial judgement over algorithms.

Follow our progress
); }