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.
| 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 | - |
cp -r _template/ newsite.com/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) |
- Uncomment the form section in
index.html - Uncomment the form.js script tag
- Set
data-sourceto your site identifier
# Using Python
python3 -m http.server 8000 -d newsite.com/
# Using PHP
php -S localhost:8000 -t newsite.com/
# Then open http://localhost:8000See Deployment Process below.
Add your new site to the inventory table above.
- Go to Cloudflare Dashboard > Pages
- Create new project > Connect to Git
- Select the landing-pages repository
- Build settings:
- Build command: (leave empty)
- Build output directory:
sitename.com(the folder name)
- Deploy
- In CF Pages project > Custom domains
- Add domain:
newsite.com - Add www redirect:
www.newsite.com - If domain is in same CF account, DNS is auto-configured
- Wait for SSL certificate provisioning (~5 min)
Add CNAME record pointing to: your-project.pages.dev
Every landing page MUST include:
<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">Required schemas:
WebPage- The page itselfWebSite- The siteOrganization- Analyzify and Risify
Optional schemas (add as relevant):
TechArticle- For methodology/documentation sitesProduct- For product landing pagesSoftwareApplication- For tool landing pages
Validation: Test with Google Rich Results Test
- Static HTML form
- Minimal JavaScript (
form.js) - POST to existing GraphQL API
- No backend changes needed
https://api.risify.net/app/query
mutation JoinWaitlist($input: WaitlistSignupInput!) {
joinWaitlist(input: $input) {
success
message
}
}Input fields:
email(required) - User's emailsource(required) - Site identifier, e.g.,AIDISCOVERYSCOREstoreDomain(optional) - User's store URLpartnerType(optional) -BRAND,AGENCY,DEVELOPER,OTHER
<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>| 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">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
- Max width:
72rem(1152px) - Padding:
1.5remmobile,3remdesktop - Responsive breakpoint:
768px
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.
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
- Check browser console for errors
- Verify
id="landing-form"is set - Verify
data-sourceattribute is set - Check network tab for API response
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).
Ensure the Google Fonts <link> tag is in <head> before any <style> tags.
- Check build logs in CF dashboard
- Clear CF cache: Dashboard > Caching > Purge Cache
- Wait 1-2 minutes for edge propagation
| 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 |
- risify-tools-backend - GraphQL API
- risify-tools-fe - React frontend (risify.net)