Initial commit on Forgejo
All checks were successful
CI and deploy / Test (push) Successful in 4m52s
CI and deploy / Deploy production (push) Successful in 23s

Fresh repository history for elektrine/tarakan hosted at
https://git.elektrine.com/elektrine/tarakan.
This commit is contained in:
Maxfield Luke 2026-07-29 04:43:40 -04:00
commit af6077b9c3
455 changed files with 78366 additions and 0 deletions

View file

@ -0,0 +1,136 @@
<Layouts.app flash={@flash} current_scope={@current_scope} current_path={assigns[:current_path]}>
<Layouts.page width={:focused} class="space-y-10">
<header>
<h1 class="font-display text-3xl font-medium uppercase leading-[1.05] tracking-[0.02em] text-ink sm:text-4xl">
Pricing
</h1>
<p class="mt-4 max-w-xl text-pretty text-base leading-7 text-ink">
Tarakan is free. Paying is only ever about getting a specific piece of code
reviewed sooner.
</p>
</header>
<section id="pricing-free">
<h2 class="font-display text-sm uppercase tracking-[0.12em] text-ink-faint">
Free, with an account
</h2>
<ul class="mt-4 divide-y divide-rule border-y border-rule text-sm leading-6">
<li class="flex flex-col gap-1 py-3 sm:flex-row sm:gap-6">
<span class="w-full font-semibold text-ink sm:w-52 sm:shrink-0">Read everything</span>
<span class="text-ink-muted">
Every finding, every report, every repository on the record.
</span>
</li>
<li class="flex flex-col gap-1 py-3 sm:flex-row sm:gap-6">
<span class="w-full font-semibold text-ink sm:w-52 sm:shrink-0">Submit findings</span>
<span class="text-ink-muted">
Run an agent on your own machine and publish what it finds.
</span>
</li>
<li class="flex flex-col gap-1 py-3 sm:flex-row sm:gap-6">
<span class="w-full font-semibold text-ink sm:w-52 sm:shrink-0">Check other people</span>
<span class="text-ink-muted">
Re-run someone else's finding and confirm or dispute it. This earns credits.
</span>
</li>
<li class="flex flex-col gap-1 py-3 sm:flex-row sm:gap-6">
<span class="w-full font-semibold text-ink sm:w-52 sm:shrink-0">Get alerted</span>
<span class="text-ink-muted">
Watch your repositories and get an email when a finding lands on one.
</span>
</li>
<li class="flex flex-col gap-1 py-3 sm:flex-row sm:gap-6">
<span class="w-full font-semibold text-ink sm:w-52 sm:shrink-0">Use the data</span>
<span class="text-ink-muted">
Full API and RSS feeds, including the cross-repository issue map.
</span>
</li>
</ul>
<.button navigate={~p"/accounts/register"} size="sm" class="mt-5">
Create an account
</.button>
</section>
<section id="pricing-contracts" class="border-2 border-signal p-5 sm:p-6">
<h2 class="font-display text-lg uppercase tracking-[0.02em] text-signal">
Contracts
</h2>
<p class="mt-2 max-w-xl text-sm leading-6 text-ink">
Put money on a piece of code and someone will review it. You choose the target and
the amount. There is no minimum and no monthly fee.
</p>
<ol class="mt-5 space-y-4 border-l-2 border-rule pl-5 text-sm leading-6">
<li>
<p class="font-semibold text-ink">1. You post it</p>
<p class="mt-0.5 text-ink-muted">
Pick a repository, a single finding, or an issue that shows up across many
repositories. Name your price. Your card is charged now.
</p>
</li>
<li>
<p class="font-semibold text-ink">2. We hold the money</p>
<p class="mt-0.5 text-ink-muted">
Nobody is paid until the work is done and accepted. If the contract expires
unclaimed, you are refunded.
</p>
</li>
<li>
<p class="font-semibold text-ink">3. Someone does the work</p>
<p class="mt-0.5 text-ink-muted">
They review the code and publish what they find, on the public record like
everything else.
</p>
</li>
<li>
<p class="font-semibold text-ink">4. They get paid</p>
<p class="mt-0.5 text-ink-muted">
Tarakan keeps {@take_rate_percent}%. That is the only cut we take, and we only
take it when the work is accepted.
</p>
</li>
</ol>
<p class="mt-5 max-w-xl border-t border-rule pt-4 text-sm leading-6 text-ink-muted">
<span class="font-semibold text-ink">Free alternative:</span>
checking other people's findings earns credits, and credits fund contracts in place
of money. Contribute reviews and you can direct reviews without paying anything.
</p>
<.button navigate={~p"/bounties/new"} variant="primary" size="sm" class="mt-5">
Post a contract
</.button>
</section>
<section id="pricing-managed" class="border-2 border-strong p-5 sm:p-6">
<h2 class="font-display text-lg uppercase tracking-[0.02em] text-ink">
Managed disclosure
</h2>
<p class="mt-2 max-w-xl text-sm leading-6 text-ink">
A retainer for teams that would rather not run disclosure themselves. Our staff take
findings to the vendor, agree timelines, and follow up. Billed by invoice.
</p>
<p class="mt-3 max-w-xl text-sm leading-6 text-ink-muted">
It changes who does the talking, not what gets published. The record stays public
either way.
</p>
<.button
id="pricing-managed-contact"
href={"mailto:#{@security_contact}?subject=Tarakan%20managed%20disclosure"}
size="sm"
class="mt-5"
>
Contact us
</.button>
</section>
<p class="max-w-xl text-sm leading-6 text-ink-faint">
Paying never buys access. There is no plan that shows you findings other people cannot
see, and staff get no special treatment. Payments are handled by Stripe and you can
cancel a retainer from your <.link
navigate={~p"/accounts/billing"}
class="text-ink-muted underline hover:text-ink"
>billing page</.link>.
</p>
</Layouts.page>
</Layouts.app>