Skip to main content

max / makenotwork

2.9 KB · 62 lines History Blame Raw
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 {% if let Some(token) = csrf_token %}<meta name="csrf-token" content="{{ token }}">{% endif %}
7 <title>{% block title %}Makenotwork{% endblock %}</title>
8 <meta name="description" content="{% block meta_description %}Sell your work directly. 0% platform fee, only Stripe's ~3% processing. Music, software, writing, and more.{% endblock %}">
9
10 {# Global OG / Twitter card metadata. Per-page templates emit their own
11 og:title / og:description / og:image / og:url / twitter:* tags from
12 within {% block head %}; only the page-invariant tags live here.
13 Pages without overrides (cart, library, policy) get a generic but
14 valid card from site_name + type + card. #}
15 <meta property="og:site_name" content="Makenotwork">
16 <meta property="og:type" content="website">
17 <meta name="twitter:card" content="summary_large_image">
18
19 {% include "_head_assets.html" %}
20 {% block head %}{% endblock %}
21 </head>
22 <body{% block body_attrs %}{% endblock %}>
23 <a href="#main-content" class="skip-to-main">Skip to main content</a>
24 <main id="main-content">
25 {% block content %}{% endblock %}
26 </main>
27
28 <footer class="site-footer">
29 <div class="site-footer-links">
30 <a href="/pricing">Pricing</a>
31 <a href="/creators">Creators</a>
32 <a href="/docs">Docs</a>
33 <a href="/policy">Legal</a>
34 <a href="/docs/credits">Credits</a>
35 <a href="/changelog">Changelog</a>
36 <a href="mailto:info@makenot.work">Contact</a>
37 <a href="/health" title="Service status and uptime">Status</a>
38 <a href="#" data-prevent data-action="showWhatsNewModal">What's new</a>
39 <a href="#" data-prevent data-action="toggleShortcutsHelp" title="Keyboard shortcuts (?)">Shortcuts</a>
40 </div>
41 <p>&copy; 2026 Make Creative, LLC</p>
42 </footer>
43
44 <!-- Toast notification container -->
45 <div id="notifications" class="toast-container" role="alert" aria-live="polite"></div>
46
47 <!-- Delegated on* handlers, extracted from inline attributes so the CSP can
48 drop script-src 'unsafe-inline'. The data-action dispatcher + core
49 primitives now live in the typed core module (frontend/src/core),
50 loaded as an ES module in <head> via _head_assets.html; these classic
51 shims resolve through its registry / window bridge. -->
52 <script src="/static/actions-pages.js?v=0701"></script>
53 <script src="/static/actions-partials.js?v=0701"></script>
54 <script src="/static/actions-tabs.js?v=0701"></script>
55 <script src="/static/actions-dashboards.js?v=0701"></script>
56 <script src="/static/synckit-billing.js?v=0620"></script>
57 <script src="/static/synckit-tabs.js?v=0623"></script>
58 <script src="/static/whats_new.js?v=0522"></script>
59 {% block scripts %}{% endblock %}
60 </body>
61 </html>
62