惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Spread Privacy
Spread Privacy
S
Schneier on Security
G
GRAHAM CLULEY
AWS News Blog
AWS News Blog
Cisco Talos Blog
Cisco Talos Blog
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
L
LINUX DO - 热门话题
C
CXSECURITY Database RSS Feed - CXSecurity.com
Security Latest
Security Latest
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Google DeepMind News
Google DeepMind News
H
Hacker News: Front Page
PCI Perspectives
PCI Perspectives
T
Tenable Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
N
Netflix TechBlog - Medium
Application and Cybersecurity Blog
Application and Cybersecurity Blog
腾讯CDC
A
Arctic Wolf
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Project Zero
Project Zero
NISL@THU
NISL@THU
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Vulnerabilities – Threatpost
Cyberwarzone
Cyberwarzone
I
Intezer
Apple Machine Learning Research
Apple Machine Learning Research
T
Threat Research - Cisco Blogs
爱范儿
爱范儿
Webroot Blog
Webroot Blog
Forbes - Security
Forbes - Security
The Cloudflare Blog
T
Tailwind CSS Blog
C
CERT Recently Published Vulnerability Notes
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
Know Your Adversary
Know Your Adversary
云风的 BLOG
云风的 BLOG
B
Blog
The Register - Security
The Register - Security
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
V2EX - 技术
V2EX - 技术
P
Privacy & Cybersecurity Law Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
My Portfolio Development Roadmap for Freelance Web Development
Heghine · 2026-05-15 · via DEV Community

Source

GitHub: https://github.com/ZeroaNinea

Introduction

One of the most important lessons I've learned is that potential clients want to see real examples of your work.

Knowing many technologies is valuable because it allows you to apply to a wider range of projects and work with different technical stacks.

At the same time, technologies alone are not enough.

Most clients are not developers. They usually do not understand the technical details of software development and are primarily interested in whether you can solve their business problem.

That is why portfolio projects are so important.

A strong portfolio provides concrete evidence that you can build real products such as business websites, SaaS applications, e-commerce stores, and complex web applications.

In practice, both factors matter:

  • Technical knowledge helps you qualify for more opportunities.
  • Portfolio projects demonstrate that you can deliver real results.

My goal is to build projects that showcase both technical breadth and practical business value.


Projects I Have Already Built

I already have built several projects for my portfolio, you can see them in my profile README.md on GitHub.

  • Animated draggable modal component in React with a rainbow button;
  • Reusable Command Palette component with color customization component in Angular;
  • Real-Time Chat Application similar to Discord (Angular + Angular Material + Node.js + Redis + Socket.io);
  • Site Portfolio (Angular + Angular Material + custom SVG animations + Three.js);
  • Real Estate Agency website in Vue.js (currently using mocked data, with a backend planned).

But they are still not enough. I have accomplished only the half of my initial plan. I still need more reusable components and full-fledged projects.

Modal Window in React

It is a draggable modal window in React. I used Tailwind and Vite as additional technologies.

Modal Window in React

Rainbow Button

When the user opens the page they first see a button with a rainbow gradient that infinitely moves to the left. The button increases its scale on hover, and plays a ripple effect when clicked.

I have created a separate component for the ripple button, so it's reusable. The button is completely customizable, and it was intended to use it with Tailwind.

Modal Window

After the click the application opens the modal window. The user can drag it using the icon with arrows, and close it by clicking on the cross icon or on the background overlay.

The modal window appears and disappears with animations, and on subsequent clicks on the button, the window appears in the same place where it was the previous time.

Command Palette Component in Angular

It is command palette component where the user can choose custom commands that it should execute. There is also a color palette customization component in this project that allows the user to control the colors of the website. I did not use Angular Material for this project, so all components here are implemented customly with SCSS.

Command Palette Component — Angular

The demonstration starts with a page with:

  • "Open Command Palette" button;
  • "View on GitHub" button;
  • A short text with usage guide;
  • And a Color Theme Setup component that allows the user to manipulate with all the colors on the website reactively.

