You are browsing as a guest. Sign up (or log in) to start making projects!

el4s

@el4s

Joined May 31st, 2026

  • 18Devlogs
  • 5Projects
  • 1Ships
  • 15Votes
meow I’m so cool
Homeport
Open comments for this post

1h 17m 53s logged

Rewrote the AI engine to actually run tools instead of just talking about them. Key changes:- Tool system rework: Tools now use usage.md for documentation — loaded automatically and fed into the AI’s system prompt so it knows exactly how and when to use each tool. Added usage field to ToolDefinition. Created extras/tools/ping/usage.md with explicit usage rules.- Two-pass AI response: The AI first analyzes the ticket and selects tools. Non-approval tools execute inline, then a second AI call (composeResponse) writes the actual customer message based on the real tool results — no more guessing “we checked” before the tool runs.- Schema validation: Tools with missing required params are silently skipped instead of failing loudly and appending errors to responses.- Per-tool tracking: Every tool execution now creates an AiAction record (even non-approval ones), so the admin UI can show individual tool calls with status, input, and output per ticket.- Admin UI tools display: Tools appear under the customer profile in the ticket detail sidebar — each call shows tool name, status badge (completed/failed/pending), and output message.- SLA fields: Added slaResponseTime and slaResolutionTime (in minutes) to both Customer and Organization models. Displayed formatted (e.g. “1h 30m”) under the customer profile. Added formatSla and parseSlaInput utilities.- CSAT: Added csatScore, csatSentAt, csatRespondedAt to the Ticket model. Admin can close a ticket and rate satisfaction (1-5 stars). CSAT score displays when ticket is closed.- Decision logic fixes: Fixed decide() to handle request_approval explicitly. When non-approval tools run, ticket stays Open instead of auto-resolving or going to Pending — keeps the conversation flowing for follow-up messages. Fixed addMessage skip logic that was preventing AI re-processing when the status was AiPending. Removed “Resolved” from terminal statuses in the re-trigger check.

0
0
2
Open comments for this post

1h 37m 59s logged

Today I refactored the entire app from a multi-tenant demo into a single-tenant production support desk. Stripped out team management, roles, and all mock data from the dashboard. Replaced the Prisma schema to remove Member, OrgSettings, Workflow, ToolConfig, and other unused models. Simplified the auth store to stop persisting user data in localStorage — auth is now verified via the backend on every page load. Built a client portal at /portal where users can submit and track tickets, and a staff area at /staff for admin login. Added role-based routing so clients and admins land in the right place. Added KB creation tools and user management for admins. Still shaking out some DB migration issues on the hosted Postgres instance, but the schema is settling. (user login) will show user portal tmw

0
0
2
Open comments for this post

1h 7m 10s logged

I started by asking v0 to draft the application. I then began working on it by hand with the assistance of OpenCode. I ran into some issues with the database migrations, but I’m working on resolving them. i wi.ll soon let you pick your own branding!

0
0
5
Ship

I built HobbyCloud, the free cloud for teens! I'm working on offering web hosting soon, and maybe even VPS hosting. Register an account and stay tuned!

  • 8 devlogs
  • 16h
  • 16.61x multiplier
  • 258 Stardust
Try project → See source code →
Open comments for this post

1h 26m 1s logged

  • Added banned_domains table + admin page to ban email domains — bans a domain, terminates all users with that domain, sends a termination email explaining they used a blacklisted domain- Created components/emails/banned-domain-termination.tsx email template- Added admin Broadcasts feature — form to send an email to all users, logged in broadcasts table- Added lib/zip.ts — lightweight ZIP creation using raw DEFLATE (no npm deps needed)- Added /api/admin/users/[userId]/export — admin can download a user’s account.json + all files as a zip- Built fraud detection engine (lib/fraud-detection.ts, app/actions/fraud.ts):  - Duplicate IP detection on registration (+15/+30 score)  - Upload velocity spikes (+10/+20 score)  - Storage abuse (80%+ full, mostly tiny files, +25 score)  - Auto-suspends at 80+ score- Admin Fraud Detection page with score leaderboard, drill-down flag viewer, clear flags + unsuspend button- Fixed scripts (migrate.mjs, check-health.mjs, reset-password.mjs) to handle both 'email' and 'credential' providerId values after registration was updated to use 'credential'
0
0
7
Open comments for this post

