| 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>© 2026 Make Creative, LLC</p> |
| 42 |
</footer> |
| 43 |
|
| 44 |
|
| 45 |
<div id="notifications" class="toast-container" role="alert" aria-live="polite"></div> |
| 46 |
|
| 47 |
|
| 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 |
|