Nikita Gorelov
Back to homepage

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
Website homepage · October 2026
Website homepage · October 2026

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.

Editor in an isolated test environment, showing demonstration content.
Editor in an isolated test environment, showing demonstration content.

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

AreaIn use
FrontendReact, TypeScript, HTML/CSS; Vite build tooling
BackendPython, Flask; Node.js for rendering static pages
DatabaseSQLite
NotificationsSMTP, Telegram Bot API, background delivery queues
Content managementOwner dashboard and Puck visual editor
HostingSelectel 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.

Optional extensions
RequirementPossible addition
More enquiries and concurrent usersPostgreSQL, indexes and query tuning; processing distributed across workers
Long-running or bulk tasksCelery with Redis or RabbitMQ and dedicated background workers
Large media and document librariesS3-compatible storage and a CDN
Multiple staff members or client accountsRoles and permissions, assigned owners, project files and comments
Sales tracking and reportingCRM integration, spreadsheet exports and enquiry analytics
A different stack or interfaceVue/Nuxt or Next.js for the frontend; FastAPI, Node.js/NestJS or PHP/Laravel for the backend
Design before developmentFigma for screens and prototypes, Photoshop for image preparation

These are separately scoped options, not installed features. More enquiries do not automatically require a rewrite: choices depend on data volume, concurrent workload and measurements.

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.