diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..c5990e3 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,51 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Install Dependencies + working-directory: ./website + run: npm install + + - name: Build + working-directory: ./website + run: npm run build + + - name: Upload Pages Artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./website/dist + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9a6817a --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# Dependencies +node_modules + +# Lock files +package-lock.json +yarn.lock +pnpm-lock.yaml + +# Build output +dist/ + +# Environment +.env +.env.local +.env.production + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# OS +.DS_Store +Thumbs.db + +# Logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Cache +.cache/ +.astro/ diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000..4a65f91 --- /dev/null +++ b/website/README.md @@ -0,0 +1,43 @@ +# One Person Company Website + +一人公司资源官网,基于视觉稿构建。 + +## 技术栈 + +- **框架**: Astro 4.x +- **样式**: Tailwind CSS 3.x +- **字体**: Playfair Display (标题) + DM Sans (正文) +- **图标**: Lucide Icons +- **部署**: GitHub Pages + +## 快速开始 + +```bash +# 安装依赖 +npm install + +# 开发模式 +npm run dev + +# 构建生产版本 +npm run build +``` + +## 域名 + +- **访问地址**: https://opc.weavefox.ai + +## 设计原则 + +### 色彩 +- **主色**: #a6311f (赤陶红) - 温暖有活力 +- **背景**: #fff8f6 (暖白色) - 柔和舒适 + +### 字体 +- **标题**: Playfair Display - 优雅衬线体 +- **正文**: DM Sans - 现代无衬线 + +### 布局 +- **内容最大宽度**: 1280px +- **大圆角**: 12px-40px,友好柔和 +- **适当留白**: Section 间距 80px \ No newline at end of file diff --git a/website/astro.config.mjs b/website/astro.config.mjs new file mode 100644 index 0000000..db05293 --- /dev/null +++ b/website/astro.config.mjs @@ -0,0 +1,12 @@ +import { defineConfig } from 'astro/config'; +import tailwind from '@astrojs/tailwind'; + +export default defineConfig({ + site: 'https://opc.weavefox.ai', + base: '/', + integrations: [tailwind()], + output: 'static', + build: { + format: 'file' + } +}); \ No newline at end of file diff --git a/website/package.json b/website/package.json new file mode 100644 index 0000000..2ca3c7a --- /dev/null +++ b/website/package.json @@ -0,0 +1,16 @@ +{ + "name": "awesome-opc-site", + "type": "module", + "version": "1.0.0", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "astro": "^4.16.0", + "@astrojs/tailwind": "^5.1.0", + "tailwindcss": "^3.4.0" + } +} \ No newline at end of file diff --git a/website/public/.nojekyll b/website/public/.nojekyll new file mode 100644 index 0000000..5003309 --- /dev/null +++ b/website/public/.nojekyll @@ -0,0 +1 @@ +# No Jekyll - Astro builds static files \ No newline at end of file diff --git a/website/public/CNAME b/website/public/CNAME new file mode 100644 index 0000000..24df353 --- /dev/null +++ b/website/public/CNAME @@ -0,0 +1 @@ +opc.weavefox.ai \ No newline at end of file diff --git a/website/public/favicon.svg b/website/public/favicon.svg new file mode 100644 index 0000000..b1714ae --- /dev/null +++ b/website/public/favicon.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/website/public/logo.svg b/website/public/logo.svg new file mode 100644 index 0000000..74dbfcd --- /dev/null +++ b/website/public/logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/website/public/sitemap.xml b/website/public/sitemap.xml new file mode 100644 index 0000000..58ef8a5 --- /dev/null +++ b/website/public/sitemap.xml @@ -0,0 +1,27 @@ + + + + https://opc.weavefox.ai/ + 2026-06-18 + weekly + 1.0 + + + https://opc.weavefox.ai/policies.html + 2026-06-18 + weekly + 0.8 + + + https://opc.weavefox.ai/inspiration.html + 2026-06-18 + weekly + 0.8 + + + https://opc.weavefox.ai/tools.html + 2026-06-18 + weekly + 0.8 + + \ No newline at end of file diff --git a/website/src/components/Footer.astro b/website/src/components/Footer.astro new file mode 100644 index 0000000..850c759 --- /dev/null +++ b/website/src/components/Footer.astro @@ -0,0 +1,41 @@ +--- +const currentYear = new Date().getFullYear(); +--- + + \ No newline at end of file diff --git a/website/src/components/Navbar.astro b/website/src/components/Navbar.astro new file mode 100644 index 0000000..1e1a440 --- /dev/null +++ b/website/src/components/Navbar.astro @@ -0,0 +1,123 @@ +--- +interface Props { + currentPage?: 'home' | 'policies' | 'inspiration' | 'tools'; +} + +const { currentPage = 'home' } = Astro.props; + +const navLinks = [ + { href: '/', label: '首页', key: 'home' }, + { href: '/policies.html', label: '政策', key: 'policies' }, + { href: '/inspiration.html', label: '灵感', key: 'inspiration' }, + { href: '/tools.html', label: '工具库', key: 'tools' } +]; +--- + + + + + + \ No newline at end of file diff --git a/website/src/env.d.ts b/website/src/env.d.ts new file mode 100644 index 0000000..9bc5cb4 --- /dev/null +++ b/website/src/env.d.ts @@ -0,0 +1 @@ +/// \ No newline at end of file diff --git a/website/src/layouts/BaseLayout.astro b/website/src/layouts/BaseLayout.astro new file mode 100644 index 0000000..df7a92a --- /dev/null +++ b/website/src/layouts/BaseLayout.astro @@ -0,0 +1,96 @@ +--- +interface Props { + title: string; + description?: string; +} + +const { title, description = 'Awesome OPC - 一人公司的无限可能。汇集政策解读、灵感故事和工具推荐,助力个人创业者成功。' } = Astro.props; +--- + + + + + + + + + + {title} + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/src/pages/index.astro b/website/src/pages/index.astro new file mode 100644 index 0000000..4c4a3ad --- /dev/null +++ b/website/src/pages/index.astro @@ -0,0 +1,295 @@ +--- +import BaseLayout from '../layouts/BaseLayout.astro'; +import Navbar from '../components/Navbar.astro'; +import Footer from '../components/Footer.astro'; + +const starterSteps = [ + { number: '01', title: '寻找利基 (Find niche)', desc: '选择一个具体的问题,验证需求,并确认用户的付费意愿。这是成功的基石。' }, + { number: '02', title: '注册公司 (Register)', desc: '选择法律结构(如 LLC、个体户等),并在初创阶段开设商业银行账户。' }, + { number: '03', title: '构建 MVP (Build MVP)', desc: '发布能提供价值的最简版本。利用 AI 工具(如 Cursor, v0)极速迭代。' }, + { number: '04', title: '设置支付 (Payments)', desc: '集成 Stripe, Lemon Squeezy 或支付宝。从第一天起就开始追踪财务状况。' }, + { number: '05', title: '启动与获客 (Launch)', desc: '去你的受众所在的地方。在公开场合构建 (Build in Public)。前 10 个用户 > 前 1 万个。' }, + { number: '06', title: '自动化与规模化 (Automate)', desc: '利用 AI Agent 和 SaaS 工具处理支持、营销、运营。实现单人规模化。' } +]; + +const policiesLinks = [ + { text: '《中华人民共和国公司法》2023修订', icon: 'description' }, + { text: '上海/杭州一人公司扶持政策', icon: 'location_on' }, + { text: '深圳个体工商户高质量发展措施', icon: 'trending_up' } +]; + +const globalPoliciesLinks = [ + { text: '美国 SBA 商业结构指南', icon: 'public' }, + { text: '欧盟单人有限责任公司指令', icon: 'euro_symbol' }, + { text: '新加坡 ACRA 注册指南', icon: 'flag' } +]; + +const inspirations = [ + { icon: 'stars', text: 'Pieter Levels — 年入 $3M' }, + { icon: 'shopping_cart', text: 'Base44 — $80M 被收购' }, + { icon: 'joystick', text: 'Stardew Valley — $500M' } +]; + +const toolCategories = [ + { icon: 'code', title: '开发与构建', desc: 'Cursor, v0, Supabase, Vercel' }, + { icon: 'palette', title: '设计与 UI', desc: 'Framer, Midjourney, Figma, Lovart' }, + { icon: 'trending_up', title: '营销与增长', desc: 'Beehiiv, X (Twitter), Plausible' }, + { icon: 'smart_toy', title: 'AI 代理人', desc: 'Manus, Replit Agent, Genspark' } +]; +--- + + + + +
+ +
+
+
+
+ + 一人公司时代已经到来 +
+

