What is an XSPF playlist for IPTV?
- XSPF (XML Shareable Playlist Format): an XML-based playlist format that lists media resources (URLs) and metadata.
- For IPTV: XSPF files contain stream URLs (HTTP, HLS, MPEG-TS) for TV channels, video-on-demand, or radio, letting players load and play them in order.
Best IPTV Players That Support XSPF Playlists
Not all IPTV players handle XSPF equally. Here are the top performers:
| Player | Platform | XSPF Support Level |
|--------|----------|---------------------|
| VLC | Windows, Mac, Linux, Android, iOS | Full – Loads tracks, logos, and metadata |
| Kodi | All (via XSPF add-ons) | Native – Use “Play from XSPF” |
| Plex | All (with IPTV bundle) | Partial – Basic tracklist works |
| IPTV Smarters (Pro) | Android, iOS | Limited – Converts to internal format |
| Perfect Player | Android, Fire TV | Requires external conversion |
| TiviMate | Android TV | No native support – use M3U instead |
Best recommendation: Use VLC for testing XSPF files. Once verified, use Kodi or Plex for a full IPTV experience with EPG and recording features.
The Ultimate Guide to XSPF Playlists for IPTV
If you use IPTV, you are likely familiar with the M3U format. However, there is another, often superior, format gaining popularity among power users: the XSPF playlist.
While M3U files are simple text lists, XSPF (XML Shareable Playlist Format) offers a more robust, standardized way to manage your streaming links.
In this guide, we will cover everything you need to know about using XSPF playlists for IPTV.
Conclusion
The keyword "xspf playlist iptv" represents a niche but critical intersection of structured data and streaming media. While M3U remains the "plain text" standard of the IPTV world, XSPF offers a cleaner, more robust, and future-proof alternative for those willing to work with XML.
By adopting XSPF, you gain:
- Reliable UTF-8 support for international channels.
- Rich metadata (logos, descriptions, EPG links).
- Extensibility for custom IPTV features.
- Compatibility with robust players like VLC and Kodi.
If your current IPTV provider only offers M3U, do not despair—conversion tools are freely available. For developers building the next generation of IPTV apps, supporting XSPF (and JSPF) is no longer optional; it is a competitive necessity.
Next Steps:
- Download a sample XSPF file from Xiph.Org’s repository.
- Test it in VLC to understand the structure.
- Convert one of your existing M3U playlists to XSPF.
- Experiment with adding EPG data via
<extension> tags.
Have questions about a specific IPTV player or XSPF error? Leave a comment below or consult the official XSPF specification at xspf.org.
Last updated: May 2026. Screenshots and code samples are based on VLC 3.0.18 and Kodi 20.x.
XSPF (XML Shareable Playlist Format) playlist for IPTV is a structured XML file that tells media players where to find live streams. Unlike the more common M3U format, XSPF is specifically designed for portability and rich metadata. Amazon.com Core Structure of an IPTV XSPF Playlist
To create an IPTV playlist, you must follow the XML schema. Each channel is defined within a
< "http://xspf.org" >My IPTV Playlist >Channel Namehttp://example.comhttp://example.comGenre: News | Language: English Use code with caution. Copied to clipboard How to Build and Use Your Playlist Gather Stream URLs : Collect high-quality stream links from your provider. Edit the File
: Use a text editor (like Notepad++ or VS Code) to wrap your URLs in the tags shown above. Save the File : Ensure the file extension is strictly Load in Player VLC Media Player : Drag and drop the file directly into the player. IPTV Players : Use apps like IPEXO IPTV Player Smart IPTV to import local files. Why use XSPF over M3U?
: XSPF handles complex metadata (creator, album, duration) better than M3U. Validation
: Because it is XML-based, it is easier for software to validate the file for errors. Logo Support : Dedicated
An XSPF (XML Shareable Playlist Format) playlist is a powerful, open-standard tool for managing and streaming IPTV content. Unlike the more common M3U format, which is simple text-based metadata, XSPF uses XML (Extensible Markup Language) to provide a more structured, detailed, and interoperable way to organize digital media. What is an XSPF IPTV Playlist?
At its core, an XSPF playlist is a document that tells a media player where to find specific streams and how to display them. Because it is based on XML, it allows for "rich" metadata—meaning you can include more than just a URL. You can embed creator information, specific track titles, licensing data, and even nested organization that simple formats struggle to handle. Key Advantages of XSPF for IPTV
Portability and Interoperability: Since XSPF is an open standard, it isn't tied to a specific piece of software. While it is most famously associated with the VLC Media Player, it is designed to work across any platform that supports XML.
Rich Metadata: XSPF excels at providing context. In an IPTV setting, this means better organization of channel names, logos, and categories compared to the sometimes cluttered formatting of M3U files.
Content Separation: One of the philosophy's "golden rules" of XSPF is that it separates the content from the playlist. It doesn't just point to a file; it describes the media, making it easier for players to find alternative sources if a primary stream goes offline. How to Use XSPF Playlists
Using an XSPF playlist for IPTV typically involves three main components:
The Source: A valid IPTV service provider that offers their stream list in .xspf format.
The Player: A compatible media player. VLC is the gold standard here, but others like Kodi or MPV can also handle these files.
The File: The actual .xspf file, which you either download or link to via a URL (often called a "Remote Playlist"). Technical Comparison: XSPF vs. M3U M3U / M3U8 Format Plain Text Readability High (Human) High (Machine/Structured) Metadata Basic (via #EXTINF) Advanced (Extensible tags) Standardization De facto (not formal) Formal Open Standard Conclusion
While M3U remains the most "popular" format for IPTV due to its simplicity, XSPF is the superior choice for users who value organization and technical stability. It turns a simple list of links into a structured library, ensuring that your IPTV experience is as seamless and informative as possible.
Creating an XSPF (XML Shareable Playlist Format) playlist for IPTV allows you to organize your streaming channels in a structured, portable XML format. Unlike the common M3U format, XSPF is specifically designed for interoperability and can be created or modified using a simple text editor or the Xspf Playlist Iptv [best] tool. Sample XSPF Playlist Structure
You can copy and paste the following text into a file and save it with a .xspf extension to create your own playlist:
My IPTV Playlist http://example.com Channel Name 1 Category: News http://example.com Channel Name 2 Category: Sports Use code with caution. Copied to clipboard Key Elements of the Text
: This is the most critical tag; it must contain the direct URL of the IPTV stream.
</code></strong>: The name of the channel as it will appear in your media player.</p>
<p><strong><code><trackList></code></strong>: All individual channels (tracks) must be wrapped within this container. How to Use This Text</p>
<p><strong>Open a Text Editor</strong>: Use Notepad (Windows), TextEdit (Mac), or a specialized code editor.</p>
<p><strong>Paste and Edit</strong>: Paste the code above and replace the <code>location</code> URLs and <code>title</code> names with your actual IPTV stream links.</p>
<p><strong>Save as .xspf</strong>: Ensure the file extension is specifically <code>.xspf</code> and not <code>.txt</code>.</p>
<p><strong>Load in Player</strong>: Open the file using a compatible player like VLC Media Player or a dedicated <a href="https://www.microsoft.com/en-bd/p/iptv-playlist-editor-for-windows/9p3bfpfk8dct">IPTV Playlist Editor for Windows</a>. How to Add IPTV Playlist in TV Browser</p>
<p>The <strong>XSPF (XML Shareable Playlist Format)</strong> is an open, XML-based playlist format that serves as a highly structured alternative to the more common M3U format for IPTV. Users who prefer XSPF often highlight its ability to handle complex metadata and its "shareable" nature, though it is less universally supported by older IPTV hardware. User Reviews and Perspectives</p>
<p>Community sentiment regarding XSPF-compatible players is mixed, often highlighting ease of use against technical hurdles or monetization strategies.</p>
<p><strong>Ease of Use</strong>: Reviewers on the <a href="https://play.google.com/store/apps/details?id=online.tidox.player.cast">Google Play Store</a> often praise players that support XSPF for their simple user interfaces and "quick access" favorite features.</p>
<p><strong>Technical Compatibility</strong>: Some users in the <a href="https://forum.kodi.tv/showthread.php?tid=209910">Kodi Community Forum</a> have noted that while XSPF is ideal for its original structure, converting it to M3U can sometimes break specific streams, making native XSPF support a critical "make-or-break" feature for advanced setups.</p>
<p><strong>Monetization Frustrations</strong>: A common complaint for free apps supporting this format (like <a href="https://play.google.com/store/apps/details?id=com.iptv.player.smart.live.stream.m3u">IPTV Player Pro</a>) is the heavy presence of ads and prompts to upgrade to premium versions, which some users find intrusive enough to label the apps as "hopeless".</p>
<p><strong>Functionality Gaps</strong>: Critical reviews on the <a href="https://apps.apple.com/us/app/iptv-pro-amazing-support-m3u-xspf-xml-json/id1114295653">App Store</a> have pointed out issues with managing large playlists (some exceeding 30,000 channels), noting that finding specific favorites can be nearly impossible if the interface doesn't offer robust search or categorization. Popular XSPF-Compatible IPTV Players</p>
<p>If you are looking for software that specifically supports the XSPF format, these options are frequently cited by users:</p>
<p><strong>IPTV Pro (Amazing)</strong>: Available on the <a href="https://apps.apple.com/us/app/iptv-pro-amazing-support-m3u-xspf-playlist/id1140108087">App Store</a>, this app is known for its wide format support, including XSPF, XML, and JSON.</p>
<p><strong>IPTV Player (IP Television)</strong>: A popular <a href="https://play.google.com/store/apps/details?id=com.iptv.player.m3u.xspf.m3u8.tv.smart.ip.television&hl=en_GB">Google Play</a> option that features animated instructions and "picture-in-picture" mode for multitasking.</p>
<p><strong>VLC Media Player</strong>: While not a dedicated IPTV app, VLC is widely considered the gold standard for desktop XSPF playback due to its open-source nature and stability.</p>
<p>For those new to managing these files, this guide explains how to properly load your playlist into a compatible player: <a href="https://www.youtube.com/watch?v=yRy4fS9UIMM&vl=te&t=18"> Adding M3U to IPTV Smarters - Full Tutorial for Beginners YouTube• Apr 9, 2026 AI responses may include mistakes. <a href="https://support.google.com/websearch?p=aimode">Learn more</a> IPTV PRO AMAZING: Support M3U, XSPF Playlist - App Store</p>
<p>Here’s a concise technical guide on using <strong>XSPF playlists for IPTV</strong>.</p>
<hr>
<h2>When to use XSPF vs M3U</h2>
<ul>
<li><strong>Use XSPF</strong> if you need structured metadata (titles, track number, album/author-like fields), XML tooling, or compatibility with players that support XSPF.</li>
<li><strong>Use M3U</strong> if you need the simplest, widely supported plain-text format (many IPTV apps prefer M3U).</li>
</ul>
<h2>Embedding EPG (Electronic Program Guide) in XSPF</h2>
<p>One of the most powerful features of an <strong>XSPF playlist IPTV</strong> setup is the ability to embed program guide data. While M3U uses <code>tvg-id</code> and an external XMLTV file, XSPF can store EPG metadata directly inside the playlist using <code><meta></code> tags.</p></div></div><section class="overflow-hidden border-y border-neutral-200 bg-neutral-50/50 py-20 dark:border-neutral-800 dark:bg-neutral-900/30 md:py-32"><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:0ms"><div class="mb-16 px-6 text-center"><span class="text-sm font-medium uppercase tracking-[0.2em] text-neutral-400">Supported games</span></div></div><div class="relative"><div class="flex animate-marquee gap-16 whitespace-nowrap"><div class="flex gap-16"><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Counter-Strike 2</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Minecraft</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Rust</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Garry's Mod</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Team Fortress 2</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">ARK Survival</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Left 4 Dead 2</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">CS:GO</span></div><div class="flex gap-16"><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Counter-Strike 2</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Minecraft</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Rust</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Garry's Mod</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Team Fortress 2</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">ARK Survival</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">Left 4 Dead 2</span><span class="text-3xl font-light text-neutral-300 dark:text-neutral-700 md:text-5xl">CS:GO</span></div></div></div></section><section class="py-24 md:py-32"><div class="mx-auto max-w-7xl px-6"><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:0ms"><div class="max-w-2xl mb-16"><h2 class="text-3xl font-medium tracking-tight text-neutral-900 dark:text-white md:text-4xl">Why Choose Flute CMS?</h2><p class="mt-4 text-lg text-neutral-600 dark:text-neutral-400">A modern CMS for gaming communities. Every feature is thoughtfully crafted.</p></div></div><div class="grid gap-4 md:grid-cols-2 lg:grid-cols-3"><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:0ms"><div class="group relative p-6 rounded-2xl border border-neutral-200 dark:border-neutral-800 hover:border-neutral-300 dark:hover:border-neutral-700 transition-colors"><div class="flex items-baseline gap-1 mb-4"><span class="text-4xl font-semibold text-neutral-900 dark:text-white tabular-nums">100%</span></div><h3 class="text-base font-medium text-neutral-900 dark:text-white mb-2">Visual Editing</h3><p class="text-sm text-neutral-500 dark:text-neutral-400 leading-relaxed">Drag & drop editor for building pages. No code needed — just your creativity.</p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check absolute top-6 right-6 size-5 text-emerald-500 opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:100ms"><div class="group relative p-6 rounded-2xl border border-neutral-200 dark:border-neutral-800 hover:border-neutral-300 dark:hover:border-neutral-700 transition-colors"><div class="flex items-baseline gap-1 mb-4"><span class="text-4xl font-semibold text-neutral-900 dark:text-white tabular-nums">1</span><span class="text-lg text-neutral-500 dark:text-neutral-400">click</span></div><h3 class="text-base font-medium text-neutral-900 dark:text-white mb-2">Module Installation</h3><p class="text-sm text-neutral-500 dark:text-neutral-400 leading-relaxed">Install modules with one click. Automatic dependency setup included.</p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check absolute top-6 right-6 size-5 text-emerald-500 opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:200ms"><div class="group relative p-6 rounded-2xl border border-neutral-200 dark:border-neutral-800 hover:border-neutral-300 dark:hover:border-neutral-700 transition-colors"><div class="flex items-baseline gap-1 mb-4"><span class="text-4xl font-semibold text-neutral-900 dark:text-white tabular-nums"><150</span><span class="text-lg text-neutral-500 dark:text-neutral-400">ms</span></div><h3 class="text-base font-medium text-neutral-900 dark:text-white mb-2">Fast Loading</h3><p class="text-sm text-neutral-500 dark:text-neutral-400 leading-relaxed">Optimized code and smart caching ensure pages load instantly.</p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check absolute top-6 right-6 size-5 text-emerald-500 opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:300ms"><div class="group relative p-6 rounded-2xl border border-neutral-200 dark:border-neutral-800 hover:border-neutral-300 dark:hover:border-neutral-700 transition-colors"><div class="flex items-baseline gap-1 mb-4"><span class="text-4xl font-semibold text-neutral-900 dark:text-white tabular-nums">0</span><span class="text-lg text-neutral-500 dark:text-neutral-400">reloads</span></div><h3 class="text-base font-medium text-neutral-900 dark:text-white mb-2">SPA Navigation</h3><p class="text-sm text-neutral-500 dark:text-neutral-400 leading-relaxed">Navigate without page reloads. Smooth transitions and instant responses.</p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check absolute top-6 right-6 size-5 text-emerald-500 opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:400ms"><div class="group relative p-6 rounded-2xl border border-neutral-200 dark:border-neutral-800 hover:border-neutral-300 dark:hover:border-neutral-700 transition-colors"><div class="flex items-baseline gap-1 mb-4"><span class="text-4xl font-semibold text-neutral-900 dark:text-white tabular-nums">8+</span></div><h3 class="text-base font-medium text-neutral-900 dark:text-white mb-2">Game Support</h3><p class="text-sm text-neutral-500 dark:text-neutral-400 leading-relaxed">Built-in integration with popular games from CS 1.6 to CS2.</p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check absolute top-6 right-6 size-5 text-emerald-500 opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:500ms"><div class="group relative p-6 rounded-2xl border border-neutral-200 dark:border-neutral-800 hover:border-neutral-300 dark:hover:border-neutral-700 transition-colors"><div class="flex items-baseline gap-1 mb-4"><span class="text-4xl font-semibold text-neutral-900 dark:text-white tabular-nums">$0</span></div><h3 class="text-base font-medium text-neutral-900 dark:text-white mb-2">Free Forever</h3><p class="text-sm text-neutral-500 dark:text-neutral-400 leading-relaxed">MIT license. Use for personal or commercial projects without limits.</p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check absolute top-6 right-6 size-5 text-emerald-500 opacity-0 group-hover:opacity-100 transition-opacity" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></div></div></div></div></section><section class="py-24 md:py-32 bg-neutral-50 dark:bg-neutral-900/50"><div class="mx-auto max-w-3xl px-6"><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:0ms"><div class="text-center mb-12"><span class="inline-block px-3 py-1 text-xs font-medium tracking-wider uppercase text-neutral-500 dark:text-neutral-400 bg-neutral-100 dark:bg-neutral-800 rounded-full mb-4">FAQ</span><h2 class="text-3xl font-medium tracking-tight text-neutral-900 dark:text-white md:text-4xl">Frequently Asked Questions</h2><p class="mt-4 text-lg text-neutral-600 dark:text-neutral-400">Everything you need to know about Flute CMS — in plain language</p></div></div><div class="divide-y divide-neutral-200 dark:divide-neutral-800"><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:0ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">What is Flute CMS and why do I need it?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300 rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[1fr] opacity-100"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">Flute CMS is a website builder for game servers. If you have a CS2, CS:GO, or other game server and want to create a beautiful website with registration, statistics, shop, and forum — Flute CMS is what you need. No programming required — everything is configured with your mouse.</p></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:50ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">Is it really free? What's the catch?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">No catch. Flute CMS is completely free, the code is open on GitHub. No hidden fees, trial periods, or feature limitations. We make money from paid modules and templates in the marketplace, but the core functionality is free forever.</p></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:100ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">Do I need to know programming?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">No! Flute CMS is designed so anyone can build a website without coding knowledge. There's a visual editor — just drag and drop blocks and customize them. Modules install with one click. If something's unclear — the Discord community will help.</p></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:150ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">Where do I host the site? Do I need my own server?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">Any hosting with PHP 8.2+ and MySQL will work. You can use regular shared hosting from $5/month or a VPS. If you already have a game server — you can install Flute CMS right on it. The documentation has a list of verified hosting providers.</p></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:200ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">What games does it work with?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">CS2, CS:GO, CS 1.6, Team Fortress 2, Garry's Mod, Rust, Minecraft, and more. Each game has integration modules — statistics, ban list, Steam/Discord account linking. If your game isn't listed — you can request a module or write one yourself.</p></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:250ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">Is it hard to install?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">Installation takes 5-10 minutes. Upload files to hosting, open the site in browser, follow the installer instructions — done. If you get stuck — there's a help channel on Discord where people respond within an hour.</p></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:300ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">How do I add a shop / statistics / forum?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">These are all modules. Go to Admin Panel → Marketplace → select the module you need → click 'Install'. In a minute, the module is ready to use. Basic modules are free, there are also paid ones with extended features.</p></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:350ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">Can I change the site design?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">Yes, completely. There's a visual theme editor — change colors, fonts, spacing without knowing CSS. You can install a ready-made template from the marketplace or create your own. Every page can be edited through the drag & drop editor.</p></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:400ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">Can I migrate data from another CMS?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">For GameCMS there's a migration module — users, bans, statistics are transferred. For SourceBans and other systems, no migration is needed: Flute modules work with them directly, data is pulled automatically.</p></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:450ms"><div class="group"><button class="flex w-full items-center justify-between gap-4 py-6 text-left transition-colors hover:text-neutral-600 dark:hover:text-neutral-300"><span class="text-lg font-medium text-neutral-900 dark:text-white group-hover:text-neutral-700 dark:group-hover:text-neutral-200 transition-colors">What if something breaks?</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 shrink-0 text-neutral-400 transition-transform duration-300" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="grid transition-all duration-300 ease-in-out grid-rows-[0fr] opacity-0"><div class="overflow-hidden"><p class="pb-6 text-neutral-600 dark:text-neutral-400 leading-relaxed pr-12">First thing — the community Discord. There's an active community and developers who will help solve the problem. There's also documentation with solutions to common issues.</p></div></div></div></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:400ms"><div class="mt-12 text-center"><p class="text-neutral-500 dark:text-neutral-400 flex items-center justify-center gap-1.5">Still have questions? Ask in<!-- --> <a href="https://discord.gg/BcBMeVJJsd" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 text-[#5865F2] hover:text-[#4752C4] font-medium transition-colors"><svg class="size-4" viewBox="0 0 24 24" fill="currentColor"><path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028 14.09 14.09 0 0 0 1.226-1.994.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"></path></svg>Discord</a></p></div></div></div></section><section class="relative overflow-hidden"><div class="absolute inset-0 bg-neutral-950"><div class="absolute inset-0 bg-[radial-gradient(ellipse_at_center,_var(--tw-gradient-stops))] from-neutral-800/50 via-neutral-950 to-neutral-950"></div><div class="absolute inset-0 opacity-30" style="background-image:radial-gradient(circle at 1px 1px, rgb(64 64 64) 1px, transparent 0);background-size:40px 40px"></div></div><div class="relative mx-auto max-w-4xl px-6 py-40 text-center md:py-56"><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:0ms"><span class="mb-8 inline-block text-sm font-medium uppercase tracking-[0.2em] text-neutral-500">Get started</span></div><h2 class="text-5xl font-medium leading-[1.1] tracking-tight text-white md:text-7xl lg:text-8xl"><span><span class="inline-block overflow-hidden"><span class="inline-block transition-all duration-700 ease-out translate-y-full opacity-0" style="transition-delay:0ms">Ready<!-- --> </span></span><span class="inline-block overflow-hidden"><span class="inline-block transition-all duration-700 ease-out translate-y-full opacity-0" style="transition-delay:80ms">to<!-- --> </span></span><span class="inline-block overflow-hidden"><span class="inline-block transition-all duration-700 ease-out translate-y-full opacity-0" style="transition-delay:160ms">launch?</span></span></span></h2><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:400ms"><p class="mx-auto mt-8 max-w-lg text-xl text-neutral-400">Installation takes 5 minutes. Documentation and community will help with any questions.</p></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:600ms"><div class="mt-14 flex flex-col items-center gap-6 sm:flex-row sm:justify-center"><a href="https://github.com/Flute-CMS/cms/releases/latest" target="_blank" rel="noopener noreferrer" data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap transition-colors cursor-pointer disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-neutral-400 dark:focus-visible:ring-neutral-600 dark:bg-white dark:text-neutral-900 dark:hover:bg-neutral-100 will-change-transform group h-16 rounded-full bg-white px-12 text-lg font-medium text-neutral-900 hover:bg-neutral-100">Download Flute<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-3 size-5 transition-transform group-hover:translate-x-1" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a href="https://docs.flute-cms.com" target="_blank" rel="noopener noreferrer" data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap transition-colors cursor-pointer disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-neutral-400 dark:focus-visible:ring-neutral-600 underline-offset-4 hover:underline dark:text-neutral-400 dark:hover:text-white px-7 rounded-full h-16 text-lg font-medium text-neutral-400 hover:text-white">Documentation<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right ml-1 size-5" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></div></div><div class="transition-all ease-out translate-y-4 opacity-0" style="transition-duration:400ms;transition-delay:800ms"><p class="mt-12 text-sm text-neutral-600">PHP 8.2+ • MySQL / PostgreSQL • Apache / Nginx</p></div></div></section></div></div><div hidden="" id="S:2"></div>
</body></html>