PRUSA RESEARCH Community portal for hundreds of thousands of 3D printer users

The world leader in the production of personal 3D printers, Prusa Research, has decided to focus on building a community of 3D printing enthusiasts. People at Josef Prusa love open-source technologies, therefore they were impressed by our experience in web application development in Python. Together, we have created a portal where amateur enthusiasts share tens of thousands of models, help each other in acquiring a background in 3D printing or participate in design competitions.

community portalcustom web applicationpython3d prusa printers

With what Prusa Research addressed us and why

Every month, Josef Prusa dispatches more than 11,000 3D printers from Prague all over the world. In order for new 3D community members to be able to print anything, they need - besides a printer - also a cartridge (a filament) and a correct model - a file in STL or 3MF format supplemented by instructions for printing in Gcode format.

Creating one´s own model requires experience, so beginners usually use models from experienced fellow printers. To support community development, Prusa Research decided to build a global PrusaPrinters portal, where any 3D enthusiast can

  • create a profile;
  • show off their model;
  • share it with others;
  • exchange experience;
  • or compete in design challenges (e.g. for the best lamp model, antique statues or gardening aids)

Working style of the partner was one of the key factor for us - so that the administration and processes were not more important to them than the result itself.

Martin Bach,
Content Director at Prusa Research

Who is Prusa Research

Manufacturer and seller of 3D printers and one of the fastest growing start-ups in Central Europe. Prusa Research manufactures and sells more than 11,000 printers per month to customers around the world. The company has been building a strong and active community of people who share models on the global PrusaPrinters.org portal, compete for the best design in various challenges and help each other in 3D printing.

logo Prusa Research
1
World leader in the production of personal 3D printers
160
countries of the world where printers make people happy
44 000+
models shared on the community portal
290 000+
portal users per month

We defined the project objectives and started a technical analysis of the web application

At the beginning of the cooperation, we clarified the objective. It was a community portal developed using open-source technologies aimed at making it easier for those getting started. The portal must:

  • be scalable to work even with a large increase in the number of users;
  • be accessible with quick response for users from New York to Sydney;
  • be able to handle peaks, i.e., work flawlessly even at moments when, for example, technological news is announced and users want to be there (load balancing);
  • have a smart authentication mechanism that will make it easier for Prusa Research customers to register and log in, and that can be used in other Prusa Research services (e-shop, forum);
  • support interaction between 3D community members (groups, forums);
  • allow easy uploading of 3D models;
  • and also allow searching for them – either by full-text, filtering, or through individual printers on the map.

Interesting fact about 3D printing

The most common format for 3D objects is STL. However, it does not contain printing data, so before printing it is necessary to manually process the model, to “slice” it. However, if the model’s creator adds Gcode files for different types of printers, you can print immediately after downloading the model without slicing.

Portal architecture

We ran the requirements through careful technical analysis. One of the key benefits of this phase was the decision on how to approach the portal architecture.

Thanks to a careful analysis, we have, among other things, chosen a suitable architecture for the entire portal
Thanks to a careful analysis, we have, among other things, chosen a suitable architecture for the entire portal

Given the robustness of the system, we have chosen a multi-server High Availability (HA) architecture using external services that can be easily scaled to millions of users across continents.

Jan Tezner,
CTO COex

Python, Django framework, Angular and other technologies

We have reached for proven technologies fuelling applications such as YouTube or Instagram.

  • Application backend is written in the Python programming language,
  • using the proven Django web framework,
  • we used PostgreSQL for databases,
  • frontend is powered by the Angular framework by Google,
  • communication between the frontend and the backend is provided by the GraphQL API,
  • full-text search works thanks to Elasticsearch,
  • we generate image previews in the AWS Lambda service
  • and images are displayed to users very quickly thanks to the AWS CloudFront CDN service.

You can find out more about the tools and technologies we use at COex on the web technologies page.

python GraphQL Angular PostgreSQL django elastic

Smooth project progress thanks to agile development and mixed team with client

We created a mixed team in which we involved Prusa Research employees. This speeded up communication and streamlined development. Both sides were constantly in control of the software being developed so that it would work as intended.

2017

November

First request and technical analysis

2017

December

Start of development

2018

June

MVP development completed

2019

February

Completion of version 1.0

2019

April

First public version launched

2021

To this day

Updating, maintenance, development

Progress of work on the PrusaPrinters.org community portal

What can the global community portal do?

  • The user can download any of the tens of thousands of 3D models in 3 clicks.
  • Thanks to smart filtering, users can search for prints by printer type, filament, 3D printer nozzle diameter, object weight or print speed.
  • Prusa Research can organize design challenges for the best models.
  • Uploading new 3D models is fast thanks to validation algorithms - these check if the STL, 3MF and Gcode files are in the correct format.
  • Community members can find owners of 3D printers in their area on the map, ask them for help, create something together, or place an order for printing.

During development, we improved our work with k-means in PostgreSQL, Leaflet and map

Map of Prusaprinters.org users in Singapore.
Map of Prusaprinters.org users in Singapore.

To be able to quickly display tens to hundreds of thousands of users and sites, we created a server implementation of map points clustering which uses the k-means algorithm in PostgreSQL. Thus, we have achieved a map loading speed that would not be possible using standard front-end solutions.

We also had to deal with the unexpected issue of location anonymization. When we created a preliminary map of all the printers, we expected that we would get the user's approximate location using the zip code of the delivery address, but we found that in countries like the United Kingdom or Singapore, you can tell the user's almost exact address from the zip code. Therefore, we applied a shift in the location's GPS coordinate in the map in a random direction, thus anonymizing the user data.

Project outcomes

The first thousand users registered on the portal within hours of launch. Due to the keen interest, we modified the mailing system so that in an extremely short time they could send a significantly larger number of e-mails than we had expected.

After 9 months, the community has grown to 44,000 users who have uploaded more than 10,000 3D models to the web application.

As of November 2021, the PrusaPrinters portal is used by 290,000 users per month, with 143,567 members registered. There are 48,460 prints to download.

In the future, Prusa Research and us plan to add new features to the community portal, such as sharing, interaction, news feed and other social network elements. This will make the transfer of experience and model sharing between 3D printing enthusiasts work even better.

290 000 monthly traffic
143 567 printing enthusiasts
48 460 published prints

The PrusaPrinters.org customer portal is our largest web project to date. We focus primarily on HW and SW development, but we decided to implement web development externally - in cooperation with COex. After 2 years of cooperation, I am very positive about this decision.

COex approaches development creatively and proactively. We are also on the same wavelength regarding the style of work - processes and administration are not more important to them than the result itself.

The results of a survey we conducted among the users of the portal a few months after the launch prove that we did a good job together. We have a lot of interesting development ahead of us. I look forward to it.

Martin Bach, Content Director at Prusa Research
Martin Bach,
Content Director at Prusa Research

Would you like a non-binding consultation or just want to ask something?