<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
    >
<channel>
    <title>Planet Documentation</title>
    <atom:link href="https://docs.planetable.eth.sucks/rss.xml" rel="self" type="application/rss+xml" />
    <link>https://docs.planetable.eth.sucks/</link>
    <description><![CDATA[
    
    ]]></description>
    
    
    <item>
        <title>How to Build</title>
        <link>https://docs.planetable.eth.sucks/63B38F91-2690-4D2A-8AFB-54084794E2D4/</link>
        <guid>https://docs.planetable.eth.sucks/63B38F91-2690-4D2A-8AFB-54084794E2D4/</guid>
        <pubDate>Fri, 19 Dec 2025 07:45:38 -0800</pubDate>
        
        
        <description><![CDATA[
            <p>After you clone the project, create a <code>local.xcconfig</code> file inside the Planet subdirectory, not at the root of the project.</p> 
<pre><code>cd Planet
code local.xcconfig
</code></pre> 
<p>The <code>local.xcconfig</code> file should be in the same directory as <code>Planet.xcconfig</code>, not at the root level of the project.</p> 
<p>Fill it with the following, and replace <code>DEVELOPMENT_TEAM</code> with your own team ID.</p> 
<pre><code>CODE_SIGN_STYLE = Automatic
DEVELOPMENT_TEAM = 66KP7KX9MX
PLANET_APP_ICON_NAME = AppIcon-Debug

WALLETCONNECTV2_PROJECT_ID = ""
ETHERSCAN_API_TOKEN = ""

ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS = NO
ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOL_FRAMEWORKS = ""
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = NO
</code></pre> 
<p>If you want to touch the Wallet-related parts, please supply your own WalletConnect project ID and Etherscan API token.</p>
        ]]></description>
    </item>
    
    <item>
        <title>Follow Updates</title>
        <link>https://docs.planetable.eth.sucks/60B86B46-98D4-42B8-9CC3-006158D2235A/</link>
        <guid>https://docs.planetable.eth.sucks/60B86B46-98D4-42B8-9CC3-006158D2235A/</guid>
        <pubDate>Thu, 08 May 2025 12:49:44 -0700</pubDate>
        
        <itunes:image href="https://docs.planetable.eth.sucks/follow/follow-df-json.png" />    
        
        
        <description><![CDATA[
            <p>Planet is more than just a website builder. You can also use it to follow updates from various content sources, including:</p> 
<ul> 
 <li>Other Planet sites published via <strong>IPNS</strong> addresses, or via <strong>ENS</strong> (.eth) / <strong>SNS</strong> (.sol) addresses</li> 
 <li><strong>RSS</strong>, <strong>Atom</strong>, or <strong>JSON Feeds</strong> on HTTPS addresses</li> 
</ul> 
<p>To follow a source, click the <kbd>+</kbd> button in the main interface and select <strong>Follow Planet</strong>. Then enter the address to start receiving updates.</p> 
<figure> 
 <img src="https://docs.planetable.eth.sucks/60B86B46-98D4-42B8-9CC3-006158D2235A/follow-df-json.png" alt="Follow Daring Fireball with Planet" /> 
 <figcaption>
  Follow Daring Fireball JSON Feed with Planet
 </figcaption> 
</figure>
        ]]></description>
    </item>
    
    <item>
        <title>API Access</title>
        <link>https://docs.planetable.eth.sucks/C43558D7-5964-4764-98F6-2A1B343ED41D/</link>
        <guid>https://docs.planetable.eth.sucks/C43558D7-5964-4764-98F6-2A1B343ED41D/</guid>
        <pubDate>Thu, 08 May 2025 12:46:47 -0700</pubDate>
        
        <itunes:image href="https://docs.planetable.eth.sucks/api/planet-api-server.png" />    
        
        
        <description><![CDATA[
            <p>Planet provides a RESTful API server for automation and remote access. You can enable the API server in the <strong>Settings</strong> menu.</p> 
<figure> 
 <img src="https://docs.planetable.eth.sucks/C43558D7-5964-4764-98F6-2A1B343ED41D/planet-api-server.png" alt="Planet API Server" /> 
 <figcaption>
  Settings ❯ Planet API Server
 </figcaption> 
</figure> 
<p>By default, the API server runs on port <strong>8086</strong>. Once enabled, it can be accessed at:</p> 
<p><a href="http://localhost:8086/">http://localhost:8086/</a></p> 
<p>Or via your local network IP address.</p> 
<h2>API Endpoints</h2> 
<p>Here is the full list of API endpoints:</p> 
<p><a href="https://github.com/Planetable/Planet/blob/main/Technotes/API.md">https://github.com/Planetable/Planet/blob/main/Technotes/API.md</a></p> 
<h2>Web Client</h2> 
<p>Planet includes a built-in web client for remote access. Once the API server is running, you can access the web client at:</p> 
<p><a href="http://localhost:8086/app/">http://localhost:8086/app/</a></p> 
<figure> 
 <img src="https://docs.planetable.eth.sucks/C43558D7-5964-4764-98F6-2A1B343ED41D/web-client-elementary.webp" alt="Planet Web Client" /> 
 <figcaption>
  Planet Web Client
 </figcaption> 
</figure>
        ]]></description>
    </item>
    
    <item>
        <title>ENS</title>
        <link>https://docs.planetable.eth.sucks/27E257FB-B74D-4394-B642-4257E2AB48B3/</link>
        <guid>https://docs.planetable.eth.sucks/27E257FB-B74D-4394-B642-4257E2AB48B3/</guid>
        <pubDate>Thu, 08 May 2025 12:39:46 -0700</pubDate>
        
        <itunes:image href="https://docs.planetable.eth.sucks/ens/ens-edit-records.png" />    
        
        
        <description><![CDATA[
            <p>ENS (Ethereum Name Service) is a powerful naming system running on the Ethereum network. With Planet, you can set up and keep updating a blog on yourname.eth.</p> 
<h2>Register ENS</h2> 
<p>You can register an ENS name at <a href="https://app.ens.domains/">app.ens.domains</a>.</p> 
<h2>Link Planet Site to ENS</h2> 
<p>After registering your ENS name, go to the <strong>Records</strong> page of your name and click <strong>Edit Records</strong>.</p> 
<p>In the Planet app, right-click on the site you want to link to your ENS and select <strong>Copy IPNS</strong>.</p> 
<p>Append <code>ipns://</code> to the IPNS string (it starts with <code>k51</code>) you copied, and paste it into the <code>Other ❯ Content Hash</code> field like this:</p> 
<img src="https://docs.planetable.eth.sucks/27E257FB-B74D-4394-B642-4257E2AB48B3/ens-edit-records.png" width="964" alt="ENS Edit Records" /> 
<p>Then click <strong>Save</strong>.</p> 
<p>It will take 1–2 minutes for the change to take effect. After that, you can visit your site using these ENS gateways:</p> 
<ul> 
 <li>yourname.eth + <code>.limo</code></li> 
 <li>yourname.eth + <code>.sucks</code></li> 
</ul> 
<p>For example, my ENS name is <code>planetable.eth</code>, and I can access my site using these addresses:</p> 
<ul> 
 <li><a href="https://planetable.eth.limo/">planetable.eth.limo</a></li> 
 <li><a href="https://planetable.eth.sucks/">planetable.eth.sucks</a></li> 
</ul>
        ]]></description>
    </item>
    
    <item>
        <title>Templates</title>
        <link>https://docs.planetable.eth.sucks/BE61BDB0-0E5F-4A4D-B48C-8A5338C0CABF/</link>
        <guid>https://docs.planetable.eth.sucks/BE61BDB0-0E5F-4A4D-B48C-8A5338C0CABF/</guid>
        <pubDate>Thu, 08 May 2025 12:38:59 -0700</pubDate>
        
        <itunes:image href="https://docs.planetable.eth.sucks/templates/template-browser.png" />    
        
        
        <description><![CDATA[
            <p>When building sites with Planet, you can switch between templates (or themes) for the same content. You can even build your own template with HTML.</p> 
<p>Planet includes several built-in templates; here is an overview of them.</p> 
<table cellspacing="0" cellpadding="0" width="100%"> 
 <tbody>
  <tr> 
   <td width="40%" style="padding: 0px"> <a href="https://planetable.eth.sucks/" target="_blank"><img width="888" alt="template-plain" src="https://docs.planetable.eth.sucks/BE61BDB0-0E5F-4A4D-B48C-8A5338C0CABF/template-plain.png" style="border: none; display: block;" /> </a></td> 
   <td width="auto"> <strong>Plain</strong> <p style="line-break: auto;">The default template. Minimal. Supports both light and dark modes.</p> <p>Example Site: <a href="https://planetable.eth.sucks/" target="_blank">planetable.eth</a></p> </td> 
  </tr> 
  <tr> 
   <td width="40%" style="padding: 0px"> <a href="https://artificial.iweb.eth.sucks/" target="_blank"><img width="888" alt="template-sepia" src="https://docs.planetable.eth.sucks/BE61BDB0-0E5F-4A4D-B48C-8A5338C0CABF/template-sepia.png" style="border: none; display: block;" /></a> </td> 
   <td width="auto"> <strong>Sepia</strong> <p>Great for microblogging.</p> <p>Example Site: <a href="https://artificial.iweb.eth.sucks/" target="_blank">artificial.iweb.eth</a></p> </td> 
  </tr> 
  <tr> 
   <td width="40%" style="padding: 0px"> <a href="https://gamedb.eth.sucks/" target="_blank"><img width="888" alt="template-8bit" src="https://docs.planetable.eth.sucks/BE61BDB0-0E5F-4A4D-B48C-8A5338C0CABF/template-8bit.png" style="border: none; display: block" /></a> </td> 
   <td width="auto"> <strong>8-bit</strong> <p>Pixelated experimental design. 8-bit nostalgia.</p> <p>Example Site: <a href="https://gamedb.eth.sucks/" target="_blank">gamedb.eth</a></p> </td> 
  </tr> 
  <tr> 
   <td width="40%" style="padding: 0px"> <a href="https://yihanphotos.eth.sucks/" target="_blank"><img width="888" alt="template-grid" src="https://docs.planetable.eth.sucks/BE61BDB0-0E5F-4A4D-B48C-8A5338C0CABF/template-grid.png" style="border: none; display: block" /> </a></td> 
   <td width="auto"> <strong>Grid</strong> <p style="line-break: auto;">Grid design. Great for photos. Supports both light and dark modes.</p> <p>Example Site: <a href="https://yihanphotos.eth.sucks/" target="_blank">yihanphotos.eth</a></p> </td> 
  </tr> 
 </tbody>
</table> 
<h2>Template Browser</h2> 
<p>Tool for managing templates. You can find <strong>Template Browser</strong> under the menu <strong>Tools</strong>.</p> 
<img width="1153" alt="template-browser" src="https://docs.planetable.eth.sucks/BE61BDB0-0E5F-4A4D-B48C-8A5338C0CABF/template-browser.png" />
        ]]></description>
    </item>
    
    <item>
        <title>IPFS Publishing</title>
        <link>https://docs.planetable.eth.sucks/8B2A98C5-80EE-40F1-AF44-A008B9DD8F06/</link>
        <guid>https://docs.planetable.eth.sucks/8B2A98C5-80EE-40F1-AF44-A008B9DD8F06/</guid>
        <pubDate>Thu, 08 May 2025 12:36:26 -0700</pubDate>
        
        <itunes:image href="https://docs.planetable.eth.sucks/ipfs/uniswap-cid.png" />    
        
        
        <description><![CDATA[
            <p><a href="https://ipfs.io/">IPFS</a> is an open-source program implemented in several programming languages. The Go version, named Kubo, is the most popular implementation.</p> 
<p>IPFS calculates hashes of files or folders to generate Content Identifiers (CIDs), which it then announces over a massive peer-to-peer network. Anyone with a CID can retrieve the corresponding files from the network.</p> 
<p>Running an IPFS node to host files is straightforward. Simply visit <a href="https://github.com/ipfs/kubo">Kubo's releases page</a> to download and run the single executable binary file, available for all major operating systems.</p> 
<p>No single IPFS node holds all files—each node only provides the CIDs it possesses. However, with IPFS nodes distributed worldwide, the entire network can host very large datasets. This technology, known as a distributed hash table, enables several interesting applications:</p> 
<ul> 
 <li>Single file CIDs are used by many NFT projects. Each NFT image corresponds to a CID, and as long as computers host those files, the NFT images remain retrievable.</li> 
 <li>CIDs can also represent entire folders, allowing IPFS to host complete websites (which are essentially folders containing HTML, CSS, JavaScript, and other assets). Every website built with the Planet app is identified by a folder CID.</li> 
</ul> 
<p>This is fundamentally different from HTTP. With HTTP, accessing specific content requires a server address. With IPFS, you only need the CID. The content may reside on any number of peers, not just a single server.</p> 
<p>Planet includes the IPFS node software, allowing you to publish websites you build with Planet as CIDs. Other IPFS or Planet users can then access them through the distributed network.</p> 
<h2>Local Gateway</h2> 
<p>You can open any IPFS resource using the local gateway. Under <strong>File</strong>, select <strong>Open IPFS Resource</strong>.</p> 
<figure> 
 <img width="1120" alt="ipfs-open" src="https://docs.planetable.eth.sucks/8B2A98C5-80EE-40F1-AF44-A008B9DD8F06/ipfs-open.webp" /> 
 <figcaption>
  File ❯ Open IPFS Resource
 </figcaption> 
</figure> 
<p>This integrated IPFS node provides several useful local ports.</p> 
<p>We have made minor adjustments to the port numbers to prevent conflicts with other programs that may utilize these ports, such as a pre-existing IPFS desktop application.</p> 
<h2>Port 18181</h2> 
<p>This port serves as the local gateway. You can use it to access content on the IPFS P2P network. Below are a few examples.</p> 
<h3>Access a specific CID</h3> 
<p>For example, the <a href="https://github.com/Uniswap/interface/releases/tag/v4.208.0" target="_blank">v4.2.08.0 release of Uniswap</a>:</p> 
<p><code>CIDv1: bafybeiepywaseoxbaccdblzm6thhqjelkwbamd3guh24wfzba2wwvz6hve</code></p> 
<p>Access via Local Gateway:</p> 
<p><code>http://localhost:18181/ipfs/bafybeiepywaseoxbaccdblzm6thhqjelkwbamd3guh24wfzba2wwvz6hve</code></p> 
<figure> 
 <center>
  <img style="max-height: 400px" src="https://docs.planetable.eth.sucks/8B2A98C5-80EE-40F1-AF44-A008B9DD8F06/uniswap-cid.png" alt="Uniswap CID" class="screenshot" />
 </center> 
 <figcaption>
  Access Uniswap via CID
 </figcaption> 
</figure> 
<h3>Access IPNS</h3> 
<p>IPNS is the naming system utilized by IPFS, which can be accessed through the /ipns/ paths as demonstrated below:</p> 
<h3>ENS</h3> 
<p>If an ENS has its content hash pointing to a resource on IPFS, it can be accessed through an IPFS gateway in the following manner:</p> 
<p><code>http://localhost:18181/ipns/vitalik.eth</code></p> 
<figure> 
 <center>
  <img style="max-height: 400px;" src="https://docs.planetable.eth.sucks/8B2A98C5-80EE-40F1-AF44-A008B9DD8F06/ipns-vitalik.eth.png" alt="IPNS: vitalik.eth" class="screenshot" />
 </center> 
 <figcaption>
  IPNS: vitalik.eth
 </figcaption> 
</figure> 
<h4>DNS</h4> 
<p>If a DNS name has a <a href="https://dnslink.dev/" target="_blank">DNSLink</a> TXT record pointing to a resource on IPFS, it can be accessed through an IPFS gateway:</p> 
<p><code>http://localhost:18181/ipns/docs.ipfs.tech/</code></p> 
<figure> 
 <center>
  <img style="max-height: 400px;" src="https://docs.planetable.eth.sucks/8B2A98C5-80EE-40F1-AF44-A008B9DD8F06/ipns-docs.ipfs.tech.png" alt="IPNS: docs.ipfs.tech" class="screenshot" />
 </center> 
 <figcaption>
  IPNS: docs.ipfs.tech
 </figcaption> 
</figure> 
<h3>IPNS</h3> 
<p>Blogs and websites published from Planet are IPNS. Other Planet users can simply use Follow Planet to receive the latest updates, or these can also be accessed through the local gateway. For example, the IPNS powered <a href="https://app.ens.domains/name/planetable.eth/details" target="_blank">planetable.eth</a> is:</p> 
<p><code>k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a</code></p> 
<p>It can be accessed via the local gateway:</p> 
<p><code>http://localhost:18181/ipns/k51qzi5uqu5dgv8kzl1anc0m74n6t9ffdjnypdh846ct5wgpljc7rulynxa74a</code></p> 
<figure> 
 <center>
  <img style="max-height: 400px;" src="https://docs.planetable.eth.sucks/8B2A98C5-80EE-40F1-AF44-A008B9DD8F06/ipns-planetable.eth.png" alt="IPNS: planetable.eth" class="screenshot" />
 </center> 
 <figcaption>
  IPNS: planetable.eth
 </figcaption> 
</figure> 
<h2>Port 5981</h2> 
<p>Kubo, the Go implementation of IPFS, exposes an <a href="https://docs.ipfs.tech/reference/kubo/rpc/" target="_blank">HTTP RPC API</a> that allows you to control the node and run the same commands that you can run from the command line.</p> 
<p>You can access this API on port 5981. For example, the following cURL request would return the Identity of the node:</p> 
<p><code>curl -X POST http://localhost:5981/api/v0/id</code></p> 
<h2>Origin Isolation</h2> 
<p>Origin isolation is an important security feature for decentralized app front-ends running on IPFS gateways. So, when you try to access a URL like this:</p> 
<p><code>http://localhost:18181/ipfs/bafybeiepywaseoxbaccdblzm6thhqjelkwbamd3guh24wfzba2wwvz6hve</code></p> 
<p>Kubo will return a redirect to transform the URL into this:</p> 
<p><code>http://bafybeiepywaseoxbaccdblzm6thhqjelkwbamd3guh24wfzba2wwvz6hve.ipfs.localhost:18181/</code></p> 
<p>However, Safari does not support this kind of URL as of this writing: <code>*.localhost</code>. This is a known issue recorded in the WebKit bug tracking system:</p> 
<p><a href="https://bugs.webkit.org/show_bug.cgi?id=160504">https://bugs.webkit.org/show_bug.cgi?id=160504</a></p> 
<p>To prevent that redirect on Safari, you need to replace <code>localhost</code> with <code>127.0.0.1</code> so that the redirect will not occur:</p> 
<p><code>http://127.0.0.1:18181/ipfs/bafybeiepywaseoxbaccdblzm6thhqjelkwbamd3guh24wfzba2wwvz6hve</code></p>
        ]]></description>
    </item>
    
    <item>
        <title>Markdown Editor</title>
        <link>https://docs.planetable.eth.sucks/86539B97-2733-4A76-AFBA-FDBEC9C651C0/</link>
        <guid>https://docs.planetable.eth.sucks/86539B97-2733-4A76-AFBA-FDBEC9C651C0/</guid>
        <pubDate>Thu, 08 May 2025 12:34:09 -0700</pubDate>
        
        <itunes:image href="https://docs.planetable.eth.sucks/markdown/markdown-editor.png" />    
        
        
        <description><![CDATA[
            <p>Planet has a two-column Markdown editor for easily writing and previewing content. As you write, the preview area on the right automatically updates, allowing you to see the rendered result.</p> 
<figure> 
 <center>
  <img style="max-height: 400px" alt="markdown-editor" src="https://docs.planetable.eth.sucks/86539B97-2733-4A76-AFBA-FDBEC9C651C0/markdown-editor.png" />
 </center> 
 <figcaption>
  Two-Column Markdown Editor
 </figcaption> 
</figure> 
<h2>Attach Media</h2> 
<p>You can attach images, audio, or even video to your post. While there is no limit to attaching images, each post can attach up to one audio or video file.</p> 
<p>You can also drag-and-drop media files to the writing area, and they will be attached.</p> 
<h2>Todo List Syntax</h2> 
<p>GFM (GitHub Flavored Markdown) todo list syntax is supported, making Planet a flexible and powerful tool for organizing to-dos.</p> 
<p>When you enter Markdown like this:</p> 
<pre><code>- [ ] To Do Item 1
- [x] To Do Item 2
</code></pre> 
<p>They will be rendered like this:</p> 
<ul> 
 <li><input type="checkbox" disabled /> To Do Item 1</li> 
 <li><input type="checkbox" checked disabled /> To Do Item 2</li> 
</ul>
        ]]></description>
    </item>
    
</channel>
</rss>
