{"id":25406245,"url":"https://github.com/9d8dev/directory","last_synced_at":"2025-04-14T22:22:50.948Z","repository":{"id":258000247,"uuid":"862015091","full_name":"9d8dev/directory","owner":"9d8dev","description":"Directory template website built with Next.js, Anthropic, Exa, Turso, Typescript, Tailwind, and shadcn/ui. Created by 9d8.","archived":false,"fork":false,"pushed_at":"2025-01-21T22:19:00.000Z","size":1771,"stargazers_count":46,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T07:44:04.551Z","etag":null,"topics":["ai","ai-sdk","bookmarks","directory","directory-template","nextjs"],"latest_commit_sha":null,"homepage":"https://directory.9d8.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/9d8dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-23T22:11:45.000Z","updated_at":"2025-04-02T10:05:43.000Z","dependencies_parsed_at":"2025-02-16T05:12:04.049Z","dependency_job_id":"8cdc2313-bdd0-4a36-a803-8805a888569d","html_url":"https://github.com/9d8dev/directory","commit_stats":null,"previous_names":["brijr/directory","9d8dev/directory"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9d8dev%2Fdirectory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9d8dev%2Fdirectory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9d8dev%2Fdirectory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9d8dev%2Fdirectory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/9d8dev","download_url":"https://codeload.github.com/9d8dev/directory/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248969482,"owners_count":21191273,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-sdk","bookmarks","directory","directory-template","nextjs"],"created_at":"2025-02-16T05:11:56.649Z","updated_at":"2025-04-14T22:22:50.922Z","avatar_url":"https://github.com/9d8dev.png","language":"TypeScript","funding_links":[],"categories":["Boilerplates \u0026 Starters","TypeScript"],"sub_categories":[],"readme":"# 9d8/directory\n\n![CleanShot 2024-12-04 at 16 52 10@2x](https://github.com/user-attachments/assets/6fcd8458-eb07-411d-b813-212b5b26b67e)\n\n\nA modern, AI-powered Next.js directory template for creating beautiful resource collections and bookmarks. Perfect for creating your own curated list of resources, bookmarks, or link directories. View the live demo at [directory.9d8.dev](https://directory.9d8.dev).\n\n## Overview\n\nBuilt with modern web technologies and designed with a focus on user experience, this template provides everything you need to create a professional resource directory:\n\n- **Resource Management**: Organize and share bookmarks with rich metadata\n- **AI Integration**: Automatic content generation and smart categorization\n- **Newsletter**: Built-in email subscription with Loops integration\n- **Beautiful UI**: Responsive design with dark/light mode support\n- **Admin Dashboard**: Powerful tools for content management\n\n## Tech Stack\n\n- **Framework**: Next.js 14+ with App Router and Server Actions\n- **Database**: Turso (SQLite) with Drizzle ORM\n- **Styling**: Tailwind CSS + shadcn/ui components\n- **AI**: Anthropic Claude for content generation\n- **Search**: Exa for semantic search capabilities\n- **Analytics**: Built-in Vercel Analytics\n\n## Features\n\n### For Users\n\n- **Smart Search**: Search across titles, descriptions, and categories\n- **Category Filtering**: Browse resources by custom categories\n- **Responsive Design**: Works beautifully on all devices\n- **Theme Support**: Automatic dark/light mode\n- **Newsletter**: Subscribe for weekly resource updates\n\n### For Admins\n\n- **Secure Admin Panel**: Password-protected admin interface\n- **Rich Content Editor**: Full-featured bookmark management\n- **AI Assistance**: Automatic metadata extraction and content generation\n- **Dashboard**: View statistics and manage content\n- **Category Management**: Create and organize categories\n\n## Quick Start\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/9d8dev/directory.git\ncd directory\n```\n\n2. Install dependencies:\n\n```bash\npnpm install\n```\n\n3. Set up your environment variables:\n\n```bash\ncp .env.example .env\n```\n\n### Database Configuration\n\n- `TURSO_DATABASE_URL`: Your Turso SQLite database URL\n- `TURSO_AUTH_TOKEN`: Authentication token for Turso database access\n\n### Authentication\n\n- `ADMIN_PASSWORD`: Password for accessing the `/admin` routes\n  - Must be at least 8 characters\n  - Used for admin dashboard authentication\n\n### AI Features\n\n- `ANTHROPIC_API_KEY`: Anthropic API key for AI features\n  - Required for content generation\n  - Get one at [Anthropic Console](https://console.anthropic.com)\n- `EXASEARCH_API_KEY`: Exa API key for enhanced search capabilities\n  - Powers the semantic search feature\n  - Get one at [Exa](https://exa.ai)\n\n### Email Features\n\n- `LOOPS_API_KEY`: API key for email subscription functionality\n  - Required for newsletter features\n  - Get one at [Loops](https://loops.so)\n\n### Site Configuration\n\n- `NEXT_PUBLIC_SITE_URL`: Your site's public URL\n  - Format: `https://yourdomain.com`\n  - Used for generating OpenGraph images and links\n\n4. Initialize the database:\n\n```bash\npnpm db:generate   # Generate migrations\npnpm db:migrate    # Run migrations\npnpm db:seed      # Seed initial data (optional)\n```\n\n5. Start the development server:\n\n```bash\npnpm dev\n```\n\n## Admin Dashboard\n\nThe admin dashboard at `/admin` provides a powerful interface for managing your directory:\n\n### Managing Bookmarks\n\n1. **Add Single Bookmark**\n\n   - Enter URL for automatic metadata extraction\n   - AI-powered description and overview generation\n   - Customize metadata and categorization\n   - Set favorite/archived status\n\n2. **Bulk Import**\n\n   - Paste multiple URLs for batch processing\n   - Automatic metadata extraction for all entries\n   - Review and edit before final import\n\n3. **Edit Bookmarks**\n   - Update metadata and categories\n   - Regenerate AI content\n   - Manage bookmark status\n   - View analytics and engagement\n\n### Managing Categories\n\n- Create custom categories with colors and icons\n- Organize bookmarks into categories\n- Edit category metadata\n- View category statistics\n\n### API Integration\n\nThe admin interface uses Next.js Server Actions for:\n\n- Real-time updates\n- Optimistic UI\n- Error handling\n- Progress tracking\n\n## Customization\n\nEdit `directory.config.ts` to customize your site:\n\n```typescript\nexport const directory = {\n  baseUrl: \"https://your-domain.com\",\n  name: \"Your Directory Name\",\n  title: \"Your Site Title\",\n  description: \"Your site description\",\n};\n```\n\n## Deployment\n\nDeploy to Vercel with one click:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/9d8dev/directory)\n\nThe project is optimized for Vercel deployment with:\n\n- Edge runtime support\n- Automatic SQLite database setup\n- Built-in analytics\n- Zero-config deployment\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. Some areas we'd love help with:\n\n- Additional bookmark import sources\n- Enhanced AI features\n- New UI components\n- Documentation improvements\n\n## License\n\nMIT License - feel free to use this template for your own projects!\n\n## Support\n\nFor support:\n\n- Open an issue in the [GitHub repository](https://github.com/9d8dev/directory)\n- Check out the [documentation](https://directory.9d8.dev/docs)\n- Join our [Discord community](https://discord.gg/your-server)\n\n## Created by\n\nBuilt at [9d8](https://9d8.dev) by [Bridger](https://bridger.to) and [Cameron](https://cameron.so).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F9d8dev%2Fdirectory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F9d8dev%2Fdirectory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F9d8dev%2Fdirectory/lists"}