Apps and tools are essential for me. I stay aware of new releases but don't fixate on them due to my established process. In this post, I'll outline my workflow and detail the tools and configurations I use. While everyone's needs differ, you may find inspiration here.
Text editor(s)
Writing is a crucial aspect of my work and various processes, including learning. Text appears in many areas, such as daily communication, emails, newsletters, articles, scripts, website descriptions, documentation, and documents. Reports from Rize show that the text editor is the application where I spend the most time (23%). Therefore, I ensure that writing experiences foster the creative process.
I work with several text editors. They are:
iA Writer: In my opinion, it's the best Markdown syntax editor, with simplicity as its main advantage but it falls short in note organization and lacks related features.
Paper: A great candidate to replace iA Writer, the writing experience is even better. Unfortunately, the app has some bugs and limitations, making it suitable only for simple notes.
Obsidian: An app I rarely write in and usually just paste content from iA Writer or Paper. But it’s great for organizing content. Paired with Vitepress, I can share most of my notes online as a static website.
Notion: It's the final app where I primarily collaborate with others to create content, share it, or leverage automation. Notion stands out as the sole editor mentioned that offers an API, enabling integration with my services.
Using multiple text editors actually works pretty well. iA Writer is for long-form writing, Paper for quick notes, Obsidian for organizing, and Notion for sharing with others. The common thread is the Markdown syntax, which I wrote more about in Plain Text is What You Need.
When I write, GPT-4 or Claude continuously assists me. Their role is to correct and enhance readability, as well as make similar transformations to the content I produce. LLMs also perform well during brainstorming sessions and discussions on my current focus topic.
While writing:
Editor is in full-screen mode
Typing on Wooting 60HE keyboard
Taking screenshots with Xnapper
Generating code snippets in ray.so via Puppeteer automation macro
Optimizing images with a macro linked to TinyPNG
Sharing images and files using Dropshare
Hosting images and files on DigitalOcean
Using converters for HTML → Markdown, Markdown → HTML, Notion → Markdown, and Markdown → Notion. This allows me to write newsletters and blogs in markdown editor, then automate conversion to the target format. Uploading files to my own hosting is key here.
Keyboard settings: "Key repeat rate" at maximum and "Delay until repeat" at minimum
Using
text expander
for frequently repeated phrases like proper names (e.g., .tech becomes Tech•sistence), URLs, email addresses, contact detailsNavigating almost entirely with the keyboard, avoiding the mouse. Useful shortcuts include: move cursor to start/end of word (
Command + ← or →
), start/end of line (Option + ← or →
), start/end of paragraph (Command + ↑ or ↓
), delete next/previous word (Option + Backspace or Option + Shift + Backspace
), select line/word/paragraph.Using trackpad gestures for controlling music, managing windows/desktops, switching text editor functions, or sending selected text to AI assistant.
Utilizing keyboard shortcuts for actions related to screenshots, file optimization, and uploading.
Using clipboard manager Paste for easier text editing and returning to previously copied content (links, snippets).
All these activities work for each app I mentioned. Even though Notion lets you paste images right into the document, I still upload them to my server first. Direct uploads to Notion expire and need you to log in, which messes with automation.
General Workflow
Tasks, emails, and events are another well-optimized area. Unlike text-writing tools, the priority here is API connectivity. This enables leveraging automation and AI for data organization. I wrote more about this in User Interfaces may change because "AI knows what we mean".
Managing tasks
Linear is used both by our product team and myself to organize my work. All my tasks go here, and I rarely enter or edit their statuses manually. Instead, some entries appear due to automation (e.g., a new message with a label or a new file on Google Drive needing my attention). I add other entries via voice messages on Apple Watch or messages to the AI assistant on the Slack channel.
Of all the task management tools, I've liked Todoist and Linear the most so far. Both offer APIs that allow nearly unrestricted data management. Besides the API, a clear GUI and keyboard shortcuts are crucial to me, and Linear definitely outperformed in this area. As seen in the screenshot above, you can customize views to suit your specific needs or current situation.
So, on the topic of task management:
I mainly add and edit tasks via voice or simple Slack and Alice messages. The AI then assigns new entries to the appropriate categories, priorities, and deadlines.
The organization and updating of entries in Linear is handled by a series of GPT-4 prompts, which consider the rules I've defined. If needed, I can override them by simply stating that a given task should be assigned to a different project than indicated by the category descriptions.
Automation fills a large part of my tasks with various events and schedules. When possible, the AI assistant fetches additional information for the task description.
My priority is API availability, as automation allows me to focus on executing tasks, removing most of the organizational burden, except for planning-related activities.
E-mail
For years, I've been rocking Google Workspace with Superhuman. No surprise there—Gmail's awesome on its own and packs some serious automation power. You can set up slick scenarios on make.com or dive into advanced filters right within Gmail.
For me, email automation means responding to new messages that Gmail labels automatically. For instance, emails with "Invoice" get the "Invoices" label. This kicks off a Make.com scenario to handle the message, like saving attachments to Google Drive or adding tasks to Linear.
Sometimes, filter rules miss a few messages. When that happens, I manually add labels in Superhuman using keyboard shortcuts. Makes the whole process way easier.
Working with email also involves an account connected to an AI assistant, which can send various messages after completing assigned tasks. I wrote more about this in the post Personal AGI.
Regarding email management:
Superhuman's keyboard shortcuts and overall look & feel make working with email enjoyable and fast. Its high price is justified (though this is very subjective).
Gmail / Google Workspace is a "must-have."
Combining automatic filters with labels and automation greatly simplifies email management, document organization, and prioritization.
Calendar
My calendar's pretty chill, with just a couple of bi-weekly recurring meetings. This setup lets me focus and handle communication asynchronously through Slack or other channels.
You can book a slot in my calendar through Zencal. These pre-set time blocks automatically disappear when a meeting is scheduled or another entry, like a trip, appears in my calendar.
I can add new calendar entries via voice messages to my AI assistant, similar to a task list. The assistant can also check my availability or retrieve events from a specific range. Ultimately, I still occasionally check the calendar myself, and then I use the Notion Calendar app.
Notion Calendar in its own way resembles Superhuman and offers intuitive keyboard shortcuts and a minimalist interface.
Regarding calendar management:
Managing entries is done either by voice or through simple messages to an AI assistant (requires custom integrations)
Zencal is a brilliant tool for scheduling meetings (including paid ones), which can incorporate various automations (e.g., sending forms before the meeting or notes after the meeting)
Notion Calendar is a good, though not perfect, client.
Web Browsing
Arc Browser is my main browser on both macOS and iOS. Despite the ability to organize tabs or profiles, I only use its basic functionalities. Yet, the Command Bar (Command + T
) and Little Arc (Command + Option + N
) make a significant difference for me.
When I come across an interesting source (like an article, publication, or video) that I can’t review right then or know I’ll want to return to, I use a keyboard shortcut to send the open page to the AI assistant. The assistant then fetches available info about the page and saves the link to it in Linear and Feedly, pinning it to the appropriate board.
Staying up-to-date and monitoring news on topics that interest me is handled through Feedly. Like with previous tools, the main factor influencing my choice here is the availability of an API.
I've connected Feedly boards with Make.com automations, so simply pinning a post triggers additional actions. For instance, it saves the link in my assistant’s long-term memory. This memory is linked with search engines (Algolia and Qdrant), making it easy to find previously saved sources without needing to remember their exact names.
So, browsing the web for me means:
I use the browser just for Internet browsing. I don’t save bookmarks or other info. Instead, I use macros and automation to organize knowledge in set places, all controlled by LLM (GPT-4-turbo and GPT-4o).
Staying updated and exploring new topics with Feedly and sites like Product Hunt, daily.dev, Indie Hackers, or HackerNews.
The foundation of the whole system is my custom AI assistant and its long-term memory. Note, this isn't Alice from heyalice.app, but my private app, which I'm gradually making publicly available.
Graphic Design
Designing UI and promotional materials is an integral part of my work. I mainly use Figma and recently returned to Adobe Photoshop Beta due to its Generative AI features, which are excellent for editing images and assets generated in Midjourney.
Below is an example of covers for one of my courses, which I generated in Midjourney with slight editing through Adobe Firefly.
Figma works phenomenally for UI design, especially when using components and the auto-layout feature.
There are creations generated according to templates, where creating new versions involves only text replacement or simple layout editing. In such cases, Webflow becomes my graphic editor.
The AI assistant only requires information from me on generating the graphic (or graphics), plus the necessary details to create them (e.g., text, background image link). It automates Webflow contact to update the CMS entry, downloads the page as a PNG, and sends it to me.
When designing creations, I always use Midjourney Alpha. I generate various graphic or asset variants there, which I often combine in Photoshop.
Summarizing the topic of graphic design:
I use Generative AI, and currently, Midjourney or Stable Diffusion 3 works best.
Figma is undeniably the best available tool for interface design or creating advertisements. It's definitely worth getting to know its more advanced features, which save a lot of time.
Webflow combined with HTMLCSSToImage allows for automatic generation of graphics based on templates. Alternatively, you can use the latter tool directly, where you only need an HTML template in which you replace individual elements with automation.
Combining LLM with a set of templates allows for easy generation of entire sets of advertisements in various variants.
Programming
Programming is the second (after writing texts) activity that takes up most of my time, and therefore I also pay a lot of attention to it in the context of optimizing the entire process.
I use the following tools:
IntelliJ IDEA: This is my main code editor. Although I don't program in JAVA, IntelliJ works great with various programming languages (for me, it's TypeScript and Rust).
Supermaven: This is an alternative to Github Copilot that I have just started using, and it makes a great first impression by suggesting code very intelligently.
iTerm: Although I have gone through many different terminals, iTerm won with its simplicity and the fact that it performs its task perfectly.
TablePlus: This is a great database client for macOS.
You can see my IntelliJ setup above. I've turned off all panels and extra options since I always use keyboard shortcuts. This makes sense given the IDE's extensive customization options and the inclusion of a "Command Palette" style search.
For actions that do not have a keyboard shortcut, or I simply use them rarely, I use Search Menu Items, one of the options of the Raycast application.
Since ChatGPT's release, large language models have been my constant programming companions. I'm not just talking about code generation or debugging but also problem discussions, design decisions, and learning new technologies. Of course, I always make the final decisions, but models like GPT-4-turbo and Claude 3 Opus are nearly perfect conversational partners.
So, on the topic of programming:
I use the best available tools that work for me. For example, despite Visual Studio Code's enormous popularity, IntelliJ works far better for me. The main reason is that IntelliJ simply "understands my code" much better than VSC.
Generative AI takes pair programming to another level for me. In this case, such a partner is available to me all the time and often has much more knowledge than I do, although it quite frequently makes mistakes. Despite this, the overall balance of mistakes versus the value I receive is definitely positive.
Where justified, I use tools to automate code tasks. Application deployment is a "must-have" I always perform through GitHub Actions.
As seen in the previous points, I use my programming skills not only to develop products and work but also to create tools for my own needs.
Macros and Automations
I'll write a separate post about macros and automation, as it's too extensive a topic to cover in a few points. I'll just note that I work with applications: Shortcuts, Keyboard Maestro, Better Touch Tool, Raycast, and of course make.com.
My system is powered by my personal API, seamlessly integrated with my AI assistant. This setup lets macros and automations communicate with me and each other. It evolves with new language models and tools.
So, if this topic catches your eye, subscribe to Tech•sistence to see my take on it👇
Fun
Outside of work, I'm also a fan of books and games, spending my free afternoons and evenings with them. I log all the titles I've read on my Goodreads profile, often sharing highlighted passages or notes.
I always read books in the Amazon Kindle app or listen via Audible. It’s very helpful that if you have both the audiobook and e-book versions, progress syncs between devices, making reading much easier.
Lately, I’ve been diving less into books since my interests have shifted to cutting-edge stuff like Generative AI and new programming languages/tools. When I do pick up a book, it’s usually a challenging, timeless one that takes more time than your typical business, psychology, or economics bestsellers.
For games, I’m all about the PlayStation 5 right now. Next up is Nvidia GeForce Now, streaming from my Steam account and more. On the go, I rock the Steam Deck—such an impressive device—and the Nintendo Switch.
While gaming and reading, I also jam to music, which my AI assistant hooks up. So, having an API and cross-platform functionality is a must. Spotify nails it.
When I need to focus, e.g., while programming, designing, or writing longer texts, I also turn to endel.io.
Summary
I didn’t cover every tool, but I think I gave a good overview of my current setup. If you have any questions about the tools I use or how I work with them, feel free to ask in the comments! Wrapping up, my setup is always evolving. Even if some tools have been with me for years, how I use them changes. It's key to my growth and daily life. My setup isn't just about boosting productivity—it's about making each day more enjoyable and fun.
Have fun,
Adam
Inspiring setup. Thanks for sharing!
Great list! You've mentioned iTerm, have you tried https://warp.dev ? I switched to it few years ago and not coming back to iTerm.