Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/workflows/auto-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Auto-merge safe dependencies
on:
pull_request:
types: [labeled, synchronize]
jobs:
auto-merge:
if: contains(github.event.pull_request.labels.*.name, 'dependencies')
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
with:
script: |
const pr = context.payload.pull_request
const title = pr.title.toLowerCase()
const isSafe = /\b(chore|deps|dependencies)\b/.test(title) && !title.includes('major')
if (isSafe) {
github.rest.pulls.merge({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr.number,
merge_method: 'squash'
})
}
78 changes: 78 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: CI/CD Pipeline

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
# Run nightly at 2 AM UTC
- cron: '0 2 * * *'

jobs:
lint-and-build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Lint
run: pnpm lint

- name: Build
run: pnpm build

- name: Upload build artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: build-artifacts
path: dist/
retention-days: 7

health-check:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Check marketing site health
run: |
echo "🏥 Marketing Site Health Check"
echo "=============================="

# Check homepage
echo "Checking homepage..."
curl -s -o /dev/null -w "%{http_code}" https://thelabelai.com
echo " - Homepage status"

# Check login redirect
echo "Checking login redirect..."
curl -s -I https://thelabelai.com/login | grep -i "location:"

# Check signup redirect
echo "Checking signup redirect..."
curl -s -I https://thelabelai.com/signup | grep -i "location:"

# Check WWW redirect
echo "Checking WWW redirect..."
curl -s -I https://www.thelabelai.com | grep -i "location:"

echo "✅ Marketing site health check complete"

- name: Upload health check results
uses: actions/upload-artifact@v4
if: always()
with:
name: marketing-health-check
path: marketing-health-results.txt
retention-days: 30
13 changes: 13 additions & 0 deletions .github/workflows/lhci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Lighthouse CI (nightly)
on:
schedule: [ { cron: "0 3 * * *" } ]
workflow_dispatch:
jobs:
lhci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: '22' }
- run: npm i -D @lhci/[email protected]
- run: npx lhci autorun
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
.vercel
node_modules/
dist/
.vercel/
.env*
19 changes: 19 additions & 0 deletions .lighthouserc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"ci": {
"collect": {
"numberOfRuns": 2,
"url": [
"https://thelabelai.com/",
"https://thelabelai.com/login",
"https://app.thelabelai.com/login"
]
},
"assert": {
"assertions": {
"categories:performance": ["warn", { "minScore": 0.85 }],
"categories:accessibility": ["error", { "minScore": 0.9 }],
"categories:seo": ["warn", { "minScore": 0.9 }]
}
}
}
}
50 changes: 50 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# TheLabel AI Marketing Website

A modern, responsive marketing website for TheLabel AI - the future of AI-powered record labels.

## Status

- **Live Status**: [status.thelabelai.com](https://status.thelabelai.com)
- **Uptime Monitoring**: 24/7 monitoring of all critical endpoints
- **Performance**: Lighthouse CI with nightly performance budgets
- **Error Tracking**: Sentry integration for real-time error monitoring

## Features

- Modern, responsive design with Tailwind CSS
- OAuth integration with Google
- SEO optimized with robots.txt and sitemap.xml
- Performance optimized with Vite
- Accessibility compliant (WCAG 2.1)

## Tech Stack

- **Frontend**: React 18 + Vite
- **Styling**: Tailwind CSS + shadcn/ui
- **Authentication**: Google OAuth
- **Deployment**: Vercel
- **Monitoring**: Sentry + Lighthouse CI

## Development

```bash
# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview
```

## Deployment

The site is automatically deployed to Vercel on every push to main branch.

## Status Page

For real-time status updates and incident reports, visit our status page at [status.thelabelai.com](https://status.thelabelai.com).
49 changes: 0 additions & 49 deletions dist/assets/index-CcNXzs2C.js

This file was deleted.

1 change: 0 additions & 1 deletion dist/assets/index-DIqIyApv.css

This file was deleted.

Binary file removed dist/favicon.ico
Binary file not shown.
87 changes: 0 additions & 87 deletions dist/index.html

This file was deleted.

Loading