mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
141 lines
6.5 KiB
Text
141 lines
6.5 KiB
Text
<div class="header-Outro">
|
|
<div class="row content single-Col">
|
|
<h1>Neocities Site Statistics</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="content single-Col misc-page">
|
|
<article>
|
|
<h2>Why our growth statistics and finances are open</h2>
|
|
|
|
<p>
|
|
Neocities is an <a href="http://www.opencompany.org">Open Company</a> startup, and are committed to openness as a defining element in how we create value.
|
|
</p>
|
|
|
|
<p>
|
|
In the past, companies would not open source their software because they considered it dangerous to their business to do so. It took a long time to convince companies to use open source software, but today virtually all companies adopt and use open source software for building their infrastructure, and that's good for everybody.
|
|
</p>
|
|
|
|
<p>
|
|
Despite this, most companies today still treat their backend infrastructure and business operations as proprietary. The result is an erosion of user trust, where users become dependant on proprietary services that have bugs they can't help fix, financial sustainability problems they can't discover, and limitations they can't understand. We believe this is the biggest problem facing startups today.
|
|
</p>
|
|
|
|
<p>
|
|
We do not feel that opening of our finances is as risky as is currently believed, and that the increased trust we gain from doing it more than makes up for the risk. So we have decided to open our growth statistics and finances.
|
|
</p>
|
|
|
|
<p>
|
|
We believe the trust relationship we build with our users from being honest and accountable in our operations is better for us in the long-term than being proprietary and secretive. So we invite our users to share in our failings and successes. It is our hope that this will help to improve Neocities as a service, and that it inspires other startups to share this information in the future, for their own benefit and the benefit of their users.
|
|
</p>
|
|
|
|
<p>
|
|
Note that we do not disclose everything publicly. For example, we do not currently reveal the locations of our servers, the identities of our users, investors (if they choose to be anonymous) or any salaries or dividends (in our case, member ownership percentages) we choose to issue. There are very legitimate security and privacy considerations to consider when providing open data, and we understand and respect that.
|
|
</p>
|
|
|
|
<p>
|
|
If you have any questions regarding our finances or ideas for improving our business model, please don't hesitate to <a href="/contact">contact us</a>.
|
|
</p>
|
|
|
|
<h2>General Stats</h2>
|
|
|
|
<table class="table">
|
|
<tr>
|
|
<td><strong>Total Hits</strong> (sites hosted on Neocities)</td>
|
|
<td><%= @stats[:total_hosted_site_hits].to_comma_separated %></td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Total Views</strong> (sites hosted on Neocities)</td>
|
|
<td><%= @stats[:total_hosted_site_views].to_comma_separated %></td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Total Sites</strong></td>
|
|
<td><%= @stats[:total_sites] %></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Total Unbanned Sites</td>
|
|
<td><%= @stats[:total_unbanned_sites] %></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Total Banned Sites</td>
|
|
<td><%= @stats[:total_banned_sites] %></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Total NSFW Sites</td>
|
|
<td><%= @stats[:total_nsfw_sites] %></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Total Unbanned NSFW Sites</td>
|
|
<td><%= @stats[:total_unbanned_nsfw_sites] %></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Total Banned NSFW Sites</td>
|
|
<td><%= @stats[:total_banned_nsfw_sites] %></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h2>Monthly Statistics</h2>
|
|
<table class="table">
|
|
<tr>
|
|
<th>Year</th>
|
|
<th>Month</th>
|
|
<th>Sites Created</th>
|
|
<th>Change</th>
|
|
<th>Total</th>
|
|
<th>Supporters</th>
|
|
</tr>
|
|
<% @stats[:monthly_stats].each_with_index do |stat,i| %>
|
|
<tr>
|
|
<td><%= stat[:date].year %></td>
|
|
<td>
|
|
<%= stat[:date].strftime('%B') %>
|
|
<% if Time.now.month == stat[:date].month && Time.now.year == stat[:date].year %>
|
|
<small>current</small>
|
|
<% end %></td>
|
|
<td><%= stat[:sites_created] %></td>
|
|
<td>
|
|
<% if i != 0 && i != @stats[:monthly_stats].length-1 %>
|
|
<%= (((stat[:sites_created].to_f - @stats[:monthly_stats][i-1][:sites_created]) / @stats[:monthly_stats][i-1][:sites_created]) * 100).round(2) %>%
|
|
<% end %>
|
|
</td>
|
|
<td>
|
|
<%= stat[:total_from_start] %></td>
|
|
</td>
|
|
<td><%= stat[:supporters] %></td>
|
|
</tr>
|
|
<% end %>
|
|
</table>
|
|
|
|
<h2>Supporters</h2>
|
|
<h3>Current Recurring Monthly Revenue (after fees): <strong><%= format("$%.2f", @stats[:monthly_revenue]) %> (<%= format("$%.2f", @stats[:monthly_revenue]*12) %>/year)</strong>
|
|
<br>
|
|
Active Supporters: <strong><%= @stats[:subscriptions].select {|s| s[:status] == 'active' }.length %></strong>
|
|
<br>
|
|
Cancelled: <strong><%= @stats[:cancelled_subscriptions] %></strong>
|
|
</h3>
|
|
|
|
<h2>Burn Rate</h2>
|
|
<p>
|
|
Approximate server expenses (burn rate): <strong><%= format("$%.2f", @stats[:expenses]) %>/mo</strong>
|
|
</p>
|
|
|
|
<h1>Revenue Goals</h1>
|
|
|
|
<p>Neocities pays for itself:</p>
|
|
<p><strong><%= format '%.2f', @stats[:percent_until_profit] %>% of goal</strong> ($<%= format('%.2f', @stats[:monthly_revenue]) %> / $<%= format('%.2f', @stats[:expenses]) %>)</p>
|
|
<div class="progress progress-striped">
|
|
<div class="bar" style="width: <%= @stats[:percent_until_profit].round %>%;"></div>
|
|
</div>
|
|
|
|
<p>Neocities earnings rise above <a href="http://en.wikipedia.org/wiki/Poverty_threshold">US poverty threshold</a>:</p>
|
|
<p><strong><%= format '%.2f', @stats[:poverty_threshold_percent] %>% of goal</strong> ($<%= format('%.2f', @stats[:monthly_revenue]) %> / ($<%= format('%.2f', @stats[:poverty_threshold]) %> / 12 months + $<%= @stats[:expenses] %>)) * 100</p>
|
|
<div class="progress progress-striped">
|
|
<div class="bar" style="width: <%= format('%.2f', @stats[:poverty_threshold_percent]) %>%;"></div>
|
|
</div>
|
|
|
|
<p>Neocities earns average US developer salary:</p>
|
|
<p><strong><%= format '%.2f', @stats[:percent_until_developer_salary] %>% of goal</strong> ($<%= format('%.2f', @stats[:monthly_revenue]) %> / ($<%= format('%.2f', @stats[:average_developer_salary]) %> / 12 months + $<%= @stats[:expenses] %>)) * 100</p>
|
|
<div class="progress progress-striped">
|
|
<div class="bar" style="width: <%= format('%.2f', @stats[:percent_until_developer_salary]) %>%;"></div>
|
|
</div>
|
|
</article>
|
|
</div>
|