<?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: wenxiang lin</title>
    <description>The latest articles on DEV Community by wenxiang lin (@lwnmengjing).</description>
    <link>https://dev.to/lwnmengjing</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3974346%2F3f42eb08-4e3d-4fee-b9b3-a34d683a6f64.png</url>
      <title>DEV Community: wenxiang lin</title>
      <link>https://dev.to/lwnmengjing</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lwnmengjing"/>
    <language>en</language>
    <item>
      <title>mss-boot-io community update: green CI, RFC-first security migration, and review tasks</title>
      <dc:creator>wenxiang lin</dc:creator>
      <pubDate>Tue, 09 Jun 2026 11:33:39 +0000</pubDate>
      <link>https://dev.to/lwnmengjing/mss-boot-io-community-update-green-ci-rfc-first-security-migration-and-review-tasks-bpk</link>
      <guid>https://dev.to/lwnmengjing/mss-boot-io-community-update-green-ci-rfc-first-security-migration-and-review-tasks-bpk</guid>
      <description>&lt;p&gt;A quick community-ops update for mss-boot-io.&lt;/p&gt;

&lt;p&gt;The four core repositories currently have no open pull requests, and main-branch CI, CodeQL, and OpenSSF Scorecard checks are green.&lt;/p&gt;

&lt;p&gt;The remaining frontend and docs security alerts are not being handled as risky one-off overrides. They are tracked as migration RFCs instead:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mss-boot-admin-antd: frontend Umi / Vite / router security migration&lt;/li&gt;
&lt;li&gt;mss-boot-docs: docs dumi / Umi / Vite toolchain migration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also split the RFCs into smaller contributor-friendly documentation tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;frontend migration impact inventory&lt;/li&gt;
&lt;li&gt;frontend smoke and rollback checklist&lt;/li&gt;
&lt;li&gt;docs toolchain migration impact inventory&lt;/li&gt;
&lt;li&gt;docs smoke and rollback checklist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Review help is especially useful around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quickstart friction&lt;/li&gt;
&lt;li&gt;RBAC / Casbin clarity&lt;/li&gt;
&lt;li&gt;migration and rollback design&lt;/li&gt;
&lt;li&gt;frontend release boundaries&lt;/li&gt;
&lt;li&gt;docs gaps for first-time contributors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub organization:&lt;br&gt;
&lt;a href="https://github.com/mss-boot-io" rel="noopener noreferrer"&gt;https://github.com/mss-boot-io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal is not to chase dependency upgrades blindly, but to keep the project reviewable, testable, and safe for contributors.&lt;/p&gt;

</description>
      <category>githubactions</category>
    </item>
    <item>
      <title>Building a Go Admin Framework Around Governance, Not Just CRUD</title>
      <dc:creator>wenxiang lin</dc:creator>
      <pubDate>Mon, 08 Jun 2026 15:15:58 +0000</pubDate>
      <link>https://dev.to/lwnmengjing/building-a-go-admin-framework-around-governance-not-just-crud-5fb7</link>
      <guid>https://dev.to/lwnmengjing/building-a-go-admin-framework-around-governance-not-just-crud-5fb7</guid>
      <description>&lt;p&gt;I maintain &lt;a href="https://github.com/mss-boot-io/mss-boot-admin" rel="noopener noreferrer"&gt;mss-boot-admin&lt;/a&gt;, an open-source Go + React admin project.&lt;/p&gt;

&lt;p&gt;This is not a launch post, and I am not asking for stars. I am looking for architecture and governance feedback from developers who have built or maintained internal admin systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why governance matters more than CRUD
&lt;/h2&gt;

&lt;p&gt;CRUD is usually the visible part of an admin system. The hard part starts after the first screens exist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;who can see which menu&lt;/li&gt;
&lt;li&gt;which role can call which API&lt;/li&gt;
&lt;li&gt;how configuration changes are tracked&lt;/li&gt;
&lt;li&gt;how migrations are reviewed&lt;/li&gt;
&lt;li&gt;how operational state is exposed&lt;/li&gt;
&lt;li&gt;how tests and release notes stay connected to real behavior&lt;/li&gt;
&lt;li&gt;how contributors can understand the project without private maintainer memory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the direction I want mss-boot to move toward: not just generating admin pages, but making backend governance easier to reason about.&lt;/p&gt;

&lt;h2&gt;
  
  
  What mss-boot-admin is today
&lt;/h2&gt;

