English | 简体中文
A navigation site that displays apps from a Notion database, featuring automatic data enrichment from the Apple App Store. Built with Next.js 15.
- Notion Integration: Uses a Notion database as a CMS for easy management.
- App Store Enrichment: Automatically fetches app titles, descriptions, and logos from the Apple App Store using App IDs.
- Seamless Sync: Updates Notion database entries with the latest data fetched from the App Store.
- Modern UI: Clean, responsive design built with Tailwind CSS and Shadcn UI.
- Dark Mode: Supports both light and dark themes.
- Clone the repository:
git clone https://github.com/busyhe/m-apps.git
cd m-apps- Install dependencies:
pnpm install- Create a
.env.localfile in theapps/webdirectory:
NOTION_PAGE_ID=your_notion_page_id
NOTION_TOKEN=your_notion_integration_token
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX
NEXT_PUBLIC_SHOW_COUNT=true- NOTION_PAGE_ID: The ID of the Notion page containing your apps database.
- NOTION_TOKEN: Your Notion Internal Integration Token (required for syncing data back to Notion).
- NEXT_PUBLIC_GA_ID: Your Google Analytics Measurement ID (optional).
- NEXT_PUBLIC_SHOW_COUNT: Show app count badges (default:
true, set tofalseto hide).
Your Notion database should include the following properties for optimal performance:
- id: Apple App Store ID (e.g.,
123456789). Used to fetch data from the App Store. - title/Name: The name of the app.
- desc/Description: A short description of the app.
- link/URL: The link to the app or its App Store page.
- logo: URL to the app's logo icon.
- type/Category: Used to group apps into sections.
Note
If the id (Apple App Store ID) is provided, the system will attempt to fetch and update other fields from the App Store during runtime/build.
The easiest way to deploy your Next.js app is to use the Vercel Platform.
-
Duplicate this Notion template
-
Click the button below to deploy:
-
Configure environment variables:
- Set
NOTION_PAGE_IDto your Notion page ID - Set
NEXT_PUBLIC_GA_IDto your Google Analytics ID (optional) - Set
NOTION_TOKENto your Notion Internal Integration Token (required for syncing data back to Notion) - Set
APPSTORE_REGIONSto the regions you want to fetch data from (optional)
- Set
-
Deploy and enjoy your navigation site!
You can also manually deploy by pushing to your Vercel-connected GitHub repository.
MIT
