The codebase that powers boop.cat boop.cat

feat: fix duplicate database column and add Tangled to landing

+69 -1
-1
backend-go/db/db.go
··· 96 96 logsPath TEXT, 97 97 commitSha TEXT, 98 98 commitMessage TEXT, 99 - commitMessage TEXT, 100 99 commitAuthor TEXT, 101 100 commitAvatar TEXT, 102 101 FOREIGN KEY(userId) REFERENCES users(id) ON DELETE CASCADE,
+18
client/src/App.jsx
··· 338 338 <div className="footer-inner"> 339 339 <span>© 2025 boop.cat</span> 340 340 <div className="footer-links"> 341 + <a 342 + href="https://tangled.org/scanash.com/boop.cat/" 343 + target="_blank" 344 + rel="noopener noreferrer" 345 + className="tangled-footer-link" 346 + > 347 + <img 348 + src="https://assets.tangled.network/tangled_dolly_face_only_black_on_trans.svg" 349 + className="tangled-icon light-only" 350 + alt="Tangled" 351 + /> 352 + <img 353 + src="https://assets.tangled.network/tangled_dolly_face_only_white_on_trans.svg" 354 + className="tangled-icon dark-only" 355 + alt="Tangled" 356 + /> 357 + <span>Tangled</span> 358 + </a> 341 359 <Link to="/tos">Terms</Link> 342 360 <Link to="/privacy">Privacy</Link> 343 361 <Link to="/dmca">DMCA</Link>
+51
client/src/styles.css
··· 798 798 transform: translateY(-1px); 799 799 } 800 800 801 + .tangled-icon { 802 + width: 20px; 803 + height: 20px; 804 + display: block; 805 + } 806 + 807 + .tangled-nav-link { 808 + display: flex; 809 + align-items: center; 810 + justify-content: center; 811 + width: 40px; 812 + height: 40px; 813 + border-radius: 12px; 814 + background: var(--card-bg); 815 + border: 1px solid var(--card-border); 816 + transition: all 0.2s ease; 817 + } 818 + 819 + .tangled-nav-link:hover { 820 + background: var(--sidebar-hover); 821 + transform: scale(1.05); 822 + } 823 + 824 + .tangled-footer-link { 825 + display: inline-flex; 826 + align-items: center; 827 + gap: 6px; 828 + transition: opacity 0.2s ease; 829 + } 830 + 831 + .tangled-footer-link:hover { 832 + opacity: 0.8; 833 + } 834 + 835 + .tangled-footer-link .tangled-icon { 836 + width: 16px; 837 + height: 16px; 838 + } 839 + 840 + .dark-only { 841 + display: none; 842 + } 843 + 844 + [data-theme='dark'] .dark-only { 845 + display: block; 846 + } 847 + 848 + [data-theme='dark'] .light-only { 849 + display: none; 850 + } 851 + 801 852 .glass-btn.accent { 802 853 background: var(--accent-gradient); 803 854 color: white;