A full-stack theme generator that creates beautiful, customizable themes for shadcn/ui components. Built with a backend-first approach to showcase strong system design and API development skills.
- π¨ Advanced Theme Editor - Complete color, typography, and spacing customization
- π Real-time Preview - Live preview with shadcn/ui components
- π€ Multiple Export Formats - Tailwind config, CSS variables, and JSON tokens
- π Theme Presets - Quick-start themes for common use cases
- π³ Docker Support - Easy deployment with Docker Compose
- π§ͺ Comprehensive Testing - Full test coverage for backend API
- π± Responsive Design - Works perfectly on desktop and mobile
# Clone the repository
git clone <repository-url>
cd tintly
# Start both services with one command
./start.sh
# Or use Docker Compose directly
docker-compose up --build -dAccess the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
# Install dependencies for both services
npm run install:all
# Start both services in development
npm run dev
# Or start individually
npm run dev:backend # Backend on port 3001
npm run dev:frontend # Frontend on port 3000- Express.js API with comprehensive REST endpoints
- SQLite database for persistent theme storage
- Export service generating multiple file formats
- Joi validation for robust data validation
- Comprehensive testing with Jest and Supertest
- Next.js 15 with App Router
- shadcn/ui components for consistent design
- Real-time preview with live theme updates
- Advanced color picker with HSL/HSV support
- Typography editor with font selection
- Spacing controls for precise customization
tintly/
βββ π¦ package.json # Root package with scripts
βββ π³ docker-compose.yml # Docker orchestration
βββ π start.sh # Startup script
βββ π README-Docker.md # Docker documentation
βββ π₯οΈ server/ # Backend API
β βββ π src/
β β βββ ποΈ models/ # Database models
β β βββ π£οΈ routes/ # API routes
β β βββ βοΈ services/ # Business logic
β β βββ π₯οΈ server.js # Express server
β βββ π§ͺ tests/ # Unit tests
β βββ ποΈ data/ # SQLite database
β βββ π³ Dockerfile # Backend container
βββ π¨ tintly-client/ # Frontend UI
βββ π src/
β βββ π± app/ # Next.js app
β βββ π§© components/ # React components
β βββ π§ lib/ # Utilities
βββ π³ Dockerfile # Frontend container
βββ π¦ package.json # Frontend dependencies
- Color Customization - Primary, secondary, accent, and semantic colors
- Advanced Color Picker - HSL/HSV sliders with hex input
- Typography Control - Font family, size, and weight selection
- Spacing & Radius - Precise control over padding and border radius
- Live Preview - Real-time updates as you edit
- Tailwind Config - Ready-to-use
tailwind.config.js - CSS Variables - HSL-based CSS custom properties
- JSON Tokens - Design tokens for other tools
- Multiple Formats - Download in your preferred format
- Default - Clean shadcn/ui theme
- Dark Mode - High contrast dark theme
- Ocean Blue - Calming blue color scheme
- Forest Green - Natural green palette
- Royal Purple - Elegant purple theme
- Sunset Orange - Warm orange scheme
GET /api/themes # List all themes
POST /api/themes # Create new theme
GET /api/themes/:id # Get specific theme
PUT /api/themes/:id # Update theme
DELETE /api/themes/:id # Delete theme
GET /api/themes/default/template # Get default templatePOST /api/export # Export theme (format: tailwind|css|json)
POST /api/export/tailwind # Export Tailwind config
POST /api/export/css # Export CSS variables
POST /api/export/json # Export JSON tokensGET /health # Service health status# Run all backend tests
npm run test
# Run specific test file
cd server && bun run test themes.test.js
# Run tests in watch mode
cd server && bun run test:watch# Start with Docker Compose
docker-compose up --build
# View logs
docker-compose logs -f
# Stop services
docker-compose down# Build and start in production mode
docker-compose up --build -d
# Check service health
curl http://localhost:3001/health
curl http://localhost:3000- Backend:
http://localhost:3001/health - Frontend:
http://localhost:3000
# All services
docker-compose logs -f
# Specific service
docker-compose logs -f backend
docker-compose logs -f frontend- Node.js 18+
- Bun (recommended) or npm
- Docker (for containerized development)
npm run dev # Start both services
npm run dev:backend # Backend only
npm run dev:frontend # Frontend only
npm run build # Build both services
npm run test # Run backend tests
npm run docker:up # Start with Docker
npm run docker:down # Stop Docker services
npm run clean # Clean Docker resources- Open the theme editor
- Customize colors using the advanced color picker
- Adjust typography with font selection
- Fine-tune spacing and border radius
- Preview your changes in real-time
- Save your theme
- Export in your preferred format
- Tailwind: Download
tailwind.config.jsfor your project - CSS: Get CSS variables for custom styling
- JSON: Use design tokens in other tools
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests if applicable
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui for the beautiful component library
- Tailwind CSS for the utility-first CSS framework
- Next.js for the React framework
- Express.js for the Node.js web framework
Built with β€οΈ to showcase backend-first development and system design skills