Enis

281 posts

Enis banner
Enis

Enis

@enisdev

developer • web dev enthusiast • svelte lover ❤️

Katılım Kasım 2020
316 Takip Edilen25 Takipçiler
Enis
Enis@enisdev·
@midudev seen the same with sveltekit vs next on client sites. pick based on the delivery shape, static or content-heavy vs real server state, not the framework's reputation
English
0
0
0
80
Miguel Ángel Durán
He migrado un proyecto de Next.js a Astro. La diferencia de rendimiento de salida es importante.
Miguel Ángel Durán tweet media
Español
28
29
1K
120.7K
Enis
Enis@enisdev·
@joelhooks honestly cool angle. mine stays plain markdown, one canonical file per entity plus an append-only log, keeps it framework-agnostic and grep-able across machines
English
2
0
1
15
joel ⛈️
joel ⛈️@joelhooks·
i've got this wild mdsvx based "brain" graph as memory substrate mdsvx is mdx for svelte, so markdown with svelte components the robots love it and use the shit out of it herdr-brain is a mdsvx parser/viewer using opentui 😍
joel ⛈️ tweet media
English
6
3
25
1.8K
Enis
Enis@enisdev·
harnesses hold up better as separate editable surfaces than one prompt personalos already works that way: skill owns behavior, hook enforces, subagent isolates, ledger holds state edit one, the rest hold. adding a rule never breaks the others
Enis tweet media
English
0
0
0
15
Enis
Enis@enisdev·
@Marktechpost no vector db is the right call. i'd skip the consolidation cycle too, a grep gate right before the agent acts beats a background job guessing what'll matter later
English
0
0
0
6
Marktechpost AI
Marktechpost AI@Marktechpost·
Google Cloud Open-Sources an Always-On Memory Agent: A 24/7 Background Agent on Google ADK + Gemini 3.1 Flash-Lite That Persists Memory Without a Vector DB. No vector DB. No embeddings. No RAG. Here's how it works. 👇 1. Memory as a running process, not a lookup The agent runs 24/7 as a lightweight background process. An orchestrator routes every request to one of three sub-agents. An LLM reads, thinks, and writes structured memory — no retrieval index anywhere. 2. Ingest, multimodal extraction The IngestAgent uses Gemini to turn any file into a structured record. → summary, entities, topics, importance (0.0–1.0) → 27 file types: text, images, audio, video, PDFs → drop a file in ./inbox, auto-ingested in seconds 3. Consolidate, runs every 30 min like sleep cycles The ConsolidateAgent reviews unconsolidated memories while idle. → finds connections across memories → writes a summary + one cross-cutting insight + connections → no prompt needed 4. Query, grounded and cited The QueryAgent reads all memories and consolidation insights, then synthesizes. → reads up to 50 recent memories → cites memory IDs: [Memory 1], [Memory 2] 5. The stack Google ADK orchestrator + 3 sub-agents (Ingest, Consolidate, Query), SQLite for storage, aiohttp HTTP API on :8888. → MIT license, no vector infra The key takeaway: persistent agent memory as an active background process — multimodal ingest, timed consolidation, cited queries — on one LLM and SQLite, no vector DB and no embeddings. Full analysis: marktechpost.com/2026/07/18/goo… Repo: github.com/GoogleCloudPla…
English
4
8
38
2.3K
Enis
Enis@enisdev·
the split is right. mine just skips the single database: one canonical file per entity, an append-only ledger for state, grep before the next step. no consolidation job needed when nothing gets scattered in the first place
Paul Iusztin@pauliusztin_

