Democratizing academic journal rankings through transparent, community-driven metrics.
FactorSphere is an open-source platform that provides transparent, accessible journal rankings for researchers worldwide. Built with modern web technologies and clean design principles.
Live Site: https://lander.factorsphere.org
- Smart Search - Instantly find journals by name, field, or impact factor
- AI Recommendations - Get personalized journal suggestions powered by semantic search
- Comprehensive Metrics - Impact factors, SJR rankings, H-index, and citation analytics
- 100% Open Source - Transparent methodologies and open data
- 4,000+ Journals - Extensive database of indexed journals
- Framework: Next.js 15 (App Router)
- Styling: Tailwind CSS v4
- UI Components: shadcn/ui
- Animations: CSS animations with scroll-triggered effects
- Deployment: Cloudflare Pages
- A Cloudflare account
- Node.js v18 or later installed locally
- Git installed locally
```bash
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/YOUR_USERNAME/factorsphere-lander.git
git push -u origin main ```
- Log in to Cloudflare Dashboard
- Navigate to Workers & Pages in the sidebar
- Click Create application > Pages > Connect to Git
- Select your GitHub account and the
factorsphere-landerrepository - Click Begin setup
Use these settings in the Cloudflare Pages configuration:
| Setting | Value |
|---|---|
| Project name | factorsphere-lander |
| Production branch | main |
| Framework preset | Next.js (Static Export) |
| Build command | npm run build |
| Build output directory | out |
| Node.js version | 18 (or higher) |
Important: You must add the nodejs_compat flag:
- Go to your Cloudflare Pages project
- Navigate to Settings > Compatibility Flags
- Add
nodejs_compatto both Production and Preview environments
If your project uses environment variables, add them in: Settings > Environment variables
Common variables you might need: ``` NODE_VERSION=18 ```
Click Save and Deploy. Cloudflare will:
- Clone your repository
- Install dependencies
- Build the project
- Deploy to the Cloudflare edge network
Your site will be available at: https://factorsphere-lander.pages.dev
```bash npm install -g wrangler ```
```bash wrangler login ```
This will open a browser window to authenticate.
```bash npm install ```
```bash npm run build ```
```bash wrangler pages deploy out --project-name=factorsphere-lander ```
- Go to your Cloudflare Pages project
- Navigate to Custom domains
- Click Set up a custom domain
- Enter
lander.factorsphere.org(or your domain)
If your domain is on Cloudflare:
- DNS records are automatically configured
If your domain is elsewhere:
- Add a CNAME record pointing to
factorsphere-lander.pages.dev
| Type | Name | Content |
|---|---|---|
| CNAME | @ |
factorsphere-lander.pages.dev |
| CNAME | www |
factorsphere-lander.pages.dev |
Cloudflare automatically provisions SSL certificates. Ensure your SSL/TLS mode is set to Full (strict) in: SSL/TLS > Overview
```bash npm install ```
```bash npm run dev ```
Open http://localhost:3000 in your browser.
```bash npm run build ```
```bash npm run start ```
``` factorsphere-lander/ ├── app/ │ ├── globals.css # Global styles and theme │ ├── layout.tsx # Root layout with fonts │ └── page.tsx # Main landing page ├── components/ │ ├── ui/ # shadcn/ui components │ ├── header.tsx # Navigation header │ ├── hero-section.tsx # Hero with owl mascot │ ├── stats-bar.tsx # Animated statistics │ ├── problem-section.tsx │ ├── solution-section.tsx │ ├── features-section.tsx │ ├── tech-stack-section.tsx │ ├── security-section.tsx │ ├── screenshots-section.tsx │ ├── testimonials-section.tsx │ ├── cta-section.tsx │ ├── footer.tsx │ └── scroll-to-top.tsx ├── public/ │ └── images/ # Static assets └── README.md ```
If you see "no nodejs_compat compatibility flag set" error:
- Go to your Cloudflare Pages project
- Navigate to Settings > Compatibility Flags
- Add
nodejs_compatto both Production and Preview environments - Redeploy your site
Ensure your next.config.mjs has:
```js
output: 'export',
trailingSlash: true,
distDir: 'out',
```
Set the Node.js version in Cloudflare Pages:
- Go to Settings > Environment variables
- Add
NODE_VERSION=18
Clear the Cloudflare cache:
- Go to Caching > Configuration
- Click Purge Everything
Ensure images are in the public/ directory and referenced with absolute paths:
```tsx
```
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Website: https://lander.factorsphere.org
- GitHub: https://github.com/REXFEDEC
- Open Data: https://github.com/FactorSphere/data
- Support: Buy Me a Coffee
- Contact: sameer@factorsphere.org
This project is licensed under the MIT License - see the LICENSE file for details.
Made with passion by @REXFEDEC