Skip to content

analyzify/landing-pages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Landing Pages Monorepo

Central repository for all Risify/Analyzify landing pages. Static HTML sites with minimal JavaScript for optimal SEO and performance.

New site in ~30 minutes: Copy template → Replace placeholders → Deploy to Cloudflare Pages → Done.

Landing Pages Inventory

Domain Folder CF Pages Project Status Has Form Theme
aicommerceindex.com aicommerceindex.com/ aicommerceindex Live No Light
aidiscoveryscore.com aidiscoveryscore.com/ aidiscoveryscore Live Yes Dark
risify.net (risify-tools-fe) risify-tools-fe Live React -
risify.app (Shopify) - Live Shopify -

Quick Start: Creating a New Landing Page

Step 1: Copy Template

cp -r _template/ newsite.com/

Step 2: Find & Replace Placeholders

Open index.html and replace all {{PLACEHOLDER}} values:

Placeholder Example Value
{{DOMAIN}} newsite.com
{{SITE_NAME}} New Site
{{ABBR}} NS
{{TAGLINE}} Your Tagline Here
{{DESCRIPTION}} Meta description for SEO...
{{OG_TITLE}} New Site - Your Tagline
{{OG_DESCRIPTION}} Open Graph description...
{{KEYWORDS}} keyword1, keyword2, keyword3
{{ACCENT_COLOR}} #059669 or #87DD03
{{LABEL}} Coming Soon
{{HEADLINE_PART1}} First line of headline
{{HEADLINE_ACCENT}} accented part
{{SUBHEADLINE}} Supporting text paragraph...
{{CTA1_TEXT}} Primary Action
{{CTA1_URL}} https://link.com
{{CTA2_TEXT}} Secondary Action
{{CTA2_URL}} https://link.com
{{GITHUB_REPO}} analyzify/repo-name
{{SOURCE_NAME}} NEWSITE (for form tracking)

Step 3: Enable Form (if needed)

  1. Uncomment the form section in index.html
  2. Uncomment the form.js script tag
  3. Set data-source to your site identifier

Step 4: Test Locally

# Using Python
python3 -m http.server 8000 -d newsite.com/

# Using PHP
php -S localhost:8000 -t newsite.com/

# Then open http://localhost:8000

Step 5: Deploy to Cloudflare Pages

See Deployment Process below.

Step 6: Update This README

Add your new site to the inventory table above.


Deployment Process

Cloudflare Pages Setup

  1. Go to Cloudflare Dashboard > Pages
  2. Create new project > Connect to Git
  3. Select the landing-pages repository
  4. Build settings:
    • Build command: (leave empty)
    • Build output directory: sitename.com (the folder name)
  5. Deploy

Custom Domain Configuration

  1. In CF Pages project > Custom domains
  2. Add domain: newsite.com
  3. Add www redirect: www.newsite.com
  4. If domain is in same CF account, DNS is auto-configured
  5. Wait for SSL certificate provisioning (~5 min)

DNS (if domain is external)

Add CNAME record pointing to: your-project.pages.dev


SEO Requirements

Every landing page MUST include:

Meta Tags (in <head>)

<title>Site Name - Tagline</title>
<meta name="description" content="150-160 char description">
<link rel="canonical" href="https://domain.com">
<meta property="og:type" content="website">
<meta property="og:title" content="Title">
<meta property="og:description" content="Description">
<meta property="og:url" content="https://domain.com">
<meta property="og:site_name" content="Site Name">
<meta name="twitter:card" content="summary_large_image">
<meta name="robots" content="index, follow">

JSON-LD Structured Data

Required schemas:

  • WebPage - The page itself
  • WebSite - The site
  • Organization - Analyzify and Risify

Optional schemas (add as relevant):

  • TechArticle - For methodology/documentation sites
  • Product - For product landing pages
  • SoftwareApplication - For tool landing pages

Validation: Test with Google Rich Results Test


Form Handling Pattern

Architecture

  • Static HTML form
  • Minimal JavaScript (form.js)
  • POST to existing GraphQL API
  • No backend changes needed

API Endpoint

https://api.risify.net/app/query

Supported Mutation: JoinWaitlist

mutation JoinWaitlist($input: WaitlistSignupInput!) {
  joinWaitlist(input: $input) {
    success
    message
  }
}

Input fields:

  • email (required) - User's email
  • source (required) - Site identifier, e.g., AIDISCOVERYSCORE
  • storeDomain (optional) - User's store URL
  • partnerType (optional) - BRAND, AGENCY, DEVELOPER, OTHER

Form HTML Example

<form id="landing-form" data-mutation="JoinWaitlist" data-source="MYSITENAME">
  <div class="form-group">
    <label for="email">Email</label>
    <input type="email" id="email" name="email" required>
  </div>
  <button type="submit" class="btn btn-primary">Join Waitlist</button>
  <p class="form-success" style="display:none"></p>
  <p class="form-error" style="display:none"></p>
</form>
<script src="form.js"></script>

Design System

Typography

Usage Font Weight
Headlines, body Newsreader 400, 500
Labels, code, mono JetBrains Mono 400, 500

Load via Google Fonts:

<link href="https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">

Colors (CSS Variables)

Light theme (default):

:root {
  --bg: #fafafa;
  --fg: #171717;
  --muted: #525252;
  --border: #e5e5e5;
  --accent: #059669;
}

Dark theme (see aidiscoveryscore.com):

:root {
  --bg: #0D214F;
  --bg-deep: #091838;
  --fg: #ffffff;
  --muted: rgba(255, 255, 255, 0.6);
  --border: rgba(255, 255, 255, 0.1);
  --accent: #87DD03;
}

Common accent colors:

  • Green (default): #059669
  • Bright green (AI tools): #87DD03
  • Blue: #2563eb

Layout

  • Max width: 72rem (1152px)
  • Padding: 1.5rem mobile, 3rem desktop
  • Responsive breakpoint: 768px

File Structure Convention

domain.com/
├── index.html      # Main page (required)
├── form.js         # Form handler (if forms needed)
├── styles.css      # Custom styles (optional, prefer inline)
└── assets/         # Images, etc. (optional)
    └── og-image.png

Prefer inline CSS in <style> tag for single-page sites. Only extract to external CSS if the file exceeds ~500 lines.


Checklist for New Sites

Before going live:

  • All {{PLACEHOLDER}} values replaced
  • HTML validates (no errors in browser console)
  • Mobile responsive (test on phone)
  • JSON-LD present and valid (Google Rich Results Test)
  • All links work (no 404s)
  • Form submits successfully (if applicable)
  • Custom domain configured in CF Pages
  • SSL working (https://)
  • Site added to README inventory table

Troubleshooting

Form not submitting

  1. Check browser console for errors
  2. Verify id="landing-form" is set
  3. Verify data-source attribute is set
  4. Check network tab for API response

CORS errors

The API should allow requests from any origin. If you see CORS errors, check that you're using https://api.risify.net/app/query (not http).

Fonts not loading

Ensure the Google Fonts <link> tag is in <head> before any <style> tags.

CF Pages not updating

  1. Check build logs in CF dashboard
  2. Clear CF cache: Dashboard > Caching > Purge Cache
  3. Wait 1-2 minutes for edge propagation

Reference Files

File Purpose
_template/index.html HTML boilerplate with placeholders (light theme)
_template/form.js Form handler script
aicommerceindex.com/index.html Live example - light theme, no forms
aidiscoveryscore.com/index.html Live example - dark theme, with waitlist form

Related

About

Static landing pages monorepo for Risify/Analyzify products

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •