⚠️ This article describes integration concepts and future possibilities. Only parameters listed in the official Embed Guide are currently implemented. Some parameters mentioned below (e.g., theme, bg, accent, search, routing, embed.js widget API) are aspirational and do not exist yet.
Streamers wanted overlays. Tool makers wanted embedded maps. Community sites wanted widgets. Everyone had the same question: "How do I put EF-Map on my site?" So we built an interactive configurator that generates copy-paste embed codes with live previews.
The Embed Guide Page
Visit /embed-guide to access the interactive configurator. It's designed for non-technical users—no documentation reading required. You toggle options, see a live preview, and copy the generated code.
The Embed Guide shows a live 400×300 preview that updates as you change settings. Perfect for experimenting before committing to a configuration.
Configuration Options
Starting Position
Control where the map loads initially:
| Parameter | Description | Example |
|---|---|---|
x, y, z |
Camera position in light-years | x=0&y=50&z=100 |
zoom |
Initial zoom level (0.1–10) | zoom=2.5 |
system |
Center on a system by ID | system=30004759 |
Visual Styling
Match your site's theme:
| Parameter | Description | Example |
|---|---|---|
theme |
Color scheme (dark, light, minimal) |
theme=minimal |
bg |
Background color (hex, no #) | bg=1a1a2e |
accent |
Accent color for highlights | accent=ff6b6b |
starColor |
Default star color | starColor=ffd93d |
Feature Toggles
Control which features are available in the embed:
| Parameter | Description | Default |
|---|---|---|
search |
Show search panel | true |
routing |
Enable route planning | true |
info |
Show system info on click | true |
controls |
Show zoom/pan controls | true |
labels |
Show system name labels | true |
Streamer-Optimized Mode
For Twitch/YouTube overlays, we added a minimal theme that:
- Removes all UI chrome (panels, buttons, branding)
- Uses a transparent background (when supported)
- Keeps only the 3D star map
- Respects custom accent colors for route highlights
<iframe
src="https://ef-map.com/?embed=true&theme=minimal&routing=false"
width="400"
height="300"
frameborder="0"
allow="fullscreen"
></iframe>
The Interactive Preview
The configurator includes a live preview that updates instantly. Technical implementation:
// EmbedGuidePage.tsx
const [config, setConfig] = useState({
theme: 'dark',
search: true,
routing: true,
zoom: 1,
// ...
});
// Generate URL from config
const embedUrl = useMemo(() => {
const params = new URLSearchParams();
params.set('embed', 'true');
if (config.theme !== 'dark') params.set('theme', config.theme);
if (!config.search) params.set('search', 'false');
if (!config.routing) params.set('routing', 'false');
if (config.zoom !== 1) params.set('zoom', config.zoom.toString());
// ...
return `https://ef-map.com/?${params.toString()}`;
}, [config]);
// Live preview updates on every config change
<iframe src={embedUrl} className="preview-frame" />
Code Generation
The configurator generates three output formats:
1. iframe (Most Common)
<iframe
src="https://ef-map.com/?embed=true&theme=dark&search=true"
width="800"
height="600"
frameborder="0"
allow="fullscreen"
title="EVE Frontier Map"
></iframe>
2. Direct Link
For sharing or linking without embedding:
https://ef-map.com/?system=30004759&zoom=3&theme=minimal
3. JavaScript Widget (Advanced)
For dynamic integration:
<div id="ef-map-container"></div>
<script>
window.EFMapConfig = {
container: '#ef-map-container',
theme: 'dark',
initialSystem: 30004759,
onSystemSelect: (system) => {
console.log('User selected:', system.name);
}
};
</script>
<script src="https://ef-map.com/embed.js"></script>
Use Cases in the Wild
Since launching the Embed Guide, we've seen:
- Streaming overlays: Minimal theme at 400×300 in OBS browser source
- Corporation websites: Full-featured embeds showing home system
- Route planning tools: Routing-only embeds for third-party logistics apps
- Wiki articles: Read-only embeds showing specific regions
Performance Considerations
Embedding EF-Map means loading Three.js, our SQLite database, and rendering a 3D scene. We optimized for this:
- Lazy loading: Embed only initializes when iframe enters viewport
- Reduced quality:
embed=trueuses lower-resolution star textures - Deferred workers: Routing worker only loads if
routing=true - Shared cache: Database is cached across iframe instances on same domain
Related Posts
- Quick Tour: Interactive Onboarding with Driver.js - How we onboard users who land on embedded maps
- Cinematic Mode: Creating a Visual Experience - The visual mode streamers often enable for overlays
- Web Workers: Background Computation - How routing works without blocking the UI
- Jump Bubble Visualization: Thin-Film Shaders - The shader effect visible in embeds