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 & 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 <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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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