<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Improvement on Arivu</title>
		<link>https://arivu.app/categories/improvement/</link>
		<description>Recent content in Improvement on Arivu</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Sat, 11 Jul 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://arivu.app/categories/improvement/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>A Warmer, Lighter Arivu</title>
				<link>https://arivu.app/chronicle/a-warmer-lighter-arivu/</link>
				<pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/a-warmer-lighter-arivu/</guid>
				<description>&lt;p&gt;Arivu has a new visual language, but it has not become a different application.&lt;/p&gt;&#xA;&lt;p&gt;The interface is now light-only, with warm sand around white working surfaces, coral for emphasis, neutral ink, serif editorial headings, and restrained sans-serif controls. Fine dashed rules organize related material. Compact radii and sparse shadows keep the application tactile without turning every section into a card.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;https://arivu.app/images/product/home.webp&#34; width=&#34;1440&#34; height=&#34;1000&#34; alt=&#34;Arivu Home showing a daily knowledge overview in the warm light-only interface&#34; loading=&#34;lazy&#34;&gt;&#xA;  &lt;figcaption&gt;Home brings the daily note, active work, useful memories, and recent knowledge into one calm starting point.&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;designed-for-reading-and-thinking&#34;&gt;Designed for reading and thinking&lt;/h2&gt;&#xA;&lt;p&gt;Arivu holds long articles, notes, source excerpts, relationship evidence, and explanations. The redesign gives that material room to breathe. Line lengths are controlled, body text has a more generous rhythm, and headings make clear transitions without shouting.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Notes, Right Where They Belong</title>
				<link>https://arivu.app/chronicle/notes-right-where-they-belong/</link>
				<pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/notes-right-where-they-belong/</guid>
				<description>&lt;p&gt;Notes are now a primary destination in Arivu.&lt;/p&gt;&#xA;&lt;p&gt;That sounds like a small navigation change, but it corrects something important about the product. Your own thinking is not an attachment to the things you save. A meeting note, a question, a working idea, or a decision can matter before it has a URL or a polished structure.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;  &lt;img src=&#34;https://arivu.app/images/product/mobile.webp&#34; width=&#34;390&#34; height=&#34;844&#34; alt=&#34;Arivu on mobile with Notes in the five-item bottom navigation&#34; loading=&#34;lazy&#34;&gt;&#xA;  &lt;figcaption&gt;Notes now has a permanent place beside Home, Library, Graph, and Insights on mobile.&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;a-writing-space-beside-your-sources&#34;&gt;A writing space beside your sources&lt;/h2&gt;&#xA;&lt;p&gt;Open &lt;strong&gt;Notes&lt;/strong&gt; from the main navigation to write a standalone note or return to a daily note. Notes can carry tasks and reminders when a thought needs follow-through. They can also link directly to owned bookmarks and other notes.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Website Caught Up</title>
				<link>https://arivu.app/chronicle/the-website-caught-up/</link>
				<pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/the-website-caught-up/</guid>
				<description>&lt;p&gt;The Arivu website now looks and speaks like the application it documents.&lt;/p&gt;&#xA;&lt;p&gt;The previous site belonged to an earlier moment. Its sharp brutalist presentation and bookmark-first language were useful historical markers, but they no longer represented a product centered on connected knowledge. The site has now caught up without erasing that history.&lt;/p&gt;&#xA;&lt;h2 id=&#34;one-visual-language&#34;&gt;One visual language&lt;/h2&gt;&#xA;&lt;p&gt;The website uses the same light-only direction as the application: warm sand, white surfaces, coral emphasis, neutral ink, editorial headings, open lists, dashed rules, and compact controls. Typography has been rebuilt for longer reading, with consistent line spacing and a narrower article measure across guides, Blog, and Chronicle.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Your Second Brain, Your Model Provider</title>
				<link>https://arivu.app/chronicle/your-second-brain-your-model-provider/</link>
				<pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/your-second-brain-your-model-provider/</guid>
				<description>&lt;p&gt;The model connected to your second brain should be your choice. Arivu now supports Gemini, Anthropic, OpenAI-compatible services, and local or custom-compatible endpoints through runtime Admin Settings.&lt;/p&gt;&#xA;&lt;p&gt;You can change the provider without rebuilding the app or editing deployment files. Admins choose a preset or compatible endpoint, select the model, and add credentials when that provider requires them. Local services can be keyless where supported.&lt;/p&gt;&#xA;&lt;h2 id=&#34;one-workflow-different-ai-layers&#34;&gt;One Workflow, Different AI Layers&lt;/h2&gt;&#xA;&lt;p&gt;Hosted providers can offer stronger generated summaries and synthesis. A local endpoint can keep more processing inside infrastructure you control. An OpenAI-compatible endpoint can connect another service that follows the expected interface. The right choice depends on your privacy, quality, cost, and operational needs.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Safer Self-Hosting, Less Guesswork</title>
				<link>https://arivu.app/chronicle/safer-self-hosting-less-guesswork/</link>
				<pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/safer-self-hosting-less-guesswork/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Update, July 11, 2026:&lt;/strong&gt; The installer no longer requires GitHub CLI. Piped bootstrap keeps interactive prompts TTY-safe, DNS mismatches produce actionable warnings, and newer Ubuntu releases are tolerated rather than rejected only for being newer. Upgrades now verify and transactionally activate the matching app and installer binaries, roll both back if activation fails, and prompt browsers to revalidate embedded frontend assets. Tagged releases report the exact release version; development builds may report development metadata. Public HTTPS can still require correct DNS, firewall, or shared-proxy configuration.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Review Learns What Matters</title>
				<link>https://arivu.app/chronicle/review-learns-what-matters/</link>
				<pubDate>Mon, 06 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/review-learns-what-matters/</guid>
				<description>&lt;p&gt;Resurfacing is only useful when it respects your attention.&lt;/p&gt;&#xA;&lt;p&gt;An old saved link can be a gift. It can also be noise. The difference is context: why is this here, why now, and what should happen if it was not useful?&lt;/p&gt;&#xA;&lt;p&gt;That is why Review now has a clearer feedback loop.&lt;/p&gt;&#xA;&lt;h2 id=&#34;review-has-reasons&#34;&gt;Review Has Reasons&lt;/h2&gt;&#xA;&lt;p&gt;When an item appears in Review, it should not feel random. It can return because it is:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Your Knowledge, Yours to Keep</title>
				<link>https://arivu.app/chronicle/your-knowledge-yours-to-keep/</link>
				<pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/your-knowledge-yours-to-keep/</guid>
				<description>&lt;p&gt;A second brain is only trustworthy if you can walk out with everything in it. This update makes Arivu&amp;rsquo;s data flow both ways: richer imports on the way in, and real, portable exports on the way out. Since then, imports and backups have grown to include documents, transcripts, and knowledge objects too. Along the way, capture got easier and search got a single source of truth.&lt;/p&gt;&#xA;&lt;svg viewBox=&#34;0 0 700 220&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; style=&#34;max-width: 100%; height: auto; display: block; margin: 2rem auto;&#34; role=&#34;img&#34; aria-labelledby=&#34;chronicle-your-knowledge-yours-to-keep-1-title chronicle-your-knowledge-yours-to-keep-1-desc&#34;&gt;&#xA;  &lt;title id=&#34;chronicle-your-knowledge-yours-to-keep-1-title&#34;&gt;Your Knowledge, Yours to Keep, diagram 1&lt;/title&gt;&#xA;  &lt;desc id=&#34;chronicle-your-knowledge-yours-to-keep-1-desc&#34;&gt;Historical diagram 1 accompanying the Chronicle post Your Knowledge, Yours to Keep.&lt;/desc&gt;&#xA;&lt;rect x=&#34;30&#34; y=&#34;40&#34; width=&#34;180&#34; height=&#34;140&#34; fill=&#34;#FDFCF9&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;&lt;text x=&#34;120&#34; y=&#34;65&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;11&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;IN&lt;/text&gt;&#xA;&lt;text x=&#34;120&#34; y=&#34;90&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34;&gt;Pocket, Raindrop&lt;/text&gt;&#xA;&lt;text x=&#34;120&#34; y=&#34;108&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34;&gt;Linkwarden&lt;/text&gt;&#xA;&lt;text x=&#34;120&#34; y=&#34;126&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34;&gt;Browser HTML&lt;/text&gt;&#xA;&lt;text x=&#34;120&#34; y=&#34;144&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34;&gt;Arivu JSON&lt;/text&gt;&#xA;&lt;text x=&#34;120&#34; y=&#34;162&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34;&gt;URL list&lt;/text&gt;&#xA;&lt;rect x=&#34;260&#34; y=&#34;65&#34; width=&#34;180&#34; height=&#34;90&#34; fill=&#34;#7E2412&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;&lt;text x=&#34;350&#34; y=&#34;105&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;12&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;ARIVU&lt;/text&gt;&#xA;&lt;text x=&#34;350&#34; y=&#34;126&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;SQLite on disk&lt;/text&gt;&#xA;&lt;line x1=&#34;210&#34; y1=&#34;110&#34; x2=&#34;258&#34; y2=&#34;110&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;3&#34;/&gt;&#xA;&lt;polygon points=&#34;258,110 246,103 246,117&#34; fill=&#34;#2F2E2B&#34;/&gt;&#xA;&lt;line x1=&#34;442&#34; y1=&#34;110&#34; x2=&#34;490&#34; y2=&#34;110&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;3&#34;/&gt;&#xA;&lt;polygon points=&#34;490,110 478,103 478,117&#34; fill=&#34;#2F2E2B&#34;/&gt;&#xA;&lt;rect x=&#34;490&#34; y=&#34;40&#34; width=&#34;180&#34; height=&#34;140&#34; fill=&#34;#CF3F1E&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;&lt;text x=&#34;580&#34; y=&#34;65&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;11&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;OUT&lt;/text&gt;&#xA;&lt;text x=&#34;580&#34; y=&#34;90&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;JSON backup&lt;/text&gt;&#xA;&lt;text x=&#34;580&#34; y=&#34;108&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Obsidian vault&lt;/text&gt;&#xA;&lt;text x=&#34;580&#34; y=&#34;126&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Markdown&lt;/text&gt;&#xA;&lt;text x=&#34;580&#34; y=&#34;144&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;CSV&lt;/text&gt;&#xA;&lt;text x=&#34;580&#34; y=&#34;162&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Browser HTML&lt;/text&gt;&#xA;&lt;/svg&gt;&#xA;&lt;h2 id=&#34;export-that-actually-leaves&#34;&gt;Export That Actually Leaves&lt;/h2&gt;&#xA;&lt;p&gt;Arivu now exports your collection in the formats you would actually want to keep or move:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Quieter Admin, Stronger Guarantees</title>
				<link>https://arivu.app/chronicle/admin-and-guarantees/</link>
				<pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/admin-and-guarantees/</guid>
				<description>&lt;p&gt;Before we ship a wave of new features, we wanted the operating layer underneath them to be solid. This update rebuilds the admin experience on the app&amp;rsquo;s own storage, makes provider configuration a runtime concern instead of a restart concern, and adds a clear audit trail for sensitive actions.&lt;/p&gt;&#xA;&lt;p&gt;None of this changes what Arivu looks like day to day. It changes how confidently you can run it.&lt;/p&gt;&#xA;&lt;svg viewBox=&#34;0 0 700 200&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; style=&#34;max-width: 100%; height: auto; display: block; margin: 2rem auto;&#34; role=&#34;img&#34; aria-labelledby=&#34;chronicle-admin-and-guarantees-1-title chronicle-admin-and-guarantees-1-desc&#34;&gt;&#xA;  &lt;title id=&#34;chronicle-admin-and-guarantees-1-title&#34;&gt;Quieter Admin, Stronger Guarantees, diagram 1&lt;/title&gt;&#xA;  &lt;desc id=&#34;chronicle-admin-and-guarantees-1-desc&#34;&gt;Historical diagram 1 accompanying the Chronicle post Quieter Admin, Stronger Guarantees.&lt;/desc&gt;&#xA;&lt;rect x=&#34;30&#34; y=&#34;30&#34; width=&#34;150&#34; height=&#34;80&#34; fill=&#34;#CF3F1E&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;&lt;text x=&#34;105&#34; y=&#34;62&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;11&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;ADMIN&lt;/text&gt;&#xA;&lt;text x=&#34;105&#34; y=&#34;80&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Overview, users,&lt;/text&gt;&#xA;&lt;text x=&#34;105&#34; y=&#34;94&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;system, activity&lt;/text&gt;&#xA;&lt;rect x=&#34;200&#34; y=&#34;30&#34; width=&#34;150&#34; height=&#34;80&#34; fill=&#34;#7E2412&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;&lt;text x=&#34;275&#34; y=&#34;62&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;11&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;SETTINGS&lt;/text&gt;&#xA;&lt;text x=&#34;275&#34; y=&#34;80&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Runtime provider&lt;/text&gt;&#xA;&lt;text x=&#34;275&#34; y=&#34;94&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;keys, no restart&lt;/text&gt;&#xA;&lt;rect x=&#34;370&#34; y=&#34;30&#34; width=&#34;150&#34; height=&#34;80&#34; fill=&#34;#7E2412&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;&lt;text x=&#34;445&#34; y=&#34;62&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;11&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;AUDIT&lt;/text&gt;&#xA;&lt;text x=&#34;445&#34; y=&#34;80&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Sensitive actions&lt;/text&gt;&#xA;&lt;text x=&#34;445&#34; y=&#34;94&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;recorded&lt;/text&gt;&#xA;&lt;rect x=&#34;540&#34; y=&#34;30&#34; width=&#34;150&#34; height=&#34;80&#34; fill=&#34;#2F2E2B&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;&lt;text x=&#34;615&#34; y=&#34;62&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;11&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;SUPPLY CHAIN&lt;/text&gt;&#xA;&lt;text x=&#34;615&#34; y=&#34;80&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Verified builds,&lt;/text&gt;&#xA;&lt;text x=&#34;615&#34; y=&#34;94&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;pinned scans&lt;/text&gt;&#xA;&lt;rect x=&#34;30&#34; y=&#34;135&#34; width=&#34;660&#34; height=&#34;45&#34; fill=&#34;#FDFCF9&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;&lt;text x=&#34;360&#34; y=&#34;162&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;10&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;ONE GO APP, ONE SQLITE DATABASE, ONE PLACE TO LOOK&lt;/text&gt;&#xA;&lt;/svg&gt;&#xA;&lt;h2 id=&#34;a-native-admin-dashboard&#34;&gt;A Native Admin Dashboard&lt;/h2&gt;&#xA;&lt;p&gt;The admin dashboard now runs entirely on the app&amp;rsquo;s own SQLite storage. Admins listed in &lt;code&gt;ADMIN_EMAILS&lt;/code&gt; get an &lt;code&gt;/admin&lt;/code&gt; area with sections for overview, API usage, users, system status, recent activity, collections, and an audit log.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Smoother Browser UI</title>
				<link>https://arivu.app/chronicle/browser-ui-quality-pass/</link>
				<pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/browser-ui-quality-pass/</guid>
				<description>&lt;p&gt;We spent this session tightening the browser UI that ships inside the self-hosted Arivu app.&lt;/p&gt;&#xA;&lt;p&gt;The work was not about adding a flashy new feature. It was about making the existing interface feel more dependable: easier to sign back into, clearer when something goes wrong, calmer to look at, and faster after the first load.&lt;/p&gt;&#xA;&lt;h2 id=&#34;better-account-recovery&#34;&gt;Better Account Recovery&lt;/h2&gt;&#xA;&lt;p&gt;The account screens now handle recovery and invited-user entry points more directly. If you need to get back into your account, the path is visible from the sign-in experience instead of feeling hidden. Invited users also get a clearer handoff into the app.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Arivu Is Simpler to Self-Host Now</title>
				<link>https://arivu.app/chronicle/simpler-self-hosting-go-rewrite/</link>
				<pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/simpler-self-hosting-go-rewrite/</guid>
				<description>&lt;p&gt;Arivu is moving in a simpler direction.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Update, July 2026:&lt;/strong&gt; Since this post, Arivu added a first-party Linux VPS installer with plan, backup, restore, upgrade, reconfigure, and shared-proxy modes. The Go and SQLite runtime shape below is still current, but the recommended production path is now covered in &lt;a href=&#34;https://arivu.app/chronicle/safer-self-hosting-less-guesswork/&#34;&gt;Safer Self-Hosting, Less Guesswork&lt;/a&gt; and the guided &lt;a href=&#34;https://arivu.app/documentation/self-hosting-arivu/&#34;&gt;self-hosting guide&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The app is now rebuilt around one Go application that serves the web UI, API, background workers, CLI commands, and migration tooling. The shipped frontend is embedded into the binary. Persistence is SQLite. Provider integrations use direct HTTP calls. The result is a self-hosted Arivu that has fewer pieces to run, fewer dependency trees to audit, and a clearer operational model.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Automated Security, Testing, and Code Quality</title>
				<link>https://arivu.app/chronicle/security-quality-automation/</link>
				<pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/security-quality-automation/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Historical note, July 2026:&lt;/strong&gt; This post reflects the automation used by the earlier Python and JavaScript stack. The current Go-based app uses a different, smaller dependency surface and validation workflow. The product-level commitment still stands: automated checks should catch security, quality, and regression issues before release.&lt;/p&gt;&#xA;&lt;p&gt;With the codebase now open source, we invested in the automation that keeps it healthy. This update adds continuous integration pipelines, automated dependency monitoring, static analysis, and a frontend test suite - the kind of infrastructure that catches problems before they reach you.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Deep Modularization, Reliability Engineering, and Admin Tools</title>
				<link>https://arivu.app/chronicle/architecture-reliability/</link>
				<pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/architecture-reliability/</guid>
				<description>&lt;p&gt;Our &lt;a href=&#34;https://arivu.app/chronicle/production-hardening/&#34;&gt;earlier hardening pass&lt;/a&gt; laid the groundwork - security, speed, and an initial split into smaller modules. This update goes deeper. We&amp;rsquo;ve broken the backend into fully independent domains, added retry and conflict handling for reliability, built a testing infrastructure that catches problems before you see them, and shipped an admin dashboard for controlled early access.&lt;/p&gt;&#xA;&lt;svg viewBox=&#34;0 0 700 260&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; style=&#34;max-width: 100%; height: auto; display: block; margin: 2rem auto;&#34; role=&#34;img&#34; aria-labelledby=&#34;chronicle-architecture-reliability-1-title chronicle-architecture-reliability-1-desc&#34;&gt;&#xA;  &lt;title id=&#34;chronicle-architecture-reliability-1-title&#34;&gt;Deep Modularization, Reliability Engineering, and Admin Tools, diagram 1&lt;/title&gt;&#xA;  &lt;desc id=&#34;chronicle-architecture-reliability-1-desc&#34;&gt;Historical diagram 1 accompanying the Chronicle post Deep Modularization, Reliability Engineering, and Admin Tools.&lt;/desc&gt;&#xA;  &lt;rect x=&#34;30&#34; y=&#34;20&#34; width=&#34;640&#34; height=&#34;60&#34; fill=&#34;#FDFCF9&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;350&#34; y=&#34;42&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;11&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;BEFORE: SINGLE LARGE BACKEND&lt;/text&gt;&#xA;  &lt;text x=&#34;350&#34; y=&#34;62&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34;&gt;Everything in one place - hard to test, risky to change&lt;/text&gt;&#xA;  &lt;line x1=&#34;350&#34; y1=&#34;80&#34; x2=&#34;350&#34; y2=&#34;110&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;polygon points=&#34;344,105 356,105 350,115&#34; fill=&#34;#2F2E2B&#34;/&gt;&#xA;  &lt;rect x=&#34;30&#34; y=&#34;120&#34; width=&#34;130&#34; height=&#34;55&#34; fill=&#34;#CF3F1E&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;95&#34; y=&#34;143&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;AUTH&lt;/text&gt;&#xA;  &lt;text x=&#34;95&#34; y=&#34;163&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Login, lockout, email&lt;/text&gt;&#xA;  &lt;rect x=&#34;170&#34; y=&#34;120&#34; width=&#34;130&#34; height=&#34;55&#34; fill=&#34;#7E2412&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;235&#34; y=&#34;143&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;BOOKMARKS&lt;/text&gt;&#xA;  &lt;text x=&#34;235&#34; y=&#34;163&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;CRUD, search, AI&lt;/text&gt;&#xA;  &lt;rect x=&#34;310&#34; y=&#34;120&#34; width=&#34;130&#34; height=&#34;55&#34; fill=&#34;#7E2412&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;375&#34; y=&#34;143&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;ANALYTICS&lt;/text&gt;&#xA;  &lt;text x=&#34;375&#34; y=&#34;163&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Insights, graphs&lt;/text&gt;&#xA;  &lt;rect x=&#34;450&#34; y=&#34;120&#34; width=&#34;110&#34; height=&#34;55&#34; fill=&#34;#2F2E2B&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;505&#34; y=&#34;143&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;COLLECTIONS&lt;/text&gt;&#xA;  &lt;text x=&#34;505&#34; y=&#34;163&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Organize, filter&lt;/text&gt;&#xA;  &lt;rect x=&#34;570&#34; y=&#34;120&#34; width=&#34;100&#34; height=&#34;55&#34; fill=&#34;#2F2E2B&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;620&#34; y=&#34;143&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;ADMIN&lt;/text&gt;&#xA;  &lt;text x=&#34;620&#34; y=&#34;163&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;9&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Invites, health&lt;/text&gt;&#xA;  &lt;rect x=&#34;30&#34; y=&#34;195&#34; width=&#34;640&#34; height=&#34;50&#34; fill=&#34;#FDFCF9&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;350&#34; y=&#34;218&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;10&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;RELIABILITY LAYER: RETRY, CONFLICT HANDLING, RATE LIMITING&lt;/text&gt;&#xA;  &lt;text x=&#34;350&#34; y=&#34;235&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#2F2E2B&#34; text-anchor=&#34;middle&#34;&gt;Graceful recovery &amp;amp; protection across all domains&lt;/text&gt;&#xA;&lt;/svg&gt;&#xA;&lt;h2 id=&#34;full-domain-separation&#34;&gt;Full Domain Separation&lt;/h2&gt;&#xA;&lt;p&gt;The initial hardening split out a few core services. This time, we went further - every major feature area now lives in its own domain with clear boundaries. Authentication has its own dedicated layer, including lockout and email handling. Bookmarks, collections, analytics, import/export, knowledge graph, search, and AI processing are all independent.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Production Hardening: Security, Speed, and Structure</title>
				<link>https://arivu.app/chronicle/production-hardening/</link>
				<pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/production-hardening/</guid>
				<description>&lt;p&gt;Arivu is now more secure, faster, and easier to evolve. This update focuses on the invisible infrastructure work that separates a side project from a production-ready product.&lt;/p&gt;&#xA;&lt;p&gt;We completed a comprehensive hardening pass across three domains: authentication security, database performance, and code architecture. Here&amp;rsquo;s what changed and why it matters.&lt;/p&gt;&#xA;&lt;svg viewBox=&#34;0 0 700 140&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; style=&#34;max-width: 100%; height: auto; display: block; margin: 2rem auto;&#34; role=&#34;img&#34; aria-labelledby=&#34;chronicle-production-hardening-1-title chronicle-production-hardening-1-desc&#34;&gt;&#xA;  &lt;title id=&#34;chronicle-production-hardening-1-title&#34;&gt;Production Hardening: Security, Speed, and Structure, diagram 1&lt;/title&gt;&#xA;  &lt;desc id=&#34;chronicle-production-hardening-1-desc&#34;&gt;Historical diagram 1 accompanying the Chronicle post Production Hardening: Security, Speed, and Structure.&lt;/desc&gt;&#xA;  &lt;rect x=&#34;60&#34; y=&#34;40&#34; width=&#34;160&#34; height=&#34;80&#34; fill=&#34;#CF3F1E&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;140&#34; y=&#34;70&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;12&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;SECURITY&lt;/text&gt;&#xA;  &lt;text x=&#34;140&#34; y=&#34;90&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Auth hardening&lt;/text&gt;&#xA;  &lt;text x=&#34;140&#34; y=&#34;105&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Transport protection&lt;/text&gt;&#xA;  &lt;rect x=&#34;270&#34; y=&#34;40&#34; width=&#34;160&#34; height=&#34;80&#34; fill=&#34;#7E2412&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;350&#34; y=&#34;70&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;12&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;PERFORMANCE&lt;/text&gt;&#xA;  &lt;text x=&#34;350&#34; y=&#34;90&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Query optimization&lt;/text&gt;&#xA;  &lt;text x=&#34;350&#34; y=&#34;105&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Connection efficiency&lt;/text&gt;&#xA;  &lt;rect x=&#34;480&#34; y=&#34;40&#34; width=&#34;160&#34; height=&#34;80&#34; fill=&#34;#2F2E2B&#34; stroke=&#34;#2F2E2B&#34; stroke-width=&#34;2&#34;/&gt;&#xA;  &lt;text x=&#34;560&#34; y=&#34;70&#34; font-family=&#34;&#39;Geist Mono&#39;, monospace&#34; font-size=&#34;12&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34; font-weight=&#34;bold&#34;&gt;ARCHITECTURE&lt;/text&gt;&#xA;  &lt;text x=&#34;560&#34; y=&#34;90&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Modular structure&lt;/text&gt;&#xA;  &lt;text x=&#34;560&#34; y=&#34;105&#34; font-family=&#34;&#39;Geist&#39;, sans-serif&#34; font-size=&#34;10&#34; fill=&#34;#FDFCF9&#34; text-anchor=&#34;middle&#34;&gt;Safer iteration&lt;/text&gt;&#xA;&lt;/svg&gt;&#xA;&lt;h2 id=&#34;security&#34;&gt;Security&lt;/h2&gt;&#xA;&lt;p&gt;Your account is now protected against brute-force password attacks. Repeated failed login attempts trigger a temporary lockout, stopping automated guessing while letting legitimate users recover naturally.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Faster Everything</title>
				<link>https://arivu.app/chronicle/react-19-vite/</link>
				<pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/react-19-vite/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Historical note, July 2026:&lt;/strong&gt; This post describes the earlier React/Vite application stack. Arivu has since moved to a simpler self-hosted Go application with embedded frontend assets and SQLite persistence. The performance goal remains, but the current runtime architecture is documented in &lt;a href=&#34;https://arivu.app/chronicle/simpler-self-hosting-go-rewrite/&#34;&gt;Arivu Is Simpler to Self-Host Now&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Arivu just got faster. A lot faster.&lt;/p&gt;&#xA;&lt;p&gt;We migrated the entire frontend to React 19 and Vite, and the difference is night and day. Cold starts that used to take seconds now happen in milliseconds. The app feels instant, not &amp;ldquo;fast for a web app&amp;rdquo; instant, but actually instant.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Fortified &amp; Fresh</title>
				<link>https://arivu.app/chronicle/security-aging-indicators/</link>
				<pubDate>Mon, 29 Dec 2025 00:00:00 +0000</pubDate>
				<guid>https://arivu.app/chronicle/security-aging-indicators/</guid>
				<description>&lt;p&gt;Bookmarks don&amp;rsquo;t die, they just get buried. You save something brilliant, fully intending to return to it, and then&amp;hellip; three months pass. Six months. A year. That article about distributed systems? Still sitting there, unread, slowly becoming irrelevant.&lt;/p&gt;&#xA;&lt;p&gt;The problem isn&amp;rsquo;t that you don&amp;rsquo;t care. It&amp;rsquo;s that nothing reminds you.&lt;/p&gt;&#xA;&lt;p&gt;Most bookmark managers treat every link the same: a flat list ordered by date, maybe grouped into folders you created with good intentions. There&amp;rsquo;s no concept of urgency, no sense that some bookmarks are aging out of relevance while others remain evergreen. Your collection becomes a timeline of abandoned intentions.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
