don't look at me i'm hideous [first credit sale commit]

This commit is contained in:
Jeremy Kauffman 2015-11-23 11:18:29 -05:00
parent 29008baf14
commit e78acd297a
33 changed files with 801 additions and 180 deletions

View file

@ -39,6 +39,8 @@ class Controller
{
case '/':
return ContentActions::executeHome();
case '/fund':
return CreditActions::executeFund();
case '/get':
return ContentActions::executeGet();
case '/postcommit':

View file

@ -9,7 +9,10 @@ class ContentActions extends Actions
{
public static function executeHome()
{
return ['page/home', []];
return ['page/home', [
'totalUSD' => CreditApi::getTotalDollarSales(),
'totalPeople' => CreditApi::getTotalPeople()
]];
}
public static function executeGet()

View file

@ -0,0 +1,21 @@
<?php
/**
* Description of CreditActions
*
* @author jeremy
*/
class CreditActions extends Actions
{
public static function executeFund()
{
$fundStartTime = strtotime('2015-11-15');
$daysActive = floor((time() - $fundStartTime) / (60*60*24));
return ['page/fund', [
'totalUSD' => CreditApi::getTotalDollarSales(),
'totalPeople' => CreditApi::getTotalPeople(),
'creditsPerDollar' => CreditApi::getCreditsPerDollar($daysActive),
'creditsPerDollarTomorrow' => CreditApi::getCreditsPerDollar($daysActive + 1),
]];
}
}

View file

@ -3,9 +3,9 @@
/**
* i18n dummy we'll be happy to have later
*/
function __($msg)
function __($msg, $args = [])
{
return $msg;
return strtr($msg, $args);
}
/**
@ -17,6 +17,16 @@ class i18n
{
public static function register() /*needed to trigger class include, presumably setup would happen here*/
{
setlocale(LC_MONETARY, 'en_US.UTF-8');
}
public static function formatCurrency($amount, $currency = 'USD')
{
return '<span class="formatted-currency">' . money_format('%.2n', $amount) . '</span>';
}
public static function formatCredits($amount)
{
return '<span class="formatted-credits">' . number_format($amount, 1) . ' LBC</span>';
}
}

25
model/CreditApi.class.php Normal file
View file

@ -0,0 +1,25 @@
<?php
/**
* Description of CreditApi
*
* @author jeremy
*/
class CreditApi
{
public static function getTotalDollarSales()
{
return 22585;
}
public static function getTotalPeople()
{
return 573;
}
public static function getCreditsPerDollar($days)
{
//naive algo = decrease 0.5% per day
return 200 * max(0, 100 - $days / 2) / 100;
}
}

View file

@ -1,21 +1,22 @@
<div class="control-item">
<a href="/get" <?php echo $selectedItem === '/get' ? 'class="nav-active"' : ''?>>Get</a>
</div>
<div class="control-item">
<a href="/what" <?php echo $selectedItem === '/what' ? 'class="nav-active"' : ''?>>What</a>
</div>
<div class="control-item">
<a href="/why" <?php echo $selectedItem === '/why' ? 'class="nav-active"' : ''?>>Why</a>
</div>
<div class="control-item">
<a href="//blog.lbry.io">News</a>
</div>
<div class="control-item">
<a href="/team" <?php echo $selectedItem === '/team' ? 'class="nav-active"' : ''?>>Team</a>
<?php foreach([
'/fund' => __('Fund'),
'/get' => __('Get'),
'//blog.lbry.io' => __('News'),
'/learn' => __('Learn'),
// '/what' => __('What'),
// '/why' => __('Why'),
// '/team' => __('Team')
] as $url => $label): ?>
<div class="control-item">
<a href="<?php echo $url ?>" <?php echo $selectedItem === $url ? 'class="nav-active"' : ''?>><?php echo $label ?></a>
</div>
<?php endforeach ?>
<div class="control-item no-label">
<a href="//twitter.com/lbryio"><span class="icon icon-twitter"></span><span class="btn-label">Twitter</span></a>
</div>
<div class="control-item no-label">
<a href="http://twitter.com/lbryio"><span class="icon icon-twitter"></span><span class="btn-label">Twitter</span></a>
<a href="//www.facebook.com/lbryio"><span class="icon icon-facebook"></span> <span class="btn-label">Facebook</span></a>
</div>
<div class="control-item no-label">
<a href="https://www.facebook.com/lbryio"><span class="icon icon-facebook"></span> <span class="btn-label">Facebook</span></a>
<a href="//reddit.com/r/lbry"><span class="icon icon-reddit"></span><span class="btn-label">Reddit</span></a>
</div>

62
view/nav/learnFooter.php Normal file
View file

@ -0,0 +1,62 @@
<div class="cover cover-dark cover-dark-grad ">
<div class="content content-dark spacer2">
<div class="row-fluid">
<div class="span6">
<h3><?php echo __('Sounds Great. What\'s Next?') ?></h3>
<table class="table-layout">
<tr>
<td>
<a href="/fund" class="btn-alt btn-full-width"><?php echo __('Buy') ?></a>
</td>
<td>
<?php echo __('Pre-buy credits and support LBRY.') ?>
</td>
</tr>
<tr>
<td>
<a href="/get" class="btn-alt btn-full-width"><?php echo __('Test') ?></a>
</td>
<td>
<?php echo __('Test a LBRY pre-release and earn credits.') ?>
</td>
</tr>
</table>
<ul>
<li><a href="/join-list" class="link-primary">Join our email list.</a></li>
<li>Join us on <a href="//twitter.com/lbryio" class="link-primary"><span class="btn-label">Twitter</span><span class="icon icon-twitter"></span></a>,
<a href="//facebook.com/lbryio" class="link-primary"><span class="btn-label">Facebook</span><span class="icon icon-facebook"></span></a>,
or <a href="//reddit.com/r/lbry" class="link-primary"><span class="btn-label">Reddit</span><span class="icon icon-reddit"></span></a>.</li>
</ul>
</div>
<div class="span6">
<h3><?php echo __('I Want To Know More') ?></h3>
<ul>
<?php if ($_SERVER['REQUEST_URI'] != '/what'): ?>
<li>Learn about <a href="/what" class="link-primary">exactly what LBRY is</a>.</li>
<?php endif ?>
<?php if ($_SERVER['REQUEST_URI'] != '/why'): ?>
<li>Read about <a href="/why" class="link-primary">why we've created LBRY</a>.</li>
<?php endif ?>
<?php if ($_SERVER['REQUEST_URI'] != '/team'): ?>
<li>Find out about <a href="/team" class="link-primary">the team behind LBRY</a>.</li>
<?php endif ?>
<li>Access our
<a href="https://docs.google.com/document/u/1/d/1F2kcuWa8ccGdDZwAyPs3tddvATjN9rcq3iKkyJp9SYM/edit?usp=drive_web"
class="link-primary">business plan</a>.
</li>
<li>Watch our
<a href="https://docs.google.com/presentation/u/1/d/1zaAPzh9cqvwVD5X7Ewn7_vuBWlJcjNPIfYuUg1rVhRo/present?noreplica=1&slide=id.p"
class="link-primary">pitch deck</a>.
</li>
</ul>
</div>
</div>
</div>
</div>
<?php /*
* <div class="content text-center spacer2">
<h3>Not Ready to Get Serious?</h3>
<p>Join our mailing list for updates about LBRY.</p>
</div>
*/ ?>

182
view/page/fund.php Normal file
View file

@ -0,0 +1,182 @@
<?php Response::setMetaDescription('Download or install the latest version of LBRY.') ?>
<?php Response::setMetaTitle(__('Get LBRY')) ?>
<?php echo View::render('nav/header', ['isDark' => false]) ?>
<main>
<div class="cover cover-dark cover-dark-grad">
<div class="row-fluid">
<div class="span9 spacer2">
<div class="row-fluid">
<div class="span7">
<h1 class="text-center"><img src="/img/lbry-white-485x160.png" alt="Fund LBRY"/></h1>
</div>
<div class="span5" >
<div class="cover-simple cover-center" style="min-height: 160px">
<h2 class="text-center sale-title">
<span class="sale-title-emphasis"><?php echo $totalPeople ?></span>
<span class="sale-title-filler">have given</span>
<span class="sale-title-emphasis"><?php echo i18n::formatCurrency($totalUSD) ?></span>
<span class="sale-title-filler">to</span>
<br/>
<span class="label-cycle">
<span class="sale-cta"><?php echo implode('</span><span class="sale-cta">', [
__('build a better future'),
__('eliminate corporate middlemen'),
__('keep art alive'),
__('create a more sustainable internet'),
__('protect freedom of speech'),
__('reduce the cost of education'),
]) ?></span>
</span>
</h2>
</div>
</div>
</div>
<h3>Select Your Level</h3>
<?php ob_start() ?>
<ul>
<li><?php echo __('A personal thank you in the source code, recording your contribution for eternity.') ?></li>
<li><?php echo __('1 year of support from LBRY.') ?></li>
<li><?php echo __('Early access to all LBRY Releases.') ?></li>
</ul>
<?php $basicRewardHtml = ob_get_clean() ?>
<?php ob_start() ?>
<ul>
<li><?php echo __('All above rewards.') ?></li>
<li><?php echo __('LBRY .') ?></li>
<li><?php echo __('Thing.') ?></li>
</ul>
<?php $standardRewardHtml = ob_get_clean() ?>
<?php ob_start() ?>
<ul>
<li><?php echo __('All above rewards.') ?></li>
<li><?php echo __('LBRY T-shirt') ?></li>
<li><?php echo __('Join LBRY Team Chat') ?></li>
</ul>
<?php $premiumRewardHtml = ob_get_clean() ?>
<div class="sale-levels spacer2">
<?php foreach([[
'id' => 'basic',
'label' => __('Basic'),
'cost' => 10,
'rewardHtml' => $basicRewardHtml
], [
'id' => 'standard',
'label' => __('Standard'),
'cost' => 25,
'rewardHtml' => $standardRewardHtml
], [
'id' => 'premium',
'label' => __('Premium'),
'cost' => 100,
'rewardHtml' => $premiumRewardHtml
]] as $level): ?>
<div class="sale-level">
<h4 class="sale-level-label"><?php echo $level['label'] ?></h4>
<div class="sale-level-cost"><?php echo i18n::formatCurrency($level['cost']) ?></div>
<div class="row-fluid clear">
<div class="span3 spacer1">
<h6 class="sale-level-reward-title"><?php echo __('Credit Reward') ?></h6>
<?php $creditsToday = $level['cost'] * $creditsPerDollar ?>
<?php $creditFall = $creditsToday - $level['cost'] * $creditsPerDollarTomorrow ?>
<div class="sale-level-credits"><?php echo i18n::formatCredits($creditsToday) ?></div>
<div class="sale-level-help">
<?php echo __('This reward falls by %amount% tomorrow!', [
'%amount%' => i18n::formatCredits($creditFall)
]) ?>
</div>
</div>
<div class="span9">
<h6 class="sale-level-reward-title"><?php echo __('Additional Rewards') ?></h6>
<div class="sale-level-reward"><?php echo $level['rewardHtml'] ?></div>
</div>
</div>
<input name="fund-id" value="<?php echo $level['id'] ?>" type="radio" class="sale-level-radio"/>
</div>
<?php endforeach ?>
</div>
<div class="sale-checkout-acknowledgements spacer2">
<h4><?php echo __('Acknowledgements') ?></h4>
<div class="content content-dark">
<div class="form-row">
<label for="fund-not-investment">
<input type="checkbox" id="fund-not-investment" value="not_investment">
<?php echo __('I am making this purchase to acquire LBC for my own personal use on the LBRY network.') ?>
<?php echo __('I am not acquiring LBC for speculation purposes, investment purposes, or with any intent to resell.') ?>
</label>
</div>
<div class="form-row">
<label for="fund-not-guaranteed">
<input type="checkbox" id="fund-not-guaranteed" value="not_guaranteed">
<?php echo __('I acknowledge that LBRY is a new, unproven venture.') ?>
<?php echo __('I understand and accept that LBRY may fail for any number of reasons and there is no guarantee my credits will be redeemable.') ?>
</label>
</div>
</div>
</div>
<div class="sale-checkout-select">
<h4><?php echo __('Select Payment') ?></h4>
<div class="control-group">
<div class="control-item control-item-img">
<a href="/fund"><img src="/img/bitcoin-button-126x48.png" alt="<?php echo __('Pay with Bitcoin') ?>" /></a>
</div>
<div class="control-item control-item-img">
<a href="/fund" ><img src="/img/paypal-button-170x32.png" style="margin-top: 5px" alt="<?php echo __('Pay with PayPal') ?>" /></a>
</div>
<div class="control-item" style="vertical-align: top; margin-top: 7px;">
<a href="/fund" class="btn-alt"><span class="icon-shopping-cart" style="margin-right: 2px"></span> <?php echo __('Pay with Credit') ?></a>
</div>
</div>
</div>
</div>
<div class="span3">
<div class="sale-question-bubble">
<h4 class="sale-question"><?php echo __('Where Does My Money Go?') ?></h4>
<div class="sale-question-answer">
<p>
<?php echo __('These funds will fund the develop of LBRY on all platforms, spur the LBRY ecosystem, and generally help LBRY launch as a race car rather than a bus.') ?>
</p>
<p>
<?php echo __('LBRY will launch even if $0 is raised.') ?>
<?php echo __('Funds will be administered with complete transparency.') ?>
</p>
<a class="link-primary" href="/learn"><?php echo __('Learn More') ?></a>
</div>
</div>
<div class="sale-question-bubble">
<h4 class="sale-question"><?php echo __('What Do I Get?') ?> <?php echo __('What is LBC?') ?></h4>
<div class="sale-question-answer">
<p>
<?php echo __('Anytime someone publishes or accesses data via the LBRY network, LBRY Credits, or LBC, are required.') ?>
</p>
<p>
<?php echo __('There are two primary reasons to buy LBC now:') ?><br/>
<?php echo __('1) This is probably the cheapest they will ever be.') ?><br/>
<?php echo __('2) You will help build the greatest information sharing network the world has ever seen.') ?>
</p>
<a class="link-primary" href="/learn"><?php echo __('Learn More') ?></a>
</div>
</div>
<div class="sale-question-bubble">
<h4 class="sale-question"><?php echo __('Why Can I Only Buy Up To $100?') ?></h4>
<div class="sale-question-answer">
<p>
<?php echo __('This pre-buy program is only intended to sell you credits for your own personal use, not for speculation.') ?>
</p>
<p>
<?php echo __('If you wish to contribute more than $100 to this project, we would happily receive your money as a donation.') ?>
</p>
</div>
</div>
<div class="sale-question-bubble">
<h4 class="sale-question"><?php echo __('I Want To Talk To Someone Or Have Another Question.') ?></h4>
<div class="sale-question-answer">
<p>
<?php echo __('This is a way to talk to someone.') ?>
</p>
</div>
</div>
</div>
</div>
</div>
</main>
<?php echo View::render('nav/footer') ?>

View file

@ -1,65 +0,0 @@
<?php Response::setMetaDescription('Download or install the latest version of LBRY.') ?>
<?php echo View::render('nav/header', ['isDark' => false]) ?>
<?php throw new Exception('not used atm') ?>
<div class="content spacer1">
<h1>Get LBRY</h1>
<div class="notice notice-info">
<strong>This is a pre-release, alpha version of LBRY.</strong> It is only designed to show what LBRY makes possible.
Expect future releases to involve a full network reboot of both credits and metadata.
</div>
</div>
<div class="content">
<h2>Install</h2>
<div class="row-fluid">
<div class="span4">
<h3><span class="icon-windows"></span> Windows</h3>
<p class="meta">
If you have a standard Windows install, it will insinuate several times that you are an idiot for following the steps below.
And perhaps you are, but not because this code is dangerous or will harm your computer in any way. Future releases will involve more reputable install steps.
</p>
<ol>
<li>Download <a href="https://github.com/lbryio/lbry/releases/download/alpha/lbry-windows.zip" class="link-primary">this ZIP</a> file.</li>
<li>There is no installer. Extract the ZIP to wherever you want the program to reside, such as <code>Program Files</code>.</li>
<li>Run lbry.exe.</li>
</ol>
</div>
<div class="span4">
<h3><span class="icon-linux"></span> Linux</h3>
<div>
<h4>The Brave and Lazy</h4>
<ol>
<li>Make a folder called <code>lbry</code> where you want everything to reside.</li>
<li>Download and run <a href="https://raw.githubusercontent.com/lbryio/lbry-setup/master/lbry_setup.sh" class="link-primary">this shell script</a> from that folder.</li>
</ol>
<h4>The Shrewd and Frivolous</h4>
<ol>
<li>Clone and follow the build steps for <a href="https://github.com/lbryio/lbrycrd" class="link-primary">lbrycrd</a>, a miner for LBRY credits.</li>
<li>Clone and follow the build steps for <a href="https://github.com/lbryio/lbry" class="link-primary">lbry</a>, a console based application for using the LBRY protocol.</li>
</ol>
</div>
</div>
<div class="span4">
<h3><span class="icon-apple"></span> OS X</h3>
<div>
<h4>OS X Programmers</h4>
<p>You can attempt to follow the Linux build instructions.</p>
<h4>Everyone Else</h4>
<p>Sorry, we do not have an OS X version of LBRY other than source. We promise one will exist sooner rather than later.</p>
</div>
</div>
</div>
<h2>Test</h2>
<p>To ensure LBRY is installed correctly, try accessing a piece of content:</p>
<div class="text-center spacer1">
<code>lbry://wonderfullife</code>
</div>
<p class="meta">In the graphical version, this can accessed by typing "wonderfullife" into the address bar and pressing "Go". In the console version, select "[7] Add a stream from a short name".</p>
<div class="spacer2">
<h2>Feedback</h2>
<p>We've prepared a short form for feedback regarding your LBRY experience, available below.</p>
<p>We're providing 10,000 LBC (~$100) to the first 500 people who download LBRY and submit their feedback.</p>
<p><a href="https://docs.google.com/forms/d/1zqa5jBYQMmrZO1utoF2Ok9ka-gXzXLDZKXNNoprufC8/viewform" class="btn-primary">Provide Your Feedback</a></p>
</div>
</div>
<?php echo View::render('nav/footer') ?>

View file

@ -3,51 +3,55 @@
<?php echo View::render('nav/header', ['isDark' => false]) ?>
<main class="column-fluid">
<div class="span6">
<div class="cover cover-dark cover-dark-grad content content-dark">
<div class="meta meta-large">
<span class="icon-mobile"></span> <span class="icon-windows"></span> <span class="icon-android"></span>
<div class="cover cover-dark cover-dark-grad">
<div class="content content-dark">
<div class="meta meta-large">
<span class="icon-mobile"></span> <span class="icon-windows"></span> <span class="icon-android"></span>
</div>
<h1><?php echo __('I want LBRY for mobile, Windows, or shudder at the phrase "command line".') ?></h1>
<p class="pflow">LBRY is coming out on your favorite platform soon. Join our list to know when.</p>
<?php echo View::render('mail/joinList', [
'submitLabel' => 'Go',
'listId' => Mailchimp::LIST_GENERAL_ID,
'mergeFields' => ['CLI' => 'No'],
'btnClass' => 'btn-alt'
]) ?>
</div>
<h1><?php echo __('I want LBRY for mobile, Windows, or shudder at the phrase "command line".') ?></h1>
<p class="pflow">LBRY is coming out on your favorite platform soon. Join our list to know when.</p>
<?php echo View::render('mail/joinList', [
'submitLabel' => 'Go',
'listId' => Mailchimp::LIST_GENERAL_ID,
'mergeFields' => ['CLI' => 'No'],
'btnClass' => 'btn-alt'
]) ?>
</div>
</div>
<div class="span6">
<div class="cover cover-light content">
<div class="meta meta-large">
<span class="icon-linux"></span> <span class="icon-apple"></span>
<div class="cover cover-light">
<div class="content">
<div class="meta meta-large">
<span class="icon-linux"></span> <span class="icon-apple"></span>
</div>
<h1><?php echo __('I am a Linux or OS X user comfortable from the command line.') ?></h1>
<p class="pflow">Earn early adopter rewards and interact directly with developers via our Alpha client.</p>
<?php if (!$isSubscribed): ?>
<div class="spacer1">
<?php echo View::render('mail/joinList', [
'submitLabel' => 'Go',
'listId' => Mailchimp::LIST_GENERAL_ID,
'mergeFields' => ['CLI' => 'Yes'],
'returnUrl' => '/get?email=1'
]) ?>
</div>
<div class="meta">
Already sign up or really hate sharing your email? <a href="/get?email=1" class="link-primary">Click here.</a>
</div>
<?php else: ?>
<div class="content-inset">
<ul class="no-style">
<li>
<a href="/linux" class="link-primary"><span class="icon-linux"></span> Linux</a>
</li>
<li>
<a href="/osx" class="link-primary"><span class="icon-apple"></span> OS X</a>
</li>
</ul>
</div>
<?php endif ?>
</div>
<h1><?php echo __('I am a Linux or OS X user comfortable from the command line.') ?></h1>
<p class="pflow">Earn early adopter rewards and interact directly with developers via our Alpha client.</p>
<?php if (!$isSubscribed): ?>
<div class="spacer1">
<?php echo View::render('mail/joinList', [
'submitLabel' => 'Go',
'listId' => Mailchimp::LIST_GENERAL_ID,
'mergeFields' => ['CLI' => 'Yes'],
'returnUrl' => '/get?email=1'
]) ?>
</div>
<div class="meta">
Already sign up or really hate sharing your email? <a href="/get?email=1" class="link-primary">Click here.</a>
</div>
<?php else: ?>
<div class="content-inset">
<ul class="no-style">
<li>
<a href="/linux" class="link-primary"><span class="icon-linux"></span> Linux</a>
</li>
<li>
<a href="/osx" class="link-primary"><span class="icon-apple"></span> OS X</a>
</li>
</ul>
</div>
<?php endif ?>
</div>
</div>
</main>

View file

@ -4,22 +4,63 @@
<?php echo View::render('nav/header', ['isDark' => true]) ?>
<main class="column-fluid">
<div class="span12">
<div class="cover cover-dark cover-center">
<h2 class="cover-title">Watch, Share, Earn.</h2>
<div class="text-center">
<h3 class="cover-subtitle">Join a fully distributed network that makes information open to everyone.</h3>
<div class="control-group spacer1">
<div class="control-item">
<a href="/get" class="btn-primary">Get LBRY</a>
<div class="cover cover-dark">
<div class="content content-wide content-dark">
<div class="text-center">
<h1 class="cover-title">Stream, Share, Earn.</h1>
</div>
<div class="row-fluid">
<div class="span5 ">
<?php $labels = [
__('making history'),
__('empowering artists'),
__('spreading knowledge'),
__('sharing sustainably'),
__('protecting speech'),
__('building tomorrow'),
__('eliminating middlemen'),
__('furthering education'),
] ?>
<?php shuffle($labels) ?>
<div class="sale-call ">
<span class="sale-call-verb"><?php echo __('Join') ?></span>
<span class="sale-call-total-people"><?php echo $totalPeople ?></span>
<span class="sale-call-prep">in</span>
<span class="sale-ctas label-cycle" data-cycle-interval="5000">
<span class="sale-cta"><?php echo implode('</span><span class="sale-cta">', $labels) ?></span>
</span>
</div>
<div class="control-group spacer1 text-center">
<div class="control-item">
<a href="/fund" class="btn-primary">Fund LBRY</a>
</div>
<div class="control-item">
<a href="/learn" class="btn-alt">Learn More</a>
</div>
</div>
</div>
<div class="control-item">
<a href="/what" class="btn-alt">Learn More</a>
<div class="span7">
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/qMUbq3sbG-o?rel=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
<div class="video">
<iframe width="560" height="315" src="https://www.youtube.com/embed/EHljV6Tg24Y" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
</main>
<?php /*
* <h1>Stream, Share, Earn.</h1>
<div class="text-center">
<h3 class="cover-subtitle">Join a fully distributed network that makes information open to everyone.</h3>
<div class="control-group spacer1">
<div class="control-item">
<a href="/get" class="btn-primary">Get LBRY</a>
</div>
<div class="control-item">
<a href="/what" class="btn-alt">Learn More</a>
</div>
</div>
</div>
*/ ?>

37
view/page/join-list.php Normal file
View file

@ -0,0 +1,37 @@
<?php Response::setMetaTitle(__('Join LBRY Email List')) ?>
<?php Response::setMetaDescription(__('Join our email list and receive updates about LBRY via email.')) ?>
<?php echo View::render('nav/header', ['isDark' => false ]) ?>
<main>
<div class="content">
<div class="row-fluid">
<div class="span9">
<h1><?php echo __('Join Email List') ?></h1>
<p>
<?php echo __('Join our email list and receive updates about LBRY via email.') ?>
</p>
<?php echo View::render('mail/joinList', [
'submitLabel' => 'Subscribe',
'returnUrl' => '/join-list',
'listId' => Mailchimp::LIST_GENERAL_ID
]) ?>
<div class="meta">
<?php echo __('You will receive 1-2 messages a month, only from LBRY, Inc. and only about LBRY.') ?>
<?php echo __('You can easily unsubscribe at any time.') ?>
</div>
</div>
<div class="span3">
<h3><?php echo __('Also On') ?></h3>
<div class="spacer1">
<a href="//twitter.com/lbryio" class="link-primary"><span class="icon icon-twitter"></span><span class="btn-label">Twitter</span></a>
</div>
<div class="spacer1">
<a href="//www.facebook.com/lbryio" class="link-primary"><span class="icon icon-facebook"></span> <span class="btn-label">Facebook</span></a>
</div>
<div class="spacer1">
<a href="//reddit.com/r/lbry" class="link-primary"><span class="icon icon-reddit"></span><span class="btn-label">Reddit</span></a>
</div>
</div>
</div>
</div>
</main>
<?php echo View::render('nav/footer') ?>

70
view/page/learn.php Normal file
View file

@ -0,0 +1,70 @@
<?php Response::setMetaDescription('Download or install the latest version of LBRY.') ?>
<?php Response::setMetaTitle(__('Learn About LBRY')) ?>
<?php echo View::render('nav/header', ['isDark' => false]) ?>
<main class="column-fluid">
<div class="span4">
<div class="cover cover-column cover-dark cover-dark-grad">
<div class="content content-dark">
<h1><?php echo __('What?') ?></h1>
<div class="spacer1">
<div class="spacer1">
<a href="/img/lbry-win-ss-783x272.png">
<img src="/img/lbry-win-ss-783x272.png" />
</a>
</div>
<p><em>Puts on jargon hat.</em></p>
<p>
LBRY is a decentralized, censorship-resistant, open-source, peer-to-peer information marketplace and discovery protocol.
</p>
<p><em>Removes jargon hat.</em></p>
<p>
LBRY is a new way for people to publish and share content with each other.
</p>
<p>
Our goal is to provide a single box that allows anyone anywhere to find and purchase digital content from anyone else.
</p>
</div>
<a href="/what" class="btn-alt"><?php echo __('More About LBRY') ?></a>
</div>
</div>
</div>
<div class="span4">
<div class="cover cover-column cover-light-alt cover-light-alt-grad">
<div class="content">
<h1><?php echo __('Why?') ?></h1>
<div class="spacer1">
<p><?php echo __('Current systems benefit huge corporations that add little but extract a lot.') ?></p>
<p>
<?php echo __('We don\'t like it when middlemen, greedy rent-seekers, and kleptocrats win.') ?></p>
</p>
<p><?php echo __('We think a better world is one in which artists and consumers are directly connected.') ?></p>
</div>
<div class="spacer1">
<a href="/why" class="btn-primary"><?php echo __('Why Make LBRY') ?></a>
</div>
<div>
<img src="/img/smbc-comic.png" />
</div>
<div class="meta text-center">
Credit <a href="//www.smbc-comics.com/" class="link-primary">SMBC</a>.
</div>
</div>
</div>
</div>
<div class="span4">
<div class="cover cover-column cover-light">
<div class="content">
<h1><?php echo __('Who?') ?></h1>
<div class="spacer1">
<p><?php echo __('LBRY promises an awful lot.') ?> <?php echo __('Can you trust us to deliver?') ?></p>
<p><?php echo __('Learn more about the relentless rebels changing the internet.') ?></p>
</div>
<div class="spacer1">
<a href="/team" class="btn-alt"><?php echo __('About The Team') ?></a>
</div>
<img src="/img/cover-team.jpg" alt="<?php echo __('LBRY Founders') ?>" />
</div>
</div>
</div>
</main>
<?php echo View::render('nav/footer') ?>

View file

@ -1,6 +1,6 @@
<?php NavActions::setNavUri('/learn') ?>
<?php Response::setMetaImage('http://lbry.io/img/cover-team.jpg') ?>
<?php Response::setMetaDescription('LBRY is founded by a team passionate about connecting producers and consumers and breaking down broken models. Learn more about them.') ?>
<?php echo View::render('nav/header', ['isDark' => false]) ?>
<main>
<div class="content">
@ -26,10 +26,13 @@
<h4>Jeremy Kauffman <a href="mailto:jeremy@lbry.io" class="link-primary"><span class="icon icon-envelope"></span></a></h4>
<div class="meta spacer1">Founder, Director</div>
<p>
Because graduating from RPI with degrees in physics and computer science is the hip thing to do, Jeremy did the same. Jeremy is also the founder and CEO of <a href="//usetopscore.com" class="link-primary">TopScore</a>, a startup that processes millions of dollars monthly in event and activity registrations.
Shortly after graduating from RPI with degrees in physics and computer science, Jeremy founded <a href="//usetopscore.com" class="link-primary">TopScore</a>. TopScore is a SaaS tool powering tens of millions in event and activity registrations.
</p>
<p>
Jeremy has been responsible for the packing, presentation, and strategy of LBRY, as well as some design aspects. Jeremy is a longtime BitTorrent community enthusiast.
Jeremy knows how to build and scale a startup starting from day one. He knows how to deliver usable products and get those products in front of the right people.
</p>
<p>
Jeremy has been responsible for the packing, presentation, and strategy of LBRY, as well as some design aspects. Jeremy is a longtime fan of BitTorrent.
</p>
</div>
<div class="span6 spacer2">
@ -42,7 +45,7 @@
</h4>
<div class="meta spacer1">Founder, Developer</div>
<p>
After graduating from RPI with a degree in physics and computer science, Jimmy found himself mired in government bureaucracy, spending too much time to get too little done. Jimmy has been a Bitcoin fanatic since its early days as well as long been interested in the benefits of decentralization.
Because graduating from RPI with degrees in physics and computer science seemed hip, Jimmy did the same. After, Jimmy found himself mired in government bureaucracy, spending too much time to get too little done.
</p>
<p>
Ready to work on a project he believed in, Jimmy quit his national security job to start LBRY several months ago. Jimmy created the LBRY protocol and the first LBRY application.
@ -104,13 +107,6 @@
</div>
</div>
</div>
<div class="content text-center spacer2">
<h3>Not Ready to Get Serious?</h3>
<p>Join our mailing list for updates about LBRY.</p>
<?php echo View::render('mail/joinList', [
'submitLabel' => 'Subscribe',
'listId' => Mailchimp::LIST_GENERAL_ID
]) ?>
</div>
<?php echo View::render('nav/learnFooter') ?>
</main>
<?php echo View::render('nav/footer') ?>

View file

@ -1,5 +1,5 @@
<?php Response::setMetaDescription('Access information and content in ways you never dreamed possible. Earn credits for your unused bandwidth and diskspace.') ?>
<?php NavActions::setNavUri('/learn') ?>
<?php echo View::render('nav/header', ['isDark' => false]) ?>
<main>
<div class="content">
@ -53,7 +53,7 @@
</ol>
</div>
</div>
<div class="hero hero-pattern spacer2">
<div class="hero hero-pattern">
<div class="hero-content">
<h2 class="text-center hero-title">If BitTorrent + BitCoin Had a Baby</h2>
<div class="row-fluid hero-tile-row">
@ -97,10 +97,6 @@
</div>
</div>
</div>
<div class="content spacer2">
<h3>How do I use it?</h3>
<p><a href="/get" class="btn-primary">Get LBRY</a></p>
<p>Or, learn more about <a href="/why" class="link-primary">why we've created LBRY</a>.</p>
</div>
<?php echo View::render('nav/learnFooter') ?>
</main>
<?php echo View::render('nav/footer') ?>

View file

@ -1,3 +1,4 @@
<?php NavActions::setNavUri('/learn') ?>
<?php Response::setMetaImage('http://lbry.io/img/xkcd-comic.png') ?>
<?php Response::setMetaDescription('Learn about the inspiration behind LBRY\'s revolutionary content distribution system.') ?>
<?php echo View::render('nav/header', ['isDark' => false]) ?>
@ -99,10 +100,8 @@
<strong>LBRY is not about facilitating piracy.</strong>
LBRY is about creating a network where creators and patrons can directly interact without relying on anyone in the middle. We've made choices
about publisher identities and how addresses are reserved that are specifically designed to combat undue profiteering.</p>
<h3>Ready to use LBRY?</h3>
<p><a href="/get" class="btn-primary">Get LBRY</a></p>
<p>Or, <a href="/team" class="link-primary">learn about joining the team</a>.</p>
</div>
<?php echo View::render('nav/learnFooter') ?>
</main>
<?php echo View::render('nav/footer') ?>
<?php /* It is inspired by Bitcoin, BitTorrent, and&nbsp;a comment by Julian Assange<sup><a class="link-primary" href="https://wikileaks.org/Transcript-Meeting-Assange-Schmidt.html#731">1</a></sup>.</p> */ ?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
web/img/fb-cover.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -16,11 +16,17 @@ jQuery.fn.extend({
});
$(document).ready(function() {
var body = $('body');
var body = $('body'),
labelCycles = body.find('.label-cycle'); //should use better pattern but we have so little JS right now
body.on('click', 'a', onAnchorClick);
//$(window).scroll(onBodyScroll);
if (labelCycles.length)
{
setInterval(refreshLabelCycles,6000);
}
function onAnchorClick()
{
var anchor = $(this),
@ -96,4 +102,17 @@ $(document).ready(function() {
resizeVideo($(this));
})
});
function refreshLabelCycles()
{
labelCycles.each(function() {
var labelCycle = $(this),
activeLabel = labelCycle.find(':first-child');
activeLabel.fadeOut(function() {
labelCycle.append(activeLabel);
labelCycle.find(':first-child').fadeIn();
});
});
}
});

