<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Masaya Hori</title>
    <description>The latest articles on DEV Community by Masaya Hori (@messiah).</description>
    <link>https://dev.to/messiah</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3713435%2F7a20b01e-5f87-4a2d-8513-45f8d02c9ec2.png</url>
      <title>DEV Community: Masaya Hori</title>
      <link>https://dev.to/messiah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/messiah"/>
    <language>en</language>
    <item>
      <title>Cogni-Write: Fueling Niche Passions with Autonomous, Multi-Model AI Curation</title>
      <dc:creator>Masaya Hori</dc:creator>
      <pubDate>Sat, 11 Jul 2026 23:39:26 +0000</pubDate>
      <link>https://dev.to/messiah/cogni-write-fueling-niche-passions-with-autonomous-multi-model-ai-curation-5abf</link>
      <guid>https://dev.to/messiah/cogni-write-fueling-niche-passions-with-autonomous-multi-model-ai-curation-5abf</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-07-09"&gt;Weekend Challenge: Passion Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Cogni-Write is an automated digital journalism dashboard designed to break the bottleneck of content generation for deep-dive passion projects.&lt;/p&gt;

&lt;p&gt;Whether your passion is exploring ultra-niche local hidden spots, mapping out vintage music movements, or tracking specialized tech, keeping up with consistent high-quality writing is tough. Cogni-Write acts as an automated curation engine. By setting up a target topic, the application behaves like an independent digital journalist—analyzing what it has already written to prevent duplicate angles, applying advanced editorial guidelines via LLMs, and committing fully type-safe articles directly to a live dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The application is fully deployed and running live on Vercel:&lt;br&gt;
👉 Deployed Project Link: &lt;a href="https://cogni-write.vercel.app/" rel="noopener noreferrer"&gt;https://cogni-write.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The full source code, database architecture, and pipeline configuration are publicly accessible on GitHub:&lt;br&gt;
👉 GitHub Repository: &lt;a href="https://github.com/MessiahHoly/cogni-write" rel="noopener noreferrer"&gt;https://github.com/MessiahHoly/cogni-write&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted to build a bulletproof production stack that prioritizes predictable runtime states and resilient engineering. The application leverages Next.js 16 (App Router) with Turbopack, Prisma linked to a Neon PostgreSQL database, and Zod for schema runtime validation.&lt;/p&gt;

&lt;p&gt;Here are the key architectural decisions made over the weekend:&lt;/p&gt;

&lt;p&gt;Pure Functional Error Handling: Instead of letting fragile try/catch exceptions leak and bubble up, the core content generation pipelines use a functional Result State Monad ({ data } | { error }). Every operation returns an immutable, predictable value.&lt;/p&gt;

&lt;p&gt;Parallel Array Execution with Custom Type Guards: The system maps over an array of configured target engines in parallel using Promise.all. To strip out errors without throwing exceptions or defaulting to type-bypassing any types, I used a custom TypeScript type guard (result is SuccessfulArticleResult) mapped out via Extract.&lt;/p&gt;

&lt;p&gt;Optimized Multi-Request Memoization: Dynamic routes fetch data multiple times in Next.js (once for dynamic SEO metadata and once for rendering the layout view). To ensure the Prisma client isn't draining database connections with redundant duplicate reads, I wrapped the database fetch layer in a top-level React cache() container to globally share query executions across the request lifecycle.&lt;/p&gt;

