Modern, elite sports academy website built with Next.js 15, Tailwind CSS, and Notion CMS.
- Node.js 18+
- Notion Account (for CMS)
-
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open http://localhost:3000 with your browser.
This website uses Notion as a Headless CMS for the News/Events section.
We have a script to automatically create the database for you.
- Run the setup script:
node scripts/setup-database.mjs YOUR_NOTION_KEY PARENT_PAGE_ID
- Update Environment Variables:
Copy the
NOTION_DATABASE_IDoutput by the script into your.env.localfile.
- Go to https://www.notion.so/my-integrations
- Create a new integration "Elis Academy".
- Copy the Internal Integration Secret (API Key).
Create a database in Notion with the following properties:
- Title (Title): name of the article.
- Slug (Text): URL-friendly string (e.g.,
championship-win). - Date (Date): Publication date.
- Published (Checkbox): Check to show on site.
- Description (Text): Short summary.
- Cover (Page Cover): Used as header/preview image.
- Open the database page.
- Click
...>Connections>Connect to> Select "Elis Academy".
Create a .env.local file in the root directory:
NOTION_API_KEY=secret_your_integration_key_here
NOTION_DATABASE_ID=your_database_id_hereTo find Database ID if setting up manually: Open database in browser. URL format: notion.so/username/DATABASE_ID?v=...
Note: If keys are missing, the site will use mock data for demonstration purposes.
- Open your "News & Events" database in Notion.
- Click New.
- Fill in the Title, Slug, Date, Description.
- Check Published.
- Add a Cover image.
- Write the article content in the page body (Markdown supported).
- The website will update automatically (within 60 seconds).
- Push code to GitHub.
- Import project in Vercel.
- Add the
NOTION_API_KEYandNOTION_DATABASE_IDin Vercel Project Settings > Environment Variables. - Deploy.
- Framework: Next.js 15 (App Router)
- Styling: Tailwind CSS 4
- CMS: Notion API
- Icons: Lucide React
- Fonts: Inter, Playfair Display