Skip to content

Commit 28ca788

Browse files
committed
πŸ–ΌοΈ: add Maskify project details and media assets
1 parent 84ed26f commit 28ca788

8 files changed

Lines changed: 94 additions & 0 deletions

File tree

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
---
2+
title: "Maskify"
3+
slug: "maskify"
4+
description: "A browser-based image masking tool for uploading masks and images, previewing results instantly on canvas, and exporting the final composition."
5+
image: "/assets/projects/maskify.pphat.top/dark-1.webp"
6+
tags: ["Image Tool", "Photo Editing", "Web App"]
7+
languages: ["Next.js", "TypeScript", "TailwindCSS", "React"]
8+
source:
9+
-
10+
name: "source"
11+
type: "source"
12+
url: "https://github.com/pphatlabs/maskify"
13+
-
14+
name: "demo"
15+
type: "demo"
16+
url: "https://maskify.pphat.top"
17+
18+
authors:
19+
-
20+
name: "PPhat Dev"
21+
profile: "https://github.com/pphatdev.png"
22+
url: "https://github.com/pphatdev"
23+
-
24+
name: "PPhat Labs"
25+
profile: "https://github.com/pphatlabs.png"
26+
url: "https://github.com/pphatlabs"
27+
28+
published: true
29+
createdAt: "2026-03-16T10:12:15.648Z"
30+
---
31+
32+
<div class="blog-gallery" data-layout="snap" data-captions="true">
33+
<img src="/assets/projects/maskify.pphat.top/dark-1.webp" alt="Maskify home screen dark mode" className=""/>
34+
<img src="/assets/projects/maskify.pphat.top/light-1.webp" alt="Maskify home screen light mode" className=""/>
35+
<img src="/assets/projects/maskify.pphat.top/dark-2.webp" alt="Mask gallery dark mode" className=""/>
36+
<img src="/assets/projects/maskify.pphat.top/light-2.webp" alt="Mask gallery light mode" className=""/>
37+
<img src="/assets/projects/maskify.pphat.top/dark-3.webp" alt="Image gallery dark mode" className=""/>
38+
<img src="/assets/projects/maskify.pphat.top/light-3.webp" alt="Image gallery light mode" className=""/>
39+
<img src="/assets/projects/maskify.pphat.top/dark-4.webp" alt="Canvas export workflow dark mode" className=""/>
40+
</div>
41+
42+
<br/>
43+
44+
# ✨ **About Project**
45+
46+
Maskify is a focused web tool for quick image masking directly in the browser.
47+
Users can upload a mask, upload an image, preview the composition in real time, and download the final masked output.
48+
The app is designed for speed and simplicity, with a clean mobile-friendly interface and no account requirement.
49+
It also keeps uploaded mask and image items in browser session storage so the workflow feels seamless while editing.
50+
51+
# πŸ› οΈ **Project Tech Stack**
52+
53+
- **Core:**
54+
- Next.js
55+
- React
56+
- TypeScript
57+
58+
- **UI & Styling:**
59+
- TailwindCSS
60+
- Radix UI Icons
61+
- next-themes (light/dark mode)
62+
63+
- **Canvas & Processing:**
64+
- HTML Canvas 2D API
65+
- Composite masking via `destination-in`
66+
- Client-side PNG export
67+
68+
- **Architecture:**
69+
- App Router structure
70+
- API routes for loading example masks/images
71+
- Session storage for uploaded assets
72+
73+
# 🌈 **Project Features**
74+
75+
- Upload custom masks and apply them instantly
76+
- Upload custom images and keep them in the current browser session
77+
- Preview masked output in real time on a canvas
78+
- Built-in dark mode and light mode interface
79+
- Fast, single-page workflow optimized for desktop and mobile
80+
- One-click export of the final masked image
81+
82+
# πŸ’» **How It Works**
83+
84+
1. Upload or pick a mask from the mask gallery.
85+
2. Upload or pick an image from the image gallery.
86+
3. The app draws the image and applies the mask using canvas compositing.
87+
4. Download the generated result as an image file.
88+
89+
# πŸ’» **Preview**
90+
91+
Here is the screenshot preview:
92+
93+
![maskify-dark](/assets/projects/maskify.pphat.top/dark-1.webp)
94+
![maskify-light](/assets/projects/maskify.pphat.top/light-1.webp)
32.7 KB
Loading
29.4 KB
Loading
35.2 KB
Loading
41.8 KB
Loading
58.7 KB
Loading
53.1 KB
Loading
56.7 KB
Loading

0 commit comments

Comments
Β (0)