Quick Start
Get your directory website up and running in under 10 minutes! This guide assumes you've already completed the installation.
Step 1: Basic Configuration
Configure Site Settings
Edit apps/web/.content/works.yml (this file will be created after first sync):
# Basic site settings
company_name: 'Your Company'
item_name: 'Tool'
items_name: 'Tools'
copyright_year: 2024
# Enable features
content_table: true
auth:
credentials: true
google: true
github: true
# Payment settings
payment:
provider: 'stripe'
pricing:
free: 0
pro: 10
sponsor: 20
Set Up Data Repository
-
Fork the data repository:
- Visit awesome-data
- Click "Fork" to create your copy
-
Update environment variables:
# In apps/web/.env.local
DATA_REPOSITORY="https://github.com/YOUR_USERNAME/awesome-data"
GH_TOKEN="your_github_token" -
Generate GitHub token:
- Go to GitHub Settings → Developer settings → Personal access tokens
- Create a token with
repopermissions - Add it to your
apps/web/.env.local
Step 2: Start the Application
From the monorepo root:
pnpm run dev
Or to run only the web app:
pnpm run dev:web
Visit http://localhost:3000 to see your site!
Step 3: Add Your First Item
Method 1: Direct File Edit
- Navigate to your forked data repository
- Create a new file in
items/folder:my-awesome-tool.yml - Add content:
id: 'my-awesome-tool'
name: 'My Awesome Tool'
slug: 'my-awesome-tool'
description: 'An amazing tool that does incredible things'
source_url: 'https://example.com'
category: 'productivity'
tags:
- 'productivity'
- 'tools'
featured: false
status: 'approved'
updated_at: '2024-01-15 10:30'
Method 2: Submission Form
- Visit your site at
http://localhost:3000/submit - Fill out the submission form
- The item will be created as a pull request in your data repository
Step 4: Customize Your Site
Update Branding
- Logo: Replace files in
apps/web/public/folder - Colors: Edit theme in
apps/web/.content/works.yml:
theme:
default: 'everworks'
custom_colors:
primary: '#3d70ef'
secondary: '#00c853'
- Metadata: Update
apps/web/app/layout.tsxfor SEO
Configure Categories
Create categories/productivity.yml in your data repository:
id: 'productivity'
name: 'Productivity'
slug: 'productivity'
description: 'Tools to boost your productivity'
icon_url: 'https://example.com/icon.png'
Step 5: Set Up Authentication (Optional)
Google OAuth
- Go to Google Cloud Console
- Create a new project or select existing
- Enable Google+ API
- Create OAuth 2.0 credentials
- Add to
apps/web/.env.local:
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
GitHub OAuth
- Go to GitHub Settings → Developer settings → OAuth Apps
- Create a new OAuth App
- Set Authorization callback URL:
http://localhost:3000/api/auth/callback/github - Add to
apps/web/.env.local:
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"
Step 6: Test Everything
Verify Content Loading
- Check that your items appear on the homepage
- Test category filtering
- Verify search functionality
Test Authentication
- Try signing in with configured providers
- Check user profile creation
- Test admin access (if configured)
Test Submission Flow
- Submit a new item via the form
- Check that it creates a pull request
- Verify email notifications (if configured)
Step 7: Deploy (Optional)
For a quick deployment to Vercel:
-
Connect to Vercel:
npm install -g vercel
vercelWhen prompted, set the root directory to
apps/web. -
Set environment variables in Vercel dashboard
-
Update URLs in your OAuth app settings
Common Customizations
Change Item Types
Instead of "tools", you might want "services" or "products":
# In apps/web/.content/works.yml
item_name: 'Service'
items_name: 'Services'
Add Custom Fields
Extend item schema in your YAML files:
# In items/example.yml
price: '$9.99'
rating: 4.5
author: 'John Doe'
Modify Layouts
The template supports multiple layout types:
- Grid (default)
- Masonry
- Cards
- Classic list
Users can switch between them using the layout toggle.
Next Steps
Now that you have a working site: