<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Open Source Projects | Dylan Chiang</title><link>https://dylanchiang-dev.github.io/en/tags/open-source-projects/</link><atom:link href="https://dylanchiang-dev.github.io/en/tags/open-source-projects/index.xml" rel="self" type="application/rss+xml"/><description>Open Source Projects</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-US</language><lastBuildDate>Sat, 11 Jul 2026 00:00:00 +0000</lastBuildDate><image><url>https://dylanchiang-dev.github.io/media/icon_hu_982c5d63a71b2961.png</url><title>Open Source Projects</title><link>https://dylanchiang-dev.github.io/en/tags/open-source-projects/</link></image><item><title>DC-WeMark: Local-first WeChat public account Markdown typesetting tool</title><link>https://dylanchiang-dev.github.io/en/project/dc-wemark/</link><pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate><guid>https://dylanchiang-dev.github.io/en/project/dc-wemark/</guid><description>&lt;p>DC-WeMark is an open source Markdown typesetting tool for WeChat public account authors. Users can write Markdown on the left, preview it in real time on the right, and paste style-preserving rich text into the official account editor with one click. The entire processing process is completed locally in the browser, and no account, backend or article upload is required.&lt;/p>
&lt;h2 id="what-i-am-responsible-for-in-the-project">What I am responsible for in the project&lt;/h2>
&lt;p>This is an independent open source project designed and developed by me. I am responsible for the complete process from problem definition, technical architecture to product delivery.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Product Design&lt;/strong>: Focus on format loss, repeated adjustments and content privacy issues when Markdown authors enter the public account editor, and establish a single workflow of &amp;ldquo;typesetting, previewing, and copying&amp;rdquo;.&lt;/li>
&lt;li>&lt;strong>Core Engine&lt;/strong>: Parse Markdown AST with Rust and &lt;code>comrak&lt;/code>, convert theme rules into inline CSS acceptable to public accounts, and compile to WebAssembly.&lt;/li>
&lt;li>&lt;strong>Front-end experience&lt;/strong>: Use Vite and native TypeScript to complete dual-column editing, synchronous scrolling, mobile preview, file import and export, draft saving, and clipboard compatibility.&lt;/li>
&lt;li>&lt;strong>Design System&lt;/strong>: Create 48 original typography themes and provide adjustable parameters such as font, font size, accent color and copy background.&lt;/li>
&lt;li>&lt;strong>Project Delivery&lt;/strong>: Complete Rust unit testing, Playwright end-to-end testing, Docker self-racking solution, and Cloudflare Pages&amp;rsquo; continuous deployment process.&lt;/li>
&lt;/ul>
&lt;h2 id="core-innovation">Core Innovation&lt;/h2>
&lt;h3 id="1-put-the-typesetting-core-into-webassembly">1. Put the typesetting core into WebAssembly&lt;/h3>
&lt;p>Markdown parsing, theme application and compatibility processing are all completed by the Rust core, and then executed in the browser through WebAssembly. The same core set can be extended to the CLI or desktop in the future without having to re-implement the layout rules.&lt;/p>
&lt;h3 id="2-content-does-not-leave-the-users-device">2. Content does not leave the user’s device&lt;/h3>
&lt;p>The system has no server logic, database, or account services. Articles are always retained locally from input to copy, taking into account the privacy and offline availability of sensitive content.&lt;/p>
&lt;h3 id="3-compatible-output-for-official-account-editor">3. Compatible output for official account editor&lt;/h3>
&lt;p>General web page CSS cannot be saved directly in the official account editor. DC-WeMark inlines styles into elements one by one, filters unsupported tags and attributes, and writes them to the clipboard using &lt;code>text/html&lt;/code> to make the pasted layout as consistent as possible.&lt;/p>
&lt;h3 id="4-small-size-low-dependency-product-architecture">4. Small size, low dependency product architecture&lt;/h3>
&lt;p>The front end does not rely on a large UI framework, and the deployment artifacts are files that can be hosted by any static service. This keeps the online version, self-hosted version, and future multi-device reuse simple.&lt;/p>
&lt;h2 id="technical-architecture">Technical architecture&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Typesetting Core&lt;/strong>: Rust, comrak, WebAssembly&lt;/li>
&lt;li>&lt;strong>Front-end&lt;/strong>: Vite, TypeScript, HTML, CSS&lt;/li>
&lt;li>&lt;strong>Quality Assurance&lt;/strong>: Rust tests, Playwright E2E&lt;/li>
&lt;li>&lt;strong>Deployment&lt;/strong>: Cloudflare Pages, Docker, nginx&lt;/li>
&lt;li>&lt;strong>Authorization&lt;/strong>: MIT License&lt;/li>
&lt;/ul>
&lt;p>
·
&lt;/p></description></item><item><title>BOYA: Humanities and Social Sciences AI Research Skills Library</title><link>https://dylanchiang-dev.github.io/en/project/boya-skills/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://dylanchiang-dev.github.io/en/project/boya-skills/</guid><description>&lt;p>BOYA is an open source AI paper workflow I designed for researchers in the humanities and social sciences. It breaks tasks such as topic selection, literature retrieval, research design, paper revision, citation checking, oral examination and submission into skills that can be used independently or run in relays, allowing AI to handle the heavy work while leaving research judgment and academic responsibility to the researcher.&lt;/p>
&lt;h2 id="what-i-am-responsible-for-in-the-project">What I am responsible for in the project&lt;/h2>
&lt;p>I am responsible for BOYA&amp;rsquo;s problem definition, workflow architecture, all skill design, actual test verification and open source maintenance.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Requirements Translation&lt;/strong>: Convert tacit methodological knowledge in humanities and social science research into questions, checkpoints, and output formats that can be used by researchers with non-programming backgrounds.&lt;/li>
&lt;li>&lt;strong>Workflow Design&lt;/strong>: Establish a navigation portal and sixteen dedicated skills, covering research questions, literature, theoretical framework, methods, writing, review, oral examination and submission.&lt;/li>
&lt;li>&lt;strong>Human-computer collaboration governance&lt;/strong>: Set up manual decision-making gates for research questions, theoretical frameworks, method selection and interpretive judgments to prevent automation from overtaking researchers.&lt;/li>
&lt;li>&lt;strong>Academic Integrity Mechanism&lt;/strong>: Make &amp;ldquo;no fabrication found&amp;rdquo;, &amp;ldquo;references must be made to the source&amp;rdquo; and &amp;ldquo;transparent disclosure of AI use&amp;rdquo; as hard rules in the workflow.&lt;/li>
&lt;li>&lt;strong>Verification system&lt;/strong>: Use real paper materials to establish actual test cases, structured evaluations and evidence records, and continuously write down the exposed problems back to the technical rules.&lt;/li>
&lt;li>&lt;strong>Cross-platform maintenance&lt;/strong>: Supports Codex, Claude Code and OpenCode, and provides Traditional Chinese, Simplified Chinese, English and Japanese portals.&lt;/li>
&lt;/ul>
&lt;h2 id="core-innovation">Core Innovation&lt;/h2>
&lt;h3 id="1-convert-research-methods-into-executable-workflows">1. Convert research methods into executable workflows&lt;/h3>
&lt;p>BOYA not only provides prompt words, but also breaks down each research stage into clear inputs, judgment gates, outputs and handover conditions, making AI collaboration a traceable research process.&lt;/p>
&lt;h3 id="2-human-in-the-loop-hard-decision-gate">2. Human-in-the-loop Hard Decision Gate&lt;/h3>
&lt;p>The process can assist with retrieval, sorting, checking and simulated questioning, but when encountering research questions, theory selection, method selection and proposition revision, the researcher must stop and make decisions. This is the core difference between BOYA and fully automatic essay generation tools.&lt;/p>
&lt;h3 id="3-distinguish-between-bibliographic-existence-and-claim-establishment">3. Distinguish between bibliographic existence and claim establishment&lt;/h3>
&lt;p>&lt;code>reference-check&lt;/code> is responsible for confirming the literature and bibliographic fields, while &lt;code>claim-audit&lt;/code> goes back to the original text to check whether the key claims are supported to avoid mistaking the existence of a DOI as evidence of content.&lt;/p>
&lt;h3 id="4-use-real-research-materials-to-drive-iteration">4. Use real research materials to drive iteration&lt;/h3>
&lt;p>The boundaries of each skill are exposed through real research cases, and error patterns are written back into rules and evaluations. The reliability of workflow comes from checkable actual measurement records, not just functional descriptions.&lt;/p>
&lt;h2 id="project-results">Project results&lt;/h2>
&lt;ul>
&lt;li>Build &lt;strong>17&lt;/strong> composable research skills with complete navigation workflows.&lt;/li>
&lt;li>Accumulated &lt;strong>20&lt;/strong> real material test cases.&lt;/li>
&lt;li>Provide offline unit testing, structured regression cases and cross-model manual verification process.&lt;/li>
&lt;li>Open source under MIT License and provides usage entrances in four languages.&lt;/li>
&lt;li>It has been used for reference review of the author&amp;rsquo;s master&amp;rsquo;s thesis, and errors in DOI, signature and bibliographic information were found and corrections were made public.&lt;/li>
&lt;/ul>
&lt;p>
·
&lt;/p></description></item><item><title>Home task management system: Cloudflare full-stack collaboration platform</title><link>https://dylanchiang-dev.github.io/en/project/family-task-manager/</link><pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate><guid>https://dylanchiang-dev.github.io/en/project/family-task-manager/</guid><description>&lt;p>The family task management system is an open source collaboration platform for families and small teams. It integrates tasks, calendars, inspiration boxes, periodic schedules, member divisions and notifications into the same interface, and uses Cloudflare&amp;rsquo;s edge services to complete front-end and data layer deployment.&lt;/p>
&lt;h2 id="what-i-am-responsible-for-in-the-project">What I am responsible for in the project&lt;/h2>
&lt;p>This is a full-stack open source project designed, developed and maintained by me. I completed a complete refactoring from an early PHP version to an end-to-end TypeScript architecture.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Product Definition&lt;/strong>: Starting from the needs of family members to jointly manage daily tasks, core processes such as workbench, tasks, calendar, inspiration box, classification, member and personal settings are designed.&lt;/li>
&lt;li>&lt;strong>Architecture Refactoring&lt;/strong>: Refactor the PHP and MySQL monolithic systems into an edge-native architecture composed of React, Hono, Cloudflare Workers, D1, KV and R2.&lt;/li>
&lt;li>&lt;strong>Data and API&lt;/strong>: Design data models, validation rules and APIs for teams, tasks, categories, comments, notifications, periodic tasks and schedule blocks.&lt;/li>
&lt;li>&lt;strong>Complex task logic&lt;/strong>: Implement periodic task generation, time window, backlog tasks, calendar view and schedule update, and handle cross-layer data consistency.&lt;/li>
&lt;li>&lt;strong>Identity and Permissions&lt;/strong>: Create JWT access tokens, KV refresh sessions, team isolation and role permissions.&lt;/li>
&lt;li>&lt;strong>Engineering quality&lt;/strong>: using monorepo, front-end and back-end shared Zod schema, type checking, unit testing and Cloudflare automatic deployment.&lt;/li>
&lt;/ul>
&lt;h2 id="core-innovation">Core Innovation&lt;/h2>
&lt;h3 id="1-shift-from-personal-to-do-to-family-collaboration">1. Shift from personal to-do to family collaboration&lt;/h3>
&lt;p>The system not only manages the list of a single user, but also supports member assignment, classification, comments, notifications and multi-view workbench based on family or small team units.&lt;/p>
&lt;h3 id="2-unify-multiple-tasks-with-time-semantics">2. Unify multiple tasks with time semantics&lt;/h3>
&lt;p>General tasks, periodic tasks, time windows, itineraries and inspiration boxes each have different life cycles. The system allows different tasks to be managed in a consistent operating model by sharing data contracts and calendar views.&lt;/p>
&lt;h3 id="3-end-to-end-typescript-contract">3. End-to-end TypeScript contract&lt;/h3>
&lt;p>The front-end, back-end and shared packages are located in the same pnpm workspace, and Zod schema and type sharing are used to reduce API field drift, allowing input validation and type safety to extend from the interface to the data layer.&lt;/p>
&lt;h3 id="4-edge-native-low-dimensional-operation-architecture">4. Edge-native low-dimensional operation architecture&lt;/h3>
&lt;p>The frontend is deployed on Cloudflare Pages, the API runs on Workers, and the data uses D1, KV and R2. This architecture reduces traditional server maintenance while retaining database, cache, file and scheduling capabilities.&lt;/p>
&lt;h2 id="technical-architecture">Technical architecture&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Front-end&lt;/strong>: React, TypeScript, Vite, Tailwind CSS, shadcn/ui, PWA&lt;/li>
&lt;li>&lt;strong>Backend&lt;/strong>: Hono, Cloudflare Workers, Zod&lt;/li>
&lt;li>&lt;strong>Data layer&lt;/strong>: Cloudflare D1, Drizzle ORM, KV, R2&lt;/li>
&lt;li>&lt;strong>Engineering&lt;/strong>: pnpm workspace, Vitest, MSW, Cloudflare Pages&lt;/li>
&lt;li>&lt;strong>Authorization&lt;/strong>: MIT License&lt;/li>
&lt;/ul>
&lt;p>
·
&lt;/p></description></item></channel></rss>