"Open Command Palette" Button

When the user clicks on this button, it plays a ripple effect, and opens the CommandPalette component.

Command Palette Component — Opened

The user can select commands with Up and Down Arrow keys, and execute them with the Enter key.

All commands are custom functions that user should have to create earlier. When the user inputs something, it filters the commands.

The user can close it my clicking on the overlay or entering a command.

"View on GitHub" Button

When the user hovers on the "View on GitHub" button, it changes its background-color and becomes lighter.

When the user clicks on the "View on GitHub" button, the application plays a ripple effects, and redirects them to the source code of this project on GitHub.

Color Setup

Here the user can input a color in hex format or pick the colors with the browser color picker.

Color Setup

Real-Time Chat Application

I have built this project in Angular and Node.js. I used Angular Material for the frontend. I store sessions in a Redis database, and provide real-time interactions in Socket.io.

Real-Time Chat Application — Staff-Room

Currently the backend of this project does not work because of problems with my MongoDB clusters. But I am still working on it. Recently I added a dark mode.

I also have issues that Tenor stopped being supported by Google, so I should switch to GIPHY.

This project allows users:

  • to create accounts, and manipulate with their account data;
  • to create chat rooms and channels;
  • to add friends and create private chat rooms with their friends;
  • to pick emojis;
  • to pick GIFs and add or remove them from favorites;
  • to create custom roles for public chat rooms with different permissions.

Site Portfolio

I have build this website in Angular and Angular Material. I used CSS animations, custom SVG animations and Three.js for visual effects in this project.

This project contains five sections that have individual color palettes. They have fade in and fade out effects controlled by single animation service called in the AppComponent.

There is also an animated sticky header at the top of the screen.

Home: Orange Light

Hero Section — Portfolio Site

This section has animated triangles on the background of three colors: blue, green and pink.

There is a "Hi, I'm Heghine." text as a title, and "Full-stack web developer." text as a subtitle. The subtitle animates with fade in bottom effect when the page reloads.

There is a down arrow icon at the bottom of the HeroComponent. If the user clicks on it, it smoothly scrolls down to the "About" section.

About: Blue Dark

About Section — Portfolio Site

Each paragraph of the about section and the entire section animates with a fade in right animation, when the user scrolls to the component.

There is a "Building interactive apps with style" text with typewriter effect there. The effect activates with an intersection observer too.

There are six orbiting parallelepipeds with pulsing blue shadow effect on the left side of the component. When the user hovers on them, they move further apart and the background shadow turns pink. There is also a button with a car icon that appears at the center of parallelepipeds only when the user hovers on them.

If the user clicks on the car button, the application scrolls down to the car section that appears only on click. That section displays a 3D model of BMW M3 GTS.

BMW M3 GTS — Portfolio Site

Tech Stack: Green Light

Tech Stack Section — Portfolio Site

The "Tech Stack" section has animated cyber lines effect on its background. It is divided by tabs. There are six of them:

  • Fronted,
  • Backend,
  • Full-stack,
  • Real-time
  • DevOps,
  • and Testing & Quality.

Each tab contains related major technologies that I know. Each technology icon is placed inside a technology element. Each technology element is a Drag & Drop Angular Material component. The user can drag and drop them, only in a framework of one tab.

If the use clicks on a technology element it expands, and shows a shot explanation of that specific technology. The user can close it by clicking on the same button again, or on different a different button. If the user clicks on a different button, the new one opens, and the old one closes.

The tab buttons are located at the left part of the component under the title. There is also a cross icon button at the left side of the title.

If the user clicks on the cross icon button, it changes its icon from cross to three vertical dots, and closes tab buttons. The user can open them again by clicking on the three vertical dots icon button again.

Projects: Pink Dark

BMW M3 GTS — About Section

Currently there are only two projects in this section, but I plan to add my other projects here soon.

  • Real-Time Chat App;
  • UI Elements.

I have built custom unique card elements to for the projects.

