Add static pages

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