&lt;p&gt;Automated On-Demand Revalidation Pipelines: The system is completely autonomous. A secure Vercel Cron Job triggers the content pipeline over POST endpoints once a day. To handle Next.js' production static page generation behavior, the API handler explicitly triggers revalidatePath("/") and loops through dynamic category slugs on the spot, swapping in fresh data across Vercel’s global Edge network instantly.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>Accounting Made Simple: AI-Powered Financial Insights of Japanese Companies with Gemma 4</title>
      <dc:creator>Masaya Hori</dc:creator>
      <pubDate>Sat, 23 May 2026 06:29:54 +0000</pubDate>
      <link>https://dev.to/messiah/accounting-made-simple-ai-powered-financial-insights-of-japanese-companies-with-gemma-4-5akj</link>
      <guid>https://dev.to/messiah/accounting-made-simple-ai-powered-financial-insights-of-japanese-companies-with-gemma-4-5akj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-gemma-2026-05-06"&gt;Gemma 4 Challenge: Build with Gemma 4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Accounting Made Simple is a modern and very simple, work in progress, financial web app that helps users track organisations and evaluate the core financial data. It combines financial data sources (EDINET, J-Quants and Finnhub) with Gemini-powered AI analysis to give users quick insights into a company’s financial health, trends, and potential red flags.&lt;/p&gt;

&lt;p&gt;Key capabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organisation search and equity data lookup&lt;/li&gt;
&lt;li&gt;Financial analysis generated by Gemma 4 from real balance sheet data&lt;/li&gt;
&lt;li&gt;Responsive UI built with Next.js 16, React 19, Tailwind CSS, and shadcn-inspired components&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://accountingmadesimple.vercel.app/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;accountingmadesimple.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/MessiahHoly" rel="noopener noreferrer"&gt;
        MessiahHoly
      &lt;/a&gt; / &lt;a href="https://github.com/MessiahHoly/accounting-made-simple" rel="noopener noreferrer"&gt;
        accounting-made-simple
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Accounting Made Simple&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A modern and simple web app for searching organisations, reviewing equity and filing data, and generating AI-powered financial insights. It combines J-Quants company search for Japanese companies, EDINET/Finnhub financial filings, and Gemini-powered analysis to help you explore financial health and accounting equation context.&lt;/p&gt;
&lt;p&gt;Built with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Next.js 16 + React 19&lt;/li&gt;
&lt;li&gt;Tailwind CSS v4 and shadcn/ui-inspired components&lt;/li&gt;
&lt;li&gt;Prisma 7 + PostgreSQL&lt;/li&gt;
&lt;li&gt;Better Auth with magic link login and Resend email delivery&lt;/li&gt;
&lt;li&gt;EDINET, J-Quants, and Finnhub financial data sources&lt;/li&gt;
&lt;li&gt;Gemini / Google GenAI-powered financial analysis and insights&lt;/li&gt;
&lt;li&gt;Zod / Prisma Zod generator for typed schema validation&lt;/li&gt;
&lt;li&gt;Recharts for simple financial charts&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Search Japanese organisations and equity data from J-Quants&lt;/li&gt;
&lt;li&gt;Optional language selector for search and AI analysis results&lt;/li&gt;
&lt;li&gt;Company detail pages showing EDINET/Finnhub financial filings, charts, and accounting summaries&lt;/li&gt;
&lt;li&gt;AI-generated financial analysis from Gemini / Google GenAI&lt;/li&gt;
&lt;li&gt;Responsive, utility-first UI with custom components&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Getting Started&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. Clone the&lt;/h3&gt;…&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/MessiahHoly/accounting-made-simple" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Used Gemma 4
&lt;/h2&gt;

&lt;p&gt;I used Gemma 4 via the Google GenAI SDK to power the financial analysis experience.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model used: gemma-4-31b-it&lt;/li&gt;
&lt;li&gt;Reason: I chose the 31B Dense variant because it provides strong instruction-following and financial reasoning for structured company balance sheet data, while still being efficient enough for a production-style analysis flow.&lt;/li&gt;
&lt;li&gt;Role in the app: Gemma 4 reads balance sheet/financial data fetched from EDINET/J-Quants/Finnhub, then generates plain-language insights about company health, trends, and risk signals that are rendered directly in the UI.&lt;/li&gt;
&lt;li&gt;This makes the app more than an accounting tracker — it becomes a finance assistant that helps users understand what the numbers mean.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49fzaucjq9auzfe6rzxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49fzaucjq9auzfe6rzxq.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gemmachallenge</category>
      <category>gemma</category>
    </item>
  </channel>
</rss>