Each card contains, a title, two 3D cube elements rotating in the same place, a pulsing background shadow effect, and a drifting plane element with a screenshot of that project.

When the user hovers on a card, the cubes increase their scale, a pink like appears at the bottom of the title, and the background shadow becomes pink.

When the user clicks on a card, the application plays a ripple effect, and redirects them to the project.

Contacts: Yellow Light

Contact Section — Portfolio Site

The "Contacts" section also should be updated. It only has two circular ripple buttons:

  • GitHub;
  • Gmail.

I already have a lot of contacts, and I want to add them too.

Real Estate Agency Website

This is a real estate agency project in Vue.js and Bootstrap. It's intended to have an admin panel with CURD functionality for properties. But currently I am mocking the data.

Currently, it only has two pages — "Home" and "Listings."

The home page has following components:

  • Header,
  • Hero,
  • Featured Properties,
  • Why Choose Us,
  • What Our Clients Say,
  • Footer.

The header is a burger sticky header similar to the one in my portfolio site.

I got the photos from this website: https://static.photos/

I have also created two directives v-reveal and v-ripple.

Hero

Hero Section — Real Estate Agency

The "Hero" section contains a title: "\"Find Your Dream Home\"; a subtitle: \"Browse properties in your area\"; a search form; and a background with property image and an overlay animated with a transparent black gradient."

Featured Properties

Featured Properties Section — Real Estate Agency

This section has custom cards, when the user hovers on them they zoom their image. All buttons on this website have a ripple effect.

The "View All Properties" redirects to the "Listings" page, but the "View Details" button does not redirect anywhere yet. However, I will start creating a page for a single property soon.

Each card is animated with v-reveal directive. When the user scrolls to one of them it appears with a fade in effect.

Why Choose Us & What Our Clients Say

Why Choose Us Section — Real Estate Agency

What Our Clients Say Section — Real Estate Agency

Both of these sections contain elements that move up cast a shadow on hover.

Footer

Footer Section — Real Estate Agency

The footer has a title and subtitle: "\"Find Your Perfect Home Today\" and \"Browse our listings or get in touch with our team for personalized help.\" And it has two ripple buttons: \"Brows Properties\" and \"Contact Us.\" And a blue to purple gradient on the background."

And the second "Listings" page contains the following content:

  • Header,
  • Hero,
  • Filter,
  • Listings,
  • Pagination,
  • Footer.

The header and the footer are the same as in the "Home" page.

Header, Hero and Filters

Header, Hero and Filters of the Second Page — Real Estate Agency

The filters work reactively and the "Hero" has the same animation as the "Hero" section on the "Home" page.

Listings & Pagination

Listings and Pagination Sections — Real Estate Agency

These are the same cards as in the FeaturedProperties component.


My Portfolio Goals

My goal is to build a portfolio that demonstrates my ability to create different types of websites and web applications that businesses commonly need.

I want potential clients to see concrete examples of my work and quickly understand that I can build solutions for wide range of use cases.

The main types of projects I want to include in my portfolio are:

  • Business websites — such as estate agency website with listings, filtering, and search functionality.
  • Landing pages — modern marketing pages destined to present products and services clearly and effectively.
  • SaaS applications — full-stack software products with authentication, dashboards, and scalable backend architecture.
  • E-commerce websites — online stories built either with custom technologies or platforms such as Shopify.

In addition to complete applications, I also enjoy creating reusable UI components and more technically complex projects, such as real-time applications.

By building projects in these categories, I aim to demonstrate both technical versatility and the ability to solve practical business problems.

My long-term goal is to work directly with clients as a freelance web developer and eventually create my own software products.


Long-Term Vision

My immediate goal is to start working directly with clients as a freelance web developer.

I want to build websites and web applications that help businesses solve real problems while continuing to expand my technical skills and professional experience.

In the long term, I plan to use the knowledge and experience I gain from client work to create my own software products.

For me, portfolio projects are more than practice exercises. They are steps toward financial independence, professional growth, and the ability to build software that provides real value to others.