Add minimal, production-ready static HTML identity page as reference implementation for IndieAuth authentication. Includes: - Complete identity-page.html with h-card and IndieAuth endpoints - Architectural documentation and rationale - ADR-010: Static Identity Page decision record - Customization guide for users The example is zero-dependency, copy-paste ready, and guaranteed to work with IndieLogin.com and StarPunk. Pre-configured for thesatelliteoflove.com as working example. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
7.3 KiB
IndieAuth Identity Page Customization Guide
Quick Start
The identity page template (identity-page.html) is a complete, working IndieAuth identity page. To use it:
- Download
identity-page.html - Edit the marked sections with your information
- Upload to your domain root as
index.html - Test at https://indielogin.com/
What to Customize
Required Changes
These MUST be changed for the page to work correctly:
1. Your Name
<!-- Change this -->
<title>Phil Skents</title>
<h1 class="p-name">Phil Skents</h1>
<!-- To this -->
<title>Your Name</title>
<h1 class="p-name">Your Name</h1>
2. Your Domain
<!-- Change this -->
<a class="u-url" href="https://thesatelliteoflove.com" rel="me">
https://thesatelliteoflove.com
</a>
<!-- To this (must match where you host this file) -->
<a class="u-url" href="https://yourdomain.com" rel="me">
https://yourdomain.com
</a>
Optional Customizations
Add Your Photo
<!-- Uncomment and modify this line -->
<img class="u-photo" src="/avatar.jpg" alt="Your Name">
Photo tips:
- Use a square image (1:1 ratio)
- 240x240 pixels minimum recommended
- JPEG or PNG format
- Under 100KB for fast loading
Add Your Bio
<p class="p-note">
Your bio here. Keep it brief - 1-2 sentences.
</p>
Add Social Media Links
Uncomment and modify the social links section:
<li>
<a href="https://github.com/yourusername" rel="me">
GitHub: @yourusername
</a>
</li>
Important: Only add profiles you control. Some services that support rel="me":
- GitHub (automatic)
- Mastodon (automatic)
- Personal websites
- Some IndieWeb services
Add Micropub Endpoint
If you have a Micropub server (like StarPunk):
<link rel="micropub" href="https://yourmicropub.example.com/micropub">
Advanced Customizations
Custom Styling
The template includes minimal inline CSS. To customize:
-
Colors: Change the color values in the
<style>sectioncolor: #333; /* Text color */ background: #fff; /* Background color */ color: #0066cc; /* Link color */ -
Fonts: Modify the font-family stack
font-family: Georgia, serif; /* For a more classic look */ -
Layout: Adjust spacing and widths
max-width: 800px; /* Wider content */ padding: 4rem; /* More padding */
Multiple Profiles
For multiple online identities, add more h-cards:
<div class="h-card">
<h2 class="p-name">Professional Name</h2>
<a class="u-url" href="https://professional.com" rel="me">
https://professional.com
</a>
</div>
<div class="h-card">
<h2 class="p-name">Personal Name</h2>
<a class="u-url" href="https://personal.com" rel="me">
https://personal.com
</a>
</div>
Language Support
For non-English pages:
<html lang="es"> <!-- Spanish -->
<meta charset="utf-8"> <!-- Supports all Unicode characters -->
Accessibility Improvements
<!-- Add language attributes -->
<html lang="en">
<!-- Add descriptive alt text -->
<img class="u-photo" src="/avatar.jpg" alt="Headshot of Your Name">
<!-- Add skip navigation -->
<a href="#main" class="skip-link">Skip to content</a>
Testing Your Customizations
1. Local Testing
Open the file in your browser:
file:///path/to/identity-page.html
Check:
- Your name appears correctly
- Links work (won't authenticate locally)
- Page looks good on mobile (resize browser)
2. HTML Validation
Visit https://validator.w3.org/:
- Choose "Validate by File Upload"
- Upload your modified file
- Fix any errors shown
3. Microformats Testing
Visit https://indiewebify.me/:
- After uploading to your domain
- Use "Validate h-card"
- Enter your domain
- Verify your information is detected
4. IndieAuth Testing
Visit https://indielogin.com/:
- Enter your domain
- Should see "IndieAuth.com" as option
- Click to authenticate
- Should complete successfully
Common Mistakes to Avoid
1. URL Mismatches
❌ Wrong:
<!-- Hosted at https://example.com but u-url says: -->
<a class="u-url" href="https://different.com">
✅ Correct:
<!-- URLs must match exactly -->
<a class="u-url" href="https://example.com">
2. Missing HTTPS
❌ Wrong:
<a class="u-url" href="http://example.com">
✅ Correct:
<a class="u-url" href="https://example.com">
3. Broken Social Links
❌ Wrong:
<!-- Empty href -->
<a href="" rel="me">GitHub</a>
<!-- Placeholder text -->
<a href="https://github.com/yourusername" rel="me">
✅ Correct:
<!-- Real, working link -->
<a href="https://github.com/actualusername" rel="me">GitHub</a>
4. Multiple u-url Values
❌ Wrong:
<a class="u-url" href="https://example.com">Example</a>
<a class="u-url" href="https://other.com">Other</a>
✅ Correct:
<!-- Only one u-url that matches your domain -->
<a class="u-url" href="https://example.com">Example</a>
<a href="https://other.com">Other</a> <!-- No u-url class -->
Deployment Options
Static Hosting Services
The identity page works on any static host:
-
GitHub Pages
- Free with GitHub account
- Upload as
index.htmlin repository - Enable Pages in repository settings
-
Netlify
- Drag and drop deployment
- Free tier available
- Automatic HTTPS
-
Vercel
- Simple deployment
- Free tier available
- Good performance
-
Traditional Web Hosting
- Upload via FTP/SFTP
- Place in document root
- Ensure HTTPS is enabled
File Naming
index.html- For domain root (https://example.com/)identity.html- For subfolder (https://example.com/identity.html)- Any name works, but update your StarPunk configuration accordingly
Integration with StarPunk
Once your identity page is working:
-
Configure StarPunk to use your identity URL:
IDENTITY_URL=https://yourdomain.com -
Test Authentication:
- Visit your StarPunk instance
- Click "Sign In"
- Enter your identity URL
- Should authenticate successfully
-
Add Micropub Endpoint (after StarPunk is running):
<link rel="micropub" href="https://starpunk.yourdomain.com/micropub">
Troubleshooting
Page Not Found
- Ensure file is named correctly (usually
index.html) - Check file is in correct directory (document root)
- Verify domain is configured correctly
Authentication Fails
- Verify HTTPS is working
- Check u-url matches actual URL exactly
- Ensure no typos in endpoint URLs
- Test with browser developer tools for errors
h-card Not Detected
- Check class names are exact (
h-card,p-name,u-url) - Ensure HTML structure is valid
- Verify no typos in microformat classes
Social Links Not Working
- Only include rel="me" on profiles you control
- Check URLs are correct and working
- Some services don't support rel="me" back-linking
Getting Help
- IndieWeb Chat: https://indieweb.org/discuss
- StarPunk Issues: [GitHub repository]
- IndieAuth Spec: https://indieauth.spec.indieweb.org/
- Microformats Wiki: http://microformats.org/
Remember: The simplest solution is often the best. Don't add complexity unless you need it.