{"exhaustive":{"nbHits":true,"typo":true},"exhaustiveNbHits":true,"exhaustiveTypo":true,"hits":[{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"smurda"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"<em>Arcjet</em> Guards: security inside the agent loop"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"https://blog.<em>arcjet</em>.com/introducing-<em>arcjet</em>-guards-security-inside-the-agent-loop/"}},"_tags":["story","author_smurda","story_47962673"],"author":"smurda","created_at":"2026-04-30T14:02:47Z","created_at_i":1777557767,"num_comments":0,"objectID":"47962673","points":2,"story_id":47962673,"title":"Arcjet Guards: security inside the agent loop","updated_at":"2026-05-02T19:00:01Z","url":"https://blog.arcjet.com/introducing-arcjet-guards-security-inside-the-agent-loop/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"mxstbr"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"Introducing <em>Arcjet</em>'s local AI security model"},"url":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"https://blog.<em>arcjet</em>.com/introducing-<em>arcjet</em>s-local-ai-security-model-announcing-series-a-funding/"}},"_tags":["story","author_mxstbr","story_45515625"],"author":"mxstbr","created_at":"2025-10-08T12:53:10Z","created_at_i":1759927990,"num_comments":0,"objectID":"45515625","points":1,"story_id":45515625,"title":"Introducing Arcjet's local AI security model","updated_at":"2026-03-05T22:47:46Z","url":"https://blog.arcjet.com/introducing-arcjets-local-ai-security-model-announcing-series-a-funding/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"cromulent"},"title":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"ADEPT\u2019s Spiderweave Heat Shield Material Tested at <em>Arc Jet</em> Facilities"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://www.nasa.gov/image-feature/ames/spiderweave-testing"}},"_tags":["story","author_cromulent","story_28325160"],"author":"cromulent","created_at":"2021-08-27T07:13:00Z","created_at_i":1630048380,"num_comments":0,"objectID":"28325160","points":1,"story_id":28325160,"title":"ADEPT\u2019s Spiderweave Heat Shield Material Tested at Arc Jet Facilities","updated_at":"2024-09-20T09:15:04Z","url":"https://www.nasa.gov/image-feature/ames/spiderweave-testing"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"Ahmad_shuja"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"I built this because I got tired of Stockfish giving me evaluations (+0.5) without explaining the actual plan.\nMost opening explorers focus on statistics (Win/Loss/Draw). I wanted a tool that explains the strategic intent behind the moves (e.g., &quot;White plays c4 to clamp down on d5&quot; vs just &quot;White plays c4&quot;).\nThe Project:\nComprehensive Database: I\u2019ve mapped and annotated over 3,500 named opening variations. It covers everything from main lines (Ruy Lopez, Sicilian) to deep sidelines.\nStrategic Visualization: The UI highlights key squares and draws arrows based on the textual explanation, linking the logic to the board state dynamically.\nHybrid Architecture: For the 3,500+ core lines, it serves my proprietary strategic data. For anything deeper/rarer, it seamlessly falls back to the Lichess Master API so the explorer remains functional 20 moves deep.\nStack: Next.js (App Router), MongoDB Atlas for the graph data, and <em>Arcjet</em> for security/rate-limiting.\nIt is currently in Beta. I am working on expanding the annotated coverage, but the main theoretical landscape is mapped.\nFeedback on the UI/UX or the data structure is welcome."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: I built a chess explorer that explains strategy instead of just stats"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://www.atlaschess.me/"}},"_tags":["story","author_Ahmad_shuja","story_46707464","show_hn"],"author":"Ahmad_shuja","children":[46709669,46710061],"created_at":"2026-01-21T15:56:42Z","created_at_i":1769011002,"num_comments":5,"objectID":"46707464","points":14,"story_id":46707464,"story_text":"I built this because I got tired of Stockfish giving me evaluations (+0.5) without explaining the actual plan.\nMost opening explorers focus on statistics (Win&#x2F;Loss&#x2F;Draw). I wanted a tool that explains the strategic intent behind the moves (e.g., &quot;White plays c4 to clamp down on d5&quot; vs just &quot;White plays c4&quot;).\nThe Project:\nComprehensive Database: I\u2019ve mapped and annotated over 3,500 named opening variations. It covers everything from main lines (Ruy Lopez, Sicilian) to deep sidelines.\nStrategic Visualization: The UI highlights key squares and draws arrows based on the textual explanation, linking the logic to the board state dynamically.\nHybrid Architecture: For the 3,500+ core lines, it serves my proprietary strategic data. For anything deeper&#x2F;rarer, it seamlessly falls back to the Lichess Master API so the explorer remains functional 20 moves deep.\nStack: Next.js (App Router), MongoDB Atlas for the graph data, and Arcjet for security&#x2F;rate-limiting.\nIt is currently in Beta. I am working on expanding the annotated coverage, but the main theoretical landscape is mapped.\nFeedback on the UI&#x2F;UX or the data structure is welcome.","title":"Show HN: I built a chess explorer that explains strategy instead of just stats","updated_at":"2026-03-05T23:22:30Z","url":"https://www.atlaschess.me/"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"shdalex"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"Hi HN! I\u2019ve been building startfa.st, a curated directory of AI, developer, and product tools.\nLink: <a href=\"https://startfa.st\" rel=\"nofollow\">https://startfa.st</a><p>Like many people building in AI/dev, I found myself drowning in new tools every day, everything from agents, deployment frameworks, auth platforms, workflow engines, model APIs, automation tools, design tools, security stacks, etc. There\u2019s constant novelty, but it\u2019s very hard to find signal. Most lists on the internet recycle the same names.<p>So I built startfa.st to solve my own discovery problem.<p>What startfa.st is<p>A fast, searchable, hand-curated index of tools across categories including:<p>Development Tools<p>AI Agents<p>Automation Tools<p>Security Tools<p>Integrations &amp; APIs<p>No-Code<p>Video / Design / Content Tools<p>Learning Tools<p>Finance / Analytics<p>And more (18+ categories total)<p>Each product has:\n a short manual description\n 4\u20136 tags for filtering\n category placement\n highlights (popular, rising, underrated)\n clean link out to the tool<p>There are 500+ tools so far, and I add new ones daily.<p>Why I built it<p>A few reasons:<p>Every day 10 new AI tools launch, and 7 of them die\nEarly discovery is useful, but most places surface the same 20\u201330 tools.<p>Twitter/X lists are noisy\nThey\u2019re good for hype, bad for structured discovery.<p>DevTools &amp; AI tooling are becoming deeply fragmented\nFor example, discovering tools like Inngest, <em>Arcjet</em>, Clerk, Temporal, Baseten, Trigger.dev, CrewAI, etc. requires knowing where to look.<p>OpenAI/Google/Anthropic overshadow everything\nI wanted a home where great tools still get visibility even if they aren\u2019t the top model vendors.<p>I needed it for my own workflow\nI use this daily to prototype, compare stacks, test tools, and build things.<p>So this is partly a personal tool that grew into something larger.<p>What\u2019s technically interesting<p>The entire collection is hand-curated (no scraping, no auto-import).<p>Every entry is manually categorized, no model hallucinations.<p>The UI is intentionally lightweight and fast (I want it to load instantly).<p>Tags + categories are normalized to let you filter by capability (\u201cLLM\u201d, \u201cauth\u201d, \u201cworkflows\u201d, \u201cvector search\u201d, \u201cRAG\u201d, \u201cdeployment\u201d, etc).<p>I\u2019m working on full-text search (across tags, categories, and descriptions).<p>I\u2019m considering a structured API if enough people want it.<p>Even though it\u2019s a simple concept, the hard part is editing and curation.<p>What\u2019s unique / different<p>No hype, no affiliate links, no auto-generated garbage.<p>Everything is manually vetted. If a tool is bad, buggy, or spammy, I skip it.<p>I highlight rising or underrated tools, not just the obvious majors.<p>It\u2019s extremely fast and minimal, no bloat.<p>Tools are categorized by what builders actually care about (auth, agents, workflows, LLM infra, deployment, etc.).<p>What\u2019s upcoming<p>Full-text search<p>Maker pages (like IndieHackers but cleaner)<p>Collections (e.g. \u201cAI video stack\u201d, \u201cTools for indie hackers\u201d, \u201cDevOps AI\u201d)<p>Trending / upvotes<p>Ability to filter by tech (Python, JS, Go, cloud, etc.)<p>A weekly digest of new tools<p>Public API<p>\u201cI use this\u201d badges (opt-in)<p>If any of these matter to you, I\u2019d love to know which ones to prioritize.<p>Feedback I\u2019m looking for from HN<p>Is the categorization useful? What\u2019s missing?<p>Should entries include pricing, screenshots, or feature lists?<p>Would a public API be valuable?<p>Are there tools I\u2019m overlooking that deserve inclusion?<p>Any UI/UX simplifications you\u2019d recommend?<p>I\u2019m happy to answer anything in the comments.<p>Link<p><a href=\"https://startfa.st\" rel=\"nofollow\">https://startfa.st</a><p>Thanks for reading, and thanks in advance for any feedback.<p>Happy to iterate quickly based on what HN suggests."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Startfa.st \u2013 A curated, fast directory of AI, dev, and product tools"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://startfa.st"}},"_tags":["story","author_shdalex","story_45964138","show_hn"],"author":"shdalex","created_at":"2025-11-18T12:00:20Z","created_at_i":1763467220,"num_comments":0,"objectID":"45964138","points":5,"story_id":45964138,"story_text":"Hi HN! I\u2019ve been building startfa.st, a curated directory of AI, developer, and product tools.\nLink: <a href=\"https:&#x2F;&#x2F;startfa.st\" rel=\"nofollow\">https:&#x2F;&#x2F;startfa.st</a><p>Like many people building in AI&#x2F;dev, I found myself drowning in new tools every day, everything from agents, deployment frameworks, auth platforms, workflow engines, model APIs, automation tools, design tools, security stacks, etc. There\u2019s constant novelty, but it\u2019s very hard to find signal. Most lists on the internet recycle the same names.<p>So I built startfa.st to solve my own discovery problem.<p>What startfa.st is<p>A fast, searchable, hand-curated index of tools across categories including:<p>Development Tools<p>AI Agents<p>Automation Tools<p>Security Tools<p>Integrations &amp; APIs<p>No-Code<p>Video &#x2F; Design &#x2F; Content Tools<p>Learning Tools<p>Finance &#x2F; Analytics<p>And more (18+ categories total)<p>Each product has:\n a short manual description\n 4\u20136 tags for filtering\n category placement\n highlights (popular, rising, underrated)\n clean link out to the tool<p>There are 500+ tools so far, and I add new ones daily.<p>Why I built it<p>A few reasons:<p>Every day 10 new AI tools launch, and 7 of them die\nEarly discovery is useful, but most places surface the same 20\u201330 tools.<p>Twitter&#x2F;X lists are noisy\nThey\u2019re good for hype, bad for structured discovery.<p>DevTools &amp; AI tooling are becoming deeply fragmented\nFor example, discovering tools like Inngest, Arcjet, Clerk, Temporal, Baseten, Trigger.dev, CrewAI, etc. requires knowing where to look.<p>OpenAI&#x2F;Google&#x2F;Anthropic overshadow everything\nI wanted a home where great tools still get visibility even if they aren\u2019t the top model vendors.<p>I needed it for my own workflow\nI use this daily to prototype, compare stacks, test tools, and build things.<p>So this is partly a personal tool that grew into something larger.<p>What\u2019s technically interesting<p>The entire collection is hand-curated (no scraping, no auto-import).<p>Every entry is manually categorized, no model hallucinations.<p>The UI is intentionally lightweight and fast (I want it to load instantly).<p>Tags + categories are normalized to let you filter by capability (\u201cLLM\u201d, \u201cauth\u201d, \u201cworkflows\u201d, \u201cvector search\u201d, \u201cRAG\u201d, \u201cdeployment\u201d, etc).<p>I\u2019m working on full-text search (across tags, categories, and descriptions).<p>I\u2019m considering a structured API if enough people want it.<p>Even though it\u2019s a simple concept, the hard part is editing and curation.<p>What\u2019s unique &#x2F; different<p>No hype, no affiliate links, no auto-generated garbage.<p>Everything is manually vetted. If a tool is bad, buggy, or spammy, I skip it.<p>I highlight rising or underrated tools, not just the obvious majors.<p>It\u2019s extremely fast and minimal, no bloat.<p>Tools are categorized by what builders actually care about (auth, agents, workflows, LLM infra, deployment, etc.).<p>What\u2019s upcoming<p>Full-text search<p>Maker pages (like IndieHackers but cleaner)<p>Collections (e.g. \u201cAI video stack\u201d, \u201cTools for indie hackers\u201d, \u201cDevOps AI\u201d)<p>Trending &#x2F; upvotes<p>Ability to filter by tech (Python, JS, Go, cloud, etc.)<p>A weekly digest of new tools<p>Public API<p>\u201cI use this\u201d badges (opt-in)<p>If any of these matter to you, I\u2019d love to know which ones to prioritize.<p>Feedback I\u2019m looking for from HN<p>Is the categorization useful? What\u2019s missing?<p>Should entries include pricing, screenshots, or feature lists?<p>Would a public API be valuable?<p>Are there tools I\u2019m overlooking that deserve inclusion?<p>Any UI&#x2F;UX simplifications you\u2019d recommend?<p>I\u2019m happy to answer anything in the comments.<p>Link<p><a href=\"https:&#x2F;&#x2F;startfa.st\" rel=\"nofollow\">https:&#x2F;&#x2F;startfa.st</a><p>Thanks for reading, and thanks in advance for any feedback.<p>Happy to iterate quickly based on what HN suggests.","title":"Show HN: Startfa.st \u2013 A curated, fast directory of AI, dev, and product tools","updated_at":"2026-03-05T23:01:58Z","url":"https://startfa.st"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"creativedg"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"I started this boilerplate in July 2020 and I\u2019ve been maintaining it for 5 years. It began on Next.js 9 and kept upgrading to Next.js 15+ (App Router), while upgrading the stack over time (Tailwind 1 \u2192 4, ESLint 8, swapping Cypress \u2192 Playwright, etc.). The goal is simple: I kept rebuilding the same setup, so I packaged it and kept it updated.<p>What you get (preconfigured, keep only what you need):<p>- Next.js 15 (App Router) + TypeScript + Tailwind 4<p>- Auth with Clerk (magic links, MFA, social, passkeys)<p>- I18n via next-intl<p>- DB with Drizzle ORM (PGlite locally)<p>- Forms with React Hook Form + Zod validation<p>- Testing: Vitest (unit), Playwright (integration/E2E)<p>- CI with GitHub Actions; Storybook for UI work<p>- SEO (Open Graph, JSON-LD, sitemap, robots)<p>- Observability: Sentry, logging with LogTape, log management &amp; uptime/monitoring<p>- Security: <em>Arcjet</em> (bot detection, rate limiting, shield rules)<p>- DX details: ESLint/Prettier, Lefthook + lint-staged, Commitlint, absolute imports, bundle analyzer<p>- AI code review<p>It\u2019s free and open source (MIT). Today the project sits around 11.8k GitHub stars and 2.2k forks. I\u2019m still actively maintaining it and adding features.<p>Repo: <a href=\"https://github.com/ixartz/Next-js-Boilerplate\" rel=\"nofollow\">https://github.com/ixartz/Next-js-Boilerplate</a><p>Why I built it<p>Spinning up auth, a DB, i18n, tests, and lint/format/CI for each new app was repetitive. This gives me (and hopefully you) a production-ready base in minutes, with opinionated defaults you can start.<p>I\u2019m open to suggestions and feedback, what would you like to see next? I\u2019ll hang around in the comments to answer questions."},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: Open-source Next.js 15 boilerplate \u2013 auth, DB, intl, tests, monitoring"}},"_tags":["story","author_creativedg","story_45052744","show_hn"],"author":"creativedg","created_at":"2025-08-28T14:38:31Z","created_at_i":1756391911,"num_comments":0,"objectID":"45052744","points":4,"story_id":45052744,"story_text":"I started this boilerplate in July 2020 and I\u2019ve been maintaining it for 5 years. It began on Next.js 9 and kept upgrading to Next.js 15+ (App Router), while upgrading the stack over time (Tailwind 1 \u2192 4, ESLint 8, swapping Cypress \u2192 Playwright, etc.). The goal is simple: I kept rebuilding the same setup, so I packaged it and kept it updated.<p>What you get (preconfigured, keep only what you need):<p>- Next.js 15 (App Router) + TypeScript + Tailwind 4<p>- Auth with Clerk (magic links, MFA, social, passkeys)<p>- I18n via next-intl<p>- DB with Drizzle ORM (PGlite locally)<p>- Forms with React Hook Form + Zod validation<p>- Testing: Vitest (unit), Playwright (integration&#x2F;E2E)<p>- CI with GitHub Actions; Storybook for UI work<p>- SEO (Open Graph, JSON-LD, sitemap, robots)<p>- Observability: Sentry, logging with LogTape, log management &amp; uptime&#x2F;monitoring<p>- Security: Arcjet (bot detection, rate limiting, shield rules)<p>- DX details: ESLint&#x2F;Prettier, Lefthook + lint-staged, Commitlint, absolute imports, bundle analyzer<p>- AI code review<p>It\u2019s free and open source (MIT). Today the project sits around 11.8k GitHub stars and 2.2k forks. I\u2019m still actively maintaining it and adding features.<p>Repo: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;ixartz&#x2F;Next-js-Boilerplate\" rel=\"nofollow\">https:&#x2F;&#x2F;github.com&#x2F;ixartz&#x2F;Next-js-Boilerplate</a><p>Why I built it<p>Spinning up auth, a DB, i18n, tests, and lint&#x2F;format&#x2F;CI for each new app was repetitive. This gives me (and hopefully you) a production-ready base in minutes, with opinionated defaults you can start.<p>I\u2019m open to suggestions and feedback, what would you like to see next? I\u2019ll hang around in the comments to answer questions.","title":"Show HN: Open-source Next.js 15 boilerplate \u2013 auth, DB, intl, tests, monitoring","updated_at":"2026-03-05T22:33:10Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"creativedg"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"After rebuilding my setup way too many times, I've finally landed on a stack that I don't want to change. Took 6 years to get here, so figured I'd share what works for me.<p>Here's where it's landed:<p>Framework: Next.js 16 (App Router) React 19. Server Components, App Router for routing.<p>Auth: Clerk Magic links, passkeys, MFA, social logins (Google, GitHub, Apple, etc.), user impersonation. It works perfectly with Next.js.<p>Database: DrizzleORM Type-safe ORM. Works with PostgreSQL, SQLite, MySQL - but personally I prefer PostgreSQL. Drizzle Studio for exploring data, Drizzle Kit for migrations.<p>Local dev: PGlite This one's underrated. Full Postgres running locally, no Docker needed.<p>Styling: Tailwind CSS Utility-first, fast iteration.<p>Forms: React Hook Form + Zod Zod schemas validate on client AND server. Type-safe end-to-end.<p>Testing: Vitest + Playwright Vitest in browser mode replaced React Testing Library for me. Playwright handles integration, E2E and visual regression. GitHub Actions runs everything on PRs automatically.<p>Logging: LogTape Universal and unified logging for Browser, server and edge.<p>Monitoring: Sentry + PostHog Sentry for errors (with Spotlight for local dev - game changer). PostHog for analytics and session replays.<p>i18n: next-intl Built-in internationalization from day one. i18n-check catches missing translations before they hit prod.<p>DX tooling:<p>ESLint\nLefthook for git hooks\nCommitlint + Conventional commits for consistent commits\nKnip for catching dead code\nSemantic Release for changelogs\nDependabot for dependencies update\nSecurity: <em>Arcjet</em> Rate limiting and bot protection without thinking about it.<p>I put this all together into a setup I reuse - nothing hidden, everything customizable. If anyone's curious, the whole thing is documented here: https://github.com/ixartz/Next-js-Boilerplate<p>What does your stack look like? Curious if anyone's using different setups."},"title":{"matchLevel":"none","matchedWords":[],"value":"The tech stack I've been refining for 6 years"}},"_tags":["story","author_creativedg","story_46913479","ask_hn"],"author":"creativedg","children":[46991703],"created_at":"2026-02-06T14:48:44Z","created_at_i":1770389324,"num_comments":1,"objectID":"46913479","points":2,"story_id":46913479,"story_text":"After rebuilding my setup way too many times, I&#x27;ve finally landed on a stack that I don&#x27;t want to change. Took 6 years to get here, so figured I&#x27;d share what works for me.<p>Here&#x27;s where it&#x27;s landed:<p>Framework: Next.js 16 (App Router) React 19. Server Components, App Router for routing.<p>Auth: Clerk Magic links, passkeys, MFA, social logins (Google, GitHub, Apple, etc.), user impersonation. It works perfectly with Next.js.<p>Database: DrizzleORM Type-safe ORM. Works with PostgreSQL, SQLite, MySQL - but personally I prefer PostgreSQL. Drizzle Studio for exploring data, Drizzle Kit for migrations.<p>Local dev: PGlite This one&#x27;s underrated. Full Postgres running locally, no Docker needed.<p>Styling: Tailwind CSS Utility-first, fast iteration.<p>Forms: React Hook Form + Zod Zod schemas validate on client AND server. Type-safe end-to-end.<p>Testing: Vitest + Playwright Vitest in browser mode replaced React Testing Library for me. Playwright handles integration, E2E and visual regression. GitHub Actions runs everything on PRs automatically.<p>Logging: LogTape Universal and unified logging for Browser, server and edge.<p>Monitoring: Sentry + PostHog Sentry for errors (with Spotlight for local dev - game changer). PostHog for analytics and session replays.<p>i18n: next-intl Built-in internationalization from day one. i18n-check catches missing translations before they hit prod.<p>DX tooling:<p>ESLint\nLefthook for git hooks\nCommitlint + Conventional commits for consistent commits\nKnip for catching dead code\nSemantic Release for changelogs\nDependabot for dependencies update\nSecurity: Arcjet Rate limiting and bot protection without thinking about it.<p>I put this all together into a setup I reuse - nothing hidden, everything customizable. If anyone&#x27;s curious, the whole thing is documented here: https:&#x2F;&#x2F;github.com&#x2F;ixartz&#x2F;Next-js-Boilerplate<p>What does your stack look like? Curious if anyone&#x27;s using different setups.","title":"The tech stack I've been refining for 6 years","updated_at":"2026-03-05T23:31:15Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"vinhnx"},"story_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"Hi HN, my name is Vinh Nguyen and I\u2019ve spent the last year building VT Chat, an minimal AI chat app that runs 100% in your browser. Privacy-first by design [0]<p>App: <a href=\"https://vtchat.io.vn\" rel=\"nofollow\">https://vtchat.io.vn</a>. Source on GitHub: <a href=\"https://github.com/vinhnx/vtchat\">https://github.com/vinhnx/vtchat</a><p>Key technical highlights<p>+ BYOK for six providers: OpenAI, Anthropic, Google, Fireworks, xAI, OpenRouter\u2014store your API keys locally and bypass shared\u2011service rate limits.<p>+ Per-account isolation: ThreadDatabase_{userId} instances in IndexedDB enforce strict data separation on shared machines.<p>+ Zero\u2011trust architecture: Local storage only, complete logout wipes all data and keys.<p>Tech stack &amp; infra<p>+ Next.js 14 App Router, TypeScript, Tailwind CSS, Shadcn UI, Framer Motion.<p>+ Auth: Better Auth<p>+ Backend: Neon PostgreSQL. ORM with Drizzle, <em>ArcJet</em> security, Turborepo monorepo, Turbopack (87% faster builds)<p>I\u2019m eager for feedback on the architecture, performance trade\u2011offs, and any edge cases I might have missed. Thank you and have a great day!<p>[0] VT Chat is privacy-first by design and I am committed to it. <a href=\"https://vtchat.io.vn/privacy\" rel=\"nofollow\">https://vtchat.io.vn/privacy</a>"},"title":{"matchLevel":"none","matchedWords":[],"value":"Show HN: VT Chat \u2013 Minimal AI Chat Application"},"url":{"matchLevel":"none","matchedWords":[],"value":"https://vtchat.io.vn/chat"}},"_tags":["story","author_vinhnx","story_44434039","show_hn"],"author":"vinhnx","children":[44440900],"created_at":"2025-07-01T14:05:18Z","created_at_i":1751378718,"num_comments":1,"objectID":"44434039","points":2,"story_id":44434039,"story_text":"Hi HN, my name is Vinh Nguyen and I\u2019ve spent the last year building VT Chat, an minimal AI chat app that runs 100% in your browser. Privacy-first by design [0]<p>App: <a href=\"https:&#x2F;&#x2F;vtchat.io.vn\" rel=\"nofollow\">https:&#x2F;&#x2F;vtchat.io.vn</a>. Source on GitHub: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;vinhnx&#x2F;vtchat\">https:&#x2F;&#x2F;github.com&#x2F;vinhnx&#x2F;vtchat</a><p>Key technical highlights<p>+ BYOK for six providers: OpenAI, Anthropic, Google, Fireworks, xAI, OpenRouter\u2014store your API keys locally and bypass shared\u2011service rate limits.<p>+ Per-account isolation: ThreadDatabase_{userId} instances in IndexedDB enforce strict data separation on shared machines.<p>+ Zero\u2011trust architecture: Local storage only, complete logout wipes all data and keys.<p>Tech stack &amp; infra<p>+ Next.js 14 App Router, TypeScript, Tailwind CSS, Shadcn UI, Framer Motion.<p>+ Auth: Better Auth<p>+ Backend: Neon PostgreSQL. ORM with Drizzle, ArcJet security, Turborepo monorepo, Turbopack (87% faster builds)<p>I\u2019m eager for feedback on the architecture, performance trade\u2011offs, and any edge cases I might have missed. Thank you and have a great day!<p>[0] VT Chat is privacy-first by design and I am committed to it. <a href=\"https:&#x2F;&#x2F;vtchat.io.vn&#x2F;privacy\" rel=\"nofollow\">https:&#x2F;&#x2F;vtchat.io.vn&#x2F;privacy</a>","title":"Show HN: VT Chat \u2013 Minimal AI Chat Application","updated_at":"2025-07-02T07:00:20Z","url":"https://vtchat.io.vn/chat"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"kangarooship"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"Location: Seattle, WA, USA\nRemote: Yes\nWilling to relocate: No\nTechnologies: TypeScript, Next.js, Electron, Node.js\nR\u00e9sum\u00e9/CV: <a href=\"https://www.linkedin.com/in/emilykangdev/\" rel=\"nofollow\">https://www.linkedin.com/in/emilykangdev/</a> \nEmail: emily@emilykang.dev<p>I do AI consulting to quickly deliver the outcomes you want. I'm primarily a founder building my own products, so consulting capacity is intentionally limited. If I take a project on, I deliver the scoped outcome on the agreed timeline. If it's not a fit, I'll tell you up front rather than stretch.<p>I build production AI features: LLM pipelines, paid AI products end-to-end (billing, licensing, deliverability), real-time data processing. And I ship fast using Claude Code Max + Codex for code review.<p>Recent shipped work:<p>- TimeBox \u2014 AI-native calendar (Electron + TypeScript, OpenRouter \u2014 provider-agnostic, any AI SDK; Supabase). In production, reaching out to potential users.<p>- PodcastBrief \u2014 Enter an Apple Podcast episode URL, get a brief on it with real reference links on all things mentioned, speaker quotes, and key ideas. Automated podcast-to-brief pipeline using Next.js, Railway workers, Deepgram, Browserbase, <em>Arcjet</em>, Stripe.<p>Problems I can solve:<p>- Subscription billing + license-key provisioning for paid desktop apps (LS/Stripe webhooks, installer downloads)\n- Long-running async AI jobs that don't drop work\n   - Media processing pipelines\n- Anti-abuse on AI endpoints<p>I do best with early-stage startups that need to ship an AI feature or integration in days or weeks, not quarters. I'm comfortable owning a full vertical \u2014 architecture, implementation, deployment.<p>Rate: Outcome-based, scoped per engagement. No hourly billing. 3 tiers of pricing: basics, enhanced value, and full accountability (above and beyond).<p>GitHub: <a href=\"https://github.com/emilykangdev\" rel=\"nofollow\">https://github.com/emilykangdev</a> | <a href=\"https://trytimebox.app/\" rel=\"nofollow\">https://trytimebox.app/</a> | <a href=\"https://podcastbrief.app\" rel=\"nofollow\">https://podcastbrief.app</a>"},"story_title":{"matchLevel":"none","matchedWords":[],"value":"Ask HN: Who wants to be hired? (May 2026)"}},"_tags":["comment","author_kangarooship","story_47975570"],"author":"kangarooship","comment_text":"Location: Seattle, WA, USA\nRemote: Yes\nWilling to relocate: No\nTechnologies: TypeScript, Next.js, Electron, Node.js\nR\u00e9sum\u00e9&#x2F;CV: <a href=\"https:&#x2F;&#x2F;www.linkedin.com&#x2F;in&#x2F;emilykangdev&#x2F;\" rel=\"nofollow\">https:&#x2F;&#x2F;www.linkedin.com&#x2F;in&#x2F;emilykangdev&#x2F;</a> \nEmail: emily@emilykang.dev<p>I do AI consulting to quickly deliver the outcomes you want. I&#x27;m primarily a founder building my own products, so consulting capacity is intentionally limited. If I take a project on, I deliver the scoped outcome on the agreed timeline. If it&#x27;s not a fit, I&#x27;ll tell you up front rather than stretch.<p>I build production AI features: LLM pipelines, paid AI products end-to-end (billing, licensing, deliverability), real-time data processing. And I ship fast using Claude Code Max + Codex for code review.<p>Recent shipped work:<p>- TimeBox \u2014 AI-native calendar (Electron + TypeScript, OpenRouter \u2014 provider-agnostic, any AI SDK; Supabase). In production, reaching out to potential users.<p>- PodcastBrief \u2014 Enter an Apple Podcast episode URL, get a brief on it with real reference links on all things mentioned, speaker quotes, and key ideas. Automated podcast-to-brief pipeline using Next.js, Railway workers, Deepgram, Browserbase, Arcjet, Stripe.<p>Problems I can solve:<p>- Subscription billing + license-key provisioning for paid desktop apps (LS&#x2F;Stripe webhooks, installer downloads)\n- Long-running async AI jobs that don&#x27;t drop work\n   - Media processing pipelines\n- Anti-abuse on AI endpoints<p>I do best with early-stage startups that need to ship an AI feature or integration in days or weeks, not quarters. I&#x27;m comfortable owning a full vertical \u2014 architecture, implementation, deployment.<p>Rate: Outcome-based, scoped per engagement. No hourly billing. 3 tiers of pricing: basics, enhanced value, and full accountability (above and beyond).<p>GitHub: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;emilykangdev\" rel=\"nofollow\">https:&#x2F;&#x2F;github.com&#x2F;emilykangdev</a> | <a href=\"https:&#x2F;&#x2F;trytimebox.app&#x2F;\" rel=\"nofollow\">https:&#x2F;&#x2F;trytimebox.app&#x2F;</a> | <a href=\"https:&#x2F;&#x2F;podcastbrief.app\" rel=\"nofollow\">https:&#x2F;&#x2F;podcastbrief.app</a>","created_at":"2026-05-01T20:26:27Z","created_at_i":1777667187,"objectID":"47979841","parent_id":47975570,"story_id":47975570,"story_title":"Ask HN: Who wants to be hired? (May 2026)","updated_at":"2026-05-01T20:30:41Z"},{"_highlightResult":{"author":{"matchLevel":"none","matchedWords":[],"value":"tarasshyn"},"comment_text":{"fullyHighlighted":false,"matchLevel":"full","matchedWords":["arcjet"],"value":"I needed analytics for side projects. PostHog was overkill for what I wanted (Country, Origin, UTMs, per-user attribution, entry page, revenue) and events are immutable, so removing test data needs manual SQL filters everywhere.<p>Plausible had no per-user attribution. DataFast looked perfect, installed with a proxy. Months later the bill hit $40/m. My whole infra is $150/m. Not paying $500/yr for analytics, but switching meant losing historical data and attribution. So I built it myself.<p>*Getting the data out.* DataFast has no export option (red flag #1). Wrote a script paginating every exposed endpoint, transforming responses into SQL for my DB.<p>For context: I have a microservices setup (Kafka, Redis, gateway, auth) and a monorepo front-end with shared components. So I just needed the &quot;core&quot; analytics feature.<p>A weekend in I had an ugly dashboard, services, a DB, no tracking. DataFast data turned out broken and missing values. Connected my readonly DB via MCP and the readonly key from my payment processor, re-attributed everything. Got to ~95% and moved on.<p>*Backend refactor.* Claude's boilerplate did attribution with direct Postgres calls - one roundtrip per visitor. Built a caching layer: events go to Redis, flushed to Postgres every ~30s. A distributed Redis lock means only one instance flushes at a time (no duplicates, no races). Each flush processes 5,000 records per SQL statement (Postgres parameter limits); failed chunks get re-buffered to Redis with up to 5 retries. ClickHouse would solve this too, but Redis scales fine.<p>Then extraction. LLMs have no concept of heap - everything was loaded into memory and iterated. With 100k+ events that kills the server. Rewrote with pagination and batched queries, plus a pre-aggregated daily rollup table for historical queries with no filters. Dashboard now feels instant for past date ranges.<p>*Front-end.* DataFast's filter system is unusable; ported PostHog's pattern. Their rate limits: 20 concurrent requests per day, and moving back days doesn't abort prior requests, so 3 days back = 60 in flight = rate limited. No signal abort in a prod app in 2025 (red flag #2). Batched my FE down to 5 requests with proper aborts on filter changes.<p>*Bot protection - this is where it got bad.* Running my tracker side-by-side with DataFast, I had 30-50% fewer attributions. Added <em>Arcjet</em>, hit 100k bot requests in days, disabled it before it bankrupted me.<p>DataFast has zero bot protection (red flag #3). Datacenter IPs - passed. Null user-agent - passed. 10x10000 resolution - welcome aboard. Read <em>Arcjet</em>'s posts, hit 96% bot blockage. Filter obvious user-agents and impossible displays. Use MaxMind DB to block datacenter IPs (I blocked my own infra and got 0 attributions, oops). Proxy real client IP through Cloudflare to my Fly backend.<p>While doing this I checked how DataFast handles IPs and... they don't (red flag #4). Maybe my misconfig, but their docs don't say. Either way, all my tracked users were attributed to the nearest Cloudflare CDN. I apparently take regular trips to Germany from Poland. Most of my DataFast tracking was garbage.<p>Added behavioral signals - bounces, no engagement + weird screens, weird browser versions - dozens of params combined into a per-session bot score with a &quot;probably bots&quot; toggle. Hard-filtered cases never hit the DB.<p>The bot scorer is import-aware: DataFast never tracked scroll depth, engagement, or interactions, so imported sessions have zero behavioral data. The scorer detects this and uses a fingerprint-only algorithm instead of penalizing them for data they never had.<p>Backend stress-tested (died, bumped RAM). Front-end looking good.<p>*The savings:* new microservice $25/m. So $39 - $25 = $14/m saved. Took about a month, on and off. Truly genius idea, replace every SaaS and never look back.<p>Link if curious: <a href=\"https://flowsery.com/\" rel=\"nofollow\">https://flowsery.com/</a>"},"story_title":{"matchLevel":"none","matchedWords":[],"value":"So I Decided to Build My Own Analytics, This Is How It Went"},"story_url":{"matchLevel":"none","matchedWords":[],"value":"https://flowsery.com/en"}},"_tags":["comment","author_tarasshyn","story_47778929"],"author":"tarasshyn","comment_text":"I needed analytics for side projects. PostHog was overkill for what I wanted (Country, Origin, UTMs, per-user attribution, entry page, revenue) and events are immutable, so removing test data needs manual SQL filters everywhere.<p>Plausible had no per-user attribution. DataFast looked perfect, installed with a proxy. Months later the bill hit $40&#x2F;m. My whole infra is $150&#x2F;m. Not paying $500&#x2F;yr for analytics, but switching meant losing historical data and attribution. So I built it myself.<p>*Getting the data out.* DataFast has no export option (red flag #1). Wrote a script paginating every exposed endpoint, transforming responses into SQL for my DB.<p>For context: I have a microservices setup (Kafka, Redis, gateway, auth) and a monorepo front-end with shared components. So I just needed the &quot;core&quot; analytics feature.<p>A weekend in I had an ugly dashboard, services, a DB, no tracking. DataFast data turned out broken and missing values. Connected my readonly DB via MCP and the readonly key from my payment processor, re-attributed everything. Got to ~95% and moved on.<p>*Backend refactor.* Claude&#x27;s boilerplate did attribution with direct Postgres calls - one roundtrip per visitor. Built a caching layer: events go to Redis, flushed to Postgres every ~30s. A distributed Redis lock means only one instance flushes at a time (no duplicates, no races). Each flush processes 5,000 records per SQL statement (Postgres parameter limits); failed chunks get re-buffered to Redis with up to 5 retries. ClickHouse would solve this too, but Redis scales fine.<p>Then extraction. LLMs have no concept of heap - everything was loaded into memory and iterated. With 100k+ events that kills the server. Rewrote with pagination and batched queries, plus a pre-aggregated daily rollup table for historical queries with no filters. Dashboard now feels instant for past date ranges.<p>*Front-end.* DataFast&#x27;s filter system is unusable; ported PostHog&#x27;s pattern. Their rate limits: 20 concurrent requests per day, and moving back days doesn&#x27;t abort prior requests, so 3 days back = 60 in flight = rate limited. No signal abort in a prod app in 2025 (red flag #2). Batched my FE down to 5 requests with proper aborts on filter changes.<p>*Bot protection - this is where it got bad.* Running my tracker side-by-side with DataFast, I had 30-50% fewer attributions. Added Arcjet, hit 100k bot requests in days, disabled it before it bankrupted me.<p>DataFast has zero bot protection (red flag #3). Datacenter IPs - passed. Null user-agent - passed. 10x10000 resolution - welcome aboard. Read Arcjet&#x27;s posts, hit 96% bot blockage. Filter obvious user-agents and impossible displays. Use MaxMind DB to block datacenter IPs (I blocked my own infra and got 0 attributions, oops). Proxy real client IP through Cloudflare to my Fly backend.<p>While doing this I checked how DataFast handles IPs and... they don&#x27;t (red flag #4). Maybe my misconfig, but their docs don&#x27;t say. Either way, all my tracked users were attributed to the nearest Cloudflare CDN. I apparently take regular trips to Germany from Poland. Most of my DataFast tracking was garbage.<p>Added behavioral signals - bounces, no engagement + weird screens, weird browser versions - dozens of params combined into a per-session bot score with a &quot;probably bots&quot; toggle. Hard-filtered cases never hit the DB.<p>The bot scorer is import-aware: DataFast never tracked scroll depth, engagement, or interactions, so imported sessions have zero behavioral data. The scorer detects this and uses a fingerprint-only algorithm instead of penalizing them for data they never had.<p>Backend stress-tested (died, bumped RAM). Front-end looking good.<p>*The savings:* new microservice $25&#x2F;m. So $39 - $25 = $14&#x2F;m saved. Took about a month, on and off. Truly genius idea, replace every SaaS and never look back.<p>Link if curious: <a href=\"https:&#x2F;&#x2F;flowsery.com&#x2F;\" rel=\"nofollow\">https:&#x2F;&#x2F;flowsery.com&#x2F;</a>","created_at":"2026-04-15T13:48:38Z","created_at_i":1776260918,"objectID":"47778930","parent_id":47778929,"story_id":47778929,"story_title":"So I Decided to Build My Own Analytics, This Is How It Went","story_url":"https://flowsery.com/en","updated_at":"2026-04-15T13:52:11Z"}],"hitsPerPage":10,"nbHits":5480,"nbPages":100,"page":0,"params":"query=arcjet&hitsPerPage=10&advancedSyntax=true&analyticsTags=backend","processingTimeMS":5,"processingTimingsMS":{"_request":{"queue":10,"roundTrip":22},"afterFetch":{"format":{"highlighting":1,"total":1},"merge":{"mergeLoop":{"prepareNextHit":1,"total":1},"total":1},"total":1},"fetch":{"query":2,"total":3},"total":5},"query":"arcjet","serverTimeMS":17}
