# thingport-frontend-v1.0.0 (2026-10-17) ### Bug Fixes * 3d preview not centering multi plate models ([ca81dbb](https://github.com/TautvydasDerzinskas/Thingport/commit/ca81dbbb2b3f4f1d8b8b32049a866894d4c908f7)) * 3mf model preview default to proper solid ([46b8687](https://github.com/TautvydasDerzinskas/Thingport/commit/46b8687d1d25c7b62307340b28108fe8966fa269)) * add missing labels for admin logs ([94ea609](https://github.com/TautvydasDerzinskas/Thingport/commit/94ea609e9e8d1a5c8f9b71b7a3806e264855d30e)) * add website links in few places ([420bb28](https://github.com/TautvydasDerzinskas/Thingport/commit/420bb28764847ea943bb7ec3cb64a241410a8c64)) * adjust downloads page ([58c773b](https://github.com/TautvydasDerzinskas/Thingport/commit/58c773b955131af5a4ae8e9c3d9ccc4255f23d8b)) * **ai:** disable categorization when last model is deleted ([bfc3fa0](https://github.com/TautvydasDerzinskas/Thingport/commit/bfc3fa0d72f86eeb508031a2457c9574a4421eca)) * allow replacing a model's only file in the edit dialog ([fc3f3ef](https://github.com/TautvydasDerzinskas/Thingport/commit/fc3f3efd48b9e926549773610e9d218780a28f21)) * allow slow API requests through nginx and explain proxy errors ([4d4d220](https://github.com/TautvydasDerzinskas/Thingport/commit/4d4d2209e69eea1b317af44d06151ee3a452ecbd)) * correct multi-part 3MF previews and stop risky in-browser fallback ([65236c5](https://github.com/TautvydasDerzinskas/Thingport/commit/65236c5803b0624eced5fea069cd9594abeeeade)) * couple minor UX issues ([840c8a4](https://github.com/TautvydasDerzinskas/Thingport/commit/840c8a4a1f4e8fda98d95da6462edcc7d6cefa67)) * couple ux improvements ([030b155](https://github.com/TautvydasDerzinskas/Thingport/commit/030b1553e170b75c46766ee285dad21f0608e957)) * couple UX issues ([2afd1cc](https://github.com/TautvydasDerzinskas/Thingport/commit/2afd1cc7138ced249732d022dabfeef943ba4d9d)) * dark theme ([c40639f](https://github.com/TautvydasDerzinskas/Thingport/commit/c40639fe6ef396d7d83bdaabbef96d29b266db99)) * dark theme info box colors ([d4ea294](https://github.com/TautvydasDerzinskas/Thingport/commit/d4ea294dd92daa0c454407a84d26c5124c0a1e61)) * distinguish Thingiverse rate limits from auth errors and add AI run logging ([c5e5ab4](https://github.com/TautvydasDerzinskas/Thingport/commit/c5e5ab460e336e2b4eb071f8928d77b96cc36ea4)) * ensure no breaking change for services deployed separately ([18d98fc](https://github.com/TautvydasDerzinskas/Thingport/commit/18d98fcc1ab493f2ba95df259afb3dcfe8ed2953)) * few minor ui issues ([2f2d850](https://github.com/TautvydasDerzinskas/Thingport/commit/2f2d85018e655973526ad9e860098f1ee956fa22)) * few minor ui issues in dark theme ([91ce40f](https://github.com/TautvydasDerzinskas/Thingport/commit/91ce40f9ffa47dc5cc073147829c798661c94977)) * file labels in 3d preview ([1fa98a8](https://github.com/TautvydasDerzinskas/Thingport/commit/1fa98a830ec360e551895ad5373693d12a07c3ab)) * folder/category switch overridden by late server response ([b5ba52d](https://github.com/TautvydasDerzinskas/Thingport/commit/b5ba52d8bf0d945d3d5ee663528c5868ea271298)) * grid column changes responsive ([6df320f](https://github.com/TautvydasDerzinskas/Thingport/commit/6df320f106ac6cff83bf271a335130b500d20fce)) * import issues ([0d1efdb](https://github.com/TautvydasDerzinskas/Thingport/commit/0d1efdba02149f00ac3d0aca279cbe35e7b1e97e)) * **import:** stop flagging models that mention robots as a MakerWorld CAPTCHA, and let a manual retry try again ([#18](https://github.com/TautvydasDerzinskas/Thingport/issues/18)) ([d70dcfe](https://github.com/TautvydasDerzinskas/Thingport/commit/d70dcfeac2c788686728598c6d3c61b9f4cce369)) * improve bookmarks ui ([01f8812](https://github.com/TautvydasDerzinskas/Thingport/commit/01f8812cef9abf45824038d735eed6d9b2d9f731)) * improve model item favorite icon ([25347ba](https://github.com/TautvydasDerzinskas/Thingport/commit/25347ba224cde6a793ec45679593f95906d18dac)) * increase size of logos ([0d4b6bc](https://github.com/TautvydasDerzinskas/Thingport/commit/0d4b6bc085a93800794164cc79fad10876d84811)) * make storage template collection and creator tokens reflect real data ([32710f2](https://github.com/TautvydasDerzinskas/Thingport/commit/32710f25e7b1011b9dc85bbbb67d403f6381a14a)) * Makerworld import issues + allowing import different profiles ([303ab91](https://github.com/TautvydasDerzinskas/Thingport/commit/303ab918ea9b1f2d6866baf89f11b601364a1a36)) * minor adjustments in regards of import redirects and authors ([f187b9f](https://github.com/TautvydasDerzinskas/Thingport/commit/f187b9f25ec2cadf12ca03430c601ec0077b27bc)) * minor adjustments to dark theme ([e9ac4f9](https://github.com/TautvydasDerzinskas/Thingport/commit/e9ac4f97764fc4dcc5939b7d5db1eb9e3bf3b2b3)) * minor fixes along admin ([75de79c](https://github.com/TautvydasDerzinskas/Thingport/commit/75de79c4bcf6cc30bd79739bc8ff729718088244)) * minor fixes in UI ([f93bfc7](https://github.com/TautvydasDerzinskas/Thingport/commit/f93bfc7db4de24d07d03d30cfa51d988a87f76da)) * minor UX improvements for AI ([0b89ad9](https://github.com/TautvydasDerzinskas/Thingport/commit/0b89ad962f66c8138803fecd7172fb8edfe737cf)) * model category reload flickering ([cdd2525](https://github.com/TautvydasDerzinskas/Thingport/commit/cdd2525085de0d8bcf846b29160be907d237a8ae)) * **models:** stop the hidden preview renderer from blocking description clicks ([#13](https://github.com/TautvydasDerzinskas/Thingport/issues/13)) ([7690721](https://github.com/TautvydasDerzinskas/Thingport/commit/76907212d475bb9c03604ae5edd1b6b383311d27)), closes [#12](https://github.com/TautvydasDerzinskas/Thingport/issues/12) * open in slicer now provides a choice of available files ([f3b3fb7](https://github.com/TautvydasDerzinskas/Thingport/commit/f3b3fb78e37314c4e0e01257f1dd76f208be3008)) * prevent loading all thumbnails in import modal at once ([06fab0a](https://github.com/TautvydasDerzinskas/Thingport/commit/06fab0a37ba9354d120f15d76d6cb00eaf207d24)) * profile menu chips ([f903abc](https://github.com/TautvydasDerzinskas/Thingport/commit/f903abcd293b77adce74f0d786b6fa462ff4ef3b)) * sticky top ([7c411c9](https://github.com/TautvydasDerzinskas/Thingport/commit/7c411c9db9bcc0c61661a98667e6364f1bf6ec0b)) * stl plate preview thumbnails + add them to downloads modal ([56f842e](https://github.com/TautvydasDerzinskas/Thingport/commit/56f842ed6fdc517d4ce7174faa0d61143d216744)) * topbar + model info box stickiness ([f737c04](https://github.com/TautvydasDerzinskas/Thingport/commit/f737c0480b609b726e5a0a7f4e1639c13de2286c)) * various small UI issues ([8ba368e](https://github.com/TautvydasDerzinskas/Thingport/commit/8ba368e209c7d56e4ee48e5bf042e777f19d5b0a)) ### Features * **3d-viewer:** improve ui and ux, fix flickering ([eb0b987](https://github.com/TautvydasDerzinskas/Thingport/commit/eb0b9876cfd75da3a40545d54cdc15a36cea1efe)) * ability to link multiple AIs ([56f173a](https://github.com/TautvydasDerzinskas/Thingport/commit/56f173a20b574014f5a29c6c8bbcc38f71c3dda8)) * add ability to enable catpcha ([6a6a87e](https://github.com/TautvydasDerzinskas/Thingport/commit/6a6a87e38d8a8b65edf137171dfb6ff15dde3976)) * add additional 3D preview toggable options ([58e3c72](https://github.com/TautvydasDerzinskas/Thingport/commit/58e3c7296e533beefecb5c170ae106221eaf5926)) * add admin job to refetch all user descriptions ([0cc27c9](https://github.com/TautvydasDerzinskas/Thingport/commit/0cc27c9eb618154c477dac5bd9cb1361eb7d291c)) * add Anycubic Slicer Next, Elegoo Slicer and Snapmaker Orca slicer options ([9dd3e69](https://github.com/TautvydasDerzinskas/Thingport/commit/9dd3e693e09efadb958b7ed31713310aad99f9c8)) * add author hover popover preview card ([864ec1c](https://github.com/TautvydasDerzinskas/Thingport/commit/864ec1cacdcf85a2f49a3ac64054178739ee36c5)) * add author linking admin trigger ([2a3434f](https://github.com/TautvydasDerzinskas/Thingport/commit/2a3434f126a92eb44e4ee633394146e8942f2a9a)) * add author page ([45b6bac](https://github.com/TautvydasDerzinskas/Thingport/commit/45b6bac574c69e376f982c18c71f7a3306176cd0)) * add browser icons to downloads view ([3716ea3](https://github.com/TautvydasDerzinskas/Thingport/commit/3716ea393c45aa9af5a48fa9d5af9afc718a42e9)) * add captcha options for changing password and email ([21f91d6](https://github.com/TautvydasDerzinskas/Thingport/commit/21f91d62758e894488a18663adecc998f1a207a6)) * add category banned and update ui for sorting ([b4e4c2a](https://github.com/TautvydasDerzinskas/Thingport/commit/b4e4c2aa9b2dffc1067f75fe31fe722cce629c34)) * add collections ([b5568d3](https://github.com/TautvydasDerzinskas/Thingport/commit/b5568d35e61734f18504ddf697a8a78bf5521da6)) * add consume folder support ([e22f579](https://github.com/TautvydasDerzinskas/Thingport/commit/e22f57903f3c3f564e92a085eef99c4877127723)) * add different logo variations for special occasions ([2dbc920](https://github.com/TautvydasDerzinskas/Thingport/commit/2dbc92035ddd53f911aadb0c08d8ff4b2acb8f69)) * add first version of search ([83e0beb](https://github.com/TautvydasDerzinskas/Thingport/commit/83e0bebf45836017c3181b7ded881153b7e84451)) * add layout subtitle ([907c342](https://github.com/TautvydasDerzinskas/Thingport/commit/907c342bff57327263c8b07dd6d667b7b2c9f7f0)) * add model title to details box ([8f1ca1f](https://github.com/TautvydasDerzinskas/Thingport/commit/8f1ca1fc4a65125df0163b42793d418e5510e64c)) * add proper auth ([be45bac](https://github.com/TautvydasDerzinskas/Thingport/commit/be45bacbea7e313253c4cccc0a3dc633ad3b2876)) * add react skeleton loading bits ([b15adb0](https://github.com/TautvydasDerzinskas/Thingport/commit/b15adb087bcd2df7e6f341029fd687264733582a)) * add rich text formatting toolbar to model descriptions ([d49d7c9](https://github.com/TautvydasDerzinskas/Thingport/commit/d49d7c99196633d85b7ae3d375edd5f45e919829)) * add sanitized bambu 3mf open option ([0d8cd62](https://github.com/TautvydasDerzinskas/Thingport/commit/0d8cd62fa7837875591cad5bd58bd968bd7862e1)) * add setting to customize dashboard model thumbnail appearance ([163d73f](https://github.com/TautvydasDerzinskas/Thingport/commit/163d73f2a79b6e1a5c3721b996aef7c8310c93bf)) * add slicer bridge ([96e41e3](https://github.com/TautvydasDerzinskas/Thingport/commit/96e41e3b2d516f60e9ca87435aa9622e4309b9e1)) * add sorting and ect ([312c6be](https://github.com/TautvydasDerzinskas/Thingport/commit/312c6be706ec3f49356f71cb933bc78d0d64b71e)) * add system adaptive theme ([6e7323d](https://github.com/TautvydasDerzinskas/Thingport/commit/6e7323d78e0d3f9b45c5fdf82be54a0b97155c98)) * add tags route ([6990c2f](https://github.com/TautvydasDerzinskas/Thingport/commit/6990c2ff9f200ebd27c4deaafd47e0c3867b849c)) * add to collections modals ([1d8443e](https://github.com/TautvydasDerzinskas/Thingport/commit/1d8443e069a3bce13692f1d64cd071f8c6edf46c)) * add users activity page ([6533781](https://github.com/TautvydasDerzinskas/Thingport/commit/6533781a2141e720e953089a5fd55c2ddc5c4685)) * admin menu updates ([77cf0ab](https://github.com/TautvydasDerzinskas/Thingport/commit/77cf0ab69fcee2a2005a8379aaa8be6776a78a32)) * admin panel remake ([2bce5a2](https://github.com/TautvydasDerzinskas/Thingport/commit/2bce5a20497e8523f9d73fba83e30c3cb2f1917f)) * admin sidebar change and system health check view ([#48](https://github.com/TautvydasDerzinskas/Thingport/issues/48)) ([92161f8](https://github.com/TautvydasDerzinskas/Thingport/commit/92161f8cf801ea57ac229cf91e07190417e7b216)) * administration settings remake + OIDC support ([#49](https://github.com/TautvydasDerzinskas/Thingport/issues/49)) ([9a22386](https://github.com/TautvydasDerzinskas/Thingport/commit/9a2238691d8b079adf7bfb4becebc9cf01cb6cad)) * **admin:** manage user roles and delete users, with an instance owner ([9d41c4d](https://github.com/TautvydasDerzinskas/Thingport/commit/9d41c4dee3333677b964d2d0baede8ce45d5aa45)) * AI features split, categorisation UX updates ([e542cc4](https://github.com/TautvydasDerzinskas/Thingport/commit/e542cc4473cb57ad5281b06d15518e10ade8f843)) * **ai:** accept the provider base URL with or without /v1 ([29c54ba](https://github.com/TautvydasDerzinskas/Thingport/commit/29c54bac117077e9ee2dabed068baf6dfb56386b)) * **AI:** add improved descriptions ([97f17e4](https://github.com/TautvydasDerzinskas/Thingport/commit/97f17e4fa35aa03db4ce8ac17b8419100efc333c)) * allow bookmarking collections ([4f40803](https://github.com/TautvydasDerzinskas/Thingport/commit/4f408031b43d97e7040df21ddbbf259bfce65456)) * allow disabling registrations + invitation system ([91ffbf5](https://github.com/TautvydasDerzinskas/Thingport/commit/91ffbf5441dec0bedde4fd901c1bdca18a2b7267)) * allow downloading collection and tag models in bulk ([d3c651c](https://github.com/TautvydasDerzinskas/Thingport/commit/d3c651c05d2fa0e16f55546189cd5965997fd216)) * allow import thingiverse likes & collections ([ac32d03](https://github.com/TautvydasDerzinskas/Thingport/commit/ac32d03071d139ec4a8bdaed0017686cd68d700f)) * allow multiple meta category ids ([8450885](https://github.com/TautvydasDerzinskas/Thingport/commit/8450885ea19df6e505c6b3d5c0f3f061c462b09a)) * allow open in Cura slicer ([e84fbca](https://github.com/TautvydasDerzinskas/Thingport/commit/e84fbca5f9bfc2040c86cb07ffe421c75bffd212)) * allow toggling off author previews per user ([711ece0](https://github.com/TautvydasDerzinskas/Thingport/commit/711ece0f62bff1c93f951024f5f98bac582e7dd2)) * anable complex model simplification ([7464583](https://github.com/TautvydasDerzinskas/Thingport/commit/746458378052fa228465261cceca1a71dea58c34)) * **api-tokens:** add per-user API tokens with generation and revocation ([469641d](https://github.com/TautvydasDerzinskas/Thingport/commit/469641de181b76bf463357548fa314b777ab1f4d)) * **auth:** add password reset flow ([3a05fae](https://github.com/TautvydasDerzinskas/Thingport/commit/3a05fae555d3a553196487930f636ade4f9348e8)) * author linking and other minor author changes ([589a5f4](https://github.com/TautvydasDerzinskas/Thingport/commit/589a5f464abdd675afe1ef8f63fe2ed843823043)) * back to top button ([b60fbd8](https://github.com/TautvydasDerzinskas/Thingport/commit/b60fbd8092ee421b430235ee994fb73259a19455)) * browse private collections functionality ([b619084](https://github.com/TautvydasDerzinskas/Thingport/commit/b619084be7ed060d02cd6ba473a196e7ba0859de)) * bulk feature changes ([7d18539](https://github.com/TautvydasDerzinskas/Thingport/commit/7d185395a355f327472652a054ba4a6a01800ba6)) * **categories:** add toggle between categories and folders ([33400fa](https://github.com/TautvydasDerzinskas/Thingport/commit/33400fa12803e1e7588a13fb200061b916062b80)) * **categories:** allow moving subcategories between parent categories ([172270f](https://github.com/TautvydasDerzinskas/Thingport/commit/172270fce81f4f713b295bde33e3bd853fcbc582)) * **categories:** allow unlimited depth of categories ([04f3106](https://github.com/TautvydasDerzinskas/Thingport/commit/04f3106ce84f94c92a08b42fa2546c4e050c1f98)) * categorize models with an OpenAI-compatible AI provider ([#11](https://github.com/TautvydasDerzinskas/Thingport/issues/11)) ([708a938](https://github.com/TautvydasDerzinskas/Thingport/commit/708a93822a40a69249232f52de8296006c33b7ae)) * chrome estensions Thingport grab ([7d53efb](https://github.com/TautvydasDerzinskas/Thingport/commit/7d53efb785469248b7d3be20fbf5af499a062090)) * collection impoort ([031cdf3](https://github.com/TautvydasDerzinskas/Thingport/commit/031cdf39902e212e24e0cb74d3cdbb8e7450a3a6)) * **collection-sync:** allow syncing collections with provider collections ([ef9152d](https://github.com/TautvydasDerzinskas/Thingport/commit/ef9152df6cd0edee4fff8355434c9e2e09f73731)), closes [#10](https://github.com/TautvydasDerzinskas/Thingport/issues/10) * **collections:** add sync indicator to collection toolbar ([2ac5a4c](https://github.com/TautvydasDerzinskas/Thingport/commit/2ac5a4cd048537cf6ffa1585f415dde0336da610)) * **collections:** turn sync on from Thingport, picking the provider's collection ([1131700](https://github.com/TautvydasDerzinskas/Thingport/commit/1131700ec5eb53801a85c842143717c66696d8d8)) * dashboard implementation ([cf5c8a9](https://github.com/TautvydasDerzinskas/Thingport/commit/cf5c8a958462bb0193379966696aa11935d72d1b)) * **dashboard:** add clock, weather, and featured-model widgets ([c71154a](https://github.com/TautvydasDerzinskas/Thingport/commit/c71154a83eb897122488a7c619cf38732eb4be44)) * **dashboard:** make dashboard panes toggleable ([3d1c851](https://github.com/TautvydasDerzinskas/Thingport/commit/3d1c851ad7baa007f883499d310c438f97c2b264)) * default categories for new users ([cefc27f](https://github.com/TautvydasDerzinskas/Thingport/commit/cefc27f23fd25e9693bcdc0f43b3e1b9c11f646c)) * eabling opening model ([4d61c90](https://github.com/TautvydasDerzinskas/Thingport/commit/4d61c902e6fcebd3cc49e65ffd8ca5e4ab5f0193)) * edit model functionality ([37ac318](https://github.com/TautvydasDerzinskas/Thingport/commit/37ac318e40dff826d6081657cb59e4f3c30a4b5e)) * enable preview image slideshow on model item hover ([63133eb](https://github.com/TautvydasDerzinskas/Thingport/commit/63133ebd158038abca2b1dfa20fb5b814b331d7d)) * enable right click on AI feature ([e07eb41](https://github.com/TautvydasDerzinskas/Thingport/commit/e07eb41168ca23b02a5a2d9e05b0a8c4182866dd)) * extend dashboard settings with layouts ([2813237](https://github.com/TautvydasDerzinskas/Thingport/commit/2813237e037c9559b2d4beb161afffed5628c4b0)) * **extension:** automate publishing to Chrome Web Store ([e37073c](https://github.com/TautvydasDerzinskas/Thingport/commit/e37073cf531e55c15f917cf44e6595dc29d661af)) * **extension:** improve loading messaging + make queue admin-only ([67a31cc](https://github.com/TautvydasDerzinskas/Thingport/commit/67a31cc94052fda9faf1daf831b6fbf5ce7b53e9)) * FireFox browser extension build ([523916d](https://github.com/TautvydasDerzinskas/Thingport/commit/523916d2b16c401184d86230fe9246d01db50919)) * **flaresolverr:** make URL configurable in admin settings ([5fa6c40](https://github.com/TautvydasDerzinskas/Thingport/commit/5fa6c403247e497c0dece4e8e3e1d28d1e25b484)) * import all designer or all MakerWorld print profiles of a model ([101aa03](https://github.com/TautvydasDerzinskas/Thingport/commit/101aa03f9c7526287847afd60d8733dfb0125db5)) * import author details from makerworld ([b16c27b](https://github.com/TautvydasDerzinskas/Thingport/commit/b16c27bc1e4f107598824814a406043478ec609f)) * improve collection boxes ui ([0972899](https://github.com/TautvydasDerzinskas/Thingport/commit/097289985266fbfa058832d149ebc5803bb2538c)) * improve import modal ([dd2652d](https://github.com/TautvydasDerzinskas/Thingport/commit/dd2652db08b395a194f9033e584b7e2e4958745c)) * improve model details page ([d5db3d3](https://github.com/TautvydasDerzinskas/Thingport/commit/d5db3d3b18ca7844f4b2abda687b78757d8c0302)) * initial commit ([a8fef7d](https://github.com/TautvydasDerzinskas/Thingport/commit/a8fef7d4913d1096beaabc4cd78b9c3a6b7d3c86)) * link import queue with an admin page and send-to-queue in the extension, plus update from source ([#6](https://github.com/TautvydasDerzinskas/Thingport/issues/6)) ([96da36a](https://github.com/TautvydasDerzinskas/Thingport/commit/96da36ae7999ab5c91bf076a727922a0dbdad0ec)) * **logo:** add seasonal logo to website with glob-based loading ([d0a1674](https://github.com/TautvydasDerzinskas/Thingport/commit/d0a167461f70ad3958d0aa08dafb1b6cc803de77)) * make print count be more interactive ([8e4f7dd](https://github.com/TautvydasDerzinskas/Thingport/commit/8e4f7ddf47de719b4da95753e1741e97f5de353c)) * make Thingport installable ([53dcacf](https://github.com/TautvydasDerzinskas/Thingport/commit/53dcacfc09fc4b7a26c8d9c9f23c0ba7e83ae3f4)) * make ttl configurable in admin ([6c66e7b](https://github.com/TautvydasDerzinskas/Thingport/commit/6c66e7b615e4ebb8d18feea00330636b533fdad7)) * new favourites toggler ([0a0dfd5](https://github.com/TautvydasDerzinskas/Thingport/commit/0a0dfd5f40bab7732cfeda1eb7e0925369654eb8)) * **notifications:** reinvent notifications ([1408b09](https://github.com/TautvydasDerzinskas/Thingport/commit/1408b09c5989499b38ee0effd1b7c29661a233a5)) * printables importing ([47a0ddd](https://github.com/TautvydasDerzinskas/Thingport/commit/47a0dddf9337e2624505bc2acf3be5e6e9b1033a)) * rebrand from PrintStash to Thingport ([56de86d](https://github.com/TautvydasDerzinskas/Thingport/commit/56de86d5b5367fe593587bee73c1ca730e356ae5)) * remake profile page and add configuration modal ([049efde](https://github.com/TautvydasDerzinskas/Thingport/commit/049efdedb6c4b759db7b93f7d2d282c72251d716)) * **search:** add ability to load search active views ([90a9942](https://github.com/TautvydasDerzinskas/Thingport/commit/90a9942d1b9966bdcf0558e8d5b986af79a625bf)) * **search:** add option to see all results ([ad27e95](https://github.com/TautvydasDerzinskas/Thingport/commit/ad27e950a9048a4e50ab67196fbd42d61db86f89)) * **search:** improve search UX and results ([ddcd3c7](https://github.com/TautvydasDerzinskas/Thingport/commit/ddcd3c785ce4bd1616982d417e145b75a28fd491)) * show available models in model input ([8718d82](https://github.com/TautvydasDerzinskas/Thingport/commit/8718d82ab3b4afe0565e0d0a8dddb6de540493fc)) * show model usage in memory size ([2813d47](https://github.com/TautvydasDerzinskas/Thingport/commit/2813d47049817697e3c74ba0db82217c2912111d)) * support Markdown with embedded images in model descriptions ([97f0eea](https://github.com/TautvydasDerzinskas/Thingport/commit/97f0eea4c267612c8b78546d43129550dfac4dc8)) * **sync:** pause syncs while a provider isn't connected, and hand back models blocked by it ([6993a4c](https://github.com/TautvydasDerzinskas/Thingport/commit/6993a4c4231b9e80db9eb13c27ab97fc89e9ac01)) * system notifications updates, Thingport grab in System health check, node 24+ ([#52](https://github.com/TautvydasDerzinskas/Thingport/issues/52)) ([358dfc1](https://github.com/TautvydasDerzinskas/Thingport/commit/358dfc1a03a178115642d41423f40586cd879b90)) * tag route ([0c7d0ec](https://github.com/TautvydasDerzinskas/Thingport/commit/0c7d0ec982d28c57cdb2c8bea07f064e213edab9)) * **tags:** add pagination, thumbnails, and tag deletion ([cdf0a53](https://github.com/TautvydasDerzinskas/Thingport/commit/cdf0a53251e1ef6d507b15735ad3cae7406b00de)) * translated default categories ([dc7ce30](https://github.com/TautvydasDerzinskas/Thingport/commit/dc7ce308c9f42831faaf5395606cf8a09f957fa4)) * various major UI & UX improvements ([7b1f718](https://github.com/TautvydasDerzinskas/Thingport/commit/7b1f718c74485b79c9117469ff35aa4c661f6829)) ### Performance Improvements * **tags:** render tag mosaics on the server and size pages to the screen ([eefbde1](https://github.com/TautvydasDerzinskas/Thingport/commit/eefbde1bb5c64bd0860e2613a79e768a0f0e6891))
Your personal 3D model library.
Collect, organize, preview, and manage your 3D printing models
from the places where you discover them.
About
If you do 3D printing, you probably discover models across MakerWorld, Printables, Thingiverse, and other 3D model platforms.
Over time, those bookmarks, downloads, ZIP files, and random folders become a mess.
Thingport is your personal, self-hosted 3D model library.
Bring your models together in one place, keep them organized, and preview them directly in your browser.
Instead of having your collection scattered across different websites and your filesystem, Thingport gives you a single place to manage the models you actually want to keep.
Screenshots
Installation
Step-by-step guides for Docker Compose, Unraid, TrueNAS SCALE and CasaOS are also on the Thingport website.
Docker Compose
Runs entirely from the pre-built images on GHCR -- no local build, no git clone needed. Works on any Docker host, including a NAS (Synology, QNAP, Unraid, etc).
Unraid users: see docs/install/unraid/README.md for an Unraid-flavored compose file (appdata paths, Docker tab icons/WebUI) and Compose plugin setup steps.
TrueNAS SCALE users: see docs/install/truenas/README.md for a TrueNAS-flavored compose file (dataset-backed appdata paths) and both the Custom App (YAML) and SSH setup steps.
CasaOS users: see docs/install/casaos/README.md for a CasaOS-flavored compose file (
/DATA/AppDataappdata paths) and both the customized-app and SSH setup steps.
Create a folder for Thingport and add these two files to it:
docker-compose.yml
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=${POSTGRES_USER:-thingport}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-thingport}
- POSTGRES_DB=${POSTGRES_DB:-thingport}
volumes:
- thingport_db:/var/lib/postgresql/data
networks:
- app-net
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-thingport}"]
interval: 5s
timeout: 5s
retries: 10
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
restart: unless-stopped
environment:
- LOG_LEVEL=${FLARESOLVERR_LOG_LEVEL:-info}
- TZ=${TZ:-UTC}
networks:
- app-net
backend:
image: ghcr.io/tautvydasderzinskas/thingport-backend:latest
restart: unless-stopped
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- AUTH_SECRET=${AUTH_SECRET:-changeme-secret}
- AUTH_TOKEN_TTL=${AUTH_TOKEN_TTL:-43200}
- PUBLIC_URL=${PUBLIC_URL:-}
- SMTP_HOST=${SMTP_HOST:-}
- SMTP_PORT=${SMTP_PORT:-587}
- SMTP_SECURE=${SMTP_SECURE:-false}
- SMTP_USER=${SMTP_USER:-}
- SMTP_PASS=${SMTP_PASS:-}
- SMTP_FROM=${SMTP_FROM:-Thingport <no-reply@localhost>}
- FILE_STORAGE=/app/storage
- DATABASE_URL=postgresql://${POSTGRES_USER:-thingport}:${POSTGRES_PASSWORD:-thingport}@db:5432/${POSTGRES_DB:-thingport}?schema=public
- CORS_ORIGINS=${CORS_ORIGINS:-}
- FLARESOLVERR_URL=${FLARESOLVERR_URL:-http://flaresolverr:8191/v1}
depends_on:
db:
condition: service_healthy
flaresolverr:
condition: service_started
volumes:
- thingport_storage:/app/storage
# Optional consume folder: files and folders dropped in it are imported automatically
# (Administration -> Storage -> Consume Folder). Uncomment and point it at a host folder.
# - /path/to/consume:/app/consume
networks:
- app-net
frontend:
image: ghcr.io/tautvydasderzinskas/thingport-frontend:latest
restart: unless-stopped
ports:
- "${WEB_PORT:-80}:80"
depends_on:
- backend
networks:
- app-net
volumes:
thingport_storage:
thingport_db:
networks:
app-net:
driver: bridge
.env
# Required
# AUTH_SECRET signs login tokens -- use your own random value
AUTH_SECRET=b1193c7014e833a063f750d6e4644d615e90e6ee81dbde619e1818e9675a3374
POSTGRES_PASSWORD=change-this-password
# Optional (defaults shown)
PUID=1000
PGID=1000
WEB_PORT=80
POSTGRES_USER=thingport
POSTGRES_DB=thingport
# e.g. https://thingport.example.com -- needed for links in emails and for single sign-on (OIDC).
# Read on the first run only; after that it's managed in Administration -> Auth.
PUBLIC_URL=
# login token lifetime, in seconds
AUTH_TOKEN_TTL=43200
SMTP_HOST=
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=
SMTP_PASS=
SMTP_FROM=Thingport <no-reply@localhost>
# first-run default only; once Thingport has started, change it in Administration -> Connections -> FlareSolverr
FLARESOLVERR_URL=http://flaresolverr:8191/v1
TZ=UTC
Then start it:
docker compose up -d
Thingport will be available at http://<host>:<WEB_PORT> (default port 80). The first
account you register becomes the admin account.
Then open Administration → Overview → System Health and click Run full test. Ideally everything is green: anything marked Required or Recommended that isn't means Thingport, or part of it, won't work properly until it's fixed, and each problem says how. It's also the first place to look whenever something stops working. See System Health.
Just want to try it? On Linux or macOS, one command creates a
thingportfolder with the same two files, generates the secrets in.envand starts Thingport on port 80:curl -fsSL https://thingport.net/install.sh | shEdit
.envthere and rundocker compose up -dagain to change settings. Pick the folder and port up front withcurl -fsSL https://thingport.net/install.sh | WEB_PORT=8080 sh -s -- ~/thingport. The script is install.sh in this repo.
Building from source instead
git clone https://github.com/TautvydasDerzinskas/Thingport.git
cd Thingport
cp .env.example .env
docker compose up -d
This builds the images locally rather than pulling from GHCR.
Consume folder
To have Thingport import whatever you drop into a folder on the server, uncomment the consume volume in
docker-compose.yml. See the consume folder guide.
Features
- Import from MakerWorld, Printables and Thingiverse
- Synced collections
- Bring your existing library
- Consume folder
- 3D previews
- AI categorization and descriptions
- Organize and search
- Dashboard
- Profile and activity
- Author pages
- Open in your slicer
- Normalized MakerWorld 3MFs
- Everything to print it
- Download as ZIP
- Plain files on your disk
- Multi-user
- Single sign-on
- Administration
- System Health
- API token
- Light and dark themes, in English and Lithuanian
- Self-hosted
Companion Apps
Thingport ships two small companion tools, each downloadable from the in-app Download page or GitHub Releases:
- Thingport Bridge — a lightweight desktop helper that makes "Open in {Slicer}" work for slicers (Bambu Studio, PrusaSlicer, Cura, Anycubic Slicer Next) whose own URL-protocol handlers won't accept a link from a self-hosted domain.
- Thingport Grab — a browser extension for Chrome, Edge and Firefox that imports MakerWorld, Thingiverse, and Printables models straight from their own pages, without leaving the site (see the screenshots above). Even without a Thingport instance, it adds a "Download normalized" button to MakerWorld model pages that converts Bambu Studio projects into 3MFs other slicers open with their colours and settings. Get it from the Chrome Web Store, Firefox Add-ons or Microsoft Edge Add-ons.
Provider Setup
Printables imports work with no setup. MakerWorld and Thingiverse each need a credential from your own account first. Connect them under Configuration → Providers (from the user menu): right-click a provider to connect or disconnect it. Admins can turn any provider off for the whole instance under Administration → Providers. See docs/PROVIDER_SETUP.md for how to create a Thingiverse Access Token and how to grab a MakerWorld session cookie.
Contributing
Bug reports and pull requests are welcome. See CONTRIBUTING.md for the branch, commit and pull request workflow, and docs/DEVELOPMENT.md for how to run Thingport locally with hot reload.
Honourable contributors
|
Ruivalim |
Support
If Thingport is useful to you, consider supporting its development:
License
Thingport is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License, version 3 (AGPL-3.0-only), as published by the Free Software Foundation.






















