diff --git a/.gitignore b/.gitignore
index 6000f54d..a43f4f34 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,4 +35,5 @@ CODEBASE_AUDIT_2026-03-02.md
Q1_2026_MASTER_PLAN.md
docs/en/codebase-audit-*.md
docs/en/fix-log.md
-docs/en/next-level-roadmap-*.md
\ No newline at end of file
+docs/en/next-level-roadmap-*.md
+docs/internal
\ No newline at end of file
diff --git a/README.md b/README.md
index 264869e2..19e9acd0 100644
--- a/README.md
+++ b/README.md
@@ -1,496 +1,407 @@
-
+
+
+
+
+
+
OpenFlowKit
-
The open-source diagramming studio for developers and builders.
-Prompt · Import · Edit · Export as animated video · Collaborate — entirely in your browser, no account required.
+
The open-source diagramming workspace engineers actually want to use.
+
+
Create flows from templates, code, structured imports, or AI. Refine them visually, keep them local-first, and export without giving up diagram-as-code or developer workflows.
🎬 Cinematic Export Animated video & GIF No upload required
+
+
-OpenFlowKit is a **local-first, developer-grade diagramming workspace** that lives entirely in your browser. It is built for the engineers, architects, and builders who create system diagrams for a living — and who are tired of paying for cloud tools, surrendering their data, or fighting with drag-and-drop tools that produce static images instead of living, version-controllable artifacts.
+
-**The core loop is simple:**
+
+
+
-```
-Prompt / Import → Edit visually or in code → Export anywhere
-```
+
-Start from a plain-English prompt, a Mermaid file, SQL schema, OpenAPI spec, Terraform config, or one of 20 built-in templates. Refine on a polished canvas. Export to Mermaid, PlantUML, Figma, PNG, PDF, or a cinematic reveal video. Your diagrams stay in your browser by default, and your API keys never leave your device.
+
---
## Why OpenFlowKit?
-Every existing tool misses something critical for developers. OpenFlowKit fills those gaps.
+Every diagramming tool makes a compromise. OpenFlowKit doesn't.
-| Tool | The gap | How OpenFlowKit fills it |
-|---|---|---|
-| **Excalidraw** | Freeform only, no structured diagram types, no DSL | 8 structured diagram families, bidirectional diagram-as-code, Figma export |
-| **Draw.io / diagrams.net** | Dated UX, no AI, no code representation | Modern React 19 canvas, 9 AI providers, OpenFlow DSL |
-| **Mermaid.js** | Code-only, no visual editor | Full visual editor on top of Mermaid — edit visually or in code, bidirectionally |
-| **tldraw** | Whiteboard-first, no structured diagram types | Cloud architecture (AWS/Azure/CNCF icons), class, ER, state, and more |
-| **Lucidchart / Miro** | Paid, cloud-only, account required | MIT licensed, local-first, and usable without an account |
+| Tool | What's missing |
+| ----------------------- | ----------------------------------------------------------------------------- |
+| **Excalidraw / tldraw** | Freeform whiteboards — no structured diagram types, no DSL, no code imports |
+| **Mermaid.js** | Code-only — no visual canvas, no AI, no interactive editor |
+| **Draw.io** | Decade-old UX — Limited AI integration, no developer import pipelines |
+| **Lucidchart / Miro** | Cloud lock-in — expensive, account required, your data lives on their servers |
+| **PlantUML** | Server-dependent rendering — no visual editor, no local-first model |
-**OpenFlowKit combines** a visual canvas editor, a diagram-as-code environment, an AI-powered generator, a developer import pipeline, and a Figma / docs export workflow in one open-source, local-first app.
+OpenFlowKit is the **only MIT-licensed tool** that combines a real workspace home, a professional visual canvas, bidirectional diagram-as-code, AI generation from 9 providers, deterministic and AI-assisted imports, asset libraries for technical diagrams, and cinematic animated export — with zero server-side storage.
---
-## ✨ Spotlight: Cinematic Export
-
-
-Turn a finished diagram into a polished animated walkthrough without leaving the editor.
-
-
-Most diagramming tools stop at static images. OpenFlowKit can export a **cinematic build video or GIF** so a diagram can be presented as a lightweight animated walkthrough. This is especially useful for:
-
-- 📣 **Conference talks & demos** — walk the audience through your system live
-- 📖 **Docs & wikis** — embed an animated GIF that loads without a video player
-- 🐦 **Social posts & Product Hunt launches** — eye-catching previews that stop the scroll
-- 🎓 **Engineering onboarding** — show new hires how a system connects, step by step
-
-**How it works:**
-1. Build and refine the diagram on the canvas
-2. Open **Export**
-3. Choose a cinematic video or cinematic GIF output
-4. Generate a shareable artifact directly in the browser
-
-No account. No upload. No third-party video service. Rendered entirely in your browser.
+## Feature highlights
+
+| | OpenFlowKit | Excalidraw | Draw.io | Mermaid | Lucidchart |
+| ------------------------------- | :---------: | :--------: | :-----: | :-----: | :--------: |
+| Visual canvas editor | ✅ | ✅ | ✅ | ❌ | ✅ |
+| Bidirectional diagram-as-code | ✅ | ❌ | ❌ | ✅ | ❌ |
+| AI generation (9 providers) | ✅ | ❌ | ❌ | ❌ | Limited |
+| GitHub repo → diagram | ✅ | ❌ | ❌ | ❌ | ❌ |
+| SQL → ERD (native parser) | ✅ | ❌ | ❌ | ❌ | ❌ |
+| Terraform / K8s / Docker import | ✅ | ❌ | ❌ | ❌ | ❌ |
+| AWS / Azure / GCP / CNCF icons | ✅ | ❌ | ✅ | Partial | ✅ |
+| Real-time collaboration (P2P) | ✅ | ✅ | ❌ | ❌ | ✅ (cloud) |
+| Cinematic animated export | ✅ | ❌ | ❌ | ❌ | ❌ |
+| Figma export (editable SVG) | ✅ | ❌ | ❌ | ❌ | ❌ |
+| No account required | ✅ | ✅ | ✅ | ✅ | ❌ |
+| Open source (MIT) | ✅ | ✅ | ✅ | ✅ | ❌ |
---
-## Features
+## Code → Diagram
-### 🤖 Flowpilot — AI Generation & Editing
+Drop in your existing artifacts. Many formats are handled by **deterministic native parsers** that run entirely in your browser. AI-powered imports help when the source needs interpretation or when you want a richer first-pass architecture draft.
-Describe a system in natural language. Flowpilot generates a fully laid-out, editable diagram in seconds. Bring your own key from any supported provider — keys are stored in your browser and never transmitted to OpenFlowKit servers.
+**Native parsers (no API key needed):**
-**9 supported AI providers:**
-
-| Provider | Default model |
-|---|---|
-| Google Gemini | `gemini-2.5-flash-lite` |
-| OpenAI | `gpt-5-mini` |
-| Anthropic Claude | `claude-sonnet-4-6` |
-| Groq | `llama-4-scout-17b-16e-instruct` |
-| Mistral | `mistral-medium-latest` |
-| NVIDIA | `llama-4-scout-17b-16e-instruct` |
-| Cerebras | `gpt-oss-120b` |
-| OpenRouter | `google/gemini-2.5-flash` |
-| **Custom endpoint** | Any OpenAI-compatible API (Ollama, LM Studio, Together AI…) |
+```sql
+CREATE TABLE orders (
+ id BIGINT PRIMARY KEY,
+ user_id BIGINT NOT NULL REFERENCES users(id),
+ status ENUM('pending','paid','shipped') NOT NULL
+);
+```
-**Flowpilot capabilities:**
+→ Typed ERD with inferred foreign-key edges and cardinalities. Rendered in milliseconds, no server involved.
-- ✦ Generate a new diagram from a text prompt
-- ✦ Iteratively edit the existing canvas with targeted instructions
-- ✦ Scope edits to the current selection only
-- ✦ Attach an image alongside your prompt for visual context
-- ✦ Stream responses in real time with a cancel button
-- ✦ Multi-turn conversation with browser-local chat history
-- ✦ **Diff preview** — see added / updated / removed node count before applying; confirm or discard
-- ✦ **Shared AI settings modal** — open provider and key setup from Flowpilot when AI is not configured
+```yaml
+# docker-compose.yml
+services:
+ api:
+ depends_on: [postgres, redis]
+ postgres:
+ image: postgres:16
+ redis:
+ image: redis:alpine
+```
----
+→ Service architecture with `depends_on` edges and port labels.
-### 📥 Developer Import Pipelines
+**AI-powered imports (API key required):**
-Feed any structured artifact into OpenFlowKit and get a ready-to-edit diagram:
+```
+github.com/vercel/next.js → architecture diagram
+```
-| Source | Generated diagram |
-|---|---|
-| **SQL DDL** (`CREATE TABLE` statements) | Entity-relationship diagram with typed fields and cardinalities |
-| **Terraform / Kubernetes YAML / Docker Compose** | Cloud architecture diagram with provider icons |
-| **OpenAPI / Swagger spec** | API sequence diagram with operations and responses |
-| **Source code** (TS, JS, Python, Go, Java, Ruby, C#, C++, Rust) | Architecture draft from module structure |
-| **Mermaid** | Native import, fully editable |
+→ Fetches the repo, analyzes code structure and dependencies, then generates an editable architecture diagram via AI. Quality depends on the model chosen.
-File upload with automatic language detection, or paste raw text.
+| Source | Engine | API key? |
+| ------------------------- | -------------------------- | :------: |
+| GitHub repo URL | AI · 9 languages supported | Yes |
+| SQL DDL | **Native parser** | **No** |
+| Terraform `.tfstate` | **Native parser** | **No** |
+| Terraform HCL | AI-assisted | Yes |
+| Kubernetes YAML / Helm | **Native parser** | **No** |
+| Docker Compose | **Native parser** | **No** |
+| OpenAPI / Swagger spec | AI-assisted | Yes |
+| Source code (single file) | AI-assisted · 9 languages | Yes |
+| Mermaid | **Native parser** | **No** |
---
-### 📐 8 Structured Diagram Types
+## Home first, editor second
-| Diagram | What it includes | Mermaid export |
-|---|---|---|
-| **Flowchart** | Start/end, process, decision, annotation, swimlane, section | `flowchart TD` |
-| **Architecture** | AWS, Azure, CNCF icons; zones, trust domains, service boundaries | `architecture-beta` |
-| **Class Diagram** | UML classes, attributes, methods, stereotypes, all relation types | `classDiagram` |
-| **ER Diagram** | Entities with typed fields (PK, FK, NN, UNIQUE), cardinality edges | `erDiagram` |
-| **Mind Map** | Hierarchical topics, curved branches, depth-aware auto-layout | `mindmap` |
-| **User Journey** | Scored tasks, named sections, actor annotations | `journey` |
-| **State Diagram** | States, composite containers, start-node markers | `stateDiagram-v2` |
-| **Wireframe** | Browser shells, mobile frames, UI component blocks | — |
+OpenFlowKit now treats the product as two clear surfaces:
----
+- **Home** for creating, opening, duplicating, importing, and organizing flows
+- **Editor** for actual canvas work once a real document exists
-### 📤 Export Everywhere
+That means the app does not create a fake default flow just to get you onto the canvas. If you delete everything, your workspace can stay empty until you intentionally create the next flow.
-**🖼 Images:** SVG · PNG (transparent, hi-res) · JPG · PDF
+---
-**🎬 Animation & Video** *(unique to OpenFlowKit)*
+## Flowpilot — AI generation with any model
-| Format | Description |
-|---|---|
-| Playback MP4 / WebM | Simple video replay of your diagram |
-| Playback GIF | Looping animation for embedding anywhere |
-| **Cinematic Video** ⭐ | Presentation-friendly animated diagram export for talks, demos, and walkthroughs |
-| **Cinematic GIF** ⭐ | Lightweight looping animated export for embeds and social sharing |
+Flowpilot sits directly in the editor. Describe a system, paste source code, upload a screenshot, or ask it to refine what's already on the canvas. Your API key is stored in your browser and sent directly to the provider — OpenFlowKit's servers never see it.
-**`{}` Code & Data:** JSON · OpenFlow DSL · Mermaid · PlantUML
+**9 providers. Bring your own key. Switch any time.**
-**🎨 Design Handoff:** Paste directly into **Figma** as editable SVG with intact text layers
+| Provider | Default model | Why use it |
+| ------------------- | -------------------------------- | ----------------------------------------------- |
+| Google Gemini | `gemini-2.5-flash-lite` | Free tier available, fast, browser-safe |
+| OpenAI | `gpt-5-mini` | Best reasoning for complex architectures |
+| Anthropic Claude | `claude-sonnet-4-6` | Excellent code and system understanding |
+| Groq | `llama-4-scout-17b-16e-instruct` | Fastest inference available |
+| Mistral | `mistral-medium-latest` | Strong European privacy-first alternative |
+| NVIDIA NIM | `llama-4-scout-17b-16e-instruct` | Enterprise GPU inference |
+| Cerebras | `gpt-oss-120b` | Fastest on WSE-3 silicon |
+| OpenRouter | `google/gemini-2.5-flash` | Access 100+ models through one key |
+| **Custom endpoint** | Any model | Ollama, LM Studio, or any OpenAI-compatible API |
-**🔗 Sharing:** Read-only viewer link — diagram encoded in the URL, zero server required
+No proxy. No middleman. Direct browser-to-provider requests.
---
-### `{}` OpenFlow DSL — Diagram as Code
+## OpenFlow DSL — diagram as code
-Every diagram has a live text representation. Edits sync **bidirectionally** — change the canvas, the code updates; change the code, the canvas updates. The AI reads and writes this format, making it ideal for version-controlled documentation and automated diagram generation.
+Every diagram has a live code panel. Edit the canvas → code updates. Edit the code → canvas updates. Two-way, always in sync.
-```yaml
-# Example: AWS architecture as code
-Auth Service [architecture] provider=aws resource=security
-API Gateway [architecture] provider=aws resource=api
-Redis Cache [architecture] provider=aws resource=database
-Postgres DB [architecture] provider=aws resource=database
-
-Auth Service -> API Gateway
-API Gateway -> Redis Cache
-API Gateway -> Postgres DB
+```
+flowchart TB
+ client[React App] --> gateway[API Gateway]
+ gateway --> auth[Auth Service]
+ gateway --> orders[Orders Service]
+ orders --> db[(PostgreSQL)]
+ orders --> cache[(Redis)]
+ auth --> db
```
-The DSL supports explicit node IDs, typed attributes, edge styles, labeled connections, and group containers — all in a concise, human-readable format. See [DSL_MANUAL.md](DSL_MANUAL.md) for the full reference.
+- Mermaid-compatible syntax
+- Export to Mermaid, PlantUML, or JSON
+- Paste any Mermaid diagram and it renders immediately
+- Version snapshots — restore any previous state
---
-### 🎬 Playback & Presentation
+## Structured diagram families
-OpenFlowKit includes presentation-oriented animated export for sharing a diagram as motion instead of a single static frame.
+Not a freeform whiteboard. Structured diagram types with opinionated defaults, correct relationship semantics, and purpose-built node styles.
-- **Cinematic export:** generate a browser-rendered video or GIF from the current diagram
-- **Presentation-ready output:** useful for demos, onboarding, social posts, and docs walkthroughs
-- **Shareable artifacts:** export motion without a separate video editor
+- **🔷 Flowcharts** — processes, decision trees, system flows
+- **☁️ Architecture** — AWS / Azure / GCP / CNCF cloud provider icons built in
+- **🗄️ Entity-Relationship** — typed fields, FK edges, one-to-many / many-to-many notation
+- **📐 Class diagrams** — UML with inheritance, composition, and interface relationships
+- **↔️ Sequence diagrams** — async messages, actors, and lifelines
+- **🧠 Mind maps** — collapsible radial trees with auto-layout
+- **🛤️ User journeys** — steps, phases, and sentiment scoring
+- **⚙️ State machines** — transitions, guards, entry and exit actions
---
-### 📦 20 Built-in Templates
-
-One-click starters across 7 categories, fully searchable.
-
-
-View all templates
-
-**Flowchart**
-- Subscription Upgrade Workflow
-- Incident Escalation Runbook
-- CI/CD Release Train
-- Payment Recovery Loop
-- AI Support Escalation
+## Editor workflow built for technical diagrams
-**AWS**
-- AWS Event-Driven API (API Gateway, Lambda, EventBridge, SQS, DynamoDB, Step Functions, SES)
-- AWS Data Lake Analytics (S3, Glue, DataZone, Athena, Redshift)
-- AWS Container Delivery Platform
-- AWS Security Operations Loop
+OpenFlowKit works best when you move between the right surfaces instead of forcing everything through one panel:
-**Azure**
-- Azure AI Application Platform
-- Azure Landing Zone Operations
-- Azure Data Estate
-- Azure Identity Access Hub
+- **Toolbar add menu** for quick insert actions
+- **Command Center** for templates, import, assets, search, layout, pages, layers, and design systems
+- **Studio** for Flowpilot, Mermaid, OpenFlow DSL, infra parsing, and linting
+- **Properties panel** for exact visual and metadata edits
-**CNCF**
-- CNCF GitOps Platform
-- CNCF Service Mesh Security
-- CNCF Observability Stack
-
-**Mindmap · Journey · Wireframe**
-- Product Discovery Mindmap
-- Engineering Strategy Mindmap
-- Customer Onboarding Journey
-- Cross-Platform SaaS Starter Wireframe
-
-
+Large diagrams also get better organization with multi-page documents, layers, sections, and local-first document recovery.
---
-### 🔀 Smart Auto-Layout
+## Export everywhere
-One-click ELK.js layout with four presets:
+Build your diagram once. Take it anywhere.
-| Preset | Algorithm | Best for |
-|---|---|---|
-| Tree | `mrtree`, top-down | Org charts, dependency trees |
-| Hierarchical | `layered`, top-down | Most flows and sequences |
-| Compact | `layered`, left-right, tight | Dense diagrams |
-| Spacious | `layered`, left-right, loose | Presentations and handoffs |
+- **PNG / SVG** — transparent background, pixel-perfect at any resolution
+- **PDF** — print-ready, vector-crisp
+- **Mermaid** — paste directly into GitHub READMEs, Notion, Confluence, Linear
+- **PlantUML** — for enterprise toolchains and legacy integrations
+- **Figma** — full editable SVG import with preserved layers
+- **JSON** — complete round-trip import/export, no data loss
+- **🎬 Cinematic MP4** — an animated walkthrough of your diagram, node by node, edge by edge. Designed for demos, presentations, and architecture reviews. No other open-source diagramming tool does this.
---
-### 👥 Real-Time Collaboration *(beta)*
+## Real-time collaboration — local-first by default
-Peer-to-peer collaboration via **WebRTC + Yjs**. Share a room link — participants see live cursors, presence indicators, and a fully synchronized canvas state. No server-side diagram storage, ever.
+Local-first stays the default. Your saved flows live in the browser, your AI keys stay on your device, and export is explicit. When you do want to work together, OpenFlowKit supports P2P collaboration over WebRTC with live presence and shared editing, without making a hosted backend mandatory for solo work.
---
-### ⌨️ Canvas, Keyboard & Multi-Tab Workspace
-
-- **Multi-tab workspace** — multiple diagrams open simultaneously
-- **Undo / redo** — per-tab history with full undo stack
-- **Snapshots** — named point-in-time save states
-- **Inline label editing** — double-click or `F2`
-- **Bulk properties** — edit multiple selected nodes at once
-- **Style clipboard** — `Cmd+Alt+C` / `Cmd+Alt+V` to copy/paste styles between nodes
-- **Node quick-create** — `Alt+Arrow` to spawn and connect a new node in any direction
-- **Node search** — `Cmd+F` to find nodes by label
-- **Architecture lint** — automatic validation rules for cloud diagrams
-- **Design systems** — full color/typography theming with white-label support
-
-**Essential shortcuts:**
-
-| Shortcut | Action |
-|---|---|
-| `Cmd+K` | Command Bar / Flowpilot |
-| `Cmd+F` | Search nodes |
-| `?` | Keyboard shortcuts help |
-| `Shift+1` | Fit view |
-| `Cmd+Z` / `Cmd+Shift+Z` | Undo / Redo |
-| `Cmd+D` | Duplicate |
-| `Alt+Arrow` | Quick-create connected node |
-| `F2` | Edit label inline |
-| `Escape` | Clear selection |
-| `Cmd+Alt+C` / `Cmd+Alt+V` | Copy / Paste style |
+## Canvas built for keyboard-first developers
----
+| Shortcut | Action |
+| ---------------- | ---------------------------------------------------- |
+| `⌘ K` / `Ctrl K` | Command bar — search, import, layout, assets, and actions |
+| `⌘ \` / `Ctrl \` | Toggle the live code panel |
+| `⌘ Z` / `Ctrl Z` | Full undo with complete history |
+| `⌘ D` / `Ctrl D` | Duplicate selection |
+| `⌘ G` / `Ctrl G` | Group selected nodes |
+| `⌘ /` / `Ctrl /` | Keyboard shortcuts reference |
-### 🌐 Internationalization
-
-Available in 7 languages: **English · German · Spanish · French · Japanese · Turkish · Chinese**
+Plus: smart alignment guides, snap-to-grid, multi-select, pages, layers, sections, architecture lint, light/dark/system theme, and full i18n in 7 languages.
---
-### 🔒 Privacy & Security
+## What we are improving next
-- **No account, ever.** No sign-up, no login, no user tracking.
-- **Keys stay in your browser.** API keys are never transmitted to OpenFlowKit. Persistent storage and session-only storage are both supported.
-- **Local-first persistence.** Diagrams are saved in browser-local storage by default and restored on refresh and browser restart unless you delete them.
-- **No telemetry.** We don't collect usage data.
-- **MIT licensed.** No lock-in, no strings attached.
+Current roadmap focus:
----
-
-## Tech Stack
-
-| Layer | Technology |
-|---|---|
-| UI framework | React 19 + TypeScript 5 |
-| Canvas engine | React Flow / XYFlow 12 |
-| Graph layout | ELK.js |
-| State management | Zustand 5 |
-| Styling | Tailwind CSS 4 |
-| Animation | Framer Motion |
-| Collaboration | Yjs + y-webrtc + y-indexeddb |
-| Build | Vite 6 |
-| Unit / integration tests | Vitest 4 + Testing Library |
-| E2E tests | Playwright |
-| Docs site | Astro + Starlight |
-| Hosting | Cloudflare Pages |
+- better layers and page workflows for larger technical diagrams
+- stronger code and structured-import diagram quality
+- smarter auto-layout defaults with less cleanup after import
+- performance boosts for bigger canvases and heavier sessions
+- continued docs and onboarding cleanup so the product surfaces stay easier to understand
---
-## Getting Started
-
-### Prerequisites
-
-- **Node.js** ≥ 18
-- **npm** ≥ 9
-
-### Run locally in 30 seconds
+## Get started in 30 seconds
```bash
git clone https://github.com/Vrun-design/openflowkit.git
cd openflowkit
npm install
npm run dev
-# → http://localhost:5173
```
-### Add an AI provider
+Open [http://localhost:5173](http://localhost:5173). Done.
-Open the AI panel in the sidebar. If no key is configured, the **Add key** action opens the shared AI settings modal, where you can choose a provider, enter your API key, and decide whether it should persist on the current device or only for the current session.
+> **Zero environment variables required.** AI provider keys are configured in the in-app settings panel at runtime — nothing goes in `.env`.
---
-## Commands
+## Self-host
-### Development
+OpenFlowKit is a pure static SPA. There is no backend. Deploy the `dist/` folder anywhere that serves HTML.
-```bash
-npm run dev # Start dev server (localhost:5173)
-npm run build # Production build
-npm run preview # Preview production build locally
-npm run bundle:check # Analyze bundle size against budget
-npm run lint # ESLint (zero warnings allowed)
-npm test -- --run # Run all unit + integration tests once
-```
-
-### Focused test suites
+**Cloudflare Pages / Netlify / Vercel:**
```bash
-npm run test:s0 # Core smoke tests
-npm run test:s10-state # Store and state diagram tests
-npm run test:s10-canvas # Canvas interaction tests
-npm run test:s4-handle-safety # Handle safety tests
+npm run build
+# upload dist/ to your provider
```
-### E2E
+**Docker:**
```bash
-npm run e2e # Full Playwright suite
-npm run e2e:ci # Chromium only (CI mode)
+docker build -t openflowkit .
+docker run -p 8080:80 openflowkit
```
-### Workspaces
+No database. No secrets. No infrastructure. One folder.
-```bash
-npm run dev --workspace=docs-site # Docs site dev server
-npm run build --workspace=docs-site # Build docs
+---
-npm run dev --workspace=web # Marketing site dev server
-npm run build --workspace=web # Build marketing site
-```
+## Tech stack
+
+| Layer | Technology |
+| ------------- | ----------------------------------- |
+| Framework | React 19 + TypeScript 5 |
+| Build | Vite 6 |
+| Canvas | React Flow (XYFlow) |
+| Auto-layout | ELK.js |
+| State | Zustand |
+| Storage | IndexedDB — local-first, no backend |
+| Styling | Tailwind CSS |
+| Collaboration | WebRTC (P2P, no relay server) |
+| i18n | react-i18next — 7 languages |
+| Testing | Vitest + Playwright |
---
-## Project Structure
-
-```
-openflowkit/
-├── src/
-│ ├── app/ Route state helpers
-│ ├── components/ UI surfaces, editor shells, nodes, panels, command bar
-│ ├── config/ Rollout flags and AI provider config
-│ ├── context/ React context providers
-│ ├── diagram-types/ Diagram family plugins and property panel registration
-│ ├── hooks/ Feature + editor hooks (AI, keyboard, operations, export)
-│ ├── i18n/ Localization strings (7 languages)
-│ ├── lib/ Shared types, parsers, compat helpers, utilities
-│ ├── services/ Domain services (AI, export, collaboration, storage…)
-│ └── store/ Zustand store, slices, persistence, defaults
-│
-├── docs-site/ Public documentation (Astro + Starlight)
-├── web/ Marketing site (Astro)
-├── e2e/ Playwright end-to-end tests
-├── assets/ Icon packs and shape metadata
-└── scripts/ Build, benchmark, sitemap, asset tooling
-```
+## Contributing
-### Editor architecture
+All contributions are welcome — bug fixes, new diagram types, parser improvements, translations, and documentation.
-The editor follows a strict four-layer composition model that separates concerns cleanly:
+Start here:
-```
-FlowEditor.tsx ← render shell only
- └─ useFlowEditorScreenModel.ts ← compose store state + domain hooks + refs
- └─ buildFlowEditorScreenControllerParams.ts ← pure mapping (no side effects)
- └─ useFlowEditorController.ts ← adapts to shell/studio/panel/chrome props
+```bash
+npm run dev # development server at localhost:5173
+npm run test # unit tests via Vitest
+npm run test:e2e # end-to-end tests via Playwright
+npm run lint # ESLint + TypeScript type-check
```
-Domain services own logic. Hooks compose state and side effects. Components render and delegate. See [ARCHITECTURE.md](ARCHITECTURE.md) for the full breakdown.
+**Good first issues** are tagged [`good first issue`](https://github.com/Vrun-design/openflowkit/labels/good%20first%20issue). Before opening a PR, please read [CONTRIBUTING.md](CONTRIBUTING.md).
---
-## Deployment
-
-| Surface | URL | Build command | Output dir |
-|---|---|---|---|
-| App | `app.openflowkit.com` | `npm run build` | `dist/` |
-| Docs | `docs.openflowkit.com` | `npm run build --workspace=docs-site` | `docs-site/dist/` |
-| Landing | `openflowkit.com` | `npm run build --workspace=web` | `web/dist/` |
-
-All three surfaces deploy to Cloudflare Pages. See [`docs/cloudflare-pages-setup.md`](docs/cloudflare-pages-setup.md).
-
----
+
-## Contributing
+
-Contributions of all kinds are welcome — bug reports, features, docs, translations, and design feedback. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
+**OpenFlowKit** is [MIT licensed](LICENSE), locally hosted, and built in the open.
+No cloud required. No account required. No lock-in.
-**Key constraints to know before contributing:**
+
-| Constraint | Why it matters |
-|---|---|
-| **Do not rename persisted storage keys** without a migration path | Renaming silently erases existing user browser data |
-| **Gate new features** behind a rollout flag in `src/config/rolloutFlags.ts` | Allows safe promotion and easy rollback |
-| **Keep lint, test, and build green** | CI is a strict gate — zero ESLint warnings |
-| **Prefer small, reversible change-sets** | Easier to review, safer to merge |
-| **No new runtime dependencies** without opening an issue first | Keeps the bundle lean and deliberate |
-| **Component size ≤ 250 lines** | Maintains readability and testability |
+| | | | |
+| :----------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------: | :------------------------------------: | :------------------------------------------------------------------: |
+| [**→ Launch App**](https://app.openflowkit.com) | [**Docs**](https://docs.openflowkit.com) | [**Website**](https://openflowkit.com) | [**Changelog**](https://github.com/Vrun-design/openflowkit/releases) |
+| [Bug Report](https://github.com/Vrun-design/openflowkit/issues/new?template=bug_report.md) | [Feature Request](https://github.com/Vrun-design/openflowkit/issues/new?template=feature_request.md) | [Contributing Guide](CONTRIBUTING.md) | [Security Policy](SECURITY.md) |
-### Quick contributor setup
+
-```bash
-# Fork + clone, then:
-npm install # installs deps + activates Husky pre-commit hooks
-npm run dev # start dev server
-npm test # run tests in watch mode
-npm run lint # check for lint issues
-```
+---
-Pre-commit hooks run `lint-staged` → ESLint on all changed `.ts`/`.tsx` files. Fix all errors before pushing.
+
----
+**[If OpenFlowKit saves you time, the most impactful thing you can do is give it a star.](https://github.com/Vrun-design/openflowkit/stargazers)**
+**[It helps other developers find the project.](https://github.com/Vrun-design/openflowkit/stargazers)**
-## License
+
-[MIT](LICENSE) — free to use, modify, and redistribute. No strings attached.
+[](https://github.com/Vrun-design/openflowkit/stargazers)
----
+
-
+[](https://star-history.com/#Vrun-design/openflowkit&Date)
-### Built something with OpenFlowKit? A ⭐ on GitHub helps more developers find it.
+
-[](https://github.com/Vrun-design/openflowkit/stargazers)
+
+React 19 · TypeScript 5 · Vite 6 · XYFlow · ELK.js · Zustand · Yjs · Framer Motion · Tailwind CSS · Cloudflare Pages
+
-**[→ Launch the App](https://app.openflowkit.com)** · **[Read the Docs](https://docs.openflowkit.com)** · **[Contribute](CONTRIBUTING.md)** · **[Report a Bug](https://github.com/Vrun-design/openflowkit/issues)**
+
-React 19 · TypeScript 5 · Vite 6 · ELK.js · Yjs · Cloudflare Pages
+
+MIT Licensed · Local-first · No telemetry · No account · No server-side storage · No lock-in
+
-MIT Licensed · Local-first · No telemetry · No account required · No lock-in
+
diff --git a/_headers b/_headers
index 6ff62092..76aad559 100644
--- a/_headers
+++ b/_headers
@@ -3,7 +3,7 @@
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
- Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; connect-src 'self' https: wss:; img-src 'self' data: blob: https:; font-src 'self' data:; worker-src 'self' blob:; frame-ancestors 'none';
+ Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; connect-src 'self' https://*.openai.com https://*.anthropic.com https://*.googleapis.com https://api.groq.com https://*.mistral.ai https://*.cerebras.ai https://openrouter.ai https://*.posthog.com wss://*.openflowkit.com wss://signaling.yjs.dev; img-src 'self' data: blob: https:; font-src 'self' data:; worker-src 'self' blob:; frame-ancestors 'none';
/assets/*
Cache-Control: public, max-age=31536000, immutable
diff --git a/assets/third-party-icons/developer/SOURCE.md b/assets/third-party-icons/developer/SOURCE.md
new file mode 100644
index 00000000..b7b654a8
--- /dev/null
+++ b/assets/third-party-icons/developer/SOURCE.md
@@ -0,0 +1,10 @@
+# Developer Icons Source
+
+- Upstream: `https://github.com/xandemon/developer-icons`
+- License: MIT
+- Imported from: `/tmp/developer-icons/icons`
+- Import script: `node scripts/shape-pack/import-developer-icons.mjs /tmp/developer-icons/icons assets/third-party-icons/developer/processed`
+
+Notes:
+- Icons are grouped into local product-facing categories during import because upstream ships them in a mostly flat directory.
+- The original SVG artwork remains attributed to the upstream `developer-icons` project.
diff --git a/assets/third-party-icons/developer/processed/Backend/avajs.svg b/assets/third-party-icons/developer/processed/Backend/avajs.svg
new file mode 100644
index 00000000..4eee43b9
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/avajs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/bunjs.svg b/assets/third-party-icons/developer/processed/Backend/bunjs.svg
new file mode 100644
index 00000000..74bf6069
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/bunjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/convex.svg b/assets/third-party-icons/developer/processed/Backend/convex.svg
new file mode 100644
index 00000000..94def82d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/convex.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/deno-fresh.svg b/assets/third-party-icons/developer/processed/Backend/deno-fresh.svg
new file mode 100644
index 00000000..16ec60bf
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/deno-fresh.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/deno.svg b/assets/third-party-icons/developer/processed/Backend/deno.svg
new file mode 100644
index 00000000..81418830
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/deno.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/doctrine.svg b/assets/third-party-icons/developer/processed/Backend/doctrine.svg
new file mode 100644
index 00000000..7e1bc0d0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/doctrine.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/grafbase.svg b/assets/third-party-icons/developer/processed/Backend/grafbase.svg
new file mode 100644
index 00000000..12e24d05
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/grafbase.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/graphql.svg b/assets/third-party-icons/developer/processed/Backend/graphql.svg
new file mode 100644
index 00000000..cc7867f9
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/graphql.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/i18next.svg b/assets/third-party-icons/developer/processed/Backend/i18next.svg
new file mode 100644
index 00000000..caf18cbe
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/i18next.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/nestjs.svg b/assets/third-party-icons/developer/processed/Backend/nestjs.svg
new file mode 100644
index 00000000..172aff65
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/nestjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/nodejs.svg b/assets/third-party-icons/developer/processed/Backend/nodejs.svg
new file mode 100644
index 00000000..7eab4ec7
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/nodejs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/spring.svg b/assets/third-party-icons/developer/processed/Backend/spring.svg
new file mode 100644
index 00000000..b312a8e0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/spring.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/symfony-dark.svg b/assets/third-party-icons/developer/processed/Backend/symfony-dark.svg
new file mode 100644
index 00000000..c9478db5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/symfony-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/symfony-light.svg b/assets/third-party-icons/developer/processed/Backend/symfony-light.svg
new file mode 100644
index 00000000..cd06aac0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/symfony-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/tRPC.svg b/assets/third-party-icons/developer/processed/Backend/tRPC.svg
new file mode 100644
index 00000000..707f1fa8
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/tRPC.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Backend/zod.svg b/assets/third-party-icons/developer/processed/Backend/zod.svg
new file mode 100644
index 00000000..329db7fb
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Backend/zod.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Browser/chrome.svg b/assets/third-party-icons/developer/processed/Browser/chrome.svg
new file mode 100644
index 00000000..c8c5617a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Browser/chrome.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Browser/edge.svg b/assets/third-party-icons/developer/processed/Browser/edge.svg
new file mode 100644
index 00000000..9eedb02f
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Browser/edge.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Browser/firefox.svg b/assets/third-party-icons/developer/processed/Browser/firefox.svg
new file mode 100644
index 00000000..874c62e1
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Browser/firefox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Browser/safari.svg b/assets/third-party-icons/developer/processed/Browser/safari.svg
new file mode 100644
index 00000000..4884ab00
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Browser/safari.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Browser/vivaldi.svg b/assets/third-party-icons/developer/processed/Browser/vivaldi.svg
new file mode 100644
index 00000000..6f0b8666
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Browser/vivaldi.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Companies/meta.svg b/assets/third-party-icons/developer/processed/Companies/meta.svg
new file mode 100644
index 00000000..be867575
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Companies/meta.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Companies/microsoft.svg b/assets/third-party-icons/developer/processed/Companies/microsoft.svg
new file mode 100644
index 00000000..5e0602d0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Companies/microsoft.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Companies/mozilla.svg b/assets/third-party-icons/developer/processed/Companies/mozilla.svg
new file mode 100644
index 00000000..f68d24a2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Companies/mozilla.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/clickhouse.svg b/assets/third-party-icons/developer/processed/Database/clickhouse.svg
new file mode 100644
index 00000000..6aade79a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/clickhouse.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/firebase.svg b/assets/third-party-icons/developer/processed/Database/firebase.svg
new file mode 100644
index 00000000..1b4266e6
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/firebase.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/kibana.svg b/assets/third-party-icons/developer/processed/Database/kibana.svg
new file mode 100644
index 00000000..adc25bc4
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/kibana.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/mariadb.svg b/assets/third-party-icons/developer/processed/Database/mariadb.svg
new file mode 100644
index 00000000..4e017e5e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/mariadb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/microsoft-sql-server-2.svg b/assets/third-party-icons/developer/processed/Database/microsoft-sql-server-2.svg
new file mode 100644
index 00000000..bced6981
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/microsoft-sql-server-2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/microsoft-sql-server.svg b/assets/third-party-icons/developer/processed/Database/microsoft-sql-server.svg
new file mode 100644
index 00000000..d1b09419
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/microsoft-sql-server.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/mongodb.svg b/assets/third-party-icons/developer/processed/Database/mongodb.svg
new file mode 100644
index 00000000..fa40393e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/mongodb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/mysql.svg b/assets/third-party-icons/developer/processed/Database/mysql.svg
new file mode 100644
index 00000000..34ccaabf
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/mysql.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/oracle.svg b/assets/third-party-icons/developer/processed/Database/oracle.svg
new file mode 100644
index 00000000..a2a6a49f
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/oracle.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/postgresql.svg b/assets/third-party-icons/developer/processed/Database/postgresql.svg
new file mode 100644
index 00000000..4f67760c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/postgresql.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/presto.svg b/assets/third-party-icons/developer/processed/Database/presto.svg
new file mode 100644
index 00000000..411f8f6f
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/presto.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/redis.svg b/assets/third-party-icons/developer/processed/Database/redis.svg
new file mode 100644
index 00000000..45549f5a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/redis.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Database/supabase.svg b/assets/third-party-icons/developer/processed/Database/supabase.svg
new file mode 100644
index 00000000..7f52de55
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Database/supabase.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Design/figma.svg b/assets/third-party-icons/developer/processed/Design/figma.svg
new file mode 100644
index 00000000..a4080928
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Design/figma.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Design/indesign.svg b/assets/third-party-icons/developer/processed/Design/indesign.svg
new file mode 100644
index 00000000..c145feb5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Design/indesign.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Design/miro.svg b/assets/third-party-icons/developer/processed/Design/miro.svg
new file mode 100644
index 00000000..0999f0a5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Design/miro.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Design/photoshop.svg b/assets/third-party-icons/developer/processed/Design/photoshop.svg
new file mode 100644
index 00000000..71e3a8fb
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Design/photoshop.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Design/sketch.svg b/assets/third-party-icons/developer/processed/Design/sketch.svg
new file mode 100644
index 00000000..86cb0525
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Design/sketch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Design/sketch2.svg b/assets/third-party-icons/developer/processed/Design/sketch2.svg
new file mode 100644
index 00000000..fa5c9e23
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Design/sketch2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/aws.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/aws.svg
new file mode 100644
index 00000000..9e2d6370
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/aws.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/bitbucket.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/bitbucket.svg
new file mode 100644
index 00000000..d4c86129
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/bitbucket.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/cloudflare.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/cloudflare.svg
new file mode 100644
index 00000000..e6daddde
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/cloudflare.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/codefresh.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/codefresh.svg
new file mode 100644
index 00000000..6ccf81dc
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/codefresh.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/copilot.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/copilot.svg
new file mode 100644
index 00000000..b9e62544
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/copilot.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/cypress.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/cypress.svg
new file mode 100644
index 00000000..f6c1c803
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/cypress.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/developer-icons.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/developer-icons.svg
new file mode 100644
index 00000000..c47d7b56
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/developer-icons.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/digitalocean.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/digitalocean.svg
new file mode 100644
index 00000000..30e2a303
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/digitalocean.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/docker.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/docker.svg
new file mode 100644
index 00000000..146feebd
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/docker.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/ec2.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/ec2.svg
new file mode 100644
index 00000000..48579c56
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/ec2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/elastic.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/elastic.svg
new file mode 100644
index 00000000..a651ec6a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/elastic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/git.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/git.svg
new file mode 100644
index 00000000..412a5e6c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/git.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/github-copilot.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/github-copilot.svg
new file mode 100644
index 00000000..2085e87d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/github-copilot.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/github-dark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/github-dark.svg
new file mode 100644
index 00000000..f6120247
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/github-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/github-light.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/github-light.svg
new file mode 100644
index 00000000..18a37574
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/github-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/gitlab.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/gitlab.svg
new file mode 100644
index 00000000..f3570511
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/gitlab.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/google-cloud.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/google-cloud.svg
new file mode 100644
index 00000000..0eb43793
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/google-cloud.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/heroku.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/heroku.svg
new file mode 100644
index 00000000..fe121e83
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/heroku.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/hugging-face.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/hugging-face.svg
new file mode 100644
index 00000000..593dcb38
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/hugging-face.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/k6.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/k6.svg
new file mode 100644
index 00000000..dd548dc5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/k6.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/kubernetes.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/kubernetes.svg
new file mode 100644
index 00000000..dab949f8
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/kubernetes.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/linux.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/linux.svg
new file mode 100644
index 00000000..2b557a63
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/linux.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/netlify.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/netlify.svg
new file mode 100644
index 00000000..33137ce9
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/netlify.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/netlify2.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/netlify2.svg
new file mode 100644
index 00000000..8561a4cb
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/netlify2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/npm-wordmark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/npm-wordmark.svg
new file mode 100644
index 00000000..294b566c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/npm-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/npm.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/npm.svg
new file mode 100644
index 00000000..ca416818
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/npm.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/nx.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/nx.svg
new file mode 100644
index 00000000..83e59227
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/nx.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/openai.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/openai.svg
new file mode 100644
index 00000000..27667899
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/openai.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-dark-wordmark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-dark-wordmark.svg
new file mode 100644
index 00000000..bee7f851
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-dark-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-dark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-dark.svg
new file mode 100644
index 00000000..89b6d2dc
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-light-wordmark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-light-wordmark.svg
new file mode 100644
index 00000000..d7aa41a5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-light-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-light.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-light.svg
new file mode 100644
index 00000000..0157ac2e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pnpm-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/pulumi-dark-wordmark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pulumi-dark-wordmark.svg
new file mode 100644
index 00000000..397c0a18
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pulumi-dark-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/pulumi-light-wordmark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pulumi-light-wordmark.svg
new file mode 100644
index 00000000..ee88de22
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pulumi-light-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/pulumi.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pulumi.svg
new file mode 100644
index 00000000..bcf73bde
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/pulumi.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/railway.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/railway.svg
new file mode 100644
index 00000000..a84e6f3e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/railway.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/tensorflow.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/tensorflow.svg
new file mode 100644
index 00000000..67f9a5e5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/tensorflow.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-dark-wordmark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-dark-wordmark.svg
new file mode 100644
index 00000000..7c2755b7
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-dark-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-dark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-dark.svg
new file mode 100644
index 00000000..eac51d39
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-light-wordmark.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-light-wordmark.svg
new file mode 100644
index 00000000..ce47fa2d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-light-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-light.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-light.svg
new file mode 100644
index 00000000..cfc1bf4e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vercel-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/DevOps-AI-ML/vitest.svg b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vitest.svg
new file mode 100644
index 00000000..5fc57952
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/DevOps-AI-ML/vitest.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/angular.svg b/assets/third-party-icons/developer/processed/Frontend/angular.svg
new file mode 100644
index 00000000..ecde8c36
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/angular.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/astro.svg b/assets/third-party-icons/developer/processed/Frontend/astro.svg
new file mode 100644
index 00000000..a068bb6d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/astro.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/chakraui.svg b/assets/third-party-icons/developer/processed/Frontend/chakraui.svg
new file mode 100644
index 00000000..c5c2847c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/chakraui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/framer-dark.svg b/assets/third-party-icons/developer/processed/Frontend/framer-dark.svg
new file mode 100644
index 00000000..4ca29b13
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/framer-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/framer-light.svg b/assets/third-party-icons/developer/processed/Frontend/framer-light.svg
new file mode 100644
index 00000000..723076db
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/framer-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/gatsby.svg b/assets/third-party-icons/developer/processed/Frontend/gatsby.svg
new file mode 100644
index 00000000..2d7d2c80
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/gatsby.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/headlessui.svg b/assets/third-party-icons/developer/processed/Frontend/headlessui.svg
new file mode 100644
index 00000000..58683836
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/headlessui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/jquery.svg b/assets/third-party-icons/developer/processed/Frontend/jquery.svg
new file mode 100644
index 00000000..c0bb1456
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/jquery.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/materialui.svg b/assets/third-party-icons/developer/processed/Frontend/materialui.svg
new file mode 100644
index 00000000..acc6bcd2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/materialui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/nextjs-wordmark.svg b/assets/third-party-icons/developer/processed/Frontend/nextjs-wordmark.svg
new file mode 100644
index 00000000..e1843bb6
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/nextjs-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/nextjs.svg b/assets/third-party-icons/developer/processed/Frontend/nextjs.svg
new file mode 100644
index 00000000..27d91e2a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/nextjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/nuxtjs.svg b/assets/third-party-icons/developer/processed/Frontend/nuxtjs.svg
new file mode 100644
index 00000000..04eaf4a5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/nuxtjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/preact.svg b/assets/third-party-icons/developer/processed/Frontend/preact.svg
new file mode 100644
index 00000000..19f7d504
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/preact.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/react-query.svg b/assets/third-party-icons/developer/processed/Frontend/react-query.svg
new file mode 100644
index 00000000..9f2d9ab1
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/react-query.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/reactjs.svg b/assets/third-party-icons/developer/processed/Frontend/reactjs.svg
new file mode 100644
index 00000000..c2a99e48
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/reactjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/reactrouter.svg b/assets/third-party-icons/developer/processed/Frontend/reactrouter.svg
new file mode 100644
index 00000000..0caa7fb8
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/reactrouter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/remix-dark-wordmark.svg b/assets/third-party-icons/developer/processed/Frontend/remix-dark-wordmark.svg
new file mode 100644
index 00000000..e8689a3b
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/remix-dark-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/remix-dark.svg b/assets/third-party-icons/developer/processed/Frontend/remix-dark.svg
new file mode 100644
index 00000000..3a0ba4b4
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/remix-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/remix-light-wordmark.svg b/assets/third-party-icons/developer/processed/Frontend/remix-light-wordmark.svg
new file mode 100644
index 00000000..69b65150
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/remix-light-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/remix-light.svg b/assets/third-party-icons/developer/processed/Frontend/remix-light.svg
new file mode 100644
index 00000000..d1585ff7
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/remix-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/sass.svg b/assets/third-party-icons/developer/processed/Frontend/sass.svg
new file mode 100644
index 00000000..8885aca4
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/sass.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/shadcnui.svg b/assets/third-party-icons/developer/processed/Frontend/shadcnui.svg
new file mode 100644
index 00000000..1a78af44
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/shadcnui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/sveltejs.svg b/assets/third-party-icons/developer/processed/Frontend/sveltejs.svg
new file mode 100644
index 00000000..840b7262
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/sveltejs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/tailwindcss.svg b/assets/third-party-icons/developer/processed/Frontend/tailwindcss.svg
new file mode 100644
index 00000000..e698ea3d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/tailwindcss.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/threejs-dark.svg b/assets/third-party-icons/developer/processed/Frontend/threejs-dark.svg
new file mode 100644
index 00000000..d300f3d2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/threejs-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/threejs-light.svg b/assets/third-party-icons/developer/processed/Frontend/threejs-light.svg
new file mode 100644
index 00000000..afde7de5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/threejs-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/vitejs.svg b/assets/third-party-icons/developer/processed/Frontend/vitejs.svg
new file mode 100644
index 00000000..81afd66b
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/vitejs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/vuejs.svg b/assets/third-party-icons/developer/processed/Frontend/vuejs.svg
new file mode 100644
index 00000000..5b95cc5c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/vuejs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Frontend/webpack.svg b/assets/third-party-icons/developer/processed/Frontend/webpack.svg
new file mode 100644
index 00000000..a1aa3755
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Frontend/webpack.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/bash.svg b/assets/third-party-icons/developer/processed/Languages/bash.svg
new file mode 100644
index 00000000..5d1b87fe
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/bash.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/cakephp.svg b/assets/third-party-icons/developer/processed/Languages/cakephp.svg
new file mode 100644
index 00000000..a77df27d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/cakephp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/dlang.svg b/assets/third-party-icons/developer/processed/Languages/dlang.svg
new file mode 100644
index 00000000..94e6bcad
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/dlang.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/elixir.svg b/assets/third-party-icons/developer/processed/Languages/elixir.svg
new file mode 100644
index 00000000..bd8c48bf
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/elixir.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/erlang.svg b/assets/third-party-icons/developer/processed/Languages/erlang.svg
new file mode 100644
index 00000000..02f41e1e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/erlang.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/haskell.svg b/assets/third-party-icons/developer/processed/Languages/haskell.svg
new file mode 100644
index 00000000..b246f6b3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/haskell.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/java.svg b/assets/third-party-icons/developer/processed/Languages/java.svg
new file mode 100644
index 00000000..f70404ee
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/java.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/javascript.svg b/assets/third-party-icons/developer/processed/Languages/javascript.svg
new file mode 100644
index 00000000..37ea9ac7
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/javascript.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/json.svg b/assets/third-party-icons/developer/processed/Languages/json.svg
new file mode 100644
index 00000000..5822561a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/json.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/kotlin.svg b/assets/third-party-icons/developer/processed/Languages/kotlin.svg
new file mode 100644
index 00000000..7934c453
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/kotlin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/markdown.svg b/assets/third-party-icons/developer/processed/Languages/markdown.svg
new file mode 100644
index 00000000..593edf5d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/markdown.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/nim.svg b/assets/third-party-icons/developer/processed/Languages/nim.svg
new file mode 100644
index 00000000..459c3c2e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/nim.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/php.svg b/assets/third-party-icons/developer/processed/Languages/php.svg
new file mode 100644
index 00000000..7e9df1e1
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/php.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/powershell.svg b/assets/third-party-icons/developer/processed/Languages/powershell.svg
new file mode 100644
index 00000000..468da460
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/powershell.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/python.svg b/assets/third-party-icons/developer/processed/Languages/python.svg
new file mode 100644
index 00000000..d9bbadd3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/python.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/ruby.svg b/assets/third-party-icons/developer/processed/Languages/ruby.svg
new file mode 100644
index 00000000..95541aac
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/ruby.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/rust-dark.svg b/assets/third-party-icons/developer/processed/Languages/rust-dark.svg
new file mode 100644
index 00000000..1bef36e0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/rust-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/rust-light.svg b/assets/third-party-icons/developer/processed/Languages/rust-light.svg
new file mode 100644
index 00000000..a19672f1
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/rust-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/scala.svg b/assets/third-party-icons/developer/processed/Languages/scala.svg
new file mode 100644
index 00000000..8865c0a3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/scala.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/solidity.svg b/assets/third-party-icons/developer/processed/Languages/solidity.svg
new file mode 100644
index 00000000..fe7c75cc
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/solidity.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/swift.svg b/assets/third-party-icons/developer/processed/Languages/swift.svg
new file mode 100644
index 00000000..8a9f6195
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/swift.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Languages/typescript.svg b/assets/third-party-icons/developer/processed/Languages/typescript.svg
new file mode 100644
index 00000000..c553da88
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Languages/typescript.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/bluesky.svg b/assets/third-party-icons/developer/processed/Media/bluesky.svg
new file mode 100644
index 00000000..9cc47ede
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/bluesky.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/cloudinary.svg b/assets/third-party-icons/developer/processed/Media/cloudinary.svg
new file mode 100644
index 00000000..d72b8ad2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/cloudinary.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/hotjar.svg b/assets/third-party-icons/developer/processed/Media/hotjar.svg
new file mode 100644
index 00000000..0b6326ef
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/hotjar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/instagram.svg b/assets/third-party-icons/developer/processed/Media/instagram.svg
new file mode 100644
index 00000000..5f3e6aae
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/instagram.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/mastodon.svg b/assets/third-party-icons/developer/processed/Media/mastodon.svg
new file mode 100644
index 00000000..a8023e92
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/mastodon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/redux-saga.svg b/assets/third-party-icons/developer/processed/Media/redux-saga.svg
new file mode 100644
index 00000000..13ea56d2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/redux-saga.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/stream.svg b/assets/third-party-icons/developer/processed/Media/stream.svg
new file mode 100644
index 00000000..bdc999a9
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/stream.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/telegram.svg b/assets/third-party-icons/developer/processed/Media/telegram.svg
new file mode 100644
index 00000000..ed312306
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/telegram.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/threads-dark.svg b/assets/third-party-icons/developer/processed/Media/threads-dark.svg
new file mode 100644
index 00000000..a753e623
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/threads-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/threads-light.svg b/assets/third-party-icons/developer/processed/Media/threads-light.svg
new file mode 100644
index 00000000..932954eb
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/threads-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/vk.svg b/assets/third-party-icons/developer/processed/Media/vk.svg
new file mode 100644
index 00000000..ad07a856
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/vk.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/x-dark.svg b/assets/third-party-icons/developer/processed/Media/x-dark.svg
new file mode 100644
index 00000000..feee89fd
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/x-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/x-light.svg b/assets/third-party-icons/developer/processed/Media/x-light.svg
new file mode 100644
index 00000000..a83f0d78
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/x-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/youtube-wordmark.svg b/assets/third-party-icons/developer/processed/Media/youtube-wordmark.svg
new file mode 100644
index 00000000..71ccf857
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/youtube-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Media/youtube.svg b/assets/third-party-icons/developer/processed/Media/youtube.svg
new file mode 100644
index 00000000..1d03922b
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Media/youtube.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Native-App/android.svg b/assets/third-party-icons/developer/processed/Native-App/android.svg
new file mode 100644
index 00000000..74dfe2e3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Native-App/android.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Native-App/flutter.svg b/assets/third-party-icons/developer/processed/Native-App/flutter.svg
new file mode 100644
index 00000000..8422e3f0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Native-App/flutter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/ansible-wordmark.svg b/assets/third-party-icons/developer/processed/Others/ansible-wordmark.svg
new file mode 100644
index 00000000..adca7138
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/ansible-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/ansible.svg b/assets/third-party-icons/developer/processed/Others/ansible.svg
new file mode 100644
index 00000000..8086fac5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/ansible.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/anthropic-basic-dark.svg b/assets/third-party-icons/developer/processed/Others/anthropic-basic-dark.svg
new file mode 100644
index 00000000..1139b2d3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/anthropic-basic-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/anthropic-basic-light.svg b/assets/third-party-icons/developer/processed/Others/anthropic-basic-light.svg
new file mode 100644
index 00000000..fcc2b3fc
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/anthropic-basic-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/anthropic.svg b/assets/third-party-icons/developer/processed/Others/anthropic.svg
new file mode 100644
index 00000000..860c3b02
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/anthropic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/apache.svg b/assets/third-party-icons/developer/processed/Others/apache.svg
new file mode 100644
index 00000000..d5f1627e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/apache.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/apple-dark.svg b/assets/third-party-icons/developer/processed/Others/apple-dark.svg
new file mode 100644
index 00000000..81e20f9c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/apple-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/apple-light.svg b/assets/third-party-icons/developer/processed/Others/apple-light.svg
new file mode 100644
index 00000000..ce10e0ee
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/apple-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/appwrite.svg b/assets/third-party-icons/developer/processed/Others/appwrite.svg
new file mode 100644
index 00000000..b59654ff
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/appwrite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/arc.svg b/assets/third-party-icons/developer/processed/Others/arc.svg
new file mode 100644
index 00000000..479616bc
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/arc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/atlassian.svg b/assets/third-party-icons/developer/processed/Others/atlassian.svg
new file mode 100644
index 00000000..a081e771
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/atlassian.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/atom.svg b/assets/third-party-icons/developer/processed/Others/atom.svg
new file mode 100644
index 00000000..da40f2f3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/atom.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/auth0.svg b/assets/third-party-icons/developer/processed/Others/auth0.svg
new file mode 100644
index 00000000..a00e9d69
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/auth0.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/axiom.svg b/assets/third-party-icons/developer/processed/Others/axiom.svg
new file mode 100644
index 00000000..ef0fa840
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/axiom.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/axure.svg b/assets/third-party-icons/developer/processed/Others/axure.svg
new file mode 100644
index 00000000..e502874b
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/axure.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/azure.svg b/assets/third-party-icons/developer/processed/Others/azure.svg
new file mode 100644
index 00000000..a7732097
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/azure.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/babel.svg b/assets/third-party-icons/developer/processed/Others/babel.svg
new file mode 100644
index 00000000..7638c8e3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/babel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/backbonejs.svg b/assets/third-party-icons/developer/processed/Others/backbonejs.svg
new file mode 100644
index 00000000..d1c8e0e7
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/backbonejs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/bard.svg b/assets/third-party-icons/developer/processed/Others/bard.svg
new file mode 100644
index 00000000..bc386cc6
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/bard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/bing.svg b/assets/third-party-icons/developer/processed/Others/bing.svg
new file mode 100644
index 00000000..163ce31d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/bing.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/biome.svg b/assets/third-party-icons/developer/processed/Others/biome.svg
new file mode 100644
index 00000000..0a104d55
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/biome.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/bitnami.svg b/assets/third-party-icons/developer/processed/Others/bitnami.svg
new file mode 100644
index 00000000..5daccf43
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/bitnami.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/blueprintjs.svg b/assets/third-party-icons/developer/processed/Others/blueprintjs.svg
new file mode 100644
index 00000000..43c16e91
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/blueprintjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/bootstrap4.svg b/assets/third-party-icons/developer/processed/Others/bootstrap4.svg
new file mode 100644
index 00000000..635fcff9
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/bootstrap4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/bootstrap5.svg b/assets/third-party-icons/developer/processed/Others/bootstrap5.svg
new file mode 100644
index 00000000..e329726c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/bootstrap5.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/brave.svg b/assets/third-party-icons/developer/processed/Others/brave.svg
new file mode 100644
index 00000000..89b2a9b0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/brave.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/bulmaui.svg b/assets/third-party-icons/developer/processed/Others/bulmaui.svg
new file mode 100644
index 00000000..bb9f4fd3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/bulmaui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/c-plus-plus.svg b/assets/third-party-icons/developer/processed/Others/c-plus-plus.svg
new file mode 100644
index 00000000..e3122231
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/c-plus-plus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/c-sharp.svg b/assets/third-party-icons/developer/processed/Others/c-sharp.svg
new file mode 100644
index 00000000..e16c7bfb
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/c-sharp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/c.svg b/assets/third-party-icons/developer/processed/Others/c.svg
new file mode 100644
index 00000000..8ede807f
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/c.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/canva.svg b/assets/third-party-icons/developer/processed/Others/canva.svg
new file mode 100644
index 00000000..ba5a01e0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/canva.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/cassandradb.svg b/assets/third-party-icons/developer/processed/Others/cassandradb.svg
new file mode 100644
index 00000000..2fe59c2b
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/cassandradb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/chatgpt.svg b/assets/third-party-icons/developer/processed/Others/chatgpt.svg
new file mode 100644
index 00000000..7afeb560
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/chatgpt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/chromium.svg b/assets/third-party-icons/developer/processed/Others/chromium.svg
new file mode 100644
index 00000000..48a077c2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/chromium.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/circleci.svg b/assets/third-party-icons/developer/processed/Others/circleci.svg
new file mode 100644
index 00000000..8f5d110f
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/circleci.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/claude-ai.svg b/assets/third-party-icons/developer/processed/Others/claude-ai.svg
new file mode 100644
index 00000000..42607a25
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/claude-ai.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/clerk.svg b/assets/third-party-icons/developer/processed/Others/clerk.svg
new file mode 100644
index 00000000..cb714e27
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/clerk.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/clojure.svg b/assets/third-party-icons/developer/processed/Others/clojure.svg
new file mode 100644
index 00000000..767579f2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/clojure.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/codeigniter.svg b/assets/third-party-icons/developer/processed/Others/codeigniter.svg
new file mode 100644
index 00000000..08d2f655
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/codeigniter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/crystal.svg b/assets/third-party-icons/developer/processed/Others/crystal.svg
new file mode 100644
index 00000000..4470582a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/crystal.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/css.svg b/assets/third-party-icons/developer/processed/Others/css.svg
new file mode 100644
index 00000000..92861136
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/css.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/css3.svg b/assets/third-party-icons/developer/processed/Others/css3.svg
new file mode 100644
index 00000000..9207bb49
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/css3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/dart.svg b/assets/third-party-icons/developer/processed/Others/dart.svg
new file mode 100644
index 00000000..469b6760
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/dart.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/datadog.svg b/assets/third-party-icons/developer/processed/Others/datadog.svg
new file mode 100644
index 00000000..67b0ebc9
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/datadog.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/deepseek-wordmark.svg b/assets/third-party-icons/developer/processed/Others/deepseek-wordmark.svg
new file mode 100644
index 00000000..975c248e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/deepseek-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/deepseek.svg b/assets/third-party-icons/developer/processed/Others/deepseek.svg
new file mode 100644
index 00000000..a49cdd0d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/deepseek.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/discord.svg b/assets/third-party-icons/developer/processed/Others/discord.svg
new file mode 100644
index 00000000..6424dd78
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/discord.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/django.svg b/assets/third-party-icons/developer/processed/Others/django.svg
new file mode 100644
index 00000000..6991cb35
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/django.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/docusaurus.svg b/assets/third-party-icons/developer/processed/Others/docusaurus.svg
new file mode 100644
index 00000000..6eb96b6c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/docusaurus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/dovetail.svg b/assets/third-party-icons/developer/processed/Others/dovetail.svg
new file mode 100644
index 00000000..613832f0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/dovetail.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/electron.svg b/assets/third-party-icons/developer/processed/Others/electron.svg
new file mode 100644
index 00000000..670a7ad0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/electron.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/elementui.svg b/assets/third-party-icons/developer/processed/Others/elementui.svg
new file mode 100644
index 00000000..61fd7795
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/elementui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/ember.svg b/assets/third-party-icons/developer/processed/Others/ember.svg
new file mode 100644
index 00000000..8a12c4ed
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/ember.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/esbuild.svg b/assets/third-party-icons/developer/processed/Others/esbuild.svg
new file mode 100644
index 00000000..6de8e8c6
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/esbuild.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/eslint.svg b/assets/third-party-icons/developer/processed/Others/eslint.svg
new file mode 100644
index 00000000..b7bd0a75
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/eslint.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/expressjs-dark.svg b/assets/third-party-icons/developer/processed/Others/expressjs-dark.svg
new file mode 100644
index 00000000..2db21520
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/expressjs-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/expressjs-light.svg b/assets/third-party-icons/developer/processed/Others/expressjs-light.svg
new file mode 100644
index 00000000..2bd3482e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/expressjs-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/facebook.svg b/assets/third-party-icons/developer/processed/Others/facebook.svg
new file mode 100644
index 00000000..267b7435
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/facebook.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/fast-api.svg b/assets/third-party-icons/developer/processed/Others/fast-api.svg
new file mode 100644
index 00000000..e25037b6
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/fast-api.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/faunadb.svg b/assets/third-party-icons/developer/processed/Others/faunadb.svg
new file mode 100644
index 00000000..809cab42
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/faunadb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/flask-dark.svg b/assets/third-party-icons/developer/processed/Others/flask-dark.svg
new file mode 100644
index 00000000..1bcb9af7
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/flask-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/flask-light.svg b/assets/third-party-icons/developer/processed/Others/flask-light.svg
new file mode 100644
index 00000000..ef6bb2c7
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/flask-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/flyio.svg b/assets/third-party-icons/developer/processed/Others/flyio.svg
new file mode 100644
index 00000000..60d0b8c9
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/flyio.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/go.svg b/assets/third-party-icons/developer/processed/Others/go.svg
new file mode 100644
index 00000000..c4a8bf32
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/go.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/google-wordmark.svg b/assets/third-party-icons/developer/processed/Others/google-wordmark.svg
new file mode 100644
index 00000000..31b64830
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/google-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/google.svg b/assets/third-party-icons/developer/processed/Others/google.svg
new file mode 100644
index 00000000..b7d53201
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/google.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/grafana.svg b/assets/third-party-icons/developer/processed/Others/grafana.svg
new file mode 100644
index 00000000..1984c248
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/grafana.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/graphite.svg b/assets/third-party-icons/developer/processed/Others/graphite.svg
new file mode 100644
index 00000000..14848af3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/graphite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/gridsome.svg b/assets/third-party-icons/developer/processed/Others/gridsome.svg
new file mode 100644
index 00000000..95f7275f
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/gridsome.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/gruntjs.svg b/assets/third-party-icons/developer/processed/Others/gruntjs.svg
new file mode 100644
index 00000000..9289da67
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/gruntjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/gulp.svg b/assets/third-party-icons/developer/processed/Others/gulp.svg
new file mode 100644
index 00000000..850e0e65
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/gulp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/hashnode.svg b/assets/third-party-icons/developer/processed/Others/hashnode.svg
new file mode 100644
index 00000000..3ac92bfe
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/hashnode.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/hexo.svg b/assets/third-party-icons/developer/processed/Others/hexo.svg
new file mode 100644
index 00000000..e905d6b4
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/hexo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/hhvm.svg b/assets/third-party-icons/developer/processed/Others/hhvm.svg
new file mode 100644
index 00000000..725f67fb
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/hhvm.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/homebrew.svg b/assets/third-party-icons/developer/processed/Others/homebrew.svg
new file mode 100644
index 00000000..73dc1701
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/homebrew.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/html5.svg b/assets/third-party-icons/developer/processed/Others/html5.svg
new file mode 100644
index 00000000..88ba2883
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/html5.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/hyper2.svg b/assets/third-party-icons/developer/processed/Others/hyper2.svg
new file mode 100644
index 00000000..7191f397
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/hyper2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/insomnia.svg b/assets/third-party-icons/developer/processed/Others/insomnia.svg
new file mode 100644
index 00000000..6ebdc914
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/insomnia.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/internet-explorer.svg b/assets/third-party-icons/developer/processed/Others/internet-explorer.svg
new file mode 100644
index 00000000..d0342014
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/internet-explorer.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/invision.svg b/assets/third-party-icons/developer/processed/Others/invision.svg
new file mode 100644
index 00000000..58c890a8
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/invision.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/ionic.svg b/assets/third-party-icons/developer/processed/Others/ionic.svg
new file mode 100644
index 00000000..c7a24912
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/ionic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/jamstack.svg b/assets/third-party-icons/developer/processed/Others/jamstack.svg
new file mode 100644
index 00000000..032ccc9c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/jamstack.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/jenkins.svg b/assets/third-party-icons/developer/processed/Others/jenkins.svg
new file mode 100644
index 00000000..87193d10
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/jenkins.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/jest.svg b/assets/third-party-icons/developer/processed/Others/jest.svg
new file mode 100644
index 00000000..5aa25674
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/jest.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/jira.svg b/assets/third-party-icons/developer/processed/Others/jira.svg
new file mode 100644
index 00000000..29555b9f
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/jira.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/jslint.svg b/assets/third-party-icons/developer/processed/Others/jslint.svg
new file mode 100644
index 00000000..76dbf083
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/jslint.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/kafka.svg b/assets/third-party-icons/developer/processed/Others/kafka.svg
new file mode 100644
index 00000000..23460cf2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/kafka.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/laravel.svg b/assets/third-party-icons/developer/processed/Others/laravel.svg
new file mode 100644
index 00000000..4823a199
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/laravel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/lerna-dark.svg b/assets/third-party-icons/developer/processed/Others/lerna-dark.svg
new file mode 100644
index 00000000..577114f0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/lerna-dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/lerna-light.svg b/assets/third-party-icons/developer/processed/Others/lerna-light.svg
new file mode 100644
index 00000000..a5da749d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/lerna-light.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/less.svg b/assets/third-party-icons/developer/processed/Others/less.svg
new file mode 100644
index 00000000..12372178
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/less.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/lightroom.svg b/assets/third-party-icons/developer/processed/Others/lightroom.svg
new file mode 100644
index 00000000..4877871d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/lightroom.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/linkedin.svg b/assets/third-party-icons/developer/processed/Others/linkedin.svg
new file mode 100644
index 00000000..fe41444f
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/linkedin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/lit.svg b/assets/third-party-icons/developer/processed/Others/lit.svg
new file mode 100644
index 00000000..cde25c7e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/lit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/liveblocks.svg b/assets/third-party-icons/developer/processed/Others/liveblocks.svg
new file mode 100644
index 00000000..5e7bd481
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/liveblocks.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/logrocket.svg b/assets/third-party-icons/developer/processed/Others/logrocket.svg
new file mode 100644
index 00000000..218a11c3
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/logrocket.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/lua.svg b/assets/third-party-icons/developer/processed/Others/lua.svg
new file mode 100644
index 00000000..3354e6b6
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/lua.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/lunacy.svg b/assets/third-party-icons/developer/processed/Others/lunacy.svg
new file mode 100644
index 00000000..184b4093
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/lunacy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/marionette.svg b/assets/third-party-icons/developer/processed/Others/marionette.svg
new file mode 100644
index 00000000..c8ae3338
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/marionette.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/messenger.svg b/assets/third-party-icons/developer/processed/Others/messenger.svg
new file mode 100644
index 00000000..89170670
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/messenger.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/mochajs.svg b/assets/third-party-icons/developer/processed/Others/mochajs.svg
new file mode 100644
index 00000000..3cf9f44a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/mochajs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/neovim.svg b/assets/third-party-icons/developer/processed/Others/neovim.svg
new file mode 100644
index 00000000..37dfdb92
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/neovim.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/numpy.svg b/assets/third-party-icons/developer/processed/Others/numpy.svg
new file mode 100644
index 00000000..2cd4ebaf
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/numpy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/ocaml.svg b/assets/third-party-icons/developer/processed/Others/ocaml.svg
new file mode 100644
index 00000000..0982bd83
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/ocaml.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/opera.svg b/assets/third-party-icons/developer/processed/Others/opera.svg
new file mode 100644
index 00000000..9bb9e6b1
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/opera.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/pandacss.svg b/assets/third-party-icons/developer/processed/Others/pandacss.svg
new file mode 100644
index 00000000..8c15c873
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/pandacss.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/pinia.svg b/assets/third-party-icons/developer/processed/Others/pinia.svg
new file mode 100644
index 00000000..46ef53d8
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/pinia.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/pinterest.svg b/assets/third-party-icons/developer/processed/Others/pinterest.svg
new file mode 100644
index 00000000..614ffcdf
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/pinterest.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/pixijs.svg b/assets/third-party-icons/developer/processed/Others/pixijs.svg
new file mode 100644
index 00000000..e4e59201
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/pixijs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/playwright.svg b/assets/third-party-icons/developer/processed/Others/playwright.svg
new file mode 100644
index 00000000..8426d31c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/playwright.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/postman.svg b/assets/third-party-icons/developer/processed/Others/postman.svg
new file mode 100644
index 00000000..81964171
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/postman.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/prettier.svg b/assets/third-party-icons/developer/processed/Others/prettier.svg
new file mode 100644
index 00000000..3d5dbb6c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/prettier.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/prisma.svg b/assets/third-party-icons/developer/processed/Others/prisma.svg
new file mode 100644
index 00000000..44de09b9
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/prisma.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/pugjs.svg b/assets/third-party-icons/developer/processed/Others/pugjs.svg
new file mode 100644
index 00000000..c7575600
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/pugjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/pwa.svg b/assets/third-party-icons/developer/processed/Others/pwa.svg
new file mode 100644
index 00000000..5fd6c2ab
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/pwa.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/pytorch.svg b/assets/third-party-icons/developer/processed/Others/pytorch.svg
new file mode 100644
index 00000000..e6183e81
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/pytorch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/pytorch3d.svg b/assets/third-party-icons/developer/processed/Others/pytorch3d.svg
new file mode 100644
index 00000000..9494df67
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/pytorch3d.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/qwik.svg b/assets/third-party-icons/developer/processed/Others/qwik.svg
new file mode 100644
index 00000000..e9b7cb6c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/qwik.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/r.svg b/assets/third-party-icons/developer/processed/Others/r.svg
new file mode 100644
index 00000000..fd94db70
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/r.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/radixui.svg b/assets/third-party-icons/developer/processed/Others/radixui.svg
new file mode 100644
index 00000000..28d1861c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/radixui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/rails.svg b/assets/third-party-icons/developer/processed/Others/rails.svg
new file mode 100644
index 00000000..0f8bcdf4
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/rails.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/reddit-wordmark.svg b/assets/third-party-icons/developer/processed/Others/reddit-wordmark.svg
new file mode 100644
index 00000000..562ca8ca
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/reddit-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/reddit.svg b/assets/third-party-icons/developer/processed/Others/reddit.svg
new file mode 100644
index 00000000..9a6da44e
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/reddit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/redhat.svg b/assets/third-party-icons/developer/processed/Others/redhat.svg
new file mode 100644
index 00000000..0c2b82b6
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/redhat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/redux.svg b/assets/third-party-icons/developer/processed/Others/redux.svg
new file mode 100644
index 00000000..9eb82bad
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/redux.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/render.svg b/assets/third-party-icons/developer/processed/Others/render.svg
new file mode 100644
index 00000000..06847a19
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/render.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/resend.svg b/assets/third-party-icons/developer/processed/Others/resend.svg
new file mode 100644
index 00000000..b2a976d2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/resend.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/rollup.svg b/assets/third-party-icons/developer/processed/Others/rollup.svg
new file mode 100644
index 00000000..b7da91df
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/rollup.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/semanticui.svg b/assets/third-party-icons/developer/processed/Others/semanticui.svg
new file mode 100644
index 00000000..50038370
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/semanticui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/serverless.svg b/assets/third-party-icons/developer/processed/Others/serverless.svg
new file mode 100644
index 00000000..f07a6a8b
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/serverless.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/shopware.svg b/assets/third-party-icons/developer/processed/Others/shopware.svg
new file mode 100644
index 00000000..ca01de35
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/shopware.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/skype.svg b/assets/third-party-icons/developer/processed/Others/skype.svg
new file mode 100644
index 00000000..42ac8855
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/skype.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/slack.svg b/assets/third-party-icons/developer/processed/Others/slack.svg
new file mode 100644
index 00000000..24e98295
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/slack.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/solidjs.svg b/assets/third-party-icons/developer/processed/Others/solidjs.svg
new file mode 100644
index 00000000..a9e85c27
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/solidjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/storyblok.svg b/assets/third-party-icons/developer/processed/Others/storyblok.svg
new file mode 100644
index 00000000..cb7e4dd5
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/storyblok.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/storybook.svg b/assets/third-party-icons/developer/processed/Others/storybook.svg
new file mode 100644
index 00000000..38234b4a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/storybook.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/stylelint.svg b/assets/third-party-icons/developer/processed/Others/stylelint.svg
new file mode 100644
index 00000000..a0902e24
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/stylelint.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/sublime.svg b/assets/third-party-icons/developer/processed/Others/sublime.svg
new file mode 100644
index 00000000..b446c097
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/sublime.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/swagger.svg b/assets/third-party-icons/developer/processed/Others/swagger.svg
new file mode 100644
index 00000000..59173aab
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/swagger.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/terraform.svg b/assets/third-party-icons/developer/processed/Others/terraform.svg
new file mode 100644
index 00000000..d0257ee7
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/terraform.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/tiktok.svg b/assets/third-party-icons/developer/processed/Others/tiktok.svg
new file mode 100644
index 00000000..922c5f4f
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/tiktok.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/tinyhttp.svg b/assets/third-party-icons/developer/processed/Others/tinyhttp.svg
new file mode 100644
index 00000000..50252335
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/tinyhttp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/tor.svg b/assets/third-party-icons/developer/processed/Others/tor.svg
new file mode 100644
index 00000000..5cc4263a
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/tor.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/twitter.svg b/assets/third-party-icons/developer/processed/Others/twitter.svg
new file mode 100644
index 00000000..090b5e13
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/twitter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/ubuntu.svg b/assets/third-party-icons/developer/processed/Others/ubuntu.svg
new file mode 100644
index 00000000..5f08e6c0
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/ubuntu.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/unjs.svg b/assets/third-party-icons/developer/processed/Others/unjs.svg
new file mode 100644
index 00000000..4031968d
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/unjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/upwork-basic.svg b/assets/third-party-icons/developer/processed/Others/upwork-basic.svg
new file mode 100644
index 00000000..519df51c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/upwork-basic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/upwork-wordmark.svg b/assets/third-party-icons/developer/processed/Others/upwork-wordmark.svg
new file mode 100644
index 00000000..d3e671ef
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/upwork-wordmark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/upwork.svg b/assets/third-party-icons/developer/processed/Others/upwork.svg
new file mode 100644
index 00000000..c85bd588
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/upwork.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/vagrant.svg b/assets/third-party-icons/developer/processed/Others/vagrant.svg
new file mode 100644
index 00000000..c717c646
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/vagrant.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/vim.svg b/assets/third-party-icons/developer/processed/Others/vim.svg
new file mode 100644
index 00000000..0000f595
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/vim.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/visualbasic.svg b/assets/third-party-icons/developer/processed/Others/visualbasic.svg
new file mode 100644
index 00000000..904145cd
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/visualbasic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/vscode.svg b/assets/third-party-icons/developer/processed/Others/vscode.svg
new file mode 100644
index 00000000..0f0e8ad7
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/vscode.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/webassembly.svg b/assets/third-party-icons/developer/processed/Others/webassembly.svg
new file mode 100644
index 00000000..63f2109c
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/webassembly.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/webrtc.svg b/assets/third-party-icons/developer/processed/Others/webrtc.svg
new file mode 100644
index 00000000..3691e759
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/webrtc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/whatsapp.svg b/assets/third-party-icons/developer/processed/Others/whatsapp.svg
new file mode 100644
index 00000000..59e1ff86
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/whatsapp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/wordpress.svg b/assets/third-party-icons/developer/processed/Others/wordpress.svg
new file mode 100644
index 00000000..e785ab54
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/wordpress.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/xamarin.svg b/assets/third-party-icons/developer/processed/Others/xamarin.svg
new file mode 100644
index 00000000..3768e472
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/xamarin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/xd.svg b/assets/third-party-icons/developer/processed/Others/xd.svg
new file mode 100644
index 00000000..4a883a52
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/xd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/yoga.svg b/assets/third-party-icons/developer/processed/Others/yoga.svg
new file mode 100644
index 00000000..7a3032f6
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/yoga.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Others/zen.svg b/assets/third-party-icons/developer/processed/Others/zen.svg
new file mode 100644
index 00000000..9671a4a6
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Others/zen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Productivity/gmail.svg b/assets/third-party-icons/developer/processed/Productivity/gmail.svg
new file mode 100644
index 00000000..3c5fc7a2
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Productivity/gmail.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Productivity/lokalise.svg b/assets/third-party-icons/developer/processed/Productivity/lokalise.svg
new file mode 100644
index 00000000..a2312da4
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Productivity/lokalise.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Productivity/notion.svg b/assets/third-party-icons/developer/processed/Productivity/notion.svg
new file mode 100644
index 00000000..d2eebee4
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Productivity/notion.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Productivity/onedrive.svg b/assets/third-party-icons/developer/processed/Productivity/onedrive.svg
new file mode 100644
index 00000000..903e9f90
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Productivity/onedrive.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/Productivity/outlook.svg b/assets/third-party-icons/developer/processed/Productivity/outlook.svg
new file mode 100644
index 00000000..6c854b90
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/Productivity/outlook.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/third-party-icons/developer/processed/developer-icons-v1.manifest.json b/assets/third-party-icons/developer/processed/developer-icons-v1.manifest.json
new file mode 100644
index 00000000..69314059
--- /dev/null
+++ b/assets/third-party-icons/developer/processed/developer-icons-v1.manifest.json
@@ -0,0 +1,3198 @@
+{
+ "id": "developer-icons-v1",
+ "name": "Developer Icons",
+ "version": "1.0.0",
+ "author": "xandemon/developer-icons",
+ "shapes": [
+ {
+ "id": "backend-avajs",
+ "label": "Backend Avajs",
+ "category": "Backend",
+ "svgContent": "",
+ "defaultWidth": 160,
+ "defaultHeight": 96,
+ "nodeType": "custom",
+ "defaultData": {}
+ },
+ {
+ "id": "backend-bunjs",
+ "label": "Backend Bunjs",
+ "category": "Backend",
+ "svgContent": "",
+ "defaultWidth": 160,
+ "defaultHeight": 96,
+ "nodeType": "custom",
+ "defaultData": {}
+ },
+ {
+ "id": "backend-convex",
+ "label": "Backend Convex",
+ "category": "Backend",
+ "svgContent": "",
+ "defaultWidth": 160,
+ "defaultHeight": 96,
+ "nodeType": "custom",
+ "defaultData": {}
+ },
+ {
+ "id": "backend-deno-fresh",
+ "label": "Backend Deno Fresh",
+ "category": "Backend",
+ "svgContent": "