You must add all your domains and subdomains in one command.
(From digital ocean🙂 You will also be able to choose between enabling both http and https access or forcing all requests to redirect to https. For better security, it is recommended to choose the option 2: Redirect if you do not have any special need to allow unencrypted connections. Select your choice then hit ENTER.
Error: Port 80 is required
Let’s encrypt requires port 80 to redirect to your server. So configure that redirection in your apache config.
(From digital ocean🙂 This will create a new cron job that will execute at noon and midnight every day. Adding an element of randomness to your cron jobs will ensure that hourly jobs do not all happen at the same minute, causing a server spike; python -c 'import random; import time; time.sleep(random.random() * 3600)' will select a random minute within the hour for your renewal tasks.
Press ‘Esc’, type 😡 to save, and check to see it is added to your list of cron jobs:
Note: You can pretty much answer the questions any way you want though real
answers are best. The one question that really matters here is the FQDN. It
should be: localhost.
·
Move the private.key and certificate.crt files from c:\wamp64\bin\apache\apache2.4.41\bin to
the c:\wamp64\bin\apache\apache2.4.41\conf\key\ folder. If the key folder
doesn’t already exist, create it.
·
Using a text editor like Notepad, open c:\wamp64\bin\apache\apache2.4.41\conf\httpd.conf
and un-comment following 3 lines: LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
·
Using a text editor like Notepad, open c:\wamp64\bin\apache\apache2.4.41\conf\extra\httpd-ssl.conf
and apply the following changes:
Below the line: <VirtualHost _default_:443>, check the
following parameters to ensure they are configured correctly and not commented.
————————————- DocumentRoot “c:/wamp64/www” ServerName localhost:443 ServerAdmin admin@example.com
SSLSessionCache “shmcb:c:/wamp64/bin/apache/apache2.4.41/logs/ssl_scache(512000)” ErrorLog “c:/wamp64/bin/apache/apache2.4.41/logs/error.log” TransferLog “c:/wamp64/bin/apache/apache2.4.41/logs/access.log” SSLCertificateFile “c:/wamp64/bin/apache/apache2.4.41/conf/key/certificate.crt” SSLCertificateKeyFile “c:/wamp64/bin/apache/apache2.4.41/conf/key/private.key”
————————————-
·
Save the file and close it.
· You are done. To
check the validity of file, at the command prompt, enter: c:\wamp64\bin\apache\apache2.4.41\bin\httpd -t and then use your web browse to go to https://localhost/
DROP TABLE IF EXISTS `_mid_products`;
CREATE TABLE IF NOT EXISTS `_mid_products` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`active_0_1` text DEFAULT NULL,
`name` text DEFAULT NULL,
`categories_cs` text DEFAULT NULL,
`price_tax_excluded` text DEFAULT NULL,
`tax_rules_id` text DEFAULT NULL,
`wholesale_price` text DEFAULT NULL,
`on_sale_0_1` text DEFAULT NULL,
`discount_amount` text DEFAULT NULL,
`discount_percent` text DEFAULT NULL,
`discount_from_yyyy_mm_dd` text DEFAULT NULL,
`discount_to_yyyy_mm_dd` text DEFAULT NULL,
`reference_num` text DEFAULT NULL,
`supplier_reference_num` text DEFAULT NULL,
`supplier` text DEFAULT NULL,
`manufacturer` text DEFAULT NULL,
`ean13` text DEFAULT NULL,
`upc` text DEFAULT NULL,
`ecotax` text DEFAULT NULL,
`width` text DEFAULT NULL,
`height` text DEFAULT NULL,
`depth` text DEFAULT NULL,
`weight` text DEFAULT NULL,
`delivery_time_of_in_stock_products` text DEFAULT NULL,
`delivery_time_of_out_of_stock_products_with_allowed_orders` text DEFAULT NULL,
`quantity` text DEFAULT NULL,
`minimal_quantity` text DEFAULT NULL,
`low_stock_level` text DEFAULT NULL,
`send_me_an_email_when_the_quantity_is_under_this_level` text DEFAULT NULL,
`visibility` text DEFAULT NULL,
`additional_shipping_cost` text DEFAULT NULL,
`unity` text DEFAULT NULL,
`unit_price` text DEFAULT NULL,
`summary` text DEFAULT NULL,
`description` text DEFAULT NULL,
`tags_cs` text DEFAULT NULL,
`meta_title` varchar(255) DEFAULT NULL,
`meta_keywords` varchar(255) DEFAULT NULL,
`meta_description` text DEFAULT NULL,
`url_rewritten` text DEFAULT NULL,
`text_when_in_stock` text DEFAULT NULL,
`text_when_backorder_allowed` text DEFAULT NULL,
`available_for_order_0_1` text DEFAULT NULL,
`product_available_date` text DEFAULT NULL,
`product_creation_date` text DEFAULT NULL,
`show_price_0_1` text DEFAULT NULL,
`image_urls_cs` text DEFAULT NULL,
`image_alt_texts_cs` text DEFAULT NULL,
`delete_existing_images_0_1` text DEFAULT NULL,
`feature_cs` text DEFAULT NULL,
`available_online_only_0_1` text DEFAULT NULL,
`condition_` text DEFAULT NULL,
`customizable_0_1` text DEFAULT NULL,
`uploadable_files_0_1` text DEFAULT NULL,
`text_fields_0_1` text DEFAULT NULL,
`out_of_stock_action` text DEFAULT NULL,
`virtual_product` text DEFAULT NULL,
`file_url` text DEFAULT NULL,
`number_of_allowed_downloads` text DEFAULT NULL,
`expiration_date` text DEFAULT NULL,
`number_of_days` text DEFAULT NULL,
`id_name_of_shop` text DEFAULT NULL,
`advanced_stock_management` text DEFAULT NULL,
`depends_on_stock` text DEFAULT NULL,
`warehouse` text DEFAULT NULL,
`acessories_cs` text DEFAULT NULL,
PRIMARY KEY (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Categories table
DROP TABLE IF EXISTS `_mid_categories`;
CREATE TABLE IF NOT EXISTS `_mid_categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`active` int(11) NOT NULL DEFAULT 1,
`name` text DEFAULT NULL,
`parent_category` text DEFAULT NULL,
`root_category` text DEFAULT NULL,
`description` text DEFAULT NULL,
`meta_title` text DEFAULT NULL,
`meta_keyword` varchar(255) DEFAULT NULL,
`meta_description` text DEFAULT NULL,
`url_rewritten` text DEFAULT NULL,
`image` text DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
COMMIT;
SQLs
fill the categories table:
insert into _mid_categories
(id,active,parent_category,description,name,meta_title,meta_keyword,meta_description,url_rewritten)
SELECT (categoryid+3) as id,catvisible as active,(catparentid+3) as `parent_category`,catdesc as description,catname as meta_title,catname as `name`,catmetakeywords as meta_keyword,catmetadesc as meta_description,replace(catname,' ','-') as url_rewritten FROM isc_categories ORDER BY catsort;
UPDATE `_mid_categories` set root_category=1 WHERE parent_category='0';
UPDATE `_mid_categories` set root_category=0 WHERE parent_category!='0';
UPDATE _mid_categories targetTable
LEFT JOIN _mid_categories sourceTable ON
targetTable.parent_category=sourceTable.id
SET
targetTable.parent_category=sourceTable.id;
UPDATE `_mid_categories` SET parent_category='2' WHERE parent_category is null;
And for exporting it to csv you have to use this query:
SELECT mc.* FROM `_mid_categories` as mc order by CASE WHEN parent_category>id THEN cast(id as unsigned) ELSE cast(parent_category as unsigned) END ASC,id asc
this fill the products table:
truncate _mid_products;
insert into _mid_products
(`product_id`, `active_0_1`, `name`, `categories_cs`, `price_tax_excluded`, `tax_rules_id`, `wholesale_price`, `on_sale_0_1`, `discount_amount`, `discount_percent`, `discount_from_yyyy_mm_dd`, `discount_to_yyyy_mm_dd`, `reference_num`, `supplier_reference_num`, `supplier`, `manufacturer`, `ean13`, `upc`, `ecotax`, `width`, `height`, `depth`, `weight`, `delivery_time_of_in_stock_products`, `delivery_time_of_out_of_stock_products_with_allowed_orders`, `quantity`, `minimal_quantity`, `low_stock_level`, `send_me_an_email_when_the_quantity_is_under_this_level`, `visibility`, `additional_shipping_cost`, `unity`, `unit_price`, `summary`, `description`, `tags_cs`, `meta_title`, `meta_keywords`, `meta_description`, `url_rewritten`, `text_when_in_stock`, `text_when_backorder_allowed`, `available_for_order_0_1`, `product_available_date`, `product_creation_date`, `show_price_0_1`, `image_urls_cs`, `image_alt_texts_cs`, `delete_existing_images_0_1`, `feature_cs`, `available_online_only_0_1`, `condition_`, `customizable_0_1`, `uploadable_files_0_1`, `text_fields_0_1`, `out_of_stock_action`, `virtual_product`, `file_url`, `number_of_allowed_downloads`, `expiration_date`, `number_of_days`, `id_name_of_shop`, `advanced_stock_management`, `depends_on_stock`, `warehouse`, `acessories_cs`)
SELECT
p.productid as `product_id`,
p.prodvisible as `active_0_1`,
replace(p.prodname,'#','No ') as `name`,
GROUP_CONCAT(DISTINCT (cats.categoryid+3) ORDER BY cats.categoryid asc SEPARATOR ',') as `categories_cs`,
(p.prodprice/1.2) as `price_tax_excluded`,
'1' as `tax_rules_id`,
p.prodprice as `wholesale_price`,
'0' as `on_sale_0_1`,
null as `discount_amount`,
null as `discount_percent`,
null as `discount_from_yyyy_mm_dd`,
null as `discount_to_yyyy_mm_dd`,
p.prodcode as `reference_num`,
null `supplier_reference_num`,
null `supplier`,
brands.brandname as `manufacturer`,
null as `ean13`,
null as `upc`,
null as `ecotax`,
null as `width`,
null as `height`,
null as `depth`,
p.prodweight as `weight`,
null as `delivery_time_of_in_stock_products`,
null as `delivery_time_of_out_of_stock_products_with_allowed_orders`,
'999999' as `quantity`,
null as `minimal_quantity`,
null as `low_stock_level`,
null as `send_me_an_email_when_the_quantity_is_under_this_level`,
'both' as `visibility`,
null as `additional_shipping_cost`,
null as `unity`,
null as `unit_price`,
SUBSTRING(p.prodmetadesc,0,800) as `summary`,
p.proddesc as `description`,
null as `tags_cs`,
p.prodname as `meta_title`,
p.prodmetakeywords as `meta_keywords`,
SUBSTRING(p.prodmetadesc,0,512) as `meta_description`,
replace(p.prodname,' ','_') as `url_rewritten`,
null as `text_when_in_stock`,
null as `text_when_backorder_allowed`,
p.prodallowpurchases as `available_for_order_0_1`,
DATE_FORMAT(FROM_UNIXTIME(p.proddateadded), '%Y-%m-%d') AS `product_available_date`,
DATE_FORMAT(FROM_UNIXTIME(p.proddateadded), '%Y-%m-%d') AS `product_creation_date`,
'1' as `show_price_0_1`,
GROUP_CONCAT(DISTINCT CONCAT('https://www.natamno.com/product_images/',imgs.imagefile) ORDER BY imgs.imagesort asc SEPARATOR ',') as `image_urls_cs`,
null as `image_alt_texts_cs`,
'0' as `delete_existing_images_0_1`,
null as `feature_cs`,
'0' as `available_online_only_0_1`,
LOWER(p.prodcondition) as `condition_`,
'0' as `customizable_0_1`,
'0' as `uploadable_files_0_1`,
'0' as `text_fields_0_1`,
null as `out_of_stock_action`,
null as `virtual_product`,
null as `file_url`,
null as `number_of_allowed_downloads`,
null as `expiration_date`,
null as `number_of_days`,
'1' as `id_name_of_shop`,
null as `advanced_stock_management`,
null as `depends_on_stock`,
null as `warehouse`,
null as `acessories_cs`
FROM isc_products as p
LEFT JOIN isc_brands as brands ON p.prodbrandid=brands.brandid
LEFT JOIN isc_categoryassociations as cats ON p.productid=cats.productid
LEFT JOIN (SELECT * FROM isc_product_images where imagefile NOT like '%_tiny.%' AND ((REPLACE(imagefile,'_thumb.','.')!=imagefile AND REPLACE(imagefile,'_thumb.','.') NOT IN (SELECT imagefile FROM isc_product_images) ) OR REPLACE(imagefile,'_thumb.','.')=imagefile ) ) as imgs ON p.productid=imgs.imageprodid
/*WHERE p.productid=9096*/
group by p.productid;
UPDATE `_mid_products` SET meta_title=REPLACE(meta_title,'>',' ');
UPDATE `_mid_products` SET meta_title=REPLACE(meta_title,'<',' ');
UPDATE `_mid_products` SET meta_description=REPLACE(meta_description,'>',' ');
UPDATE `_mid_products` SET meta_description=REPLACE(meta_description,'<',' ');
UPDATE `_mid_products` SET meta_keywords=REPLACE(meta_keywords,'>',' ');
UPDATE `_mid_products` SET meta_keywords=REPLACE(meta_keywords,'<',' ');
UPDATE `_mid_products` SET `name`=REPLACE(`name`,'>',' ');
UPDATE `_mid_products` SET `name`=REPLACE(`name`,'<',' ');
UPDATE _mid_products SET meta_description=SUBSTRING(meta_description,0,512);
Export it to CSV by just using phpMyAdmin – export function – CSV
Use this query to Export Combinations
SELECT
pvc.vcproductid as product_id,
'' as productreference,
GROUP_CONCAT(CONCAT(CONCAT(pvo.voname,'-',vovariationid,'-',REPLACE(REPLACE(pv.vname,':','-'),',','-')),':select:',pvo.vovaluesort) ORDER BY pvo.vovaluesort asc SEPARATOR ',' ) as attribute,
GROUP_CONCAT(CONCAT((case when pvo.vovalue='' then '-' else pvo.vovalue end),':',pvo.vooptionsort) ORDER BY pvo.vovaluesort asc SEPARATOR ',' ) as val,
CASE WHEN pvc.vcenabled=1 THEN '999999' ELSE 0 END as qty
FROM isc_product_variation_combinations pvc
LEFT JOIN isc_product_variation_options pvo ON pvo.vovariationid=pvc.vcvariationid AND FIND_IN_SET(pvo.voptionid,pvc.vcoptionids)
LEFT JOIN isc_product_variations pv ON pvc.vcvariationid=pv.variationid
/*WHERE pvc.vcproductid=9096*/
WHERE pvc.vcproductid>0
GROUP BY pvc.combinationid;
4 Changes You Can Implement Today to Simplify Your Website Design and Make It Better
You will lose clients faster than the speed of light with a terribly cluttered website design.
I mean, just take a look at the next two examples I’m gonna show you.
So here we have a busy website, with no specific focal point, and you
don’t really know where to look, and it immediately stresses you out.
You lose the client because he clicks off your site.
When I look at this minimalist website design, especially compared to
the other, my eyes are immediately set to ease. It’s literally like the
inner designer in me just had the most amazing glass of wine and I’m
just enjoying myself, admiring the design.
Alright, enough comparisons. Let’s just get things rolling over here.
A good color scheme always warms my heart, like grandma’s homemade apple pie on a summer’s day.
Maintaining a color scheme amongst your text, background elements, and images will automatically make you look more organized.
By using a color scheme, you can also bring focus to certain elements and manipulate the eye to go where you want it to.
By no means do you ever want a green font on a bright red background
with orange and silver elements floating around the background. Unless
you want you website to look like Christmas got a little wild at the
Christmas staff party and vomited all over your website.
Go online or on any design inspiration website and type in popular
color schemes on 2020, or color palettes, and save time and effort by
finding beautiful palettes!
We need to do things differently, and that’s why we created Appwrite. Appwrite is an open-source backend server that aims to abstract the complexity behind repeating software development tasks.
Appwrite
gives your project a better starting point by abstracting most of you
common backend tasks behind a simple to use REST API.
Appwrite
provides software developers with APIs and SDKs to quickly implement
functions that are repetitive across their projects like user authentication, file management, localization, database management, and more.
Appwrite also provides teams with tools like Appwrite Webhooks
and Appwrite Background Tasks to allow maximum flexibility and
customization to match each and each product and different scenarios
different teams might face.
Creating an abstraction layer between complex function and developers. Appwrite
Appwrite
comes with built-in and centralized security and is agnostic to the
technologies or frameworks developers use to build their apps. Appwrite
hides the unnecessary complexity required to make a fast and secure
application, allowing teams to create high-end products, quickly and
without compromising, features, security, or quality.
By
giving software projects a better starting point, we aim to provide
software developers with more time to innovate, tackle new problems, and
create better products. There is no reason we, as an industry, will
keep on struggling with the same old challenges while we can leverage
open-source to share solutions and build better and more secure tools or
services.
Serverless is great, but it can’t work for every project. Appwrite can replace your backend servers or work alongside them.
It
was vital for us to leave the power and the flexibility in the
developer’s hands. It’s up for them to decide how they want to set their
architecture
It’s
important to understand that unlike other serverless solutions,
Appwrite does not aim to magically replace backend servers. Instead, it
attempts to give new projects a better starting point. Appwrite
allows developers to replace or extend their existing backend server
functionality by using tools like webhooks and background functions.
You can use Appwrite as a standalone API directly against your client app or together with your own backend servers.
Appwrite is unopinionated about the way the developer wishes to use it.
We give you the tools to make any decision you want about your app,
technology stack, or integrations.
Appwrite dashboard allows developers to monitor and manage their backend activity
What’s Next?
Using
Appwrite as a code abstraction layer, we hope to give developers and
small to big organizations more time to focus on their products and
create more room for innovation. We, as a software industry, should
always try and improve, and we hope Appwrite is another step in that
direction.
Learn More
You can learn more about Appwrite features, API, and integration by visiting Appwrite official website or Github repository. You can also follow Appwrite news and announcements on our Twitter or Facebook accounts.
Photography has been and will always
be a key piece of design. Stock photos are no longer what they used to
be, luckily. No longer will you be seeing just those awkward group
photos of people laughing or two businessmen shaking hands.
No, there are so many stock photo sites for you to choose from with quality work from real photographers. Check out these 10 awesome free stock images websites!
I want to start this list off with a bang. Unsplash
is my personal favorite free stock image website. I use it for
everything from article writing to making designs. Unsplash has a huge
collection of images, consisting of over 110,000 high-quality free stock
images. Just type in a keyword and see hundreds of images that can suit
your needs. All images are released under Unsplash’s copyright policy.
Stocksnap
Stocksnap
has hundreds of new high-quality free stock images added to their
library every week. They have stock images to fit just about any
occasion you can think of. From website building to brochure making,
they having everything you need. You can find any image you need by
typing in tag words, and you’ll be presented with hundreds of images
that will be perfect for you. All images are free for you to use!
Pexels
Pexels
has one of the most beautiful stock images website interfaces I’ve ever
seen. Pexels provides tons of high-quality stock images that are free
for you to use under their license. With hundreds of thousands of
beautiful free images of you to choose from, surely you’ll find what you
need here.
Reshot
“Reshot.
Uniquely free photos. Handpicked, non-stocky images. Yours to use as
you wish”. That’s a pretty self-explanatory and sweet tagline. They work
hand-in-hand with amazing professional photographers and give them a
great place to display their work and be discovered. Find amazing free
stock images on Reshot!
Pixabay
Pixabay
has loads of free photos, but not only. They also have art
illustrations and vectors. All images, art illustrations vectors, etc
are released under Creative Commons CC0.
Life of Pix
Next up, we have Life of Pix.
Free high-resolution photography for everyone. Besides having loads of
amazing photos to choose from, they also feature a new photographer of
the week. Find new photographers whose work you love every week and in
turn, have tons of stock photos to choose from!
Foodiesfeed
Foodiesfeed
is for the foodie at heart. Which gorgeous, appetizing stock images
that look so delicious that you can almost smell them just by looking at
them. If you have a food blog or just need some inspiration, check out
this awesome stock image site.
Gratisography
Gratisography
is for the non-mainstream person. If you’re looking for the complete
opposite of the classic boring stock photo, this website is for you. You
truly won’t find photos like these anywhere else.
Foca
FOCA
is a great stock website if you’re looking for a little more than just
some stock images. They have everything from free photos to videos and
templates!
Kaboompics
Kaboompics
is so aesthetically pleasing, it hurts. The amazing blog pictures are
everything. According to their about page, Kaboompics is one of the most
popular sources of free images for lifestyle, interior design and
specialized bloggers in the world.
Free Vectors
Creating your own vectors can take up
so much of your precious time, and that’s why finding perfect vector
art or vector icons can be a major time-saver, but finding them for free
is like finding treasure. That’s why I picked out my 10 favorite free
vector websites. Check ‘em out.
Vexels
Vexels
has great free vectors for you to use for personal and commercial use.
What I really like about their vectors is that many of them are
editable. You can get everything from icons to backgrounds and designs
that are ready for print. Give them a try!
Vector Stock
Vector stock
has over 300,000 vectors for you to choose from. With such a wide
variety of vectors, surely you’ll find something that’ll suit your
project and save you loads of time.
The Noun Project
The Noun Project can be summed up in icons, icons, icons! They have over 2 million royalty-free
vector icons for you to use. And what’s better? You can edit them. That
is insane, people. Don’t sleep on the noun-project. They have all those
quality things you’re looking for.
Vector 4 Free
Vector 4 Free has
vector art for everyone. Their goal is to share vector art created by
professional designers with everyone. They have all sorts of formats,
such as .ai format, but also .eps, .pdf, .svg, and even .cdr. All of
their vectors are free for personal use, but for commercial use, you
have to check each artist’s terms of use, as they all differ.
Freepik
Freepik
has over 708,000 free vectors for you to use for personal use and also
for commercial use. The styles vary as far as feminine and
elegant-looking invitations to vectors that are perfect for backend
technology promotion. You’ll find every style you could need here, and
you can download everything in .Ai and .EPS formats.
Free Vector
Free Vector
is full of fun and colorful cartoonish vectors. They are basically a
world full of free vector art that is simply at your fingertips. Type in
your keywords in the search bar to find vectors that suit your style,
or scroll to the end of the page and find tons of categories to browse
through.
Vecteezy
Vecteezy
has thousands of gorgeous vector art for you to use. Everything is
copyright free, so you never have to worry about that. There are tons of
free vectors for you to use, or you can upgrade your account to a pro
account and have access to everything at your fingertips.
Flat Icon
Flat Icon
is the largest database of free icons that are available in PNG, SVG,
EPS, PSD, and BASE 64 formats to date! With a free account, you can
access thousands of free icons, or you can upgrade your account and get
millions of icons for free.
Pngtree
Pngtree
has wonderful vectors for you to choose from, and with a free account,
you have access to 2 daily downloads. Get royalty-free PNG images,
vectors, backgrounds, templates, and text effects from Pngtree.
Free Mockups
Showing real-life visuals of your
work to your client is a vital selling point, and that’s one of the huge
reasons that mockups are so crucially important. Here are 10 free
amazing mockup websites for you to use for your next project.
Placeit
Placeit
is a site where you can visualize all of your designs on products
within seconds. Not only can you just upload your images, but you can
also make designs on the platform, and create videos. Create your own
design, or try out one of their 32,938 smart templates!
Smart Mockups
Smart Mockups
is the fastest web-based mockup tool out there right now. It’s
user-friendly in the manner that advanced designers and beginners alike
can use and understand their product. You can use a free account and
create 200 mockups and use basic features, or you can upgrade your
account and have access to all mockups and features.
Mockuuups
Mockuuups
will generate tour product mockups in literally a second. The tool is
easy to use, as it is drag-and-drop based. Download the app to your
computer to start using. You can use a free account and still have
access to lots of features and mockups, or you can upgrade your account
to have access to everything!
Mckups
Mckups
has a beautiful, minimalist interface and beautiful, free mockups for
you to use. The mockups are hand-crafted by professional designers and
are just waiting for you to use them.
The Mockup Club
The Mockup Club
is absolutely free and that might just be my favorite part. It’s a
one-stop shop with loads of free mockups for you to use to showcase your
lovely designs.
Psd Repo
Psd Repo
has every mockup imaginable. From key-chains to shorts, to t-shirts, to
protein powder packaging, I think I can safely say they have it all.
The mockups are made by talented designers who want to share their work
with you for free. Download your favorite mockup as a PSD file and get
to designing!
Mockups Design
Mockups Design
is an easy-to-use website where designers can find professional mockups
for free to use in their next design project. From DVDs and CD to
letterheads and brochures. They have lots to choose from.
Good Mockups
Good Mockups
can be summed up about something like this: High-quality, hand-picked,
premium mockups for all to use. They strive to have mockups to fit
everyone and every design. With an entire list for you to go through, I
believe that they are truly well worth your time.
Mr. Mockup
Last but not least, we have Mr. Mockup. They have a team of professional and creative designers working to mockups for everyone. With a vast experience in designing just about anything, you can count on them to find beautiful mockups for your next design project.