v2deepvoice / frontend /src /data /seoMatrix.ts
raghu2's picture
Build Programmatic SEO Matrix with 40,000 keyword landing pages
430c230
Raw
History Blame Contribute Delete
6.65 kB
export const actions = [
"remove", "extract", "isolate", "separate", "split",
"clean", "mute", "strip", "filter", "delete"
];
export const targets = [
"vocals", "drums", "bass", "instruments", "voice",
"music", "acapella", "dialogue", "noise", "melody"
];
export const context1 = [
"mp3", "wav", "flac", "mp4", "video", "audio", "song", "track", "recording", "podcast",
"youtube", "spotify", "tiktok", "reels", "shorts", "interview", "sample", "beat", "file", "stream",
"live-performance", "concert", "movie", "film", "documentary", "vlog", "webinar", "zoom-call", "meeting", "lecture",
"speech", "presentation", "voicemail", "discord", "twitch", "gaming", "vinyl", "cassette", "cd", "tape",
"rock", "pop", "hiphop", "rap", "jazz", "classical", "edm", "house", "techno", "trance",
"dubstep", "country", "rnb", "soul", "funk", "disco", "reggae", "metal", "punk", "indie",
"alternative", "folk", "blues", "gospel", "latin", "kpop", "jpop", "afrobeat", "dancehall", "ambient",
"lofi", "trap", "drill", "grime", "synthwave", "vaporwave", "acoustic", "instrumental", "choir", "orchestra",
"commercial", "advertisement", "trailer", "teaser", "promo", "intro", "outro", "jingle", "soundtrack", "score",
"bgm", "theme", "mashup", "remix", "bootleg", "cover", "karaoke", "backing-track", "stem", "multitrack"
]; // exactly 100
export const context2 = [
"djs", "producers", "remixers", "musicians", "singers", "vocalists", "drummers", "bassists", "guitarists", "pianists",
"engineers", "mixers", "mastering", "beatmakers", "composers", "arrangers", "songwriters", "artists", "bands", "choirs",
"content-creators", "youtubers", "vloggers", "streamers", "podcasters", "broadcasters", "journalists", "reporters", "interviewers", "hosts",
"filmmakers", "directors", "editors", "videographers", "animators", "designers", "creatives", "studios", "agencies", "brands",
"hobbyists", "beginners", "professionals", "experts", "students", "teachers", "instructors", "educators", "coaches", "mentors",
"windows", "mac", "linux", "ios", "android", "mobile", "desktop", "web", "browser", "online",
"premiere", "after-effects", "final-cut", "davinci", "ableton", "fl-studio", "logic-pro", "pro-tools", "cubase", "studio-one",
"reaper", "garageband", "audacity", "audition", "resolve", "capcut", "tiktok-creators", "instagram-creators", "youtube-creators", "twitch-streamers",
"karaoke-bars", "clubs", "venues", "festivals", "events", "parties", "weddings", "ceremonies", "church", "worship",
"school", "college", "university", "academy", "classes", "courses", "workshops", "tutorials", "lessons", "training"
]; // exactly 100
export const context3 = [
"2026", "2027", "free", "cheap", "affordable", "premium", "pro", "best", "top", "ultimate",
"fast", "quick", "easy", "simple", "automated", "ai", "smart", "intelligent", "advanced", "modern",
"high-quality", "lossless", "hd", "hq", "studio", "professional", "clean", "clear", "perfect", "flawless",
"online", "web-based", "cloud", "download", "app", "software", "tool", "generator", "creator", "maker",
"audio", "video", "music", "sound", "voice", "vocal", "speech", "dialogue", "instrument", "beat",
"remove", "extract", "isolate", "separate", "split", "clean", "mute", "strip", "filter", "delete",
"without-losing-quality", "with-ai", "automatically", "instantly", "in-seconds", "online-free", "no-download", "no-watermark", "unlimited", "secure",
"mac", "windows", "pc", "laptop", "phone", "iphone", "android", "tablet", "ipad", "device",
"creators", "musicians", "djs", "producers", "podcasters", "editors", "filmmakers", "vloggers", "singers", "artists",
"mp3", "wav", "mp4", "youtube", "spotify", "tiktok", "instagram", "facebook", "twitter", "social-media"
]; // exactly 100
export const context4 = [
"one-click", "bulk", "batch", "multiple", "large", "heavy", "complex", "noisy", "crowded", "loud",
"quiet", "soft", "whisper", "shout", "scream", "singing", "talking", "speaking", "conversation", "interview",
"podcast-editing", "video-editing", "music-production", "beat-making", "remixing", "mashups", "karaoke-tracks", "backing-tracks", "acapellas", "stems",
"audio-cleanup", "noise-reduction", "voice-isolation", "vocal-extraction", "drum-removal", "bass-separation", "instrument-muting", "stem-splitting", "sound-design", "foley",
"youtube-videos", "tiktok-sounds", "instagram-reels", "facebook-ads", "spotify-tracks", "apple-music", "soundcloud", "mixcloud", "bandcamp", "patreon",
"logic", "ableton", "flstudio", "protools", "cubase", "studioone", "reaper", "garageband", "audacity", "premiere",
"home-studio", "professional-studio", "bedroom-producer", "indie-artist", "major-label", "indie-label", "publishing", "sync", "licensing", "royalty-free",
"copyright", "fair-use", "remix-contest", "dj-set", "live-show", "performance", "gig", "concert", "tour", "festival",
"macbook", "imac", "windows11", "windows10", "linux-mint", "ubuntu", "chromeos", "chromebook", "ios18", "android16",
"fastest", "easiest", "best-rated", "top-rated", "most-popular", "trending", "viral", "new", "latest", "updated"
]; // exactly 100
export function getSeoSlugs(): string[] {
const slugs: string[] = [];
// Pattern A: [action]-[target]-from-[context1] (10 * 10 * 100 = 10,000)
for (const action of actions) {
for (const target of targets) {
for (const ctx of context1) {
slugs.push(`${action}-${target}-from-${ctx}`);
}
}
}
// Pattern B: best-[target]-extractor-for-[context2] (10 * 10 * 100 = 10,000)
for (const action of actions) {
for (const target of targets) {
for (const ctx of context2) {
slugs.push(`best-${target}-${action}er-for-${ctx}`);
}
}
}
// Pattern C: free-[action]-[target]-software-for-[context3] (10 * 10 * 100 = 10,000)
for (const action of actions) {
for (const target of targets) {
for (const ctx of context3) {
slugs.push(`free-${action}-${target}-software-for-${ctx}`);
}
}
}
// Pattern D: how-to-[action]-[target]-in-[context4] (10 * 10 * 100 = 10,000)
for (const action of actions) {
for (const target of targets) {
for (const ctx of context4) {
slugs.push(`how-to-${action}-${target}-in-${ctx}`);
}
}
}
return slugs; // Exactly 40,000 unique strings!
}
export function parseSlugToData(slug: string) {
// A helper function to extract meaningful data from the slug to display on the page
const words = slug.split('-');
const title = words.map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');
return {
title,
originalSlug: slug,
};
}