API Canvas is a modern, responsive web application that catalogs and showcases public APIs. It provides an intuitive interface for exploring, searching, and filtering APIs by various criteria.
- Browse a comprehensive catalog of public APIs
- Search APIs by name or description
- Filter APIs by category, authentication requirements, HTTPS support, and CORS compatibility
- Detailed API information with usage examples
- Responsive design - works on desktop, tablet, and mobile devices
- Dark/light mode support
- Frontend Framework: Next.js 14 (App Router)
- UI Library: React
- Styling: TailwindCSS
- UI Components: shadcn/ui
- API Data Handling: GraphQL with Apollo Client
- Icons: Lucide React
- Authentication: Firebase Authentication
- Data Source: Public APIs collection
- Node.js 18.0.0 or higher
- npm or yarn package manager
- Git
- Clone the repository
git clone https://github.com/Aswath-Senthilkumar/api-canvas.git
cd api-canvas- Install dependencies
npm install
# or
yarn install- Setup environment variables (optional for firebase)
Create a .env.local file in the root directory with the following variables:
NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id
- Run the development server
npm run dev
# or
yarn dev- Open your browser
Navigate to http://localhost:3000 to see the application.
npm run build
# or
yarn buildThen start the production server:
npm run start
# or
yarn start/app- Main application pages and routes (Next.js App Router)/components- Reusable UI components/components/ui- shadcn/ui components/lib- Utility functions and configuration/data- API data files/public- Static assets
The application uses a curated collection of public APIs stored in data/full-public-apis.json. The data is served via a GraphQL API (implemented in /app/api/graphql/route.ts).
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some 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.