Portfolio website with an owner dashboard
Personal project. I built a website to present my work, receive enquiries and update content without editing code.
Discuss a website
The task
Bring a portfolio, services and enquiries together. Manage content and requests in one dashboard while keeping the public pages static and available in Russian and English.
What it does
- Presents services, pricing, images and video on desktop and mobile, in Russian and English.
- Accepts enquiries through a form and stores them in a database.
- Emails the enquiry and sends only its ID and a dashboard link to Telegram. Direct Telegram contact is also available.
- Provides enquiry search, statuses, notes, retention extensions and retries for failed deliveries.
- Lets the owner edit text, upload images and change supported section settings. Changes are saved as drafts, previewed and then published.
- Keeps a change history and creates backups.
Editing through the dashboard
The Puck editor supports reordering sections, adding text blocks and galleries, changing images, colors and fonts. Desktop, tablet and phone views, zoom and undo are available.

Draft → preview → publish
Saving does not change the public website. Preview a saved draft, then publish it separately. History can restore an earlier version as a draft.
Current stack
| Area | In use |
|---|---|
| Frontend | React, TypeScript, HTML/CSS; Vite build tooling |
| Backend | Python, Flask; Node.js for rendering static pages |
| Database | SQLite |
| Notifications | SMTP, Telegram Bot API, background delivery queues |
| Content management | Owner dashboard and Puck visual editor |
| Hosting | Selectel VPS, Ubuntu, Caddy, HTTPS |
Security and backups
HTTPS; password and two-factor dashboard sign-in; request and login rate limits; CSRF protection for changes. Automatic backups can be configured to save to a chosen storage location.
Project boundaries
The dashboard supports one owner. The editor uses predefined responsive blocks, not free-form layout drawing. Maximum capacity has not been measured; this case does not demonstrate increased sales or enquiry volume.
Need a website for your project?
Tell me what the website should present, who will update it and where enquiries should go. We can use that to agree on the scope and price.