A curated collection of app UI screenshots to inspire designers and developers. Pixel Scout helps you level up your designs with handpicked UI references from top iOS and Android applications.
- Curated UI Screenshots: Handpicked collection of beautiful UI designs
- Platform Filtering: Browse designs specifically for iOS or Android
- Modern Interface: Clean, responsive UI built with Next.js and Tailwind CSS
- Open Source: Freely available to use, modify, and contribute
- Frontend: Next.js 15, React 19
- Styling: Tailwind CSS 4
- Animations: Lenis for smooth scrolling
- UI Components: Built with Radix UI primitives and Shadcn UI
- API Routes: Next.js API routes
- Authentication: Auth.js (NextAuth)
- Database: PostgreSQL
- ORM: Drizzle ORM
- Testing: Jest and React Testing Library
- Node.js 18.0 or later
- pnpm (required)
- Clone the repository
git clone https://github.com/opendesigners/pixel-scout.git
cd pixel-scout
- Install dependencies
pnpm install
- Start the development server
pnpm dev
- Open http://localhost:3000 with your browser to see the result.
Before you can use Docker Compose, you need to have Docker installed on your system:
-
Install Docker Desktop:
- Download Docker Desktop
- Follow the installation instructions for your operating system:
-
Verify Installation: After installation, open a terminal and run:
docker --version docker compose version
The project uses Docker Compose to run the PostgreSQL database. This ensures a consistent development environment across different machines.
- Make sure you're in the project root directory (
pixel-scout/
), then start the PostgreSQL database:
docker compose up -d
This will start a PostgreSQL 17 container with the following configuration:
- Port: 5432
- Username: user
- Password: password
- Database name: db
The database data is persisted in a Docker volume named pixelscoutdb
.
To stop the database (from the project root directory):
docker compose down
pixel-scout/
├── public/ # Static assets like images and icons
├── src/
│ ├── app/ # Next.js app directory containing routes
│ ├── components/ # Reusable React components
│ ├── lib/ # Utility functions and shared code
│ ├── db/ # Database schema
│ └── __tests__/ # Test files for components and functionality
├── .env # Environment variables (create from .env.example)
└── ... # Config files
The project uses Jest and React Testing Library for testing UI components and functionality.
# Run all tests
pnpm test
# Run tests in watch mode (useful during development)
pnpm test:watch
Tests are located in the src/__tests__/
directory and follow the naming convention of ComponentName.test.tsx
.
Example test structure:
import { render, screen } from "@testing-library/react";
import Component from "@/components/Component";
describe("Component", () => {
it("renders correctly", () => {
render(<Component />);
expect(screen.getByText("Some text")).toBeInTheDocument();
});
});
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes using Conventional Commits format (
git commit -m 'feat: add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please make sure to update tests as appropriate.
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React Framework for the Web
- Tailwind CSS - A utility-first CSS framework
- Radix UI - Unstyled, accessible UI components
- Drizzle ORM - TypeScript ORM for SQL databases
- Jest - JavaScript Testing Framework
- React Testing Library - React DOM testing utilities
Made with ❤️ by Open Designers