logging
booknotes
Jan 1
- The writer must be four people:
- The nut, the obsédé
- The moron
- The stylist
- The critic 1 supplies the material; 2 lets it come out; 3 is taste; 4 is intelligence. A great writer has all 4—but you can still be a good writer with only 1 and 2; they’re most important.
Jan 11
- Sagmeister introduces Edward de Bono method of lateral thinking by illustrating how to generate new ideas by breaking exising patterns of our thoughts by picking a random object.
- Came across this fun comment on YT on when Matt Popock is demoing the ‘Ralph Wiggum technique’ that I thought was hilaroius. “So now I need to do TDD, write tests, write specs, review code. AI is doing the best job and I am doing the boring part. What a time to be alive.” We’ve engineered the best parts of biulding products and left the edges to ourselves. I came across a similar sentiment of this when I found Ritza that masters in technical writing. If you mix human and GPT writing, it creates a style clash. Verifying that something is correct is often as time-consuming as writing it yourself. By using GPT-generated text, you push more of the production burden onto editing and QA. My lightweight conclusion here boils down to if generating and verifying takes a same amount of time as doing by hand, then do it by hand. If the combination is still shorter, reduces cognitive load to enable you do create more output or have more consistency, or the work itself is throwaway, then LLMs are a good tool.
Jan 12
- Well designed things not only make people feel good but make you behave well. The sentiment analaysis on X posts show Grand Central as always green and Penn Station as always red 24 hours a day. This is a strong arguement for making things well designed. If you want to make things sustainable it doesn’t just need to be made with sustainable materials, as when it gets disentegrated it doesn’t damage the environment , but also be well designed so it lasts long through wears and tears and the users of the product handle it with care. The latter of which requires the consumers of the design to handle with care.
- Taste is how much we’ve seen and how we feel seeing it; this creates conflicts in audiences, critics and the curator. In writing, in order to sound intelligent people will often use fancy words, of latin decent, vs saxon words that are simpler. It’s easy to hide behind bad writing, but hard to do that when using simpler words. notes from PG. ~Do things that are good and popular.~ Enzo Ferrari said “I build engines and attach wheels” on prioritize fundamentals and elevate each component, especially the powertrain.
- Globalization creates samifi-cation in design and one way out of it is to go to war. It pushes the people to preserve their culture by creating things that are deeply rooted in their history. When the windstorms come, the trees will sink their roots in.
- Beauty is a combination øf shape, form, color, composition, material, and texture to please the aesthetic senses, specially the sight.
- On llm driven development from Thorsten Bell, Both “No Plan” and “Too Much Plan” tend to blow up. Finding that perfect balance of preparation and just-in-time learning is at least half of the art of learning how to build successfully with LLMs.
- Writing is thinking. As someone who learns well from longform podcasts and conversations as well as solving problems via rubberduck debugging, my confusion lied in how thinking was happening not on paper but in my mind or in speech. Thinking does indeed happen in your mind, but when you jot down your disparate points, they’re often not cohesive or incomplete, as you’ll notice quickly when you start writing and in forming those complete sentences therein lies clarity. The act of just writing down alone creates synapses. I’ve spoken on this in key learnings to my younger self . In other words, [Sam Altman] that heads up the best AI company on the planet doesn’t use AI to think, and advocates pen, paper, and writing. Let that sink in.
- Anthropic has been subsidizing their subscriptions to improve their agent harness, i.e ClaudeCode, that in turns helps them release features such as memory, commands and their latest CoWork as of today.
- Ocatarine has been my choice of writing tool and I finally tried out views. I manage this entire blog under a single folder and being able to sort, filter, publish, view which files have linked tasks
- “I’ve never felt this much behind as a programmer. The profession is being dramatically refactored as the bits contributed by the programmer are increasingly sparse and between. I have a sense that I could be 10X more powerful if I just properly string together what has become available over the last ~year and a failure to claim the boost feels decidedly like skill issue. There’s a new programmable layer of abstraction to master (in addition to the usual layers below) involving agents, subagents, their prompts, contexts, memory, modes, permissions, tools, plugins, skills, hooks, MCP, LSP, slash commands, workflows, IDE integrations, and a need to build an all-encompassing mental model for strengths and pitfalls of fundamentally stochastic, fallible, unintelligible and changing entities suddenly intermingled with what used to be good old fashioned engineering. Clearly some powerful alien tool was handed around except it comes with no manual and everyone has to figure out how to hold it and operate it, while the resulting magnitude 9 earthquake is rocking the profession. Roll up your sleeves to not fall behind.” These are the words from Andrej Karpathy and I think its felt by everyone. I think what makes LLMs really powerful is its versitality and the varied workflows that leave us feeling like we aren’t maximizing its potential. It also uncovers an honest truth in that its not so much as we don’t like change but rather, learning is inherently a very energy ineffeicent process and by default it doesnt’ just happen. Simply asking yourself, if we know exactly what needs to be done, can we just give to it to an LLM. I’ve adoped it from doing things its hallucinated on too early so I’ve noticed myself stepping back. The ideal middle ground might be to make the LLMs one shot and while its brewing to run the commands myself.
- Write Non-Fiction Like Morgan Housel. Storytelling Beats Facts. If you can find stories that back your point that’s capitvating that’s worth listening to.
Jan 13
- ezyang on the ~gap between a Helpful Assistant and a Senior Engineer~: “What would take for an LLM to be able to act like a Senior Engineer?” His points include prompting might be all you need for task and project level work. A step function to this would be “prompt a model on how to operate agentically to get the context it needs” which we’re seeing a lot of emergent tooling that tries to abstract away both on the harness and domain level and the last would be “embodied” software developers. A fun experiment is what if we build our own agent that learns across our lifespan plus our ability to learn, observe and debug. As all software developers encapculate their knowledge in written form or agentic form, we could finally reach agent to agent interactions entirely. It’s hard to think 4 steps foward but its worth pondering and keeping in mind as we make forward progress. I believe this “transferability” of skill in the physical non knowledge work is already there as its less tacit. But the models aren’t yet powerful enough and the digital to physical barriers still need to breakdown.
- Planning and keeping TODOs in md files, md files to hold large changes between multi-phased tasks where context will quickly blow out are already helpful practices. A changelog agent comes to mind that tracks not only changelogs but state changes from before functionality to new change, why the change was made, what other alternate paths were tried out and failed or were not ideal as well as commit logs along with knowlege from all monitoring systems — observability to browsers and containers - should be logged for ongoing learning. (If you land up building one, DM me)
- On Influence, I’ve picked up some interesting persuation tricks like contrast principle when you drop a large enough contrast so the second ask makes the user feel you’re dropping a concession ask and they respond kindly. Contrast alone can be applied to sales so show customers a much more expensive item prior to showing more economical options. More attractive looking people are more trustworthy but trustworthy can come from being more similar to them so finding common ground in your life or interests will make your asks more approachable. Or finding customers who are trustworthy which could be popular in their domain. This is particlarly why engineering founder attract more competent and creative engineers even if they underlysing skills they land up using can vary widly based on the business. This alone is reason to want to become technical.
- Reading Four Thousand Weeks, the book felt really grim honestly and how I should kill all side projects with the limited four thousand weeks we have in our lives to live; but it also made the the case for intentionality. If you plan to watch a show and land up watching a show, that isn’t procrastination. That sums up my take on how to live your life. Intentional. If your inner critic wants to read more, learn more, design more and write more, its time for a change. The best roles are not someone you get hired for so if exploration of new fuzzy ideas feels like wasting time, then you’re well on your path to conventionality and comfort.
- The book kept referring the idea of having “infinite possibilites’ stifles innovation, increases anxiety and procrastination? What gives? Because they stop us from making decisions and more companies fail due to lack of action. Jeff Bezos’s regret minimization framework comes to mind. While I don’t have any concrete answers here what has worked for me is high level goals, identifying habits or forming systems around those goals and then wandering off for the rest 20%. This means we do need to limit our goals to one or two major buckets. Ideally take something physical and one mental. Anything more takes too long and you won’t see progress fast enough. The entire point of writing this point was actually about infinite possibilities. He summed up “social media doesn’t have to be good, it just has to sell you infinite possibilities” and that is the essense of why we reverting to distracting ourselves. When we read a book, or scroll social media, we’re taken out of time. When you’re present and mindful, time runs a lot slower. It’s not all bad. Social media is ok as long as it’s intentional but its engineered to be addictive. In fact, everytime I see a prompt box, I read “infinite possibilities” and quickly close the tab unless I know exactly what task I’m working on.
Jan 14
-
“I assume that vibe coding will grow up and people will use it for real engineering, with the “turn your brain off” version of it sticking around just for prototyping and fun projects. For me, vibe coding just means letting the AI do the work. How closely you choose to pay attention to the AI’s work depends solely on the problem at hand. For production, you pay attention; for prototypes, you chill. Either way, it’s vibe coding if you didn’t write it by hand. “ I think I’ll stick to this definiton by Steve Yegge. Context engineering just felt a bit too heavy.
-
“But it has always been more convenient to run IDEs locally, so cloud-based development never took off. The agent-clusters wave of H2 2025 will change that. Your dev desktop does not have enough power to run dozens of agents at once, let alone hundreds. The bulk of developer work will shift up to the cloud practically overnight.” I thought we had too many hosting providers already - the newcomers like fly, render, railway, vercel, valtown, the bluechip cloud providers and a few half dozen in the latest YC batch focused entirley on agentic fleets. This capacity is going to be required to fill emergent demand.
-
“I’m post data”.
Jan 27
- The New Normal. “The “new normal” is what I’ve named a phenomenon I’ve seen multiple times in my life. It’s an event where your perception of normality is changed by the people surrounding you. Consequently, your ambitions and chance of achieving those ambitions change as well.” You are who you surround yourself with but I don’t mean in the literal sense; with the internet you can choose what you read, who you follow, what skills you sharpen and what you create. If things aren’t working out, adjust your inputs and the outputs will be shaped by them.
- As everyone is the the arm race to build the next prompt generator or coding agent, my mind is already pondering on where the puck is going. At the time of this writing, GPT-5, Gemini 3 and Claude Opus 4.5 those who have spent enough time can now give up control on not knowing how the code is written and mostly on building metal modals around how it should be tested, can it handle edge cases, does it work and work well and we can even generate tests for handling systems at scalabiilty. So what’s next? Maggie dropped an intersting insight here. “The most valuable tools in this new world won’t be the ones that generate the most code fastest. They’ll be the ones that help us think more clearly, plan more carefully, and keep the quality bar high while everything accelerates around us.”
- Another solid analogy on why we all should write more. That’s why there’s no replacement for text, and there never will be. Thoughts that can survive being written into words are on average truer than thoughts that never leave the mind. You know how you can find a leak in a tire by squirting dish soap on it and then looking for where the bubbles form? Writing is like squirting dish soap on an idea: it makes the holes obvious.
Feb 2
- Had another epiphany this morning. That isn’t too wild given I had a solid session last night trying to organize my agentic workflow by consolidating the agent harness configs. Now you can create your settings, agents and skills in a single folder and symlink those settings across all agents. You can also create skills locally and have them ported to the central configs and symlinks locally. I’d love to be able to download these skills.sh/ by vercel to my own config directly.
- On the epiphany, its’ inspired by the conversation I heard a while back with the unhinged Steve Yiggie and the cofounder of the Zed on the checking in on your agents while at dinner; or in clawbots case it pings you by sending you a text. I’d wake up, walk over to my desk and talk to my monitor on where it was with yesterdays’ feature and it would present each feature (git workspace) and show me what work had been done in a dashboard of viewing diffs, status on tests handling several happy paths and edge cases, observability report, performance markers and interfaces changes with a staging link I can review. As I try the product and it doens’t feel snappy enough I’d ask my agent to bring in a performance expert that in realtime would download the “performance skill” and embody a performance agent. I would drop it the issues I was noticing and it would make suggestions. I’d ask it to go ahead with option A or B or a combination of the two. It’s easy to get caught up in why can’t it do all this by itself but building products is an unbounded design space and deciding what to leave out is just as important. Startups have 1/10000 the features of big technology companies but they optimize for a few happy paths that is an artform. You simply can’t bring in 500 agents for every task so the judgement is still on you. This is the realtime multimodal agentic harness. We have multimodal capabilities already but there are still a few more unlocks to reach pair programmer mode. To be fair this was discussed in the conversation but the lack of visualizing my day didnt’ unlock the entire experience for me.
- AI times feel rather manic; sometimes prompts work brilliantly as that feature would have taken me weeks but othertimes it can’t do basic aritimatic. So the comparisons to really smart interns or junior engineers or insert whatever flavor of human seems to miss the point. It’s a new kind of creature, lobsters crabs and whatnot, and those who have become really effective at using them are good at deciphering how to prompt, how to work with its limitations and insert their own human taste. This also means letting it loose and go off and do things for 24 hours doesn’t really work unless its very scoped or specified. Openclaw’s (aka clawdbot aka moltbot) very own creator call outs the illusion of productivity where we give ourselves so many bells and whistles that we spend our days just configuring our tools. But in reality the limiting factor is our own thoughts inspired by conversations, feedback, and watching people use our products. These logs are very much for yours truly.
- Napoleon delayed opening letters for four days to avoid impulsive decisions. He believed many issues resolved themselves or lost urgency with time. I’ll let the devs figure out what’s useful and then use that. I’ve unconciously done this with all of the frontier AI lab releases and so far I haven’t really lost much. I bypassed the MCP zeitgeist and am just exploring how to use skills but my current stance is even without these tools, I can go really far but I need to put in more thought into the underlying product vs optimizing my tools.
- When I got my first full time engineering role on a pure product team, it was an opening of floodgates on architectural decisions; I went from building static landing pages with simple scripts that would help animate carousels on a page to building features from ground up. While I was wrangling with the syntax of Angular 1, the dominant web framework at its time the real struggle was in learning the underlying architectural decisions, project structure and how the features would be organized, how to learn what was dependent on the underlying change. Programming was about keeping things DRY; do not repeat yourself. Conversely you also didn’t want to land up in abstraction hell so there is a fine balance and this is the implicit knowledge you learn as you work in teams. The underlying assumptions of code is requried to be readable, simple, DRY and maintainable are starting to crack. So how do we reason about code and how do we learn what is the essence of the discourse on should we learn to code? I can’t do a better job than point to the talk by Valtown founder on [programming] being theory buliding.
- An honest builder on Farcaster, mentioned that while you can game the educational system, you can tell based on the questions one asks how much they’ve thought critically on a topic. It’s after you’ve explored one layer deep, you’re now generating questions at a deeper layer of understanding. The plan mode in claude code or planning stage before you get your AI to do things for you is simply exploring these layers until you are happy with the right level of vagueness. When I think of theory building, this is really what we want but given the inverse relationship, we can generate code at 10000x the rate we can read, how we learn theory? I’ve really been digging reading through public prompts at ampcode even if the source isn’t public. You can learn a ton on builder intent, how to prompt, what granularity and what kinds of things llms are able to do. Another interesting way to learn is visualize how the shape of the codebase changes relative to system dimensions.
Feb 3
- Passing thought if you’re trying to learn how to code today in 2026, I would apply directness by picking a project to build you are keen on, I would find a community of builders. The best places are communities where you will find more experienced users and newcomers to learn from. One recommendation would be chat communities from aihero, valtown, ampcode, zed, claude developers and other AI lab chats. Joining purely vibe coding chat comms might not render the right balance of human expertise and the rest you can you poke your llms for.
- running a default board of directors or intellectual sparring partners and asking for help
- TIL in the wild. another solid way to write more.
Feb 4
- TIL: Business development companies are required to pay out at least 90% of their earnings as dividends. But BDC earnings can be cyclical. So, whenever earnings take even a short-term hit, many BDCs are put in the unfortunate position of having to choose between funding the dividend with debt or cutting it.
- Zed released an interactive way to create themes. Might be time to give Ariake another facelift.
- Execellent article on how I use amp and plenty of takeaways that are still relevant today. I usually go about searching for what I need using good ol search but what I hadn’t realized is by asking the agent to do the search, you’re also filling up your context with relevant information to enable it to make a change. Clever.
- Another one that jumped out is the throwaway code. “Very often the most important thing I learned is how I do not want to build the feature. Or I learned that I didn’t know what I wanted at all.” It’s analogous to writing; writing is thinking and often when you write down what you had in to head, its not clear and mostly its your thoughts are incongruint in logic. That’s precisely why we write isn’t it? To make things clear and now we can experiement by spitting out throwaway code and learn some things.
Feb 5
- Raising an Agent ep 10 is simply catnip for me. If you walk the agent through your tooling to solve a problem at the end of the session you should tell your agent to create a skill based on the steps you just went through we can step through when similar problems or actions need to be taken. It’s analgous to when you fixing repeated issues and drop them into your AGENTS.md/CLAUDE.md file.
- Another thing they raised is the human dev ex vs agent dev ex and how we’re shifting our codebases to mold to how the agents are trained on it. I don’t recall where we are in the debate but agents were primarily good at monorepos in their early days since they were able to read for context and make changes in a single repo. Now you can run
claude --add-dir ~/dev/github.com/cossistantto reference another repository where your agent has access to tool use.
Feb 6
- Y combinator just dropped their latest on Addicted To Coding Agents and the pull is real. Lots of interesting notes on how to get better at both building products and becoming a top 1% user of coding agent. I was aware of the context rot but apparenlty you can put in a canary at the start of your session and ask it if it remembers that bit of trivial. If it’s forgotten you should start a new chat. Using a reviewer as a separate model to review its code is a prevailing opinion.
- “Once coding speed jumps, everything around it becomes the constraint. Your throughput gets capped by whatever is slowest.” Paul Dix. Building a repository for human work vs agentic work should be similar but my codebase was mostly written in 2024 and while the code itself was generated, it wasn’t done by agents but rather a file by file approach. It also ignored writing test cases, toolchain and mono repo optimizations and getting it buttoned up is feeling like a really painful experience.
Feb 8
- This is a double-edged sword. We know of modern systems of record companies blocking users from exporting data for security but also the risk of elimination of their moat as they broke enterprise search teams such as Glean, but this comes at a cost. Without interopability between agents and the APIs new user AI adoption which primarily leans bottom up is favoring open source teams as well as products that allow them to interoprate with AI tools aka markdown files. You can see it in action with Wall Street just lost $285 billion because of 13 markdown files.
Feb 11
- I still haven’t exhusted all of the Roy Sunderland talks yet but here is another brilliant one where he explores the concept of Reverse Benchmarking; idea being if you have a marketing budget, which you ought to at least as much as your R&D if not more today as the cost of shipping is driving to $0, unless you live under a rock, find out what other do poorly, become excepetional at it and point it out to your customers. People tend to notice what is suprising and different; be not beige. Triz. “Rather than change the world, change the way people see the world because when people see the world differently, they behave different that then changes the world.”
Feb 23
- Just looking into exploraing factoryAI’s droid agent harness; the intial value props look well suited - use multiple models without paying several providers independently, being able to change model reasoning and permissions mid convesation, having the harness validate it’s own work iterativley without as part of its prompt and ahereing to your existing design system when asked to build new minted features and agreesive caching as defaults.
Feb 25
- Words from Rob Bowley. “Software exists to solve one problem: managing the flow of information. Information is not static. It is provisional, contextual, and constantly changing. Every use of a system creates new information that should influence what happens next. Many of its most important inputs only appear once it is in use.” I love this framing because it helps us learn our perfect vision of our products in our head isn’t the real thing. Most data intensive systems break at the point of load that there is where the complexity lies. Hence the saying premature optimization is the root of all evil. But the best systems are optimized for a particular business and businesses are complex emergent systems.
- The entire game now is to maximise the capture of your backpressure so agents stay on the rails. Backpressure is the automated feedback — type systems, test suites, linters, build errors, browser assertions — that tells an agent it went wrong before a human ever has to look. Without it, you become the bottleneck, manually catching trivial errors that a compiler or a test suite would have caught instantly. The amp team has been talking about feedback loops for while and I really jive with this definition.
Feb 27
- From the amp docs. I’ve been leaning mostly on using skills over mcp as context isn’t loaded on every chat and this is the clearest format I’ve found of integrating mcps into skills from the amp docs. Skills can bundle MCP servers by including an
mcp.jsonfile in the skill directory. The servers start when Amp launches, but their tools remain hidden until the skill is loaded. This is the recommended way to use MCP servers—it keeps the tool list clean and reduces context bloat compared to adding servers directly to your Amp configuration.
Feb 28
- Been very impressed with the Socket teams blog recently and leaarning all sorts of ways exploits that are not possible given that generative AI has turned software engineering and distribution on its head. Now we can run the socket firewall to protect our local systems during pkg installations. I’ve been a longtime user of their socket security github app that runs the checks in my PR to protect production deployments without putting in any additional work.
Mar 1
- Having learnt these llms can reverse engineer non-public APIs, I landed up creating in less than a day a mymind-cli for mymind.com that can then be used by the agents. Even pushed a nifty skill for it you can now grab from skills.sh.
- Which brings me to, Codex is cooked. It’s what condutor was aiming to bring to the masses but the restrictive workflow of using only claude code for planning/execution and GPT-5.3-codex for reviewed never stuck with me. With the best coding model today GPT 5.3-Codex and its async agents working in parallel on multiple tracks across multiple project, Codex is a joy to use. I’m still wraggling with two workstreams given they’re entirely new projects or massive refactors.
- Safe to say, I won’t be waiting till retirement to get all my ideas out. Geoffrey Huntley said it best. “Universally, it can be described as a mild form of creative psychosis for people who like to create things. All builders who have an internal reward function of creating things as a form of pleasure go through it because AI enables them to just do things.” We’re all feeling it.
Mar 2
-
Cloudflare just released Vinext and it gives you the Next DX but for serverless platforms outside Vercel. I’m very partial to the next framwork simply because I’m a fan of convention over configuration. I still recall the painful experience in 2012 of a derth of javascript frameworks being released per week, not having the experience of making tradeoffs, barely finding any consistency in files structures to learn from and less than optimal community focused efforts on building brands and products and more on exploring technology for the sake of it. “The better you document your work, the stronger contracts you define, the easier it is for someone to clone your work. I wouldn’t be surprised if we end up seeing open source commercial work bend towards the SQLite model (open core, private tests).” Conversely, very little thinking has gone into exploring business models around OSS and I belive we need to focus our efforst here. Sierra isn’t competing on seats but on resovled queries and cloning them wont’ really disrupt your business model as its sales led and price competitve.
-
I’ll be porting my current https://artivilla.com from Astro to Vinext to support an interactive site but also a custom blog and will be sharing my recording/prompts here. Traffic aware pre-rendering and dynamic routes and agentic payments to scrape content are exciting innovations to explore.
Mar 11
-
Successfully managed to port this site as you’re reading it to Vinext and its simply amazing things have continued to largely work just by prompting. Porting to Cloudflare does mean changing my nameservers I’ve broken a few other things mainly my keybase and valtown accounts. Nifty tool to check your non-cached verison with your new DNS records. It’s simply just a browser inside a browser hitting val towns servers to fetch your site content vs local network.
-
TIL. Whether copyright protection extends to a software interface? This is an interesting case in favor of Oracle in 2021 so its going to be particularly insigttful as net new AI generated source code are not entirely clean room design.
Mar 14
- Often I just need the code repository filetree as is with no git history, and preferably subpaths I can port to my own work. Especially as I’m storing all my agent skills in a custom artivilla/agents-config I can symlink out of. Degit lets you do just that. To copy a particular skill folder simply do
degit https://github.com/pasky/chrome-cdp-skill/skills/chrome-cdp chrome-cdpif you want to drop this particular path in a dir called chrome-cdp. - Eza is a modern replacement for ls. I aliased my ls for
eza -ahl --icons --git - “Yes, you can make that argument on consumer, but when you have a sales funnel that starts with ‘I’m going to talk to customers, and I have to make LTV:CAC work’ — versus ‘My LTV:CAC is the App Store’ — it’s a whole different ballgame.”
- Built things that agents want. It’s simply not enough to do things that human want because unlike a physical relationship of experiencing an event IRL, the book systems, how to book will be handled by your agent. This has major implications for platforms because it means if you’re not able to be easily provisioned by an agent, and you don’t have usable APIs for every core feature, you’re basically dead to the agent. Over time agents will ruthlessly prioritize what they use based on what’s easiest, what’s most effective, what’s cheapest, or other parameters you give it. In theory people have always done this, but agents will be much more utilitarian here than people ever were. Wild implications.
Mar 15
- Documenting changes by agents should not not include the how as the code implies it but the why? It should detail out the essential complexity we might need to maintain as we build out our domain systems. What’s a good prmopt for this? Interesting to ponder on.
Mar 19
- The runtime is the product. Really made me think through a new perspecive of what would replace
Mar 18
- make things not look vibe coded
- custom typography not used by many, many weights so we can create lots of visual heirarcy
- single primary color and accent color
- prefer custom top of fold designs
- lots of attention to headline - be very specific vs generic titles
- single action button and single sub action per view
- animations are only used for things you want specific attention for or as treatment vs reveal pattern
- custom navigation
- custom hover effects on buttons/links/images
- high use of translucency