Independent projects. Shared with everyone.

iOS & AIengineer.

Building things I want to use.
Sharing what I learn.

I'm Juanpe, a Senior Software Engineer with 10+ years building software. My background is in iOS and Swift. These days, I'm also using AI to build useful products and tools.

Currently building AI-powered experiences at Goodnotes.

Selected work

Now & along the way
01 / What I'm building nowNow on the Mac App Store

NATIVE N8N CLIENT

AutomationStudio.
MaciPadiPhone
Automation Studio on macOS, showing a workflow on the canvas: a schedule trigger, an HTTP request, a code node and a Slack message. Automation Studio on iPad, editing a lead enrichment workflow on the canvas. Automation Studio on iPhone, listing the workflows on an n8n server.

Automation Studio

Native n8n client · macOS, iPadOS & iOS · SwiftUI

A native SwiftUI app to browse, edit and debug n8n workflows on your own server, or to sketch drafts locally on a real canvas. One shared codebase for Mac, iPad and iPhone. The Mac version is out now; iPhone and iPad are in App Review.

Download on the Mac App StoreiPhone & iPadComing soon
02 / AI for Apple platformsOpen beta on TestFlight

AI FOR SHORTCUTS

Shortcuts,supercharged.
iPhoneiPadMac
Runline on iPhone: the Triage a message workflow drawn as a tree, with a Classify step and a Switch with two paths.
A test run in Runline: the message is classified as urgent and a reply is written, step by step.

Runline

AI workflows for Shortcuts · iOS, iPadOS & macOS · SwiftUI

Shortcuts moves things from app to app; Runline helps it understand them. Small workflows read a receipt, decide whether a message is urgent or summarize a page, then hand the result back to the shortcut. Each step picks its model: Apple's on-device model or an open MLX model by default, Claude, OpenAI or your own server when it pays off. Free, with an open beta on TestFlight for iPhone, iPad and Mac.

03 / Open source for SwiftMIT license
ModelRelay: Composable AI workflows for Swift
let workflow = Workflow(name: "Receipt to expense") {
    Step.extract("expense",
                 instruction: "Extract the expense.",
                 model: .appleOnDevice) {
        Field("merchant", .text)
        Field("total", .number)
    }
}

let report = try await WorkflowExecutor()
    .run(workflow, input: .text(receipt))

ModelRelay

Swift package · iOS, macOS & visionOS · Open source

The engine behind Runline, as a Swift package. Build AI features from small, typed steps: a model for each one, tools and MCP servers, on-device and cloud models with a fallback, and control over what runs and what gets sent. Built on Hugging Face's AnyLanguageModel.

04 / AI side projectLive daily

What Matters Today

AI-powered daily digest · English & Spanish

I built this because I was tired of checking five different apps to catch up. An LLM pipeline curates and writes a daily digest of Apple, AI and tech news. Made for myself, shared in case it's useful to you too.

How it's built

An automated publishing workflow, with a static website at the end.

  1. Collect & curate

    An n8n workflow gathers the news, removes duplicate coverage and prepares the digest.

  2. Write & publish

    The pipeline produces English and Spanish text, updates the latest digest and saves a dated JSON archive.

  3. Keep the website simple

    The site reads those JSON files directly. No build step or server-side rendering. The n8n workflow runs separately and is not included in the public repository.

Implementation details in the README
05 / Made for the iOS communityOpen source

Even the waiting
can feel better.

view.showAnimatedGradientSkeleton()

Shimmer preview

SkeletonView

12k+GitHub stars

A Swift library that makes loading states feel part of the app. What started as a small idea became a project used by thousands of developers, and a big part of my journey in the iOS community.

Explore on GitHub

More Swift components, tools and experiments along the way.

All my open source

Notes along the way.

A few things I've written about building software.

Building URLRequests With Ease

Better Programming

Strategy Pattern in Swift

Medium

Improving Code Testability with Swift Protocols

Medium
Earlier writing

Desarrollo iOS 7: Novedades en MapKit

2013 · In Spanish

Construye tu propio framework en Xcode

2013 · In Spanish

A little more about me.

From mobile apps to products with AI.

I like taking a problem from an initial idea to something people can use. Sometimes that's a Swift library for other developers. Sometimes it's a daily digest I wanted for myself.

iOS and Swift are my foundation. With AI, I'm exploring a wider set of tools and asking more product questions: what's worth building, what should be automated, and what is better kept simple?

I share the code, the experiments and what I learn along the way.

My experience on LinkedIn