The Point‑Free Way

Expert-crafted AI skill documents for building long-lasting Swift applications.

Design, test, and evolve applications using the same principles, libraries, and techniques we use every day at Point‑Free.


Subscribe to unlockExplore Point-Free
Terminal
$brew install pointfreeco/tap/pfw$pfw login$pfw install --tool codex$ls -R ~/.codex/skills/./ComposableArchitecture/ SKILL.md./SQLiteData/ SKILL.md./Dependencies/ SKILL.md./SwiftNavigation/ SKILL.md

What is the Point‑Free Way?

The Point-Free Way is a curated collection of AI skill documents designed to guide you toward clear, composable, and testable application architecture.

  • Built specifically for Swift and Apple platforms
  • Deeply integrated with Point-Free libraries
  • Opinionated, consistent, and maintainable by design
  • Updated continuously based on releases and weekly community questions
“It's like having Point-Free as your pairing partner!”

Designed by industry experts

Created by the hosts of Point-Free.

  • Maintainers of open source libraries used by tens of thousands of developers
  • Producer of education videos, millions of minutes watched
  • Decades of real-world experience and consulting with teams of all sizes

Build apps in the Point‑Free style

Pomodoro – codex
$ComposableArchitecture Produce a snippet of code that implements a pomodoro timer feature.Using The Composable Architecture skill (requested). import ComposableArchitecture import SwiftUI @Feature struct Pomodoro { struct State { var isRunning = false var remainingSeconds = 25 * 60 var totalSeconds = 25 * 60 } enum Action { case startButtonTapped case pauseButtonTapped case resetButtonTapped case timerTick } var body: some Feature<State, Action> { Update { state, action in switch action { case .startButtonTapped: state.isRunning = true return .none case .pauseButtonTapped: state.isRunning = false return .none case .resetButtonTapped: state.isRunning = false state.remainingSeconds = state.totalSeconds return .none case .timerTick: guard state.remainingSeconds > 0 else { state.isRunning = false return .none } state.remainingSeconds -= 1 return .none } } .onMount(id: store.isRunning) { store in guard try store.isRunning else { return } while true { try await Task.sleep(for: .seconds(1)) try store.send(.timerTick) } } } } struct PomodoroView: View { let store: StoreOf<Pomodoro> var body: some View { VStack(spacing: 16) { Text(timeString(from: store.remainingSeconds)) HStack(spacing: 12) { Button("Start") { store.send(.startButtonTapped) } .disabled(store.isRunning) Button("Pause") { store.send(.pauseButtonTapped) } .disabled(!store.isRunning) Button("Reset") { store.send(.resetButtonTapped) } } } .padding() } private func timeString(from seconds: Int) -> String { let minutes = seconds / 60 let seconds = seconds % 60 return String(format: "%02d:%02d", minutes, seconds) } } #Preview { PomodoroView( store: Store(initialState: Pomodoro.State()) { Pomodoro() } ) }

Principles

  • Compositional architecture
  • Value types over reference types
  • Explicit dependencies
  • Controlled side effects
  • Testability by construction
  • Concise domain modeling

Libraries

  • Composable Architecture
  • Dependencies
  • Swift Navigation
  • SQLiteData
  • And more, as they evolve

Hand crafted, not AI generated

Every skill document is handwritten and meticulously tested to ensure it leads to high-quality code.

What you can expect

  • Practical guidance that results in cleaner designs
  • Patterns that remain maintainable for years
  • Guidance aligned with the libraries thousands already

Always current

  • Updated for new versions of our libraries
  • Evolved from weekly community questions
  • Maintained with the same rigor as our codebases

How access works

1
Subscribe to Point‑Free

Unlock videos and the all Point-Free Way skill documents.

2
Sign in to your account

Your account page includes installation instructions.

3
Install the Point‑Free Way

Add the skills to your workflow (Codex, Claude, etc).

4
Use it wherever you work

Apply consistent patterns across features and teams.

Subscribe to unlockView subscription plans

Build software that lasts.

Subscribe to Point-Free and unlock the Point-Free Way: expert guidance, continuously refined.

Subscribe now