// All page components — Home, Services index, Service detail, Upload, Gallery, // Why, About, Careers, Contact // ============= HOME ============= function HomePage({ onNavigate }) { const services = window.CW_DATA.services; return (
{/* Hero */}
Barsha Heights · Tecom · Dubai

Digital & offset printing in Dubai —{" "} upload your file,{" "} we'll print it.

Business cards to billboards. A5 to A0. Same-day on print-ready artwork, delivered across Dubai or ready to pick up from our shop in DAMAC Smart Heights.

WhatsApp Us
Same-day on ready artwork
25+ print services
Trusted by Tecom corporates since 2014
{/* Hero bar */}
DAMAC Smart Heights · Barsha Heights
Mon–Sat · 08:00 – 20:00
+971 4 277 1587
prints@colorwings.ae
{/* Services grid */}
What we print

Eight categories, one print shop.

From a single passport photo to a thousand-piece corporate order — pick the category that matches your job.

{services.map(s => (
onNavigate("service:" + s.slug)}>
{s.num}

{s.name}

{s.tagline}
{s.priceTbd ? "Quote on upload" : "From AED 40"}
))}
{/* How it works */}
How it works

Three steps, no phone tag.

Most quotes back the same hour. Most jobs printed the same day — if your file is press-ready.

01

Upload your file

Drag-and-drop a PDF, AI, EPS, JPG, PNG or ZIP. Tell us quantity, size and stock. You'll get an auto-confirmation email with your order reference.

02

We quote & confirm

Our team checks your artwork, flags any bleed or colour issues, and replies with a price and timeline — usually within the hour during shop hours.

03

We print & deliver

Approve the proof and we print. Pick up from the shop in Tecom or have it couriered across Dubai. Same-day delivery on standard jobs.

{/* Why teaser */}
Reviews

A small team that just gets it done.

Two-to-ten staff, one shop, and the Tecom-tower regulars who keep coming back. The work's not glamorous — letterheads, copies, roll-ups, photo prints — but it has to be right, and it has to be on time.

25+
Print services under one roof
15 min
Walk-in passport photos
A5 → A0
Sizes printed in-house
3.6 / 5
Google rating (19 reviews)
{window.CW_DATA.reviews.map((r, i) => (
{"★".repeat(r.stars) + "☆".repeat(5-r.stars)}
“{r.quote}”
— {r.who}
))}
{/* Gallery strip */}
Recent work

Off the presses.

{window.CW_DATA.gallery.slice(0, 6).map((g, i) => (
onNavigate("gallery")}> {g.label}
{g.label}
))}
{/* Contact strip */}
Visit
Shop 6A, DAMAC Smart Heights
Barsha Heights, Dubai
Open
Mon–Sat
08:00 – 20:00
Call / WhatsApp
Email
); } // ============= SERVICES INDEX ============= function ServicesIndex({ onNavigate }) { return (
onNavigate("home")}>Home / Services

Eight things we print — and one form to start any of them.

From a single Emirates-ID photo to a 5,000-piece offset run, every job starts the same way: upload your file or tell us what you need.

{window.CW_DATA.services.map(s => (
onNavigate("service:" + s.slug)}>
{s.num}

{s.name}

{s.tagline}
{s.priceTbd ? "Quote on upload" : "From AED 40"}
))}
); } // ============= SERVICE DETAIL ============= function ServiceDetail({ slug, onNavigate }) { const s = window.CW_DATA.services.find(x => x.slug === slug); const [openFaq, setOpenFaq] = React.useState(0); if (!s) return
Service not found
; const faqs = [ { q: "What file formats do you accept?", a: "We accept PDF, AI, EPS, JPG, PNG, ZIP and RAR. For print-quality results we recommend press-ready PDF/X-1a or a vector AI/EPS with fonts outlined and 3 mm bleed." }, { q: "How fast can you turn this around?", a: "Most digital jobs are same-day on print-ready artwork received before noon. Offset and finished jobs (lamination, foiling, binding) typically need 1–5 working days depending on quantity and finish." }, { q: "Do you deliver across Dubai?", a: "Yes — we deliver to Dubai addresses with our own courier, and ship anywhere in the U.A.E. via standard carriers. Pickup from the shop in Barsha Heights is always free." }, { q: "Can you fix my file if it isn't print-ready?", a: "Yes. Our prepress team checks every file for bleed, colour space and resolution. Minor fixes are free; bigger rebuilds are quoted before we start." } ]; return (
onNavigate("home")}>Home / onNavigate("services")}>Services / {s.name}

{s.name}

{s.tagline} {s.blurb}

What we print

Common items in this category

    {s.bullets.map((b, i) =>
  • {b}
  • )}
{s.specs.map((sp, i) => (
{sp.k}
{sp.v}
))}
Pricing note. Print pricing depends on artwork, stock, finish and run-size — we'll send a written quote within the hour. The "from" prices on this site are placeholders until our rate card is verified.

Samples

{s.samples.map((src, i) => (
Sample
))}