Switching from Claude Code to Codex should take minutes. But for most people, it means starting from scratch (here's why)... Most engineers think they're locking into a harness. But they're actually locked into their context. So every time your assistant learns something, gains new skills, or automates another workflow, it becomes harder to switch. This is why, while building my personal AI assistant for our upcoming Manning book, I've been converging toward one architecture: Make the harness disposable. Keep everything else. Here's what that looks like: 1/ Unified memory Everything the agent knows lives in one place. Instead of scattering memory across multiple systems, I prefer building it on top of a single database that supports: Documents Full-text search Semantic search Knowledge graph traversal For me, that's @MongoDB. One database is enough for the majority of AI assistants. 2/ Serving layer The agent should talk directly to an interface. Typically, that's an MCP server. The database stores the memory. The MCP server owns the business logic. It decides: How memory is searched How memory is updated Which tools the agent can use When conversations become long-term memory This separation is what makes the system portable. 3/ Harness Claude Code. Codex. OpenCode. Gemini CLI. These should be the most replaceable part of your stack. If your context layer is portable, changing harnesses should be little more than a configuration change. The new assistant should immediately know: Who you are What you're working on What you've learned What matters to you Because your memory moved with you. To sum up: The model isn't the moat. The harness isn't the moat. Your context layer is. Design your architecture accordingly. P.S. If you're interested in building an AI assistant that remembers your research, notes, conversations, and preferences across any harness, I break down the full architecture in Decoding AI Magazine Read it here: decodingai.com/p/the-context-…

English
0
0
0
23
Enis
Enis@enisdev·
@0xOrkward yeah the @starting-style half of this is solved now, css-only enter transitions that only fire on new elements. your async-content case is still the hard one, ResizeObserver + defer is the only fix i've found.
English
0
0
1
27
orkward ☄︎
orkward ☄︎@0xOrkward·
a transition is a claim that something changed. on page load, the claim is false. recording a thirty-second demo of a dashboard build this week. every take opens the same way: hit refresh, and the status badge stretches from a dot into a pill, the sidebar glides shut, a counter climbs up from zero. the first second of every clip is the ui assembling itself. i kept trimming it off like a clapperboard. that dance isn't polish. it's a component that can't tell mounting from changing. the sequence underneath: component mounts at its default state. effects run, the real values arrive — persisted prefs, measured width, error count — state updates, and the transition you wrote for state changes fires on the difference between default and actual. css doesn't know nothing happened. it saw width go from A to B and did its job. meanwhile the user is wired to catch exactly this: peripheral vision is ruthlessly sensitive to small movement, which is the entire reason motion works for pointing at system changes in the first place. spend that attention on a non-event and the app reads as poorly built. people feel it in one refresh and can't articulate why. so the rule i hold: state transitions respond to input or to the system changing. a mount is neither. the first frame renders already in its final state. mechanically that's measuring when you can and falling back to intrinsic size when you can't — width = measuredWidth ? measuredWidth : "auto" — no measurement yet, render at auto, no morph. and when the state is known before anything paints, say a build error that breaks the app before it even loads, the error surface should appear already expanded. that's the moment animation is most insulting: the app is down and the badge is doing theater about it. same bug wears a lot of clothes. the theme toggle that flips itself on arrival. the chart that animates from zero on every single visit. the accordion that slams shut after hydration. none of those are transitions — that's the app loading in public. one real edge: async content. if the element has to render immediately but its contents are still arriving, early measurements lie — you'll transition to a width that's stale a frame later. defer trusting measured values until dimensions stabilise. intrinsic size holds the fort till then. and the pushback i get every time: "so no entrance animations at all?" wrong lesson. the line is restored state vs new state. a badge expanding cause an error just landed is news — animate it, pull the eye, that's what motion is for. the same badge re-expanding on refresh cause the error still exists is old news the user already had. announcing old news with motion is a false alarm, and an interface that cries wolf trains people to ignore the one animation that actually mattered. render the mount finished. animate the news.
English
1
0
3
288
Enis
Enis@enisdev·
SvelteKit remote functions feel like calling a local function. Import it, call it, done. The catch: that call is a fetch to a generated endpoint, hashed from the file path, not the code. Worth knowing before you assume it's private.
Enis tweet media
English
0
0
0
20
Enis
Enis@enisdev·
@dedene Isn't this bannable?
English
1
0
1
14
Peter Dedene
Peter Dedene@dedene·
Genuinely surprised by how well GPT-5.6 Sol runs through CLIProxyAPI inside Claude Code! The underlying model is clearly still only one piece of the agentic engineering equation. I hope we get to see /workflows and how Claude Code handles subagents ported to Codex soon 🤞
Peter Dedene tweet media
English
16
11
152
16.9K
Tibo
Tibo@thsottiaux·
If you aren't yet bold enough to install the Codex app, you can stay in the presence of your orange crab and point it at GPT 5.6 Sol. Takes 5 minutes. Kudos to Theo for explaining one of the ways to get this done. Step 1: Install CLIProxyAPI Step 2: Connect Step 3: Define following alias and enjoy claudex ``` alias claudex='CLAUDE_CODE_SUBAGENT_MODEL=gpt-5.6-sol \ CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1 \ CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY=3 \ ENABLE_TOOL_SEARCH=false \ claude --model gpt-5.6-sol' ``` If this gets blocked, I owe you a reset.
Theo - t3.gg@theo

@thsottiaux tl;dr version: - set up CLIProxyAPI with Claude and Codex auth - Connect to Claude Code - Make "claudex" alias that sets some env vars Took like 2 prompts (I already had the proxy set up tbf)

English
642
623
8.9K
2.5M
Baye
Baye@waylybaye·
有订阅了多个 Claude Max 账号的朋友吗,一机用俩账号怎么切换最方便啊?
中文
114
2
71
67.1K
Theo - t3.gg
Theo - t3.gg@theo·
@thsottiaux tl;dr version: - set up CLIProxyAPI with Claude and Codex auth - Connect to Claude Code - Make "claudex" alias that sets some env vars Took like 2 prompts (I already had the proxy set up tbf)
Theo - t3.gg tweet mediaTheo - t3.gg tweet media
English
120
119
2.3K
1.5M
Enis
Enis@enisdev·
@thekitze What other books you read
English
0
0
0
35
kitze the 🐐
kitze the 🐐@thekitze·
yesterday for the first time in a year i fell asleep with a book it was the first page of this book i like how it instantly scares the shit out of you on page 1 lol
kitze the 🐐 tweet media
English
18
0
61
4.6K
SaltyAom
SaltyAom@saltyAom·
Sometimes I forget that I have free will, that I can just use React's useState and Vue reactivity API together in a React component
English
36
12
714
68.8K
Enis
Enis@enisdev·
on a real client site the $2k was never the code. it's impressum, dsgvo consent, seo, mail that lands at 10/10 on mail-tester. the boring layer that's actually required. AI clears that fast now. that's the real win, not the hero build
1@cantguardkenzo

$2,000 WEBSITE. $0 BUILD COST. ONE FOUNDER. No web agency. No freelance developers. No expensive software. Just Claude doing the heavy lifting. The design was finished in hours. The code was generated in a day. Every revision took minutes. The client paid $2,000. The build cost was $0. The value wasn't in writing every line of code. It was knowing how to direct AI to build it.

English
0
0
2
1.3K
Enis
Enis@enisdev·
@AllSeeingNik yeah, and a memory file only stays DRY if something reads it before the agent acts, else it grows and the work gets redone anyway. a grep gate before each step is what made mine hold
English
0
0
0
15
NikitaKoptiev
NikitaKoptiev@AllSeeingNik·
Edmund Yong put in 800+ hours inside Claude Code Anthropic sponsored him to compress all of it into one 8 minute video He never repeats himself twice - everything gets saved into a memory file or a reusable command He runs subagents in parallel, each one with its own context window and its own job, so features ship at the same time instead of one after another He connects Claude directly to Stripe, Supabase, Vercel and Playwright through MCP - no more copy pasting docs by hand He open sourced his entire production setup so anyone can clone it in minutes DRY isn't just a coding principle to him - it's how he runs Claude itself 00:00 - 800 Hours Later... 00:38 - D.R.Y. (Don't Repeat Yourself) 02:04 - My favorite MCP servers 03:52 - Build & ship features in PARALLEL 06:06 - Clone CRACKED setups 06:38 - How to EXCEL at coding with AI Claude Code setup repo: github.com/edmund-io/edmu…... 8-min - bookmark and watch
NikitaKoptiev@AllSeeingNik

x.com/i/article/2076…

English
9
9
38
15K