Qraft
  • What we do
  • Work
  • Team
  • Blog
  • Cowork
  • FR
  • /EN
Let’s talk

Our articles

Field notes, technical guides and working habits from our team.

Qraft
  • What we do
  • Work
  • Team
  • Blog
  • Cowork

Qrafting agentic software since 2020. Designed, written and coded at 36 rue Sainte, Marseille, by Nicolas, Alexis and Adrien. Write to us: hello@qraft.tech. © Qraft 2026.

  • Mar 4, 2026

    Managing Multiple Claude Code Workspaces from a Single Repo

    I use Claude Code across three separate directories — ~/dev/ for development, ~/work/ for non-dev tasks (time tracking, content editing), and ~/personal/ for personal admin. Each workspace has its own CLAUDE.md (context instructions) and .mcp.json (MCP server config). I wanted all of these versioned in a single repo so I could track changes, review diffs, and not lose configs when switching machines.

    Nicolas Rouanne

    →
  • Mar 2, 2026

    Setting Up a Full Dev Environment with Cursor Cloud Agents

    I wanted to see if Cursor's new Cloud Agents feature could set up a real development environment from scratch — not a toy project, but a full Rails API + Next.js monorepo with PostgreSQL, Redis, encrypted credentials, and seeded data. The answer: yes, mostly. Here's how it went.

    Nicolas Rouanne

    →
  • Mar 2, 2026

    I Built a Custom Worktree Skill for Claude Code. Then They Shipped It Natively.

    I spent a few weeks building a custom /worktree skill for Claude Code. It managed git worktrees for feature branches: creating them, copying permissions, cleaning up after merges, pruning stale branches. It was 114 lines of carefully crafted shell logic, and three other skills depended on it. Today I deleted it all and replaced it with a single flag: claude --worktree.

    Nicolas Rouanne

    →
  • Feb 13, 2026

    Using Notion MCP with Multiple Accounts in Claude Code

    I use Claude Code with Notion's MCP server to read and write to my Notion workspaces. But I have two Notion accounts — one for work and one personal. The MCP server only accepts a single NOTION_TOKEN, so connecting both at once isn't natively possible. Here's the workaround I've been using, and some thoughts on how this could be improved.

    Nicolas Rouanne

    →
  • Feb 12, 2026

    Building a 3D GIS Prototype for Urban Hybridization in Marseille

    I wanted to build a working prototype to explore how we could identify buildings suitable for urban hybridization (“surélévation”) in Marseille. The context: a client needed a GIS tool that could go beyond simple map visualization to actually help qualify which buildings could be elevated with additional floors on their rooftops. Instead of starting with a spec document, I decided to build something tangible using only open French government data.

    Nicolas Rouanne

    →
  • Feb 12, 2026

    Publishing My Claude Code Config as a GitHub Pages Site

    I keep all my Claude Code configuration — skills, settings, guides, and insights — in a single Git repository. At some point I thought: this is already organized as markdown files, why not publish it as a documentation site? So I set up GitHub Pages with Jekyll and the Just the Docs theme. Here's how it works.

    Nicolas Rouanne

    →
  • Jan 29, 2026

    Why we built our own HTML-to-PDF API

    At Qraft, we build two products that generate a lot of PDFs: Billi, a SaaS invoicing platform for freelance agencies, and Embarq, a fully automated umbrella company (portage salarial) in France. Between the two, we generate invoices, activity reports, expense reports, credit notes, quotes, contracts, and pay simulations. PDFs are everywhere.

    Nicolas Rouanne

    →
  • Jan 27, 2026

    Giving Claude Code a feedback loop with simulator screenshots

    When Claude Code runs commands, it sees text output. But when working on a mobile app, text isn't enough - you need to see the screen.

    Nicolas Rouanne

    →
  • Jan 27, 2026

    Using Claude Code to Triage Sentry Issues and Link Them to GitHub

    That's all I asked Claude Code. What followed was a complete incident triage workflow—querying issues, categorizing them, and creating properly linked GitHub issues—all through natural conversation.

    Nicolas Rouanne

    →
  • Jan 26, 2026

    Migrating 13 PRs to a Monorepo with git format-patch

    We recently moved from three separate repos (backoffice-ui-next, webapp, chat) to a single monorepo. The code migration was straightforward enough—but we had 13 open PRs that needed to come along for the ride.

    Nicolas Rouanne

    →
Previous1234Next