FAQ

{faqs.map((f, i) => (
setOpenFaq(openFaq === i ? -1 : i)}>
{f.q}
{f.a}
))}
); } // ============= UPLOAD ============= function UploadPage({ onNavigate, preselect }) { const [files, setFiles] = React.useState([]); const [over, setOver] = React.useState(false); const [submitted, setSubmitted] = React.useState(false); const [ref, setRef] = React.useState(""); const [form, setForm] = React.useState({ name: "", company: "", email: "", phone: "", service: preselect || "", qty: "", size: "", stock: "", finish: "", deadline: "", delivery: "Pickup at the shop", notes: "", consent: true, }); const inputRef = React.useRef(null); React.useEffect(() => { if (preselect) setForm(f => ({...f, service: preselect})); }, [preselect]); const onChange = (k, v) => setForm(f => ({...f, [k]: v})); const handleFiles = (list) => { const arr = Array.from(list).map(f => ({ name: f.name, size: f.size, type: (f.name.split(".").pop() || "").toUpperCase() })); setFiles(prev => [...prev, ...arr]); }; const onDrop = (e) => { e.preventDefault(); setOver(false); if (e.dataTransfer.files) handleFiles(e.dataTransfer.files); }; const submit = (e) => { e.preventDefault(); const r = "CW-" + Math.floor(1000 + Math.random() * 9000) + "-" + new Date().getFullYear().toString().slice(-2); setRef(r); setSubmitted(true); window.scrollTo({ top: 0, behavior: "smooth" }); }; const reset = () => { setSubmitted(false); setFiles([]); setForm({ name: "", company: "", email: "", phone: "", service: "", qty: "", size: "", stock: "", finish: "", deadline: "", delivery: "Pickup at the shop", notes: "", consent: true }); }; const fmtSize = (b) => { if (b < 1024) return b + " B"; if (b < 1024 * 1024) return (b / 1024).toFixed(1) + " KB"; return (b / (1024 * 1024)).toFixed(2) + " MB"; }; if (submitted) { return (
onNavigate("home")}>Home / Upload your file / Confirmation

Order received.

Thanks — we've got your files. A team member will check your artwork and reply with a quote, usually within the hour during shop hours.

Your order is in the queue

We've sent a confirmation to {form.email || "your email"}. Keep this reference handy if you call or WhatsApp us about the job.

Reference: {ref}
WhatsApp the shop with this ref
01

Artwork check

We verify bleed, colour space, resolution and fonts.

02

Written quote

You get a final price + delivery date in writing.

03

Approve & print

Reply “approved” and we go to press.

); } return (
onNavigate("home")}>Home / Upload your file

Upload your file. Get a quote.

Drop your artwork and tell us what you need — we'll come back with a price and timeline. No login, no minimum order, no surprises on stock or finish.

{ e.preventDefault(); setOver(true); }} onDragLeave={() => setOver(false)} onDrop={onDrop} onClick={() => inputRef.current && inputRef.current.click()} >

Drag & drop your files

or click to browse — PDF, AI, EPS, JPG, PNG, ZIP, RAR

handleFiles(e.target.files)} />
MAX 200 MB PER FILE · UP TO 10 FILES
{files.length > 0 && (
{files.map((f, i) => (
{f.type.slice(0, 3) || "FILE"}
{f.name}
{fmtSize(f.size)}
))}
)}

Order details

onChange("name", e.target.value)} placeholder="e.g. Sarah Khan" />
onChange("company", e.target.value)} placeholder="Optional" />
onChange("email", e.target.value)} placeholder="you@example.com" />
onChange("phone", e.target.value)} placeholder="+971 5x xxx xxxx" />
onChange("qty", e.target.value)} placeholder="e.g. 200 cards, 1 roll-up" />
onChange("size", e.target.value)} placeholder="A4, 85×55 mm, 80×200 cm…" />
onChange("stock", e.target.value)} placeholder="350 gsm matte, vinyl, foam board…" />
onChange("finish", e.target.value)} placeholder="Matte lamination, spot UV, eyelets…" />
onChange("deadline", e.target.value)} />
onChange("consent", e.target.checked)} style={{marginTop: 3}} />
Or WhatsApp instead {files.length === 0 && (
Add at least one file to continue.
)}
); } // ============= GALLERY ============= function GalleryPage({ onNavigate }) { const cats = ["All", ...Array.from(new Set(window.CW_DATA.gallery.map(g => g.cat)))]; const [cat, setCat] = React.useState("All"); const [light, setLight] = React.useState(null); const items = cat === "All" ? window.CW_DATA.gallery : window.CW_DATA.gallery.filter(g => g.cat === cat); return (
onNavigate("home")}>Home / Gallery

Off the presses.

A working portfolio of jobs we've printed — corporate branding, retail signage, walk-in copy work, and the everyday small-run things that make up most of a day in Tecom.

