Web Application

Walls

Project type: Open source

A self-hosted wallpaper community in one Next.js 16 app: drag-and-drop uploads or URL imports, a masonry gallery that scales, passwordless magic-link auth, NSFW content controls, and an invite-only mode for closed communities.

The Challenge

Existing wallpaper sites are ad-laden and offer no community controls. A closed group wants its own gallery without standing up six separate services. Users expect modern UX — drag-and-drop, dark mode, magic-link login — without managing passwords or dealing with a heavyweight admin setup.

Our Approach

  • Next.js 16 App Router with React Server Components and Server Actions for every mutation — no separate API layer needed
  • Drizzle ORM + Postgres + better-auth for passwordless magic-link login — no passwords to manage or reset
  • Sharp pipeline resizes and optimises every upload before it reaches the gallery
  • Masonry layout for arbitrary-aspect images, with NSFW filtering (None, Mild, All) gated per-user
  • Invite-only mode with access-request flow and an admin dashboard for managing users, invites, and wallpapers
  • shadcn/ui + Radix on Tailwind v4 for the front-end; dark and light theme out of the box

What It Achieved

  • One Next.js app replaces a stack of off-the-shelf services
  • Magic-link auth removes the password reset support burden entirely
  • Admins get bulk controls without leaving the site
  • Closed communities can run their own gallery without trusting a third party

Tech Stack

Next.js 16React 19TypeScriptDrizzle ORMPostgreSQLbetter-authSharpshadcn/uiRadix UITailwind CSS v4SMTP

Need a community-driven web app?

If you've got a niche community that deserves its own home, we'll build it.

Book a discovery call