Skip to content

Commit 5c0ff36

Browse files
committed
Initial project setup
- Initialize Bun + Astro with React integration - Configure Tailwind CSS v4 with shadcn/ui - Set up Biome for linting and formatting - Add lint:fix and typecheck scripts
0 parents  commit 5c0ff36

File tree

16 files changed

+1574
-0
lines changed

16 files changed

+1574
-0
lines changed

.gitignore

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# build output
2+
dist/
3+
# generated types
4+
.astro/
5+
6+
# dependencies
7+
node_modules/
8+
9+
# logs
10+
npm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
pnpm-debug.log*
14+
15+
16+
# environment variables
17+
.env
18+
.env.production
19+
20+
# macOS-specific files
21+
.DS_Store
22+
23+
# jetbrains setting folder
24+
.idea/
25+
26+
# docs (local strategy/planning docs)
27+
docs/

.vscode/extensions.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"recommendations": ["astro-build.astro-vscode"],
3+
"unwantedRecommendations": []
4+
}

.vscode/launch.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"command": "./node_modules/.bin/astro dev",
6+
"name": "Development server",
7+
"request": "launch",
8+
"type": "node-terminal"
9+
}
10+
]
11+
}

CLAUDE.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Spotify Pomodoro
2+
3+
A Spotify-integrated pomodoro timer app.
4+
5+
## Tech Stack
6+
7+
- **Runtime**: Bun
8+
- **Framework**: Astro with React
9+
- **Styling**: Tailwind CSS v4 + shadcn/ui
10+
- **Linting/Formatting**: Biome
11+
12+
## Commands
13+
14+
- `bun run dev` - Start development server
15+
- `bun run build` - Build for production
16+
- `bun run preview` - Preview production build
17+
- `bun run lint` - Check linting
18+
- `bun run lint:fix` - Fix linting issues
19+
- `bun run typecheck` - Run type checking
20+
21+
## Project Structure
22+
23+
- `src/pages/` - Astro pages
24+
- `src/components/ui/` - shadcn/ui components
25+
- `src/styles/` - Global CSS with Tailwind
26+
- `src/lib/` - Utility functions
27+
28+
## Notes
29+
30+
- Use `@/` path alias for imports from `src/`
31+
- React components need `client:load` directive in Astro for interactivity
32+
- Biome is configured to skip Tailwind CSS files (global.css)

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Spotify Pomodoro
2+
3+
A pomodoro timer app that integrates with your Spotify account to play music during focus sessions.
4+
5+
## Getting Started
6+
7+
```bash
8+
bun install
9+
bun run dev
10+
```
11+
12+
## Commands
13+
14+
| Command | Action |
15+
| :------------------ | :------------------------------------------ |
16+
| `bun install` | Install dependencies |
17+
| `bun run dev` | Start local dev server at `localhost:4321` |
18+
| `bun run build` | Build production site to `./dist/` |
19+
| `bun run preview` | Preview production build locally |
20+
| `bun run lint` | Check for linting issues |
21+
| `bun run lint:fix` | Fix linting issues |
22+
| `bun run typecheck` | Run TypeScript type checking |
23+
24+
## Tech Stack
25+
26+
- [Astro](https://astro.build) - Web framework
27+
- [React](https://react.dev) - UI components
28+
- [Tailwind CSS](https://tailwindcss.com) - Styling
29+
- [shadcn/ui](https://ui.shadcn.com) - Component library
30+
- [Biome](https://biomejs.dev) - Linting and formatting

astro.config.mjs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// @ts-check
2+
3+
import react from "@astrojs/react";
4+
5+
import tailwindcss from "@tailwindcss/vite";
6+
import { defineConfig } from "astro/config";
7+
8+
// https://astro.build/config
9+
export default defineConfig({
10+
vite: {
11+
plugins: [tailwindcss()],
12+
},
13+
14+
integrations: [react()],
15+
});

biome.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"$schema": "https://biomejs.dev/schemas/2.3.8/schema.json",
3+
"vcs": {
4+
"enabled": true,
5+
"clientKind": "git",
6+
"useIgnoreFile": true
7+
},
8+
"files": {
9+
"ignoreUnknown": false,
10+
"includes": ["**", "!src/styles/global.css"]
11+
},
12+
"formatter": {
13+
"enabled": true,
14+
"indentStyle": "tab"
15+
},
16+
"linter": {
17+
"enabled": true,
18+
"rules": {
19+
"recommended": true,
20+
"correctness": {
21+
"noUnusedImports": "off"
22+
}
23+
}
24+
},
25+
"javascript": {
26+
"formatter": {
27+
"quoteStyle": "double"
28+
}
29+
},
30+
"assist": {
31+
"enabled": true,
32+
"actions": {
33+
"source": {
34+
"organizeImports": "on"
35+
}
36+
}
37+
}
38+
}

bun.lock

Lines changed: 1132 additions & 0 deletions
Large diffs are not rendered by default.

components.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"$schema": "https://ui.shadcn.com/schema.json",
3+
"style": "new-york",
4+
"rsc": false,
5+
"tsx": true,
6+
"tailwind": {
7+
"config": "",
8+
"css": "src/styles/global.css",
9+
"baseColor": "neutral",
10+
"cssVariables": true,
11+
"prefix": ""
12+
},
13+
"iconLibrary": "lucide",
14+
"aliases": {
15+
"components": "@/components",
16+
"utils": "@/lib/utils",
17+
"ui": "@/components/ui",
18+
"lib": "@/lib",
19+
"hooks": "@/hooks"
20+
},
21+
"registries": {}
22+
}

package.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"name": "spotify-pomodoro",
3+
"type": "module",
4+
"version": "0.0.1",
5+
"scripts": {
6+
"dev": "astro dev",
7+
"build": "astro build",
8+
"preview": "astro preview",
9+
"astro": "astro",
10+
"lint": "biome check .",
11+
"lint:fix": "biome check --write .",
12+
"typecheck": "astro check"
13+
},
14+
"dependencies": {
15+
"@astrojs/react": "^4.4.2",
16+
"@radix-ui/react-slot": "^1.2.4",
17+
"@tailwindcss/vite": "^4.1.17",
18+
"@types/react": "^19.2.7",
19+
"@types/react-dom": "^19.2.3",
20+
"astro": "^5.16.4",
21+
"class-variance-authority": "^0.7.1",
22+
"clsx": "^2.1.1",
23+
"lucide-react": "^0.556.0",
24+
"react": "^19.2.1",
25+
"react-dom": "^19.2.1",
26+
"tailwind-merge": "^3.4.0",
27+
"tailwindcss": "^4.1.17"
28+
},
29+
"devDependencies": {
30+
"@astrojs/check": "^0.9.6",
31+
"@biomejs/biome": "^2.3.8",
32+
"tw-animate-css": "^1.4.0",
33+
"typescript": "^5.9.3"
34+
}
35+
}

0 commit comments

Comments
 (0)