1h 20m 1s logged

  • Fixed admin sidebar navigation — clicking tabs actually switches views now, not just overview- Added reset modal with granular checkboxes (storage, verification, introduction) instead of a single button- Removed Access Codes feature entirely (sidebar, actions, schema)- Created suspension enforcement system: assertNotSuspended() / isSuspended() guards across AI chat, files, API keys, webhooks, and proxy routes- Added unsuspendUser() admin action with button in admin users table- Fixed webhook test delivery — was calling fireWebhook() which silently dropped test events; now calls deliver() directly. Same fix in admin and API route.- Changed webhook payloads to Discord embed format with color-coded events and “Hobbycloud” as bot name- Stripped PII (names, emails, filenames, share tokens, API key prefixes, ticket subjects) from all webhook payloads- Removed “Need more storage?” footer from dashboard shell- Added ticket categories + subcategories with shared hierarchy constants, database migration, subcategory selectors, admin category filtering- Redesigned ticket creation UI — dedicated full-page form with visual category cards (icons!), auto-priority based on category/subcategory- Priority now auto-adjusts: Feature Request/General → low, Abuse/DMCA → urgent, Account recovery → high, etc.
0
0
12
Open comments for this post

1h 1m logged

Moved back to Resend because Mailcow + Amazon SES wasn’t working due to issues with Amazon SES.Flagged files are now stored by their hash in our database. This significantly speeds up reviews, as ClamAV no longer has to rescan the same files repeatedly. Also started working on stats + made webhooks semi working!

0
0
5
Open comments for this post

52m 1s logged

Started to implement webhooks! For users and for admins! this way you can be alerted over discord or slack for stuff regarding your account!!!

0
0
8
Open comments for this post

2h 31m 1s logged

im planing on offering more services so!! i made service isolation i will soon implement free web hosting and eventually compute!

0
0
2
Open comments for this post

1h 28m 35s logged

Added a Create Instance wizard modal pick VM or Container, choose a node, set CPU/RAM/disk/network, and select an ISO (for VMs) or OS template (for LXC). Backend proxies to Proxmox’s create API with auto-vmid generation via cluster/nextid. Container creation passes ostemplate and root password; VM creation attaches ISO as ide2.Then built out the clone-from-template feature for VMs. Right-click a VM template from storage content and hit “Clone Template” picks the template, lets you override CPU/RAM/disk/network (cloud-init) and set a cloud-init password, then does a full clone via Proxmox’s clone API. Backend polls the task until it finishes, then applies any overrides (cores, memory, disk resize, ipconfig0, cipassword) via the VM config endpoint.Console: tried termwebsocket with vncwebsocket fallback for LXC, but Proxmox VE 9.1 returns 501 on termwebsocket (missing pve-xtermjs API handler). Disabled LXC console for now. QEMU VNC console works fine.

0
0
4
Open comments for this post

36m 55s logged

Added a recharts line chart on /host/:id/stats with auto-scaling Y-axis so tiny fluctuations actually show up as waves instead of flat lines. Range picker goes from 30m to 24h.Then i split the big single-page host view into proper routes:- /host/:id/resources — VM table, filters, folders- /host/:id/resources/folder/:name — folder-filtered view  - /host/:id/stats — node overview + chartFolder URLs are always lowercase now, matched case-insensitive against actual names.Power controls are in! Right-click any VM for Start / Reboot / Shutdown / Stop. Stop shows a confirmation dialog. Also added bulk actions via the checkbox selection bar — can Start / Shutdown / Stop / Reboot multiple VMs at once. After any action the UI polls Proxmox every 1.5s until the status actually flips, with a spinner on the row so you know somethings happening. That took some trial and error with the refs lol.Now its time for some polishing and then we are done with the SSH features.

0
0
2
Open comments for this post

1h 6m 49s logged

Implemented folders!! Drag VMs onto folder tabs, right-click context menus, bulk move with confirmation. Folders persist to the database via vm_folders table. Empty folders survive because they’re tracked in the settings API.Fixed the VNC proxy!! Serial console was blank needed a 500ms delay then two newlines to tickle the login prompt. Also added early-abort in the WebSocket handler so React StrictMode double-mount doesn’t orphan termproxy sessions.Console in a popup!! “Open in popup” button in the console modal spawns a centered 1000×700 window. Standalone /console route too.Uptime now shows Xh Ym instead of decimal days. Multi-select checkboxes with a white background and black checkmark. Select-all in the header. Bulk action bar appears when VMs are checked.Non-single-page routing!! Clicking a host card navigates to /host/:id instead of swapping inline. Breadcrumb in the sidebar detects it from the URL. No more selectedHost in auth context.

0
0
2
Open comments for this post
Reposted by @el4s

1h 3m 3s logged

Built out the basics, the app now has an auth system and infrastructure selection system and so on! you can also add more hosts if ur homelab is MASIVE

0
1
4
Open comments for this post

49m 42s logged

Finnaly after some debuging with AGY and opus i got it working! YAYY!!! now its time for some polishing and then we are done with the SSH fetures

0
0
1
Open comments for this post

3h 7m 4s logged

Built a icon picker for VMS! and CTS, also started working on a ssh / console feture, tho its not working at all right now :( i have LOTS of work to do.

0
0
2
Open comments for this post

1h 3m 3s logged

Built out the basics, the app now has an auth system and infrastructure selection system and so on! you can also add more hosts if ur homelab is MASIVE

0
1
4

Followers

Loading…