&lt;p&gt;The project currently combines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go backend code around the mss-boot framework&lt;/li&gt;
&lt;li&gt;Gin and GORM in the backend stack&lt;/li&gt;
&lt;li&gt;Casbin for authorization concerns&lt;/li&gt;
&lt;li&gt;React, Ant Design v5, and Umi on the frontend side&lt;/li&gt;
&lt;li&gt;modules around users, roles, menus, APIs, configuration, notices, tasks, monitoring, and statistics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The broader organization is also moving toward a GitHub-first open-source workflow: CI, CodeQL, OpenSSF Scorecard, issue/PR templates, docs, release notes, and Discussions as the public source of truth.&lt;/p&gt;

&lt;h2&gt;
  
  
  The architecture question
&lt;/h2&gt;

&lt;p&gt;One design shape in the backend is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Controller -&amp;gt; Action -&amp;gt; Provider
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is to keep controllers thin, keep resource operations consistent, and give cross-cutting concerns a place to live: permissions, context, hooks, data scope, audit behavior, and later better observability.&lt;/p&gt;

&lt;p&gt;The tradeoff is obvious: Go developers are rightfully skeptical of abstraction that hides behavior.&lt;/p&gt;

&lt;p&gt;So the question is not "can this reduce repetition?" It can. The better question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does it stay debuggable, testable, and understandable as the project grows?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is the part I want feedback on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I am moving away from generator-first thinking
&lt;/h2&gt;

&lt;p&gt;Code generation can be useful for setup. But if an admin system becomes important, generation is not the main problem anymore.&lt;/p&gt;

&lt;p&gt;The harder problems are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;consistent authorization&lt;/li&gt;
&lt;li&gt;safe configuration changes&lt;/li&gt;
&lt;li&gt;migration discipline&lt;/li&gt;
&lt;li&gt;documentation that stays current&lt;/li&gt;
&lt;li&gt;release and environment separation&lt;/li&gt;
&lt;li&gt;reviewable changes from external contributors&lt;/li&gt;
&lt;li&gt;visibility into what changed and why&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is also why I do not want to make legacy dynamic/virtual model features the main direction. They may still matter for existing installations, but the current direction is standard Go code, API-first development, clear tests, and maintainable contracts.&lt;/p&gt;

&lt;h2&gt;
  
  
  How AI fits into the workflow
&lt;/h2&gt;

&lt;p&gt;I use AI as a maintainer assistant, not as the owner of the project.&lt;/p&gt;

&lt;p&gt;The useful parts are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;summarizing PR risk&lt;/li&gt;
&lt;li&gt;finding docs gaps&lt;/li&gt;
&lt;li&gt;preparing test plans&lt;/li&gt;
&lt;li&gt;reviewing dependency upgrades&lt;/li&gt;
&lt;li&gt;turning repeated issues into FAQ candidates&lt;/li&gt;
&lt;li&gt;keeping project memory in docs instead of private chat history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The maintainer still owns the decisions. That distinction matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would like feedback on
&lt;/h2&gt;

&lt;p&gt;I would really appreciate criticism on these points:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Does an Action/Hook style layer make sense for a Go admin backend, or does it hide too much behavior?&lt;/li&gt;
&lt;li&gt;Where would you draw the line between generic resource actions and explicit service methods?&lt;/li&gt;
&lt;li&gt;How would you make hook execution observable and testable?&lt;/li&gt;
&lt;li&gt;What would make the README or onboarding more credible to Go developers?&lt;/li&gt;
&lt;li&gt;Which parts would you distrust most without stronger tests?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Useful links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend/admin repo: &lt;a href="https://github.com/mss-boot-io/mss-boot-admin" rel="noopener noreferrer"&gt;https://github.com/mss-boot-io/mss-boot-admin&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Core framework repo: &lt;a href="https://github.com/mss-boot-io/mss-boot" rel="noopener noreferrer"&gt;https://github.com/mss-boot-io/mss-boot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Frontend repo: &lt;a href="https://github.com/mss-boot-io/mss-boot-admin-antd" rel="noopener noreferrer"&gt;https://github.com/mss-boot-io/mss-boot-admin-antd&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docs: &lt;a href="https://docs.mss-boot-io.top" rel="noopener noreferrer"&gt;https://docs.mss-boot-io.top&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Community discussion index: &lt;a href="https://github.com/orgs/mss-boot-io/discussions/377" rel="noopener noreferrer"&gt;https://github.com/orgs/mss-boot-io/discussions/377&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have feedback, I would prefer a GitHub Discussion or Issue so the context stays reusable for other contributors.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
  </channel>
</rss>
