Plans unlock Rebrickable features. Premium MOC instructions are purchased separately.
See what your upgrade adds
Included with Pro & Designer
An accidental edit? Undo it.
Daily backups keep a copy of your Set, Part and Custom Lists. Change history helps you find an accidental edit and undo it.
Changes made before upgrading to Pro cannot be undone.
Keep track of what changed. Review your collection history and reverse individual changes.
More collection tools with Pro
Higher list limits give your collection room to grow
Add notes to Parts and Sets to better organise your collection
Use custom colour matching and build colour switching
Save favourite stores, blacklist others and personalise the site's appearance
Yes. Cancel future renewals from your Plan page. You keep your paid features until your current billing period ends.
Can I try a plan for one month?
Choose monthly billing, then cancel future renewals whenever you want. Plans renew automatically until cancelled.
Can I change plans later?
Yes. Stripe subscribers can change plan and billing cycle, with any price difference prorated. PayPal subscribers need to cancel their existing subscription and sign up again to change plans.
Are Premium MOC instructions included?
No. Pro and Designer unlock site features. Premium MOC instructions are sold separately by their designers.
Do I need a paid plan to sell MOCs?
No. You can sell Premium MOC instructions with a Free account. Designer adds more analytics, promotion tools and a commission discount.
What happens when my paid plan ends?
Your account returns to Free. Existing Parts, Sets and Lists above the Free limits remain, but you may be unable to add more. Paid features become unavailable, and Part/Set notes may be lost if you make changes before renewing.
Support the site you build with
More tools for you. More support for Rebrickable.
Your upgrade helps keep Rebrickable running and funds improvements to the tools you use.
default
1.48 ms (13 queries
including 12 similar
)
Query
Timeline
Time (ms)
Action
SELECT MAX("plans_plan"."version") AS "version__max" FROM "plans_plan" WHERE "plans_plan"."type" = 'F'SELECT ••• FROM "plans_plan" WHERE "plans_plan"."type" = 'F'
4 similar queries.
0.28
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(18)
plan = Plan.get_current_plan(plan_type[0])/home/nathan/rb/site/./plans/models.py in get_current_plan(87)
max_version = Plan.objects.filter(type=plan_type).aggregate(Max('version'))['version__max']
SELECT "plans_plan"."id", "plans_plan"."type", "plans_plan"."version", "plans_plan"."stripe_id", "plans_plan"."paypal_id", "plans_plan"."cost_single", "plans_plan"."cost_monthly", "plans_plan"."cost_yearly" FROM "plans_plan" WHERE ("plans_plan"."type" = 'F' AND "plans_plan"."version" = 4) LIMIT 21SELECT ••• FROM "plans_plan" WHERE ("plans_plan"."type" = 'F' AND "plans_plan"."version" = 4) LIMIT 21
4 similar queries.
0.10
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(18)
plan = Plan.get_current_plan(plan_type[0])/home/nathan/rb/site/./plans/models.py in get_current_plan(89)
return Plan.objects.get(type=plan_type, version=max_version)
SELECT "plans_planlimits"."id", "plans_planlimits"."plan_id", "plans_planlimits"."name", "plans_planlimits"."value" FROM "plans_planlimits" WHERE "plans_planlimits"."plan_id" = 7SELECT ••• FROM "plans_planlimits" WHERE "plans_planlimits"."plan_id" = 7
4 similar queries.
0.12
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(20)
all_plan_limits[plan_type[0]] = {x.name: x.value for x in limits}
SELECT MAX("plans_plan"."version") AS "version__max" FROM "plans_plan" WHERE "plans_plan"."type" = 'P'SELECT ••• FROM "plans_plan" WHERE "plans_plan"."type" = 'P'
4 similar queries.
0.10
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(18)
plan = Plan.get_current_plan(plan_type[0])/home/nathan/rb/site/./plans/models.py in get_current_plan(87)
max_version = Plan.objects.filter(type=plan_type).aggregate(Max('version'))['version__max']
SELECT "plans_plan"."id", "plans_plan"."type", "plans_plan"."version", "plans_plan"."stripe_id", "plans_plan"."paypal_id", "plans_plan"."cost_single", "plans_plan"."cost_monthly", "plans_plan"."cost_yearly" FROM "plans_plan" WHERE ("plans_plan"."type" = 'P' AND "plans_plan"."version" = 2) LIMIT 21SELECT ••• FROM "plans_plan" WHERE ("plans_plan"."type" = 'P' AND "plans_plan"."version" = 2) LIMIT 21
4 similar queries.
0.08
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(18)
plan = Plan.get_current_plan(plan_type[0])/home/nathan/rb/site/./plans/models.py in get_current_plan(89)
return Plan.objects.get(type=plan_type, version=max_version)
SELECT "plans_planlimits"."id", "plans_planlimits"."plan_id", "plans_planlimits"."name", "plans_planlimits"."value" FROM "plans_planlimits" WHERE "plans_planlimits"."plan_id" = 8SELECT ••• FROM "plans_planlimits" WHERE "plans_planlimits"."plan_id" = 8
4 similar queries.
0.09
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(20)
all_plan_limits[plan_type[0]] = {x.name: x.value for x in limits}
SELECT MAX("plans_plan"."version") AS "version__max" FROM "plans_plan" WHERE "plans_plan"."type" = 'D'SELECT ••• FROM "plans_plan" WHERE "plans_plan"."type" = 'D'
4 similar queries.
0.10
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(18)
plan = Plan.get_current_plan(plan_type[0])/home/nathan/rb/site/./plans/models.py in get_current_plan(87)
max_version = Plan.objects.filter(type=plan_type).aggregate(Max('version'))['version__max']
SELECT "plans_plan"."id", "plans_plan"."type", "plans_plan"."version", "plans_plan"."stripe_id", "plans_plan"."paypal_id", "plans_plan"."cost_single", "plans_plan"."cost_monthly", "plans_plan"."cost_yearly" FROM "plans_plan" WHERE ("plans_plan"."type" = 'D' AND "plans_plan"."version" = 1) LIMIT 21SELECT ••• FROM "plans_plan" WHERE ("plans_plan"."type" = 'D' AND "plans_plan"."version" = 1) LIMIT 21
4 similar queries.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(18)
plan = Plan.get_current_plan(plan_type[0])/home/nathan/rb/site/./plans/models.py in get_current_plan(89)
return Plan.objects.get(type=plan_type, version=max_version)
SELECT "plans_planlimits"."id", "plans_planlimits"."plan_id", "plans_planlimits"."name", "plans_planlimits"."value" FROM "plans_planlimits" WHERE "plans_planlimits"."plan_id" = 4SELECT ••• FROM "plans_planlimits" WHERE "plans_planlimits"."plan_id" = 4
4 similar queries.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(20)
all_plan_limits[plan_type[0]] = {x.name: x.value for x in limits}
SELECT MAX("plans_plan"."version") AS "version__max" FROM "plans_plan" WHERE "plans_plan"."type" = 'A'SELECT ••• FROM "plans_plan" WHERE "plans_plan"."type" = 'A'
4 similar queries.
0.09
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(18)
plan = Plan.get_current_plan(plan_type[0])/home/nathan/rb/site/./plans/models.py in get_current_plan(87)
max_version = Plan.objects.filter(type=plan_type).aggregate(Max('version'))['version__max']
SELECT "plans_plan"."id", "plans_plan"."type", "plans_plan"."version", "plans_plan"."stripe_id", "plans_plan"."paypal_id", "plans_plan"."cost_single", "plans_plan"."cost_monthly", "plans_plan"."cost_yearly" FROM "plans_plan" WHERE ("plans_plan"."type" = 'A' AND "plans_plan"."version" = 1) LIMIT 21SELECT ••• FROM "plans_plan" WHERE ("plans_plan"."type" = 'A' AND "plans_plan"."version" = 1) LIMIT 21
4 similar queries.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(18)
plan = Plan.get_current_plan(plan_type[0])/home/nathan/rb/site/./plans/models.py in get_current_plan(89)
return Plan.objects.get(type=plan_type, version=max_version)
SELECT "plans_planlimits"."id", "plans_planlimits"."plan_id", "plans_planlimits"."name", "plans_planlimits"."value" FROM "plans_planlimits" WHERE "plans_planlimits"."plan_id" = 3SELECT ••• FROM "plans_planlimits" WHERE "plans_planlimits"."plan_id" = 3
4 similar queries.
0.06
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(20)
all_plan_limits[plan_type[0]] = {x.name: x.value for x in limits}
SELECT "countries_plus_country"."iso", "countries_plus_country"."iso3", "countries_plus_country"."iso_numeric", "countries_plus_country"."fips", "countries_plus_country"."name", "countries_plus_country"."capital", "countries_plus_country"."area", "countries_plus_country"."population", "countries_plus_country"."continent", "countries_plus_country"."tld", "countries_plus_country"."currency_code", "countries_plus_country"."currency_symbol", "countries_plus_country"."currency_name", "countries_plus_country"."phone", "countries_plus_country"."postal_code_format", "countries_plus_country"."postal_code_regex", "countries_plus_country"."languages", "countries_plus_country"."geonameid", "countries_plus_country"."neighbours", "countries_plus_country"."equivalent_fips_code" FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21SELECT ••• FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21
0.25
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./plans/views.py in plans_index(26)
return render(request, 'plans/plans_index.html', {/home/nathan/rb/site/./rb/templatetags/rb_geo.py in geo_currency(20)
geo_data = user.geo.get_user_currency()/home/nathan/rb/site/./geo/geo.py in get_user_currency(253)
country = Country.objects.get(iso=country_code)
74
</a>
75
</li>
76
<li>
77
{% geo_currency request.user %}
78
</li>
79
{% comment %}
80
<li class="hidden-xs hidden-sm">
81
<a href={% if request.user.is_authenticated %}"{% url 'user_profile_settings' request.user.get_username %}#personalisation"{% else %}"#" onclick="return false;"{% endif %} title="All date/times are being converted to this timezone">{% get_user_timezone request.user %}</a>