+ Awesome OPC
+ 一个人,一家公司,无限可能 +

+

+ 这个项目汇集了个人创业者所需的一切——从了解政策法规,到从前人的成功故事中获取灵感,再到发现能够让单人公司高效运作的最佳工具。 +

+ +
+
+ + +
+
+
+
+
+

+ 🎯 + OPC 入门指南 +

+

+ 这是启动一人公司的快速清单。按照这些步骤,利用现代 AI 工具和无代码平台,快速从想法走向盈利。 +

+
+

+ + 关键提醒 +

+
    +
  • + 1 + 你是唯一的瓶颈 — 无情地优先处理。 +
  • +
  • + 2 + 收入优先 — 一个付费客户胜过一千个星。 +
  • +
  • + 3 + 自动化一切可重复的操作。 +
  • +
+
+
+
+
+ {starterSteps.map((step) => ( +
+
{step.number}
+

{step.title}

+

{step.desc}

+
+ ))} +
+
+
+
+ + +
+
+
+

资源分类检索

+

深度挖掘一人公司生态系统的每一个角落

+
+ +
+ +
+
+
+
+ +
+

🏛 政策与法规 (Policies)

+
+ + 查看全部 + +
+
+
+

+ + 中国 +

+ +
+
+

+ + 全球 +

+ +
+
+
+ + +
+
+
+ +

💡 灵感与故事 (Inspiration)

+

+ 看看那些已经走通这条路的先行者。从 Pieter Levels 到 Eric Barone,见证单兵作战的奇迹。 +

+
    + {inspirations.map(item => ( +
  • +
    + +
    + {item.text} +
  • + ))} +
+
+ +
+ + +
+
+
+
+ +
+

🛠 核心工具栈 (Tools)

+
+
+ AI-Powered + Low-Code + SaaS +
+
+
+ {toolCategories.map(cat => ( +
+
+ +
+

{cat.title}

+

{cat.desc}

+
+ ))} +
+ +
+
+
+
+ + +
+
+
+
+
+

加入一人公司观察者

+

+ 每周获取最新的政策解读、出海工具和一人公司案例研究。 +

+
+ + +
+
+
+
+ +