decentralized and customizable links page on top of atproto

add terms and open login page

Changed files
+84 -7
src
+1 -1
src/main.py
··· 199 199 200 200 @app.get("/terms") 201 201 def page_terms(): 202 - return "come back soon" 202 + return render_template("terms.html") 203 203 204 204 205 205 async def load_links(
-2
src/static/style.css
··· 30 30 background: var(--color-background); 31 31 color: var(--color-text); 32 32 font-size: 18px; 33 - line-height: 20px; 34 33 font-family: "Inter", system-ui, sans-serif, ui-sans-serif; 35 34 font-variation-settings: normal; 36 35 font-weight: 400; ··· 129 128 130 129 .caption { 131 130 font-size: 0.8em; 132 - line-height: 86%; 133 131 } 134 132 135 133 .faded {
+16 -3
src/templates/index.html
··· 14 14 <div class="wrapper home"> 15 15 <header> 16 16 <h1>ligo.at</h1> 17 + <span class="tagline">alpha software</span><br> 17 18 <span class="tagline">(noun) connection</span> 18 19 </header> 19 20 <p> 20 - Get your own links page for all your social profiles. Decentralized thanks to 21 + Get your own decentralized and personalizable links page for all your social profiles. 22 + Build on top of 21 23 <a href="https://atproto.com/">AT Protocol</a>. 22 24 </p> 23 25 <p> 24 - Coming soon! 26 + ligo.at is still in active development. Schemas and lexicons may change at any time. 27 + If you want to give it a try: 28 + </p> 29 + <p> 30 + <a href="{{ url_for('page_login') }}">login</a> 25 31 </p> 26 32 <footer> 27 - Made by <a href="/@nauta.one">@nauta.one</a> 33 + <p> 34 + <a href="https://tangled.org/@ligo.at/core" target="_blank">source code</a> 35 + <span>·</span> 36 + <a href="{{ url_for('page_terms') }}">terms of service</a> 37 + </p> 38 + <p> 39 + Made by <a href="/@nauta.one">@nauta.one</a><br /> 40 + </p> 28 41 </footer> 29 42 </div> 30 43 </body>
+5 -1
src/templates/login.html
··· 25 25 Use your AT Protocol handle to log in. 26 26 If you're unsure you can <a href="{{ url_for('oauth.oauth_start', authserver='https://bsky.social') }}">log in with Bluesky</a>. 27 27 </span> 28 - <input type="submit" value="log in" /> 28 + <input type="submit" value="continue" /> 29 29 </form> 30 30 <footer> 31 31 <a href="/">home</a> 32 + <span>·</span> 33 + <a href="{{ url_for('page_terms') }}">terms of service</a> 34 + <span>·</span> 35 + <a href="https://tangled.org/@ligo.at/core" target="_blank">source code</a> 32 36 </footer> 33 37 </div> 34 38 <!-- .wrapper -->
+62
src/templates/terms.html
··· 1 + <!doctype html> 2 + <html> 3 + <head> 4 + <meta charset="utf-8" /> 5 + <title>terms of service &mdash; ligo.at</title> 6 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 + <link rel="stylesheet" href="{{ url_for('static', filename='inter.css') }}" /> 8 + <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}" /> 9 + <link rel="icon" type="image/png" sizes="16x16" href="{{ url_for('static', filename='favicon-16.png') }}" /> 10 + <link rel="icon" type="image/png" sizes="32x32" href="{{ url_for('static', filename='favicon-32.png') }}" /> 11 + <link rel="icon" type="image/png" sizes="48x48" href="{{ url_for('static', filename='favicon-48.png') }}" /> 12 + </head> 13 + <body> 14 + <div class="wrapper"> 15 + <header> 16 + <h1>terms of service</h1> 17 + <span class="tagline">last updated: October 16th, 2025</span> 18 + </header> 19 + 20 + <p> 21 + Welcome to ligo.at (“we,” “our,” or “us”). By accessing or using this website (the “Service”), 22 + you agree to these Terms of Service (“Terms”). If you do not agree, please do not use the Service. 23 + </p> 24 + 25 + <p> 26 + By accessing or using our Service, you agree to be bound by these Terms. 27 + If you disagree with any part of these terms, then you may not access the Service. 28 + </p> 29 + 30 + <p> 31 + You retain ownership of the content you upload to the Service. By uploading content, you grant us 32 + a non-exclusive, worldwide, royalty-free license to use, reproduce, modify, and distribute your content 33 + as necessary to provide the Service. 34 + </p> 35 + 36 + <p> 37 + We reserve the right to terminate, suspend, or restrict access to your account at any time, for any reason, 38 + or for no reason at all, at our sole discretion. This includes, but is not limited to, termination for violation 39 + of these Terms, inappropriate conduct, spam, abuse, or any other behavior we deem harmful to the Service or other users. 40 + </p> 41 + 42 + <p> 43 + You agree not to use the Service to: 44 + Violate any applicable laws or regulations. 45 + Infringe upon the rights of others. 46 + Upload, store, or share content that is illegal, harmful, threatening, abusive, harassing, defamatory, vulgar, obscene, or otherwise objectionable. 47 + Engage in spam, phishing, or other deceptive practices. 48 + Attempt to gain unauthorized access to the Service or other users' accounts. 49 + Interfere with or disrupt the Service or servers connected to the Service. 50 + 51 + </p> 52 + 53 + <footer> 54 + <p> 55 + <a href="/">home</a> 56 + <span>·</span> 57 + <a href="https://tangled.org/@ligo.at/core" target="_blank">source code</a> 58 + </p> 59 + </footer> 60 + </div> 61 + </body> 62 + </html>