Add static pages
Seto Elkahfi committed
Jun 17, 2026 at 15:16 UTC
d57a12f946b4dfad144d02e8c0e18675d8ba6e10
7 files changed
+404
app/controllers/pages_controller.rb
+8
index aac3dfe..8d88739 100644
--- a/app/controllers/pages_controller.rb
+++ b/app/controllers/pages_controller.rb
@@ -5,4 +5,12 @@ class PagesController < ApplicationController
render :dashboard
end
end
+
+ def about; end
+
+ def contact; end
+
+ def privacy; end
+
+ def terms; end
end
app/views/layouts/application.html.erb
+6
index 2c5936f..1246aac 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -39,6 +39,12 @@
<div class="max-w-6xl mx-auto px-4 sm:px-6 py-8 flex items-center justify-between text-xs text-gray-500">
<span>
Get <a href="https://getsigit.5mb.app/" class="hover:text-gray-300 transition-colors" target="_blank" rel="noopener noreferrer">siGit Code & Deploy</a></span>
+ <nav class="flex items-center gap-4">
+ <%= link_to "About", about_path, class: "hover:text-gray-300 transition-colors" %>
+ <%= link_to "Privacy", privacy_path, class: "hover:text-gray-300 transition-colors" %>
+ <%= link_to "Terms", terms_path, class: "hover:text-gray-300 transition-colors" %>
+ <%= link_to "Contact", contact_path, class: "hover:text-gray-300 transition-colors" %>
+ </nav>
<div class="flex items-center">
Auth and Mail by <a href="https://smbcloud.xyz/" class="hover:text-gray-300 transition-colors" target="_blank" rel="noopener noreferrer">smbCloud Platform</a>
</div>
app/views/pages/about.html.erb
+69
new file mode 100644
index 0000000..07bbdc2
--- /dev/null
+++ b/app/views/pages/about.html.erb
@@ -0,0 +1,69 @@
+<% content_for :title, "About" %>
+
+<div class="max-w-3xl mx-auto px-4 sm:px-6 py-16 sm:py-20">
+ <div class="text-center mb-12">
+ <img src="/icon.png" alt="siGit Code & Deploy" class="mx-auto h-20 w-auto rounded-2xl border border-surface-600 shadow-lg">
+ </div>
+
+ <div class="prose-readme">
+ <h1>siGit Code & Deploy</h1>
+
+ <p>
+ siGit is Git hosting for the AI era. Version your repositories, publish
+ open-weights models with full model cards and LFS-backed files, and hand the
+ keys to your AI agent over the Agent Client Protocol. Code and models live
+ side by side, in the same storage and the same calm UI.
+ </p>
+
+ <h2>Why this exists</h2>
+ <p>
+ We kept running into the same split. Source code lived in one place, model
+ weights lived somewhere else, and the two never really met. Pushing a model
+ meant a different tool, a different account, and weights scattered across
+ services.
+ </p>
+ <p>
+ So we built siGit. It is plain Git underneath, so nothing about your workflow
+ has to change, but it treats a multi-gigabyte model the same way it treats a
+ source file: something you can host, browse, and version without fuss.
+ </p>
+
+ <h2>What it does</h2>
+ <ul>
+ <li>Host public and private repositories with fast diffs and deep file browsing</li>
+ <li>Clone, fetch, and push over Git with token-authenticated HTTPS</li>
+ <li>Publish open-weights models with model cards parsed straight from your README</li>
+ <li>Store large weights with Git LFS, and see sizes, formats, and quants at a glance</li>
+ <li>Connect AI coding agents over the Agent Client Protocol</li>
+ <li>Use the JSON API and the siGit Code & Deploy desktop and mobile apps</li>
+ <li>Deploy through smbCloud</li>
+ </ul>
+
+ <h2>Who makes it</h2>
+ <p>
+ siGit is built by <a href="https://splitfire.se" target="_blank" rel="noopener noreferrer">Splitfire AB</a>,
+ a small software company in Sweden. Authentication, email, and deploys run on
+ the <a href="https://smbcloud.xyz/" target="_blank" rel="noopener noreferrer">smbCloud</a>
+ platform. We use siGit ourselves daily, which keeps the bug list honest.
+ </p>
+ <p>
+ Questions or feedback:
+ <a href="mailto:splitfire@setoelkahfi.se">splitfire@setoelkahfi.se</a>.
+ </p>
+ </div>
+
+ <div class="mt-12 border-t border-surface-600 pt-8 text-center">
+ <h2 class="text-lg font-semibold text-gray-100 mb-5">Get the app</h2>
+ <div class="flex flex-wrap items-center justify-center gap-4">
+ <a href="https://apps.apple.com/se/app/sigit-git-client-code-editor/id6753018849" target="_blank" rel="noopener noreferrer" aria-label="Download on the App Store">
+ <img src="/images/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg" alt="Download on the App Store" class="h-10">
+ </a>
+ <a href="https://play.google.com/store/apps/details?id=xyz.smbcloud.SiGit" target="_blank" rel="noopener noreferrer" aria-label="Get it on Google Play">
+ <img src="/images/GetItOnGooglePlay_Badge_Web_color_English.png" alt="Get it on Google Play" class="h-10">
+ </a>
+ <a href="https://apps.microsoft.com/detail/xp9k321rf5mzsz?ocid=webpdpshare" target="_blank" rel="noopener noreferrer" aria-label="Get it from the Microsoft Store">
+ <img src="/images/MicrosoftStore_Badge_Web_dark.svg" alt="Get it from the Microsoft Store" class="h-10">
+ </a>
+ </div>
+ </div>
+</div>
app/views/pages/contact.html.erb
+50
new file mode 100644
index 0000000..09571f4
--- /dev/null
+++ b/app/views/pages/contact.html.erb
@@ -0,0 +1,50 @@
+<% content_for :title, "Contact" %>
+
+<div class="max-w-3xl mx-auto px-4 sm:px-6 py-16 sm:py-20">
+ <div class="text-center mb-12">
+ <img src="/icon.png" alt="siGit Code & Deploy" class="mx-auto h-20 w-auto rounded-2xl border border-surface-600 shadow-lg">
+ </div>
+
+ <div class="prose-readme">
+ <h1>Contact</h1>
+
+ <p>
+ Found a bug? Have an idea for the platform? Want to tell us something broke
+ in an interesting way? We are a small team and we read everything.
+ </p>
+
+ <div class="not-prose my-8 rounded-sm border border-surface-500 border-l-4 border-l-brand-500 bg-surface-800 px-5 py-4">
+ <a href="mailto:splitfire@setoelkahfi.se" class="text-lg font-semibold text-brand-500 hover:underline break-all">
+ splitfire@setoelkahfi.se
+ </a>
+ </div>
+
+ <h2>Good reasons to write</h2>
+ <ul>
+ <li>Bug reports, the more specific the better</li>
+ <li>Feature requests for sigit.si or the siGit Code & Deploy app</li>
+ <li>Trouble pushing code or publishing an open-weights model</li>
+ <li>Questions about the desktop app or the Agent Client Protocol integration</li>
+ <li>Problems with the smbCloud deploy integration</li>
+ <li>Partnership or collaboration ideas</li>
+ <li>Anything else, honestly</li>
+ </ul>
+
+ <p>We are based in Sweden. Response times vary but we do respond.</p>
+ </div>
+
+ <div class="mt-12 border-t border-surface-600 pt-8 text-center">
+ <h2 class="text-lg font-semibold text-gray-100 mb-5">Get the app</h2>
+ <div class="flex flex-wrap items-center justify-center gap-4">
+ <a href="https://apps.apple.com/se/app/sigit-git-client-code-editor/id6753018849" target="_blank" rel="noopener noreferrer" aria-label="Download on the App Store">
+ <img src="/images/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg" alt="Download on the App Store" class="h-10">
+ </a>
+ <a href="https://play.google.com/store/apps/details?id=xyz.smbcloud.SiGit" target="_blank" rel="noopener noreferrer" aria-label="Get it on Google Play">
+ <img src="/images/GetItOnGooglePlay_Badge_Web_color_English.png" alt="Get it on Google Play" class="h-10">
+ </a>
+ <a href="https://apps.microsoft.com/detail/xp9k321rf5mzsz?ocid=webpdpshare" target="_blank" rel="noopener noreferrer" aria-label="Get it from the Microsoft Store">
+ <img src="/images/MicrosoftStore_Badge_Web_dark.svg" alt="Get it from the Microsoft Store" class="h-10">
+ </a>
+ </div>
+ </div>
+</div>
app/views/pages/privacy.html.erb
+139
new file mode 100644
index 0000000..1c659e5
--- /dev/null
+++ b/app/views/pages/privacy.html.erb
@@ -0,0 +1,139 @@
+<% content_for :title, "Privacy Policy" %>
+
+<div class="max-w-3xl mx-auto px-4 sm:px-6 py-16 sm:py-20">
+ <div class="text-center mb-12">
+ <img src="/icon.png" alt="siGit Code & Deploy" class="mx-auto h-20 w-auto rounded-2xl border border-surface-600 shadow-lg">
+ </div>
+
+ <div class="prose-readme">
+ <h1>Privacy Policy</h1>
+ <p class="text-gray-500"><em>Last updated: June 17, 2026</em></p>
+
+ <p>
+ siGit Code & Deploy is a Git hosting platform for code and open-weights
+ models, run by Splitfire AB in Sweden. This policy explains what we collect
+ when you use the website at sigit.si, the desktop and mobile apps, and the
+ Git and API endpoints, and what we do with it.
+ </p>
+
+ <h2>What we collect</h2>
+
+ <h3>Account information</h3>
+ <p>
+ When you create an account we collect your email address, username, and a
+ password. Accounts are handled through smbCloud Auth, our authentication
+ provider. Passwords are stored hashed by smbCloud and are never visible to
+ us in plain text.
+ </p>
+
+ <h3>Content you publish</h3>
+ <p>
+ When you push code, publish a model, or interact with the platform, we store
+ what you send us so we can host it. That includes:
+ </p>
+ <ul>
+ <li>Repositories, commits, branches, and the files in them</li>
+ <li>Model repositories, model cards, and Git LFS objects such as GGUF or safetensors weights</li>
+ <li>Stars and other actions you take on public content</li>
+ <li>Profile details you choose to add</li>
+ </ul>
+
+ <h3>Technical data</h3>
+ <p>We automatically record some data when you connect:</p>
+ <ul>
+ <li>IP address and approximate region</li>
+ <li>Browser or client type and version</li>
+ <li>Request logs for the website, the JSON API, and Git over HTTPS</li>
+ <li>Error and crash reports</li>
+ </ul>
+
+ <h2>Public and private content</h2>
+ <p>
+ Anything you mark public, including public repositories and model
+ repositories, is visible to anyone on the internet, along with your username
+ and the content of those repositories. Private content is visible only to you
+ and the people you grant access. Treat the public or private setting as the
+ control over who can see your work.
+ </p>
+
+ <h2>How we use your information</h2>
+ <ul>
+ <li>Run and maintain the platform and host your repositories and models</li>
+ <li>Authenticate you and keep your account secure</li>
+ <li>Serve clones, fetches, and pushes over Git, and requests through the API</li>
+ <li>Send account email such as verification and password resets</li>
+ <li>Diagnose problems and improve performance and reliability</li>
+ <li>Detect and prevent abuse and fraud</li>
+ </ul>
+
+ <h2>Third-party services</h2>
+ <p>
+ We rely on the smbCloud platform for authentication, transactional email,
+ and deployment. These services process the data needed to do their job under
+ their own terms. We do not sell your personal information.
+ </p>
+
+ <h2>Storage and security</h2>
+ <p>
+ Traffic to the website, the API, and Git over HTTPS is encrypted in transit.
+ We use access controls and keep our systems patched. No system is perfectly
+ secure, but we work to protect what you store with us.
+ </p>
+ <p>
+ We keep your account data and content while your account is active. When you
+ remove your account, we delete your account and its associated content,
+ subject to any legal retention obligations and short-lived backups that age
+ out on their own.
+ </p>
+
+ <h2>Your rights</h2>
+ <p>You can:</p>
+ <ul>
+ <li>Access and correct your account information</li>
+ <li>Export your code and models, since they are stored as standard Git repositories</li>
+ <li>Delete your account and its content from the account settings</li>
+ <li>Ask us anything about your data at the address below</li>
+ </ul>
+ <p>
+ If you are in the EU, you also have rights under the GDPR, including data
+ portability, the right to object to processing, and the right to lodge a
+ complaint with a supervisory authority.
+ </p>
+
+ <h2>Cookies</h2>
+ <p>
+ The website uses cookies to keep you signed in and to remember basic
+ preferences. We do not use them to track you across other sites.
+ </p>
+
+ <h2>Children</h2>
+ <p>
+ siGit Code & Deploy is not directed at children. You must be at least 13
+ years old, or 16 in the EU, to create an account. We do not knowingly collect
+ data from children below that age.
+ </p>
+
+ <h2>International transfers</h2>
+ <p>
+ Your data may be processed in countries other than where you live. When that
+ happens we rely on appropriate safeguards in line with applicable data
+ protection law.
+ </p>
+
+ <h2>Changes to this policy</h2>
+ <p>
+ We may update this policy as the platform changes. When we make a significant
+ change we will update this page and, where it matters, let you know by email
+ or in the app.
+ </p>
+
+ <h2>Contact</h2>
+ <p>
+ Questions or requests about your data go to
+ <a href="mailto:splitfire@setoelkahfi.se">splitfire@setoelkahfi.se</a>.
+ </p>
+ <p>
+ Splitfire AB, Sweden. See also our <%= link_to "Terms of Use", terms_path %>.
+ </p>
+ </div>
+</div>
app/views/pages/terms.html.erb
+125
new file mode 100644
index 0000000..d52c414
--- /dev/null
+++ b/app/views/pages/terms.html.erb
@@ -0,0 +1,125 @@
+<% content_for :title, "Terms of Use" %>
+
+<div class="max-w-3xl mx-auto px-4 sm:px-6 py-16 sm:py-20">
+ <div class="text-center mb-12">
+ <img src="/icon.png" alt="siGit Code & Deploy" class="mx-auto h-20 w-auto rounded-2xl border border-surface-600 shadow-lg">
+ </div>
+
+ <div class="prose-readme">
+ <h1>Terms of Use</h1>
+ <p class="text-gray-500"><em>Last updated: June 17, 2026</em></p>
+
+ <h2>1. Acceptance</h2>
+ <p>
+ By using sigit.si, the siGit Code & Deploy apps, or our Git and API
+ endpoints (together, the "Service"), you agree to these Terms. If you do not
+ agree, please do not use the Service. The Service is operated by Splitfire AB
+ in Sweden.
+ </p>
+
+ <h2>2. What the Service is</h2>
+ <p>
+ siGit Code & Deploy is a Git hosting platform for source code and
+ open-weights models. It lets you host public and private repositories, browse
+ files, commits, and diffs, publish models with model cards and Git LFS files,
+ clone and push over HTTPS, use the desktop and mobile apps, and connect AI
+ coding agents over the Agent Client Protocol.
+ </p>
+
+ <h2>3. Accounts</h2>
+ <ul>
+ <li>You need an account to use most features, handled through smbCloud Auth.</li>
+ <li>Provide accurate information and keep your credentials confidential.</li>
+ <li>You are responsible for everything that happens under your account.</li>
+ <li>You must be at least 13 years old, or 16 in the EU.</li>
+ <li>Tell us promptly if you suspect unauthorized use of your account.</li>
+ </ul>
+
+ <h2>4. Acceptable use</h2>
+ <p>You agree not to:</p>
+ <ul>
+ <li>Use the Service for anything illegal or to host unlawful content</li>
+ <li>Upload malware, or use repositories to distribute it</li>
+ <li>Infringe other people's intellectual property or privacy</li>
+ <li>Try to break, overload, or gain unauthorized access to our systems</li>
+ <li>Abuse storage, bandwidth, or Git LFS in ways that disrupt the Service for others</li>
+ <li>Scrape or automate against the Service outside the supported Git and API endpoints</li>
+ <li>Harass or harm other users</li>
+ </ul>
+
+ <h2>5. Your content</h2>
+ <p>
+ You keep ownership of the code, models, and other content you publish. To
+ host and run the Service, you grant us a worldwide, non-exclusive,
+ royalty-free license to store, copy, and display your content as needed to
+ operate the platform and provide it to the people you share it with.
+ </p>
+ <p>
+ You are responsible for your content. You confirm you have the rights to
+ publish it, and that public content does not break any license or agreement
+ you are bound by.
+ </p>
+
+ <h2>6. Open-weights models and licensing</h2>
+ <p>
+ When you publish model weights or datasets, you must have the right to share
+ them and you must respect the license of any upstream model or data you build
+ on. Attach a clear license to what you publish. We are not a party to the
+ licenses between you and the people who use your models, and we do not vet or
+ guarantee their terms.
+ </p>
+
+ <h2>7. Our content</h2>
+ <p>
+ The siGit Code & Deploy software, design, name, and logos belong to
+ Splitfire AB or our licensors. These Terms do not grant you rights to them
+ beyond using the Service as intended.
+ </p>
+
+ <h2>8. Service availability</h2>
+ <p>
+ The Service is provided "as is" and "as available", without warranties of any
+ kind. We may change, suspend, or discontinue parts of the Service, and we aim
+ to give reasonable notice for significant changes.
+ </p>
+
+ <h2>9. Limitation of liability</h2>
+ <p>
+ To the maximum extent permitted by law, Splitfire AB is not liable for
+ indirect, incidental, or consequential damages, or for loss of data, profits,
+ or use, arising from your use of or inability to use the Service. Keep your
+ own backups of anything important. Your repositories are standard Git, so you
+ can always clone a full copy.
+ </p>
+
+ <h2>10. Termination</h2>
+ <p>
+ You may delete your account at any time from your settings. We may suspend or
+ terminate accounts that violate these Terms or put the Service or its users at
+ risk. On termination your license to use the Service ends and we may delete
+ your account data, subject to legal requirements.
+ </p>
+
+ <h2>11. Governing law</h2>
+ <p>
+ These Terms are governed by the laws of Sweden. Disputes will be resolved in
+ the Swedish courts, after a good-faith attempt to settle the matter directly.
+ </p>
+
+ <h2>12. Changes to these Terms</h2>
+ <p>
+ We may update these Terms as the Service evolves. When we make a significant
+ change we will update this page and, where it matters, let you know. Continued
+ use after a change means you accept the updated Terms.
+ </p>
+
+ <h2>13. Contact</h2>
+ <p>
+ Questions about these Terms go to
+ <a href="mailto:splitfire@setoelkahfi.se">splitfire@setoelkahfi.se</a>.
+ </p>
+ <p>
+ Splitfire AB, Sweden. See also our <%= link_to "Privacy Policy", privacy_path %>.
+ </p>
+ </div>
+</div>
config/routes.rb
+7
index 17e8862..41f130c 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,6 +1,13 @@
Rails.application.routes.draw do
root "pages#home"
+ # Static pages — declared before the "/:username" matcher so these literal
+ # slugs aren't read as profiles.
+ get "/about", to: "pages#about", as: :about
+ get "/contact", to: "pages#contact", as: :contact
+ get "/privacy", to: "pages#privacy", as: :privacy
+ get "/terms", to: "pages#terms", as: :terms
+
# Dev panel — only mounted in development
if Rails.env.development?
namespace :dev do