WebCanvas is a modern, section-based website builder powered by Next.js and TypeScript. It lets you create and customize responsive pages with an intuitive interface. drag sections to rearrange them, edit their content in real time, and preview your design instantly. Perfect for developers and designers who want to quickly prototype landing pages or explore building a lightweight page editor.
- Features
- Tech Stack
- Quick Start
- Development
- Project Structure
- Usage
- Screenshots
- Contributing
- Contact
- License
- 🧩 Drag & Reorder Sections – Intuitive interface to rearrange your page layout easily
- 📱 Responsive Templates – Build websites that look great on any device
- ⚙️ Customizable Components – Personalize every element to your liking
- 👀 Real-Time Preview – See your changes instantly as you edit
- 🔄 Import/Export – Save and reuse your sections across projects
- Framework: Next.js 15.4 (App Router)
- Language: TypeScript 5.0
- Styling: TailwindCSS 4.0
- DnD: @dnd-kit for drag & drop
- UI: Framer Motion, React Icons
These commands assume you have Node.js (18+) and npm installed.
- Clone the repo
git clone https://github.com/saeedhalabi/web-canvas.git
cd web-canvas- Install dependencies
npm install- Run the development server
npm run devOpen http://localhost:3000 in your browser.
- Build for production
npm run build
npm run startVisit http://localhost:3000 to view your production build.
- Additional commands
# Run the linter
npm run lint
# Type checking
tsc --noEmit- Components live in
components/and reusable page sections are insections/. - Global app logic and providers live in
context/andhooks/. - Screenshots used in the README are in
screenshots/(you can replace them).
If you want to add a new section:
- Create a React/TSX component in
sections/(follow existing examples:Hero.tsx,Footer.tsx). - Export the section so it appears in the editor's library.
- Add any styles or assets to
public/or thecomponents/folder.
app/— Next.js App Router entry (pages/layouts)components/— UI components and editor piecessections/— Reusable sections users can add to the canvascontext/— Builder context and providerhooks/— Custom hooks (e.g.,useBuilder)screenshots/— Helpful preview images used in the README
- Open the app in the browser.
- Use the sidebar to browse sections and drag them onto the canvas.
- Click a section to edit its content (text, images, properties).
- Rearrange sections by dragging; use the preview switcher to see responsive views.
Contributions are welcome. A simple suggested workflow:
- Fork the repo and create a branch for your feature:
git checkout -b feat/my-feature - Make changes and run the dev server:
npm run dev - Commit and open a PR describing your change.
Built with ❤️ by Saeed Halabi