View file

@ -53,13 +53,23 @@ sub { top: 0.4em; }
.spacer1 { margin-bottom: $spacing-vertical; }
.spacer2 { margin-bottom: $spacing-vertical * 2; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.meta { font-size: 0.8em; }
.meta-large { font-size: 1.2em; }
.clear { clear: both; }
.link-primary
{
color: $color-primary;
text-decoration: underline;
.icon:first-child
{
padding-right: 5px;
}
.icon:last-child
{
padding-left: 5px;
}
}
a:hover img
{
@ -98,6 +108,7 @@ a:hover img
padding: 0 15px;
text-decoration: none;
border: 0 none;
text-align: center;
}
.btn-primary
{
@ -108,11 +119,14 @@ a:hover img
}
.btn-alt
{
$base-color: hsl(hue($color-primary), 15, 85);
@include linear-gradient(lighten($base-color, 5), darken($base-color, 5));
@include linear-gradient(lighten($color-light-alt, 5), darken($color-light-alt, 5));
color: hsl(hue($color-primary), 85, 15);
border: 1px solid darken($color-primary, 10);
}
.btn-full-width
{
width: 100%;
}
.no-label .btn-label
{
@include offscreen();
@ -129,6 +143,15 @@ a:hover img
@include clearfix();
}
.table-layout
{
td
{
padding: 3px 5px $spacing-vertical - 3px;
vertical-align: middle;
}
}
@media (max-width: $mobile-width-threshold)
{
.fullscreen

View file

@ -3,7 +3,17 @@
{
margin-left: auto;
margin-right: auto;
max-width: $max-content-width; /*we have more padding than desirable so numbers from ol can exceed container*/
&:not(.content-wide)
{
max-width: $max-content-width; /*we have more padding than desirable so numbers from ol can exceed container*/
}
&.content-wide
{
max-width: 1400px;
}
padding-left: 15px;
padding-right: 15px;
@ -15,7 +25,15 @@
}
}
&:not(.content-dark)
&.content-dark
{
color: #e8e8e8;
h1, h2, h3, h4, h5, h6 { color: #fff; }
.link-primary { color: $color-light-alt; }
.meta { color: #dddddd; }
}
&:not(.content-dark), &.content-light
{
color: #333;
h1, h2, h3, h4, h5, h6
@ -25,17 +43,10 @@
.meta
{
color: #505050;
color: $color-meta-light;
}
}
&.content-dark
{
color: #e8e8e8;
h1, h2, h3, h4, h5, h6 { color: #fff; }
.meta { color: #dddddd; }
}
p
{
margin-bottom: $spacing-vertical;

View file

@ -3,17 +3,30 @@
.cover
{
@box-sizing(border-box);
width: 100%;
.meta-large [class*="icon"]
{
padding-left: 5px;
padding-right: 5px;
}
}
@media (max-width: $mobile-width-threshold) {
.cover { padding: $spacing-vertical; }
.cover-simple
{
@box-sizing(border-box);
width: 100%;
}
@media (min-width: $mobile-width-threshold) {
@media (max-width: $mobile-width-threshold) {
.cover { padding: $spacing-vertical $spacing-vertical * 2 / 3; }
.cover-title { margin-bottom: $spacing-vertical; }
}
@media (max-width: $max-content-width) and (min-width: $mobile-width-threshold) {
.cover { padding: $spacing-vertical * 2 $spacing-vertical * 2; }
.cover-column { padding-left: $spacing-vertical * 0.5; padding-right: $spacing-vertical * 0.5; }
}
@media (min-width: $max-content-width) {
.cover { padding: $spacing-vertical * 2 $spacing-vertical * 3; }
.cover-column { padding-left: $spacing-vertical * 1.5; padding-right: $spacing-vertical * 1.5; }
.cover-title { margin-bottom: $spacing-vertical * 2; }
}
.cover-center
@ -27,19 +40,27 @@
.cover-title { color: white; }
}
.cover-light
{
color: #444;
.cover-title { color: #111; }
}
.cover-light-alt
{
color: #333;
.cover-title { color: black; }
.cover-title { color: #000; }
}
.cover-dark-grad
{
@include linear-gradient(darken($color-primary, 5), lighten($color-primary, 5));
}
.cover-light-alt-grad
{
@include linear-gradient(darken($color-light-alt, 5), lighten($color-light-alt, 5));
}
.cover-title
{
margin-bottom: $spacing-vertical;
font-size: 9vmin;
font-size: 3.6em;
line-height: 1.4;
}
.cover-subtitle

View file

@ -2,6 +2,11 @@
$input-width: 300px;
label[for]
{
cursor: pointer;
}
input[type="email"], input[type="text"]
{
border: 0 none;
@ -12,6 +17,11 @@ input[type="email"], input[type="text"]
height: $spacing-vertical * 1.5;
}
.form-row
{
margin-bottom: $spacing-vertical;
}
.mail-submit
{
input

View file

@ -3,11 +3,14 @@
$spacing-vertical: 24px;
$color-primary: #155B4A;
$color-light-alt: hsl(hue($color-primary), 15, 85);
$color-text-dark: #000;
$color-money: #216C2A;
$color-meta-light: #505050;
$font-size: 18px;
$mobile-width-threshold: 600px;
$mobile-width-threshold: 801px;
$max-content-width: 1000px;
$max-text-width: 660px;

View file

@ -9,6 +9,7 @@ input:focus, textarea:focus
}
table
{
border-collapse: collapse;
border-spacing:0;
}
fieldset, img, iframe

148
web/scss/_sale.scss Normal file
View file

@ -0,0 +1,148 @@
@import "global";
.sale-title-filler
{
font-size: 0.6em;
color: #ddd;
}
.sale-title-emphasis
{
font-size: 1.25em;
font-weight: bold;
}
.sale-call
{
text-align: center;
padding: $spacing-vertical 30px;
.sale-call-total-people
{
font-weight: bold;
font-size: 2.4em;
}
.sale-cta
{
font-weight: bold;
font-size: 2.0em;
display: inline-block;
min-height: $spacing-vertical * 4;
}
.sale-call-prep, .sale-call-verb
{
display: block;
font-size: 0.85em;
}
.sale-call-verb
{
margin-bottom: $spacing-vertical / 4;
}
.sale-call-prep
{
margin: $spacing-vertical / 2 0 $spacing-vertical / 4;
}
}
.label-cycle
{
:not(:first-child)
{
display: none;
}
}
.sale-level
{
@include border-radius(5px);
background: #fff;
color: #111;
padding: $spacing-vertical $spacing-vertical / 2;
margin: 0 $spacing-vertical / 2 $spacing-vertical;
cursor: pointer;
position: relative;
&:hover
{
padding-left: $spacing-vertical;
padding-right: $spacing-vertical;
margin-left: 0;
margin-right: 0;
}
}
.sale-level-label
{
float: left;
margin-right: 5px;
margin-left: 20px;
}
.sale-level-cost
{
float: right;
}
.sale-level-reward
{
clear: both;
}
.sale-level-help
{
color: $color-meta-light;
font-size: 0.75em;
}
.sale-level-radio
{
position: absolute;
top: $spacing-vertical * 1.25;
left: $spacing-vertical / 2;
}
.sale-level:hover .sale-level-radio
{
left: $spacing-vertical;
}
.sale-level-cost
{
color: $color-money;
font-weight: bold;
}
.sale-level-credits
{
font-weight: bold;
margin-bottom: $spacing-vertical / 2;
}
.sale-level-reward-title
{
color: $color-meta-light;
}
.sale-question-bubble
{
@include border-radius(5px);
background: $color-light-alt;
margin-bottom: $spacing-vertical;
font-size: 0.8em;
padding: $spacing-vertical $spacing-vertical;
&:last-child
{
margin-bottom: 0;
}
p
{
margin-bottom: $spacing-vertical / 2;
&:last-child { margin-bottom: 0; }
}
}
.sale-question
{
color: #000;
}
.sale-question-answer
{
color: #444;
}
.control-item-img
{
a
{
display: inline-block;
height: $spacing-vertical * 2;
line-height: 0;
}
}

View file

@ -8,4 +8,5 @@
@import "content";
@import "cover";
@import "hero";
@import "header";
@import "header";
@import "sale";