{cats.map(c => (
setCat(c)}>{c}
))}
{items.map((g, i) => (
setLight(g)}> {g.label}
{g.label}
))}
{light && (
setLight(null)}> {light.label} e.stopPropagation()} />
)}
); } // ============= WHY ============= function WhyPage({ onNavigate }) { return (
onNavigate("home")}>Home / Why Colorwings

A small print shop that takes the work seriously.

Two-to-ten staff. One shop in Tecom. Twenty-five-plus print services, and a quiet stream of urgent jobs that need to be right before 5pm.

Same-day, when it's possible.

Walk-in copying, plotting, lamination and passport photos are done while you wait. Most digital print on ready artwork goes the same day.

One shop, one team.

No order-routing or middlemen. You speak to the same people who print your job — easier to fix things when they need fixing.

Print-ready or not.

Our prepress team checks every file. Minor fixes are on us; bigger rebuilds we quote before we touch them. Either way you'll know.

From the queue

What we hear back.

{window.CW_DATA.reviews.map((r, i) => (
{"★".repeat(r.stars) + "☆".repeat(5-r.stars)}
“{r.quote}”
— {r.who}
))}
Honest baseline: 3.6 / 5 on Google (19 reviews). We're working on the bits that don't get five stars — response time mainly — and that's part of why we built this new ordering flow.
Image to come
Shopfront & press, Barsha Heights
Owned shopfront photo pending
Owned photography is on the way. The site is being rebuilt with real shop, press, and finished-work shots — replacing the template stock that came with the old site.
Start a job

Got a file? Send it over.

One form, any service. We'll quote you within the hour during shop hours.

WhatsApp Us
); } // ============= ABOUT ============= function AboutPage({ onNavigate }) { return (
onNavigate("home")}>Home / About

About Colorwings.

Officially registered as Colorwings Maps & Plans Photocopying Services LLC. Trading from Barsha Heights, serving Tecom.

Colorwings is a small digital and offset printing press in Barsha Heights, Dubai. The shop sits on the ground floor of DAMAC Smart Heights, a few minutes' walk from the metro and the cluster of Tecom towers it serves every day.

The catalogue is wide on purpose: business cards, brochures, letterheads, banners, roll-ups, foam board, vinyl, photo printing, AutoCAD plotting, mug printing, t-shirts, ID and passport photos, binding, lamination, scanning. If it can be printed onto something, the team here usually prints it.

Where the name comes from

The "color wings" mark — the bird-shaped CMYK swoosh you see on the door and the flyers — has been around since the shop opened. We've kept it.

What we're changing

The old website was a single-page restaurant template with a disabled contact form and a 2020 COVID-floor-sticker hero. The new site puts the upload flow front and centre, gives every service its own page, and shows real work instead of stock photos. It's a rebuild, not a refresh.

Founding year & full team page — to follow once confirmed with the owner. We don't invent figures.
Photo to come
Inside the shop
Owned interior photo pending
Wide-format plotter
The team
); } // ============= CAREERS ============= function CareersPage({ onNavigate }) { return (
onNavigate("home")}>Home / Careers

Want to print things for a living?

We hire press operators, prepress & design support, and front-desk staff. If you know your way around a Heidelberg, a Roland plotter, or a passport-photo crop — say hello.

We're a small team, so every role wears more than one hat. You'll likely run the press, talk to clients, fix files, and help out at the front desk on a busy Saturday.

What we look for

  • Hands-on experience with digital or offset printing equipment
  • Comfortable in Adobe Illustrator, InDesign and Photoshop for prepress fixes
  • Spoken English; Arabic, Hindi or Urdu a bonus for walk-in service
  • The temperament to handle a rush order without losing the rest of the day

How to apply

Send your CV, a short note about what you've been printing lately, and any portfolio links to {window.CW_DATA.contact.emailCareers}. We read every email; we reply to the ones that look like a fit.

Open roles

Press Operator

Digital + offset. Full-time. Tecom. UAE driving licence a plus.

Prepress & Design Support

Adobe CC + bleed/CMYK comfort. Full-time. Tecom.

Front-desk & walk-in service

Customer-facing. Multilingual a bonus. Full-time, Mon–Sat.

Email your CV
); } // ============= CONTACT ============= function ContactPage({ onNavigate }) { const c = window.CW_DATA.contact; return (
onNavigate("home")}>Home / Contact

Come by. Call. WhatsApp.

We're on the ground floor of DAMAC Smart Heights, opposite the Damac metro station. Free street parking right outside.

Address

Shop 6A, Ground Floor

DAMAC Smart Heights, Barsha Heights (Tecom)
Dubai, U.A.E. · P.O. Box 336738

Open in Google Maps
Hours

Mon – Sat · 08:00 – 20:00

Sunday closed. Most walk-in jobs (passport photos, copies, lamination, binding) are done while you wait.

Phone & WhatsApp

{c.phone}

Landline · shop reception

{c.whatsapp}

WhatsApp for quick quotes and file links

Email

{c.emailOrders}

For orders & quotes

{c.emailCareers}

For careers / CV applications