DigiSketch is a minimalist PixelPost-style note app. Draw three tiny 32x32 pixel sketches, add a short message, and share an anonymous link.
- 3 high-resolution (32x32) sketch canvases
- 8-color pastel palette + Custom Native Color Picker
- Variable brush sizes (1x1, 2x2, 3x3) for faster drawing
- 280-character message limit
- Anonymous, shareable URL (
/v/[id]) - Upstash Redis (KV) storage — always-on, lightning fast
- Touch-friendly drawing and painting on mobile
- Pure vanilla frontend for zero-lag instant loading
- Frontend: Vanilla HTML, CSS, and JavaScript (Zero build tools!)
- Backend: Node.js with Express
- Database: Upstash Redis
WIP: This is a hobby project! Please don't share any highly sensitive or private information.
Since this project uses no frontend frameworks (like React) or build tools (like Webpack), the workflow is incredibly simple:
public/: Contains the pure frontend.styles.css: Where all the colors, gradients, and soft UI glassmorphic styles are defined.create.html&create.js: The sketching wizard logic.view.html&view.js: The note viewing logic.
api/index.js: The backend Express app. This runs as a Serverless Function on Vercel.server.js: Only used for local development. It wrapsapi/index.jsand serves thepublic/static files so you can test locally usingnpm run dev.vercel.json: Tells Vercel how to route traffic correctly in production.
- Install dependencies:
npm install-
Create a Redis database on the Vercel Marketplace (Upstash) and link it to your project — or create one directly at console.upstash.com.
-
Add a
.env.localfile with your credentials:
UPSTASH_REDIS_REST_KV_REST_API_URL=https://your-url.upstash.io
UPSTASH_REDIS_REST_KV_REST_API_TOKEN=your-token
- Start the server:
npm run devThe server will start instantly and your app will be available at http://localhost:3000.
POST /api/notes
Payload:
{
"sketches": [[["#f2a7b3", null, "#2d2a26", ...]]],
"message": "Hello from DigiSketch"
}Returns:
{ "id": "a1b2c3" }- Redis credentials are only used server-side in
server.jsto ensure security.